aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--a1-adapter/a1-adapter-api/feature/pom.xml5
-rw-r--r--a1-adapter/a1-adapter-api/installer/pom.xml5
-rw-r--r--a1-adapter/a1-adapter-api/model/pom.xml5
-rw-r--r--a1-adapter/a1-adapter-api/pom.xml5
-rw-r--r--a1-adapter/a1-adapter-api/provider/pom.xml5
-rw-r--r--a1-adapter/features/a1-adapter-northbound/pom.xml5
-rw-r--r--a1-adapter/features/installer/pom.xml5
-rw-r--r--a1-adapter/features/pom.xml5
-rw-r--r--a1-adapter/pom.xml5
-rw-r--r--a1-policy-management/api/pms-api-v3.yaml8
-rw-r--r--a1-policy-management/api/pms-api.json2884
-rw-r--r--a1-policy-management/api/pms-api.yaml2
-rw-r--r--a1-policy-management/api/pms-api/index.html4032
-rw-r--r--a1-policy-management/config/application.yaml197
-rw-r--r--a1-policy-management/pom.xml67
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/Application.java7
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/BeanFactory.java24
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/DatabaseIndependentBeanFactory.java57
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/SpringContextProvider.java (renamed from a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/ApplicationContextProvider.java)20
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/A1ClientFactory.java3
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/AsyncRestClient.java44
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/ApplicationConfig.java10
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/ApplicationConfigParser.java9
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/OtelConfig.java43
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/WebClientUtil.java87
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/authorization/AuthorizationCheck.java2
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ConfigurationController.java2
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/Consts.java2
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/PolicyController.java104
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/RicRepositoryController.java19
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ServiceController.java78
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/StatusController.java2
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/ConfigurationControllerV3.java12
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/PolicyControllerV3.java31
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/RicRepositoryControllerV3.java22
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/ServiceControllerV3.java24
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/StatusControllerV3.java21
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/database/DatabaseDependentBeanFactory.java57
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/database/entities/BaseSchema.java50
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/database/entities/Policy.java30
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/database/entities/PolicyType.java30
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/database/entities/Service.java30
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/database/repositories/PoliciesRepository.java29
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/database/repositories/PolicyTypesRepository.java27
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/database/repositories/ServicesRepository.java27
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/datastore/DataStore.java6
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/datastore/DatabaseStore.java148
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/service/v3/AuthorizationService.java6
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/service/v3/PolicyService.java74
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/tasks/RicSupervision.java1
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/util/v3/Helper.java9
-rw-r--r--a1-policy-management/src/main/resources/db/migration/V1__create_base_schema.sql35
-rw-r--r--a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/AsyncRestClientTest.java2
-rw-r--r--a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/MetersTest.java4
-rw-r--r--a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/OtelConfigTest.java17
-rw-r--r--a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ApplicationTest.java50
-rw-r--r--a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/ConfigurationControllerV3Test.java (renamed from a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/ConfigurationControllerTestV3.java)3
-rw-r--r--a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/PolicyControllerV3Test.java (renamed from a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/PolicyControllerTestV3.java)69
-rw-r--r--a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/RicRepositoryControllerV3Test.java (renamed from a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/RicRepositoryControllerTestV3.java)9
-rw-r--r--a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/ServiceControllerV3Test.java (renamed from a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/ServiceControllerTestV3.java)2
-rw-r--r--a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/datastore/DatabaseStoreTest.java371
-rw-r--r--a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/utils/v3/TestHelper.java21
-rw-r--r--csit/scripts/healthcheck/.env9
-rwxr-xr-xcsit/scripts/healthcheck/test/pms_a1sim_sdnc.sh7
-rw-r--r--docs/_static/logo_onap_2024.pngbin0 -> 11627 bytes
-rw-r--r--docs/conf.py2
-rw-r--r--[-rwxr-xr-x]docs/consumedapis/consumedapis.rst6
-rw-r--r--docs/guide/developer-guide.rst4
-rw-r--r--docs/humaninterfaces/humaninterfaces.rst2
-rw-r--r--docs/media/ONAP-A1ControllerArchitecture-NewDelhi.pngbin0 -> 203573 bytes
-rw-r--r--docs/offeredapis/openapitoolgen/offeredapis/pms-api/index.html1666
-rw-r--r--docs/offeredapis/swagger/pms-api.json3655
-rw-r--r--docs/offeredapis/swagger/pms-api.yaml352
-rw-r--r--docs/releasenotes/release-notes.rst26
-rw-r--r--pom.xml5
-rw-r--r--releases/1.7.0-container.yaml9
-rw-r--r--releases/1.7.0.yaml5
-rw-r--r--version.properties2
78 files changed, 7286 insertions, 7429 deletions
diff --git a/a1-adapter/a1-adapter-api/feature/pom.xml b/a1-adapter/a1-adapter-api/feature/pom.xml
index 00952bba..13a2c694 100644
--- a/a1-adapter/a1-adapter-api/feature/pom.xml
+++ b/a1-adapter/a1-adapter-api/feature/pom.xml
@@ -3,7 +3,8 @@
~ ============LICENSE_START=======================================================
~ ONAP : ccsdk oran
~ ================================================================================
- ~ Copyright (C) 2020 Nordix Foundation. All rights reserved.
+ ~ Copyright (C) 2020-2023 Nordix Foundation. All rights reserved.
+ ~ Copyright (C) 2024 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.
@@ -31,7 +32,7 @@
<groupId>org.onap.ccsdk.oran</groupId>
<artifactId>a1-adapter-feature</artifactId>
- <version>1.7.0-SNAPSHOT</version>
+ <version>1.8.0-SNAPSHOT</version>
<packaging>feature</packaging>
<name>ccsdk-oran :: ${project.artifactId}</name>
diff --git a/a1-adapter/a1-adapter-api/installer/pom.xml b/a1-adapter/a1-adapter-api/installer/pom.xml
index c8487023..44c1db03 100644
--- a/a1-adapter/a1-adapter-api/installer/pom.xml
+++ b/a1-adapter/a1-adapter-api/installer/pom.xml
@@ -3,7 +3,8 @@
~ ============LICENSE_START=======================================================
~ ONAP : ccsdk oran
~ ================================================================================
- ~ Copyright (C) 2020 Nordix Foundation. All rights reserved.
+ ~ Copyright (C) 2020-2023 Nordix Foundation. All rights reserved.
+ ~ Copyright (C) 2024 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.
@@ -31,7 +32,7 @@
<groupId>org.onap.ccsdk.oran</groupId>
<artifactId>a1-adapter-installer</artifactId>
- <version>1.7.0-SNAPSHOT</version>
+ <version>1.8.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>ccsdk-oran :: ${project.artifactId}</name>
diff --git a/a1-adapter/a1-adapter-api/model/pom.xml b/a1-adapter/a1-adapter-api/model/pom.xml
index dd7dbfef..13a94d63 100644
--- a/a1-adapter/a1-adapter-api/model/pom.xml
+++ b/a1-adapter/a1-adapter-api/model/pom.xml
@@ -3,7 +3,8 @@
~ ============LICENSE_START=======================================================
~ ONAP : ccsdk oran
~ ================================================================================
- ~ Copyright (C) 2020 Nordix Foundation. All rights reserved.
+ ~ Copyright (C) 2020-2023 Nordix Foundation. All rights reserved.
+ ~ Copyright (C) 2024 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.
@@ -31,7 +32,7 @@
<groupId>org.onap.ccsdk.oran</groupId>
<artifactId>a1-adapter-model</artifactId>
- <version>1.7.0-SNAPSHOT</version>
+ <version>1.8.0-SNAPSHOT</version>
<packaging>bundle</packaging>
<name>ccsdk-oran :: ${project.artifactId}</name>
diff --git a/a1-adapter/a1-adapter-api/pom.xml b/a1-adapter/a1-adapter-api/pom.xml
index 24e0ffb0..2b3d321d 100644
--- a/a1-adapter/a1-adapter-api/pom.xml
+++ b/a1-adapter/a1-adapter-api/pom.xml
@@ -3,7 +3,8 @@
~ ============LICENSE_START=======================================================
~ ONAP : ccsdk oran
~ ================================================================================
- ~ Copyright (C) 2020 Nordix Foundation. All rights reserved.
+ ~ Copyright (C) 2020-2023 Nordix Foundation. All rights reserved.
+ ~ Copyright (C) 2024 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.
@@ -30,7 +31,7 @@
<groupId>org.onap.ccsdk.oran</groupId>
<artifactId>a1-adapter-api</artifactId>
- <version>1.7.0-SNAPSHOT</version>
+ <version>1.8.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>ccsdk-oran :: ${project.artifactId}</name>
diff --git a/a1-adapter/a1-adapter-api/provider/pom.xml b/a1-adapter/a1-adapter-api/provider/pom.xml
index 43077ca0..a8655cc2 100644
--- a/a1-adapter/a1-adapter-api/provider/pom.xml
+++ b/a1-adapter/a1-adapter-api/provider/pom.xml
@@ -3,7 +3,8 @@
~ ============LICENSE_START=======================================================
~ ONAP : ccsdk oran
~ ================================================================================
- ~ Copyright (C) 2020 Nordix Foundation. All rights reserved.
+ ~ Copyright (C) 2020-2023 Nordix Foundation. All rights reserved.
+ ~ Copyright (C) 2024 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.
@@ -31,7 +32,7 @@
<groupId>org.onap.ccsdk.oran</groupId>
<artifactId>a1-adapter-provider</artifactId>
- <version>1.7.0-SNAPSHOT</version>
+ <version>1.8.0-SNAPSHOT</version>
<packaging>bundle</packaging>
<name>ccsdk-oran :: ${project.artifactId}</name>
diff --git a/a1-adapter/features/a1-adapter-northbound/pom.xml b/a1-adapter/features/a1-adapter-northbound/pom.xml
index 2c02f05b..8f735551 100644
--- a/a1-adapter/features/a1-adapter-northbound/pom.xml
+++ b/a1-adapter/features/a1-adapter-northbound/pom.xml
@@ -3,7 +3,8 @@
~ ============LICENSE_START=======================================================
~ ONAP : ccsdk oran
~ ================================================================================
- ~ Copyright (C) 2020 Nordix Foundation. All rights reserved.
+ ~ Copyright (C) 2020-2023 Nordix Foundation. All rights reserved.
+ ~ Copyright (C) 2024 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.
@@ -30,7 +31,7 @@
<groupId>org.onap.ccsdk.oran</groupId>
<artifactId>a1-adapter-northbound</artifactId>
- <version>1.7.0-SNAPSHOT</version>
+ <version>1.8.0-SNAPSHOT</version>
<packaging>feature</packaging>
<name>ccsdk-oran :: ${project.artifactId}</name>
diff --git a/a1-adapter/features/installer/pom.xml b/a1-adapter/features/installer/pom.xml
index e1370372..a123a6c1 100644
--- a/a1-adapter/features/installer/pom.xml
+++ b/a1-adapter/features/installer/pom.xml
@@ -3,7 +3,8 @@
~ ============LICENSE_START=======================================================
~ ONAP : ccsdk oran
~ ================================================================================
- ~ Copyright (C) 2020 Nordix Foundation. All rights reserved.
+ ~ Copyright (C) 2020-2023 Nordix Foundation. All rights reserved.
+ ~ Copyright (C) 2024 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.
@@ -31,7 +32,7 @@
<groupId>org.onap.ccsdk.oran</groupId>
<artifactId>a1-adapter-northbound-installer</artifactId>
- <version>1.7.0-SNAPSHOT</version>
+ <version>1.8.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>ccsdk-oran :: ${project.artifactId}</name>
diff --git a/a1-adapter/features/pom.xml b/a1-adapter/features/pom.xml
index 7b8fb31d..554275ba 100644
--- a/a1-adapter/features/pom.xml
+++ b/a1-adapter/features/pom.xml
@@ -3,7 +3,8 @@
~ ============LICENSE_START=======================================================
~ ONAP : ccsdk oran
~ ================================================================================
- ~ Copyright (C) 2020 Nordix Foundation. All rights reserved.
+ ~ Copyright (C) 2020-2023 Nordix Foundation. All rights reserved.
+ ~ Copyright (C) 2024 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.
@@ -31,7 +32,7 @@
<groupId>org.onap.ccsdk.oran</groupId>
<artifactId>ccsdk-a1-adapter-feature-aggregator</artifactId>
- <version>1.7.0-SNAPSHOT</version>
+ <version>1.8.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>ccsdk-oran :: ${project.artifactId}</name>
diff --git a/a1-adapter/pom.xml b/a1-adapter/pom.xml
index 9b4168fb..b69e1da9 100644
--- a/a1-adapter/pom.xml
+++ b/a1-adapter/pom.xml
@@ -3,7 +3,8 @@
~ ============LICENSE_START=======================================================
~ ONAP : ccsdk oran
~ ================================================================================
- ~ Copyright (C) 2020 Nordix Foundation. All rights reserved.
+ ~ Copyright (C) 2020-2023 Nordix Foundation. All rights reserved.
+ ~ Copyright (C) 2024 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.
@@ -31,7 +32,7 @@
<groupId>org.onap.ccsdk.oran</groupId>
<artifactId>ccsdk-a1-adapter</artifactId>
- <version>1.7.0-SNAPSHOT</version>
+ <version>1.8.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>ccsdk-oran :: ${project.artifactId}</name>
diff --git a/a1-policy-management/api/pms-api-v3.yaml b/a1-policy-management/api/pms-api-v3.yaml
index 3d390569..44038e73 100644
--- a/a1-policy-management/api/pms-api-v3.yaml
+++ b/a1-policy-management/api/pms-api-v3.yaml
@@ -53,7 +53,7 @@ info:
url: https://www.onap.org/
email: discuss-list@onap.com
servers:
- - url: '{apiRoot}/a1policymanagement/v1'
+ - url: '{apiRoot}/a1-policy-management/v1'
variables:
apiRoot:
description: 'apiRoot is the Host:port/Domain name of the service where the A1Pms running'
@@ -168,7 +168,7 @@ paths:
summary: Query Near-RT RIC information
tags:
- NearRT-RIC Repository
- /policytypes:
+ /policy-types:
get:
operationId: getPolicyTypes
parameters:
@@ -238,7 +238,7 @@ paths:
description: Query policy type identities
tags:
- A1 Policy Management
- /policytypes/{policyTypeId}:
+ /policy-types/{policyTypeId}:
get:
operationId: getPolicyTypeDefinition
parameters:
@@ -436,7 +436,7 @@ paths:
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: getPolicyIds
+ operationId: getAllPolicies
parameters:
- description: Select policies of a given policy type identity.
explode: true
diff --git a/a1-policy-management/api/pms-api.json b/a1-policy-management/api/pms-api.json
index 33fa5e18..5dd8b493 100644
--- a/a1-policy-management/api/pms-api.json
+++ b/a1-policy-management/api/pms-api.json
@@ -1,1020 +1,1866 @@
-{
- "components": {"schemas": {
- "error_information": {
- "description": "Problem as defined in https://tools.ietf.org/html/rfc7807",
- "type": "object",
- "properties": {
- "detail": {
- "description": " A human-readable explanation specific to this occurrence of the problem.",
- "type": "string",
- "example": "Policy type not found"
- },
- "status": {
- "format": "int32",
- "description": "The HTTP status code generated by the origin server for this occurrence of the problem. ",
- "type": "integer",
- "example": 404
- }
- }
- },
- "void": {
- "description": "Void/empty",
- "type": "object"
- },
- "status_info_v2": {
- "type": "object",
- "properties": {"status": {
- "description": "status text",
- "type": "string"
- }}
- },
- "authorization_result": {
- "description": "Result of authorization",
- "type": "object",
- "required": ["result"],
- "properties": {"result": {
- "description": "If true, the access is granted",
- "type": "boolean"
- }}
- },
- "ric_info_v2": {
- "description": "Information for a Near-RT RIC",
- "type": "object",
- "properties": {
- "ric_id": {
- "description": "identity of the Near-RT RIC",
- "type": "string"
- },
- "managed_element_ids": {
- "description": "O1 identities for managed entities",
- "type": "array",
- "items": {
- "description": "O1 identities for managed entities",
- "type": "string"
- }
- },
- "state": {
- "description": "Represents the states for a Near-RT RIC",
- "type": "string",
- "enum": [
- "UNAVAILABLE",
- "AVAILABLE",
- "SYNCHRONIZING",
- "CONSISTENCY_CHECK"
- ]
- },
- "policytype_ids": {
- "description": "supported policy types",
- "type": "array",
- "items": {
- "description": "supported policy types",
- "type": "string"
- }
- }
- }
- },
- "service_registration_info_v2": {
- "description": "Information for one service",
- "type": "object",
- "required": ["service_id"],
- "properties": {
- "callback_url": {
- "description": "callback for notifying of Near-RT RIC state changes",
- "type": "string"
- },
- "service_id": {
- "description": "identity of the service",
- "type": "string"
- },
- "keep_alive_interval_seconds": {
- "format": "int64",
- "description": "keep alive interval for the service. This is 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.",
- "type": "integer"
- }
- }
- },
- "policy_info_list_v2": {
- "description": "List of policy information",
- "type": "object",
- "properties": {"policies": {
- "description": "List of policy information",
- "type": "array",
- "items": {"$ref": "#/components/schemas/policy_info_v2"}
- }}
- },
- "policy_status_info_v2": {
- "description": "Status for one A1-P Policy",
- "type": "object",
- "properties": {
- "last_modified": {
- "description": "timestamp, last modification time",
- "type": "string"
- },
- "status": {
- "description": "the Policy status",
- "type": "object"
- }
- }
- },
- "service_status_v2": {
- "description": "List of service information",
- "type": "object",
- "properties": {
- "callback_url": {
- "description": "callback for notifying of RIC synchronization",
- "type": "string"
- },
- "service_id": {
- "description": "identity of the service",
- "type": "string"
- },
- "keep_alive_interval_seconds": {
- "format": "int64",
- "description": "policy keep alive timeout",
- "type": "integer"
- },
- "time_since_last_activity_seconds": {
- "format": "int64",
- "description": "time since last invocation by the service",
- "type": "integer"
- }
- }
- },
- "ric_info_list_v2": {
- "description": "List of Near-RT RIC information",
- "type": "object",
- "properties": {"rics": {
- "description": "List of Near-RT RIC information",
- "type": "array",
- "items": {"$ref": "#/components/schemas/ric_info_v2"}
- }}
- },
- "policytype_v2": {
- "description": "Policy type",
- "type": "object",
- "properties": {"policy_schema": {
- "description": "Policy type json schema. The schema is a json object following http://json-schema.org/draft-07/schema",
- "type": "object"
- }}
- },
- "input": {
- "description": "input",
- "type": "object",
- "required": [
- "access_type",
- "auth_token",
- "policy_type_id"
- ],
- "properties": {
- "access_type": {
- "description": "Access type",
- "type": "string",
- "enum": [
- "READ",
- "WRITE",
- "DELETE"
- ]
- },
- "auth_token": {
- "description": "Authorization token",
- "type": "string"
- },
- "policy_type_id": {
- "description": "Policy type identifier",
- "type": "string"
- }
- }
- },
- "policy_authorization": {
- "description": "Authorization request for A1 policy requests",
- "type": "object",
- "required": ["input"],
- "properties": {"input": {"$ref": "#/components/schemas/input"}}
- },
- "policytype_id_list_v2": {
- "description": "Information about policy types",
- "type": "object",
- "properties": {"policytype_ids": {
- "description": "Policy type identities",
- "type": "array",
- "items": {
- "description": "Policy type identities",
- "type": "string"
- }
- }}
- },
- "policy_info_v2": {
- "description": "Information for one A1-P Policy",
- "type": "object",
- "required": [
- "policy_data",
- "policy_id",
- "policytype_id",
- "ric_id"
- ],
- "properties": {
- "ric_id": {
- "description": "identity of the target Near-RT RIC",
- "type": "string"
- },
- "policy_id": {
- "description": "identity of the policy",
- "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.",
- "type": "boolean",
- "example": false
- },
- "service_id": {
- "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.",
- "type": "string"
- },
- "policy_data": {
- "description": "the configuration of the policy",
- "type": "object"
- },
- "status_notification_uri": {
- "description": "Callback URI for policy status updates",
- "type": "string"
- },
- "policytype_id": {
- "description": "identity of the policy type",
- "type": "string"
- }
- }
- },
- "policy_id_list_v2": {
- "description": "A list of policy identities",
- "type": "object",
- "properties": {"policy_ids": {
- "description": "Policy identities",
- "type": "array",
- "items": {
- "description": "Policy identities",
- "type": "string"
- }
- }}
- },
- "service_list_v2": {
- "description": "List of service information",
- "type": "object",
- "properties": {"service_list": {
- "description": "List of service information",
- "type": "array",
- "items": {"$ref": "#/components/schemas/service_status_v2"}
- }}
- },
- "service_callback_info_v2": {
- "description": "Information transferred as in Service callbacks (callback_url)",
- "type": "object",
- "required": [
- "event_type",
- "ric_id"
- ],
- "properties": {
- "ric_id": {
- "description": "identity of a Near-RT RIC",
- "type": "string"
- },
- "event_type": {
- "description": "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management",
- "type": "string",
- "enum": ["AVAILABLE"]
- }
- }
- },
- "Link": {
- "type": "object",
- "properties": {
- "templated": {"type": "boolean"},
- "href": {"type": "string"}
- }
- }
- }},
- "openapi": "3.0.1",
- "paths": {
- "/a1-policy/v2/policy-instances": {"get": {
- "summary": "Query for A1 policy instances",
- "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": "getPolicyInstances",
- "responses": {
- "200": {
- "description": "Policies",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/policy_info_list_v2"}}}
- },
- "404": {
- "description": "Near-RT RIC, policy type or service not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- }
- },
- "parameters": [
- {
- "schema": {"type": "string"},
- "in": "query",
- "name": "policytype_id",
- "description": "Select policies with a given type identity.",
- "required": false
- },
- {
- "schema": {"type": "string"},
- "in": "query",
- "name": "ric_id",
- "description": "Select policies for a given Near-RT RIC identity.",
- "required": false
- },
- {
- "schema": {"type": "string"},
- "in": "query",
- "name": "service_id",
- "description": "Select policies owned by a given service.",
- "required": false
- },
- {
- "schema": {"type": "string"},
- "in": "query",
- "name": "type_name",
- "description": "Select policies of a given type name (type identity has the format <typename_version>)",
- "required": false
- }
- ],
- "tags": ["A1 Policy Management"]
- }},
- "/example-authz-check": {"post": {
- "summary": "Request for access authorization.",
- "requestBody": {
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/policy_authorization"}}},
- "required": true
- },
- "description": "The authorization function decides if access is granted.",
- "operationId": "performAccessControl",
- "responses": {"200": {
- "description": "OK",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/authorization_result"}}}
- }},
- "tags": ["Authorization API"]
- }},
- "/actuator/threaddump": {"get": {
- "summary": "Actuator web endpoint 'threaddump'",
- "operationId": "threaddump",
- "responses": {"200": {
- "description": "OK",
- "content": {
- "text/plain;charset=UTF-8": {"schema": {"type": "object"}},
- "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
- "application/json": {"schema": {"type": "object"}},
- "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
- }
- }},
- "tags": ["Actuator"]
- }},
- "/a1-policy/v2/status": {"get": {
- "summary": "Returns status and statistics of this service",
- "operationId": "getStatus",
- "responses": {"200": {
- "description": "Service is living",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/status_info_v2"}}}
- }},
- "tags": ["Health Check"]
- }},
- "/actuator/loggers": {"get": {
- "summary": "Actuator web endpoint 'loggers'",
- "operationId": "loggers",
- "responses": {"200": {
- "description": "OK",
- "content": {
- "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
- "application/json": {"schema": {"type": "object"}},
- "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
- }
- }},
- "tags": ["Actuator"]
- }},
- "/actuator/health/**": {"get": {
- "summary": "Actuator web endpoint 'health-path'",
- "operationId": "health-path",
- "responses": {"200": {
- "description": "OK",
- "content": {
- "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
- "application/json": {"schema": {"type": "object"}},
- "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
- }
- }},
- "tags": ["Actuator"]
- }},
- "/a1-policy/v2/rics/ric": {"get": {
- "summary": "Returns info for one Near-RT RIC",
- "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",
- "responses": {
- "200": {
- "description": "Near-RT RIC is found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ric_info_v2"}}}
- },
- "404": {
- "description": "Near-RT RIC is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- }
- },
- "parameters": [
- {
- "schema": {"type": "string"},
- "in": "query",
- "name": "managed_element_id",
- "description": "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.",
- "required": false
- },
- {
- "schema": {"type": "string"},
- "in": "query",
- "name": "ric_id",
- "description": "The identity of a Near-RT RIC to get information for.",
- "required": false
- }
- ],
- "tags": ["NearRT-RIC Repository"]
- }},
- "/actuator/shutdown": {"post": {
- "summary": "Actuator web endpoint 'shutdown'",
- "operationId": "shutdown",
- "responses": {"200": {
- "description": "OK",
- "content": {
- "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
- "application/json": {"schema": {"type": "object"}},
- "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
- }
- }},
- "tags": ["Actuator"]
- }},
- "/a1-policy/v2/policy-types": {"get": {
- "summary": "Query policy type identities",
- "operationId": "getPolicyTypes",
- "responses": {
- "200": {
- "description": "Policy type IDs",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/policytype_id_list_v2"}}}
- },
- "404": {
- "description": "Near-RT RIC is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- }
- },
- "parameters": [
- {
- "schema": {"type": "string"},
- "in": "query",
- "name": "ric_id",
- "description": "Select types for the given Near-RT RIC identity.",
- "required": false
- },
- {
- "schema": {"type": "string"},
- "in": "query",
- "name": "type_name",
- "description": "Select types with the given type name (type identity has the format <typename_version>)",
- "required": false
- },
- {
- "schema": {"type": "string"},
- "in": "query",
- "name": "compatible_with_version",
- "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.",
- "required": false
- }
- ],
- "tags": ["A1 Policy Management"]
- }},
- "/a1-policy/v2/policies/{policy_id}": {
- "get": {
- "summary": "Returns a policy",
- "operationId": "getPolicy",
- "responses": {
- "200": {
- "description": "Policy found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/policy_info_v2"}}}
- },
- "404": {
- "description": "Policy is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "policy_id",
- "required": true
- }],
- "tags": ["A1 Policy Management"]
- },
- "delete": {
- "summary": "Delete a policy",
- "operationId": "deletePolicy",
- "responses": {
- "200": {
- "description": "Not used",
- "content": {"*/*": {"schema": {"$ref": "#/components/schemas/void"}}}
- },
- "423": {
- "description": "Near-RT RIC is not operational",
- "content": {"*/*": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- },
- "204": {
- "description": "Policy deleted",
- "content": {"*/*": {"schema": {"$ref": "#/components/schemas/void"}}}
- },
- "404": {
- "description": "Policy is not found",
- "content": {"*/*": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "policy_id",
- "required": true
- }],
- "tags": ["A1 Policy Management"]
- }
- },
- "/actuator/metrics/{requiredMetricName}": {"get": {
- "summary": "Actuator web endpoint 'metrics-requiredMetricName'",
- "operationId": "metrics-requiredMetricName",
- "responses": {"200": {
- "description": "OK",
- "content": {
- "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
- "application/json": {"schema": {"type": "object"}},
- "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
- }
- }},
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "requiredMetricName",
- "required": true
- }],
- "tags": ["Actuator"]
- }},
- "/a1-policy/v2/configuration": {
- "get": {
- "summary": "Returns the contents of the application configuration file",
- "operationId": "getConfiguration",
- "responses": {
- "200": {
- "description": "Configuration",
- "content": {"application/json": {"schema": {"type": "object"}}}
- },
- "404": {
- "description": "File is not found or readable",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- }
- },
- "tags": ["Management of configuration"]
- },
- "put": {
- "summary": "Replace the current configuration file with the given configuration",
- "requestBody": {
- "content": {"application/json": {"schema": {"type": "object"}}},
- "required": true
- },
- "operationId": "putConfiguration",
- "responses": {
- "200": {
- "description": "Configuration updated",
- "content": {"*/*": {"schema": {"$ref": "#/components/schemas/void"}}}
- },
- "400": {
- "description": "Invalid configuration provided",
- "content": {"*/*": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- },
- "500": {
- "description": "Something went wrong when replacing the configuration. Try again.",
- "content": {"*/*": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- }
- },
- "tags": ["Management of configuration"]
- }
- },
- "/actuator": {"get": {
- "summary": "Actuator root web endpoint",
- "operationId": "links",
- "responses": {"200": {
- "description": "OK",
- "content": {
- "application/vnd.spring-boot.actuator.v3+json": {"schema": {
- "additionalProperties": {
- "additionalProperties": {"$ref": "#/components/schemas/Link"},
- "type": "object"
- },
- "type": "object"
- }},
- "application/json": {"schema": {
- "additionalProperties": {
- "additionalProperties": {"$ref": "#/components/schemas/Link"},
- "type": "object"
- },
- "type": "object"
- }},
- "application/vnd.spring-boot.actuator.v2+json": {"schema": {
- "additionalProperties": {
- "additionalProperties": {"$ref": "#/components/schemas/Link"},
- "type": "object"
- },
- "type": "object"
- }}
- }
- }},
- "tags": ["Actuator"]
- }},
- "/actuator/loggers/{name}": {
- "post": {
- "summary": "Actuator web endpoint 'loggers-name'",
- "requestBody": {"content": {"application/json": {"schema": {
- "type": "string",
- "enum": [
- "TRACE",
- "DEBUG",
- "INFO",
- "WARN",
- "ERROR",
- "FATAL",
- "OFF"
- ]
- }}}},
- "operationId": "loggers-name_2",
- "responses": {"200": {
- "description": "OK",
- "content": {"*/*": {"schema": {"type": "object"}}}
- }},
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "name",
- "required": true
- }],
- "tags": ["Actuator"]
- },
- "get": {
- "summary": "Actuator web endpoint 'loggers-name'",
- "operationId": "loggers-name",
- "responses": {"200": {
- "description": "OK",
- "content": {
- "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
- "application/json": {"schema": {"type": "object"}},
- "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
- }
- }},
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "name",
- "required": true
- }],
- "tags": ["Actuator"]
- }
- },
- "/a1-policy/v2/services/{service_id}/keepalive": {"put": {
- "summary": "Heartbeat indicates that the service is running",
- "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",
- "responses": {
- "200": {
- "description": "Service supervision timer refreshed, OK",
- "content": {"*/*": {"schema": {"type": "object"}}}
- },
- "404": {
- "description": "The service is not found, needs re-registration",
- "content": {"*/*": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "service_id",
- "required": true
- }],
- "tags": ["Service Registry and Supervision"]
- }},
- "/actuator/metrics": {"get": {
- "summary": "Actuator web endpoint 'metrics'",
- "operationId": "metrics",
- "responses": {"200": {
- "description": "OK",
- "content": {
- "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
- "application/json": {"schema": {"type": "object"}},
- "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
- }
- }},
- "tags": ["Actuator"]
- }},
- "/a1-policy/v2/rics": {"get": {
- "summary": "Query Near-RT RIC information",
- "description": "The call returns all Near-RT RICs that supports a given policy type identity",
- "operationId": "getRics",
- "responses": {
- "200": {
- "description": "OK",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ric_info_list_v2"}}}
- },
- "404": {
- "description": "Policy type is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "query",
- "name": "policytype_id",
- "description": "The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned",
- "required": false
- }],
- "tags": ["NearRT-RIC Repository"]
- }},
- "/a1-policy/v2/services": {
- "get": {
- "summary": "Returns service information",
- "description": "Either information about a registered service with given identity or all registered services are returned.",
- "operationId": "getServices",
- "responses": {
- "200": {
- "description": "OK",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/service_list_v2"}}}
- },
- "404": {
- "description": "Service is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "query",
- "name": "service_id",
- "description": "The identity of the service",
- "required": false
- }],
- "tags": ["Service Registry and Supervision"]
- },
- "put": {
- "summary": "Register a service",
- "requestBody": {
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/service_registration_info_v2"}}},
- "required": true
- },
- "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",
- "responses": {
- "200": {
- "description": "Service updated",
- "content": {"*/*": {"schema": {"type": "object"}}}
- },
- "201": {
- "description": "Service created",
- "content": {"*/*": {"schema": {"type": "object"}}}
- },
- "400": {
- "description": "The ServiceRegistrationInfo is not accepted",
- "content": {"*/*": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- }
- },
- "tags": ["Service Registry and Supervision"]
- }
- },
- "/actuator/info": {"get": {
- "summary": "Actuator web endpoint 'info'",
- "operationId": "info",
- "responses": {"200": {
- "description": "OK",
- "content": {
- "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
- "application/json": {"schema": {"type": "object"}},
- "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
- }
- }},
- "tags": ["Actuator"]
- }},
- "/status": {"get": {
- "summary": "Returns status and statistics of this service",
- "operationId": "getStatusV1",
- "responses": {"200": {
- "description": "Service is living",
- "content": {"*/*": {"schema": {"type": "string"}}}
- }},
- "tags": ["Health Check"]
- }},
- "/a1-policy/v2/policy-types/{policytype_id}": {"get": {
- "summary": "Returns a policy type definition",
- "operationId": "getPolicyType",
- "responses": {
- "200": {
- "description": "Policy type",
- "content": {"*/*": {"schema": {"$ref": "#/components/schemas/policytype_v2"}}}
- },
- "404": {
- "description": "Policy type is not found",
- "content": {"*/*": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "policytype_id",
- "required": true
- }],
- "tags": ["A1 Policy Management"]
- }},
- "/actuator/logfile": {"get": {
- "summary": "Actuator web endpoint 'logfile'",
- "operationId": "logfile",
- "responses": {"200": {
- "description": "OK",
- "content": {"text/plain;charset=UTF-8": {"schema": {"type": "object"}}}
- }},
- "tags": ["Actuator"]
- }},
- "/actuator/health": {"get": {
- "summary": "Actuator web endpoint 'health'",
- "operationId": "health",
- "responses": {"200": {
- "description": "OK",
- "content": {
- "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
- "application/json": {"schema": {"type": "object"}},
- "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
- }
- }},
- "tags": ["Actuator"]
- }},
- "/a1-policy/v2/policies": {
- "get": {
- "summary": "Query policy identities",
- "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": "getPolicyIds",
- "responses": {
- "200": {
- "description": "Policy identities",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/policy_id_list_v2"}}}
- },
- "404": {
- "description": "Near-RT RIC or type not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- }
- },
- "parameters": [
- {
- "schema": {"type": "string"},
- "in": "query",
- "name": "policytype_id",
- "description": "Select policies of a given policy type identity.",
- "required": false
- },
- {
- "schema": {"type": "string"},
- "in": "query",
- "name": "ric_id",
- "description": "Select policies of a given Near-RT RIC identity.",
- "required": false
- },
- {
- "schema": {"type": "string"},
- "in": "query",
- "name": "service_id",
- "description": "Select policies owned by a given service.",
- "required": false
- },
- {
- "schema": {"type": "string"},
- "in": "query",
- "name": "type_name",
- "description": "Select policies of types with the given type name (type identity has the format <typename_version>)",
- "required": false
- }
- ],
- "tags": ["A1 Policy Management"]
- },
- "put": {
- "summary": "Create or update a policy",
- "requestBody": {
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/policy_info_v2"}}},
- "required": true
- },
- "operationId": "putPolicy",
- "responses": {
- "200": {
- "description": "Policy updated",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/void"}}}
- },
- "201": {
- "description": "Policy created",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/void"}}}
- },
- "423": {
- "description": "Near-RT RIC is not operational",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- },
- "404": {
- "description": "Near-RT RIC or policy type is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- }
- },
- "tags": ["A1 Policy Management"]
- }
- },
- "/r-app/near-rt-ric-status": {"post": {
- "summary": "Callback for Near-RT RIC status",
- "requestBody": {
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/service_callback_info_v2"}}},
- "required": true
- },
- "description": "The URL to this call is registered at Service registration.",
- "operationId": "serviceCallback",
- "responses": {"200": {
- "description": "OK",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/void"}}}
- }},
- "tags": ["Service callbacks"]
- }},
- "/a1-policy/v2/services/{service_id}": {"delete": {
- "summary": "Unregister a service",
- "operationId": "deleteService",
- "responses": {
- "200": {
- "description": "Not used",
- "content": {"*/*": {"schema": {"$ref": "#/components/schemas/void"}}}
- },
- "204": {
- "description": "Service unregistered",
- "content": {"*/*": {"schema": {"type": "object"}}}
- },
- "404": {
- "description": "Service not found",
- "content": {"*/*": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "service_id",
- "required": true
- }],
- "tags": ["Service Registry and Supervision"]
- }},
- "/actuator/heapdump": {"get": {
- "summary": "Actuator web endpoint 'heapdump'",
- "operationId": "heapdump",
- "responses": {"200": {
- "description": "OK",
- "content": {"application/octet-stream": {"schema": {"type": "object"}}}
- }},
- "tags": ["Actuator"]
- }},
- "/a1-policy/v2/policies/{policy_id}/status": {"get": {
- "summary": "Returns a policy status",
- "operationId": "getPolicyStatus",
- "responses": {
- "200": {
- "description": "Policy status",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/policy_status_info_v2"}}}
- },
- "404": {
- "description": "Policy is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "policy_id",
- "required": true
- }],
- "tags": ["A1 Policy Management"]
- }}
- },
- "info": {
- "license": {
- "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 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.2.0"
- },
- "tags": [
- {
- "name": "Authorization API",
- "description": "API used for authorization of information A1 policy access (this is provided by an authorization producer such as OPA).\nNote that this API is called by PMS, it is not provided.\n"
- },
- {
- "name": "Actuator",
- "description": "Monitor and interact",
- "externalDocs": {
- "description": "Spring Boot Actuator Web API Documentation",
- "url": "https://docs.spring.io/spring-boot/docs/current/actuator-api/html/"
- }
- }
- ]
+{
+ "openapi" : "3.0.3",
+ "info" : {
+ "title" : "A1 Policy Management Service",
+ "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>",
+ "contact" : {
+ "url" : "https://www.onap.org/",
+ "email" : "discuss-list@onap.com"
+ },
+ "license" : {
+ "name" : "Copyright (C) 2020-2023 Nordix Foundation. Licensed under the Apache License.",
+ "url" : "http://www.apache.org/licenses/LICENSE-2.0"
+ },
+ "version" : "1.3.0",
+ "x-api-id" : "a31c510b-20e6-4a08-af16-368c44d7fba8",
+ "x-audience" : "external-public"
+ },
+ "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" : "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" : "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."
+ }, {
+ "name" : "Configuration",
+ "description" : "API used to create or fetch the application configuration."
+ }, {
+ "name" : "Actuator",
+ "description" : "Monitor and interact",
+ "externalDocs" : {
+ "description" : "Spring Boot Actuator Web API Documentation",
+ "url" : "https://docs.spring.io/spring-boot/docs/current/actuator-api/html/"
+ }
+ } ],
+ "paths" : {
+ "/a1-policy/v2/policy-instances" : {
+ "get" : {
+ "tags" : [ "A1 Policy Management" ],
+ "summary" : "Query for A1 policy instances",
+ "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" : "getPolicyInstances",
+ "parameters" : [ {
+ "name" : "policytype_id",
+ "in" : "query",
+ "description" : "Select policies with a given type identity.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "ric_id",
+ "in" : "query",
+ "description" : "Select policies for a given Near-RT RIC identity.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "service_id",
+ "in" : "query",
+ "description" : "Select policies owned by a given service.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "type_name",
+ "in" : "query",
+ "description" : "Select policies of a given type name (type identity has the format <typename_version>)",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK - Returns A1 Policies which matches the criteria",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_info_list"
+ },
+ "examples" : {
+ "policy_info_list" : {
+ "$ref" : "#/components/examples/policy_info_list"
+ }
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found - Near-RT RIC, policy type or service not found",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/example-authz-check" : {
+ "post" : {
+ "tags" : [ "Authorization API" ],
+ "summary" : "Request for access authorization.",
+ "description" : "The authorization function decides if access is granted.",
+ "operationId" : "performAccessControl",
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_authorization"
+ }
+ }
+ },
+ "required" : true
+ },
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/authorization_result"
+ }
+ }
+ }
+ },
+ "403" : {
+ "description" : "Forbidden",
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ },
+ "example" : {
+ "status" : 403,
+ "title" : "Forbidden",
+ "detail" : "Your role does not allow to perform this action. Contact System Administrator to change your access rights."
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/threaddump" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'threaddump'",
+ "operationId" : "threaddump",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "text/plain;charset=UTF-8" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/a1-policy/v2/status" : {
+ "get" : {
+ "tags" : [ "Health Check" ],
+ "description" : "Returns status and statistics of this service",
+ "operationId" : "getStatus",
+ "responses" : {
+ "200" : {
+ "description" : "OK- Service is living Ok",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/status_info"
+ },
+ "examples" : {
+ "status_info" : {
+ "$ref" : "#/components/examples/status_info"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/loggers" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'loggers'",
+ "operationId" : "loggers",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/actuator/health/**" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'health-path'",
+ "operationId" : "health-path",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/a1-policy/v2/rics/ric" : {
+ "get" : {
+ "tags" : [ "NearRT-RIC Repository" ],
+ "summary" : "Returns info of Near-RT RIC queried by the ric-id and managed-element-id",
+ "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" : [ {
+ "name" : "managed_element_id",
+ "in" : "query",
+ "description" : "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "ric_id",
+ "in" : "query",
+ "description" : "The identity of a Near-RT RIC to get information for.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK - Near-RT RIC is found",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ric_info"
+ },
+ "examples" : {
+ "ric_info" : {
+ "$ref" : "#/components/examples/ric_info"
+ }
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/shutdown" : {
+ "post" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'shutdown'",
+ "operationId" : "shutdown",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/a1-policy/v2/policy-types" : {
+ "get" : {
+ "tags" : [ "A1 Policy Management" ],
+ "description" : "Query policy type identities",
+ "operationId" : "getPolicyTypes",
+ "parameters" : [ {
+ "name" : "ric_id",
+ "in" : "query",
+ "description" : "Select types for the given Near-RT RIC identity.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "type_name",
+ "in" : "query",
+ "description" : "Select types with the given type name (type identity has the format <typename_version>)",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "compatible_with_version",
+ "in" : "query",
+ "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.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK - Policy Type IDs Found",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_type_id_list"
+ },
+ "examples" : {
+ "policy_type_id_list" : {
+ "$ref" : "#/components/examples/policy_type_id_list"
+ }
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "/a1-policy/v2/policies/{policy_id}" : {
+ "get" : {
+ "tags" : [ "A1 Policy Management" ],
+ "description" : "Returns a policy",
+ "operationId" : "getPolicy",
+ "parameters" : [ {
+ "name" : "policy_id",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK - Policy found",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_info"
+ },
+ "examples" : {
+ "policy_info" : {
+ "$ref" : "#/components/examples/policy_info"
+ }
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ },
+ "delete" : {
+ "tags" : [ "A1 Policy Management" ],
+ "summary" : "Delete a policy",
+ "description" : "Deleting the policy using the Policy's Policy ID.",
+ "operationId" : "deletePolicy",
+ "parameters" : [ {
+ "name" : "policy_id",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK - Policy deleted",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/void"
+ }
+ }
+ }
+ },
+ "423" : {
+ "description" : "Locked - HTTP Status code which can be used when the state is Locked",
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ },
+ "example" : {
+ "status" : 423,
+ "title" : "Locked",
+ "detail" : "Requested resource is in a locked state."
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/metrics/{requiredMetricName}" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'metrics-requiredMetricName'",
+ "operationId" : "metrics-requiredMetricName",
+ "parameters" : [ {
+ "name" : "requiredMetricName",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/a1-policy/v2/configuration" : {
+ "get" : {
+ "tags" : [ "Configuration" ],
+ "description" : "Returns the contents of the application configuration file",
+ "operationId" : "getConfiguration",
+ "responses" : {
+ "200" : {
+ "description" : "OK - Configuration",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "type" : "string"
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ },
+ "put" : {
+ "tags" : [ "Configuration" ],
+ "description" : "Replace the current configuration with the given configuration",
+ "operationId" : "putConfiguration",
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ },
+ "required" : true
+ },
+ "responses" : {
+ "200" : {
+ "description" : "OK - Configuration updated",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/void"
+ }
+ }
+ }
+ },
+ "400" : {
+ "description" : "Bad Request",
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ },
+ "example" : {
+ "status" : 400,
+ "title" : "Bad Request",
+ "detail" : "The provided request is not valid."
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/actuator" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator root web endpoint",
+ "operationId" : "links",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "$ref" : "#/components/schemas/Link"
+ }
+ }
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "$ref" : "#/components/schemas/Link"
+ }
+ }
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "$ref" : "#/components/schemas/Link"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/actuator/loggers/{name}" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'loggers-name'",
+ "operationId" : "loggers-name",
+ "parameters" : [ {
+ "name" : "name",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ },
+ "post" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'loggers-name'",
+ "operationId" : "loggers-name_2",
+ "parameters" : [ {
+ "name" : "name",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "type" : "string",
+ "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", "OFF" ]
+ }
+ }
+ }
+ },
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/a1-policy/v2/services/{service_id}/keepalive" : {
+ "put" : {
+ "tags" : [ "Service Registry and Supervision" ],
+ "summary" : "Heartbeat indicates that the service is running",
+ "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" : [ {
+ "name" : "service_id",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK - Service supervision timer refreshed, OK",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/metrics" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'metrics'",
+ "operationId" : "metrics",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/a1-policy/v2/rics" : {
+ "get" : {
+ "tags" : [ "NearRT-RIC Repository" ],
+ "summary" : "Query Near-RT RIC information",
+ "description" : "The call returns all Near-RT RICs that supports a given policy type identity",
+ "operationId" : "getRics",
+ "parameters" : [ {
+ "name" : "policytype_id",
+ "in" : "query",
+ "description" : "The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ric_info_list"
+ },
+ "examples" : {
+ "ric_info_list" : {
+ "$ref" : "#/components/examples/ric_info_list"
+ }
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "/a1-policy/v2/services" : {
+ "get" : {
+ "tags" : [ "Service Registry and Supervision" ],
+ "summary" : "Returns service information",
+ "description" : "Either information about a registered service with given identity or all registered services are returned.",
+ "operationId" : "getServices",
+ "parameters" : [ {
+ "name" : "service_id",
+ "in" : "query",
+ "description" : "The identity of the service",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/service_status_list"
+ },
+ "examples" : {
+ "service_status_list" : {
+ "$ref" : "#/components/examples/service_status_list"
+ }
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ },
+ "put" : {
+ "tags" : [ "Service Registry and Supervision" ],
+ "summary" : "Register a service",
+ "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/service_registration_info"
+ }
+ }
+ },
+ "required" : true
+ },
+ "responses" : {
+ "200" : {
+ "description" : "OK - Service updated",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ },
+ "201" : {
+ "description" : "Created - Service created",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ },
+ "400" : {
+ "description" : "Bad Request",
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ },
+ "example" : {
+ "status" : 400,
+ "title" : "Bad Request",
+ "detail" : "The provided request is not valid."
+ }
+ }
+ }
+ }
+ },
+ "callbacks" : {
+ "RICStatus" : {
+ "{$request.body#/callback_url}" : {
+ "post" : {
+ "tags" : [ "Service callbacks" ],
+ "summary" : "Callback for Near-RT RIC status",
+ "description" : "The URL to this call is registered at Service registration.",
+ "operationId" : "serviceCallback",
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/service_callback_info_v2"
+ }
+ }
+ },
+ "required" : true
+ },
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/void"
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/info" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'info'",
+ "operationId" : "info",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/status" : {
+ "get" : {
+ "tags" : [ "Health Check" ],
+ "description" : "Returns status and statistics of this service",
+ "operationId" : "getStatusV1",
+ "responses" : {
+ "200" : {
+ "description" : "OK - Service is living",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/a1-policy/v2/policy-types/{policytype_id}" : {
+ "get" : {
+ "tags" : [ "A1 Policy Management" ],
+ "description" : "Returns a policy type definition",
+ "operationId" : "getPolicyTypeDefinition",
+ "parameters" : [ {
+ "name" : "policytype_id",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK - schema of the given policy type",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_type_definition"
+ },
+ "examples" : {
+ "policy_type_definition" : {
+ "$ref" : "#/components/examples/policy_type_definition"
+ }
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/logfile" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'logfile'",
+ "operationId" : "logfile",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "text/plain;charset=UTF-8" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/actuator/health" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'health'",
+ "operationId" : "health",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/a1-policy/v2/policies" : {
+ "get" : {
+ "tags" : [ "A1 Policy Management" ],
+ "summary" : "Query policy identities",
+ "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" : "getPolicyIds",
+ "parameters" : [ {
+ "name" : "policytype_id",
+ "in" : "query",
+ "description" : "Select policies of a given policy type identity.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "ric_id",
+ "in" : "query",
+ "description" : "Select policies of a given Near-RT RIC identity.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "service_id",
+ "in" : "query",
+ "description" : "Select policies owned by a given service.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "type_name",
+ "in" : "query",
+ "description" : "Select policies of types with the given type name (type identity has the format <typename_version>)",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK - Policy identities",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_id_list"
+ },
+ "examples" : {
+ "policy_id_list" : {
+ "$ref" : "#/components/examples/policy_id_list"
+ }
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ },
+ "put" : {
+ "tags" : [ "A1 Policy Management" ],
+ "description" : "Create or update a policy",
+ "operationId" : "putPolicy",
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_info"
+ }
+ }
+ },
+ "required" : true
+ },
+ "responses" : {
+ "200" : {
+ "description" : "OK - Policy updated",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/void"
+ }
+ }
+ }
+ },
+ "201" : {
+ "description" : "Created - Policy created",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/void"
+ }
+ }
+ }
+ },
+ "423" : {
+ "description" : "Locked - HTTP Status code which can be used when the state is Locked",
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ },
+ "example" : {
+ "status" : 423,
+ "title" : "Locked",
+ "detail" : "Requested resource is in a locked state."
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/a1-policy/v2/services/{service_id}" : {
+ "delete" : {
+ "tags" : [ "Service Registry and Supervision" ],
+ "description" : "Unregister a service",
+ "operationId" : "deleteService",
+ "parameters" : [ {
+ "name" : "service_id",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "204" : {
+ "description" : "No Content - Service unregistered",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/heapdump" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'heapdump'",
+ "operationId" : "heapdump",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/octet-stream" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/a1-policy/v2/policies/{policy_id}/status" : {
+ "get" : {
+ "tags" : [ "A1 Policy Management" ],
+ "description" : "Returns a policy status",
+ "operationId" : "getPolicyStatus",
+ "parameters" : [ {
+ "name" : "policy_id",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK - Policy status",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_status_info"
+ },
+ "examples" : {
+ "policy_status_info" : {
+ "$ref" : "#/components/examples/policy_status_info"
+ }
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "components" : {
+ "schemas" : {
+ "policy_type_definition" : {
+ "type" : "object",
+ "properties" : {
+ "policy_schema" : {
+ "type" : "object",
+ "description" : "Policy type json schema. The schema is a json object following http://json-schema.org/draft-07/schema"
+ }
+ },
+ "description" : "Contains policy type schema definition"
+ },
+ "error_information" : {
+ "type" : "object",
+ "properties" : {
+ "detail" : {
+ "type" : "string",
+ "description" : " A human-readable explanation specific to this occurrence of the problem.",
+ "example" : "Policy type not found"
+ },
+ "title" : {
+ "type" : "string",
+ "description" : "A specific error name",
+ "example" : "Not Found"
+ },
+ "status" : {
+ "type" : "integer",
+ "description" : "The HTTP status code generated by the origin server for this occurrence of the problem. ",
+ "format" : "int32",
+ "example" : 404
+ }
+ },
+ "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807"
+ },
+ "void" : {
+ "type" : "object",
+ "description" : "Void/empty"
+ },
+ "status_info" : {
+ "type" : "object",
+ "properties" : {
+ "status" : {
+ "type" : "string",
+ "description" : "status text"
+ }
+ }
+ },
+ "authorization_result" : {
+ "required" : [ "result" ],
+ "type" : "object",
+ "properties" : {
+ "result" : {
+ "type" : "boolean",
+ "description" : "If true, the access is granted"
+ }
+ },
+ "description" : "Result of authorization",
+ "example" : {
+ "result" : true
+ }
+ },
+ "ric_info" : {
+ "type" : "object",
+ "properties" : {
+ "ric_id" : {
+ "type" : "string",
+ "description" : "identity of the Near-RT RIC"
+ },
+ "managed_element_ids" : {
+ "type" : "array",
+ "description" : "O1 identities for managed entities",
+ "items" : {
+ "type" : "string",
+ "description" : "O1 identities for managed entities"
+ }
+ },
+ "state" : {
+ "type" : "string",
+ "description" : "Represents the states for a Near-RT RIC",
+ "enum" : [ "UNAVAILABLE", "AVAILABLE", "SYNCHRONIZING", "CONSISTENCY_CHECK" ]
+ },
+ "policytype_ids" : {
+ "type" : "array",
+ "description" : "supported policy types",
+ "items" : {
+ "type" : "string",
+ "description" : "supported policy types"
+ }
+ }
+ },
+ "description" : "Information for a Near-RT RIC"
+ },
+ "service_registration_info" : {
+ "required" : [ "service_id" ],
+ "type" : "object",
+ "properties" : {
+ "callback_url" : {
+ "type" : "string",
+ "description" : "callback for notifying of Near-RT RIC state changes"
+ },
+ "service_id" : {
+ "type" : "string",
+ "description" : "identity of the service"
+ },
+ "keep_alive_interval_seconds" : {
+ "type" : "integer",
+ "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"
+ }
+ },
+ "description" : "Information for one service"
+ },
+ "policy_info_list" : {
+ "type" : "object",
+ "properties" : {
+ "policies" : {
+ "type" : "array",
+ "description" : "List of policy information",
+ "items" : {
+ "$ref" : "#/components/schemas/policy_info"
+ }
+ }
+ },
+ "description" : "List of policy information"
+ },
+ "policy_status_info" : {
+ "type" : "object",
+ "properties" : {
+ "last_modified" : {
+ "type" : "string",
+ "description" : "timestamp, last modification time"
+ },
+ "status" : {
+ "type" : "object",
+ "description" : "the Policy status"
+ }
+ },
+ "description" : "Status for one A1-P Policy"
+ },
+ "service_status" : {
+ "type" : "object",
+ "properties" : {
+ "callback_url" : {
+ "type" : "string",
+ "description" : "callback for notifying of RIC synchronization"
+ },
+ "service_id" : {
+ "type" : "string",
+ "description" : "identity of the service"
+ },
+ "keep_alive_interval_seconds" : {
+ "type" : "integer",
+ "description" : "policy keep alive timeout",
+ "format" : "int64"
+ },
+ "time_since_last_activity_seconds" : {
+ "type" : "integer",
+ "description" : "time since last invocation by the service",
+ "format" : "int64"
+ }
+ }
+ },
+ "ric_info_list" : {
+ "type" : "object",
+ "properties" : {
+ "rics" : {
+ "type" : "array",
+ "description" : "List of Near-RT RIC information",
+ "items" : {
+ "$ref" : "#/components/schemas/ric_info"
+ }
+ }
+ },
+ "description" : "List of Near-RT RIC information"
+ },
+ "input" : {
+ "required" : [ "access_type", "auth_token", "policy_type_id" ],
+ "type" : "object",
+ "properties" : {
+ "access_type" : {
+ "type" : "string",
+ "description" : "Access type",
+ "enum" : [ "READ", "WRITE", "DELETE" ]
+ },
+ "auth_token" : {
+ "type" : "string",
+ "description" : "Authorization token"
+ },
+ "policy_type_id" : {
+ "type" : "string",
+ "description" : "Policy type identifier"
+ }
+ },
+ "description" : "input"
+ },
+ "policy_authorization" : {
+ "required" : [ "input" ],
+ "type" : "object",
+ "properties" : {
+ "input" : {
+ "$ref" : "#/components/schemas/input"
+ }
+ },
+ "description" : "Authorization request for A1 policy requests"
+ },
+ "policy_type_id_list" : {
+ "type" : "object",
+ "properties" : {
+ "policytype_ids" : {
+ "type" : "array",
+ "description" : "Policy type identities",
+ "items" : {
+ "type" : "string",
+ "description" : "Policy type identities"
+ }
+ }
+ },
+ "description" : "Information about policy types"
+ },
+ "policy_info" : {
+ "required" : [ "policy_data", "policy_id", "policytype_id", "ric_id" ],
+ "type" : "object",
+ "properties" : {
+ "ric_id" : {
+ "type" : "string",
+ "description" : "identity of the target Near-RT RIC"
+ },
+ "policy_id" : {
+ "type" : "string",
+ "description" : "identity of the policy"
+ },
+ "transient" : {
+ "type" : "boolean",
+ "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,
+ "example" : false,
+ "default" : false
+ },
+ "service_id" : {
+ "type" : "string",
+ "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.",
+ "default" : ""
+ },
+ "policy_data" : {
+ "type" : "object",
+ "description" : "the configuration of the policy"
+ },
+ "status_notification_uri" : {
+ "type" : "string",
+ "description" : "Callback URI for policy status updates"
+ },
+ "policytype_id" : {
+ "type" : "string",
+ "description" : "identity of the policy type"
+ }
+ },
+ "description" : "Information for one A1-P Policy"
+ },
+ "policy_id_list" : {
+ "type" : "object",
+ "properties" : {
+ "policy_ids" : {
+ "type" : "array",
+ "description" : "Policy identities",
+ "items" : {
+ "type" : "string",
+ "description" : "Policy identities"
+ }
+ }
+ },
+ "description" : "A list of policy identities",
+ "example" : {
+ "policy_ids" : [ "policy_ids", "policy_ids" ]
+ }
+ },
+ "service_status_list" : {
+ "type" : "object",
+ "properties" : {
+ "service_list" : {
+ "type" : "array",
+ "description" : "List of service information",
+ "items" : {
+ "$ref" : "#/components/schemas/service_status"
+ }
+ }
+ }
+ },
+ "service_callback_info_v2" : {
+ "required" : [ "event_type", "ric_id" ],
+ "type" : "object",
+ "properties" : {
+ "ric_id" : {
+ "type" : "string",
+ "description" : "identity of a Near-RT RIC"
+ },
+ "event_type" : {
+ "type" : "string",
+ "description" : "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management",
+ "enum" : [ "AVAILABLE" ]
+ }
+ },
+ "description" : "Information transferred as in Service callbacks (callback_url)"
+ },
+ "Link" : {
+ "type" : "object",
+ "properties" : {
+ "templated" : {
+ "type" : "boolean"
+ },
+ "href" : {
+ "type" : "string"
+ }
+ }
+ }
+ },
+ "responses" : {
+ "Locked" : {
+ "description" : "Locked - HTTP Status code which can be used when the state is Locked",
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ },
+ "example" : {
+ "status" : 423,
+ "title" : "Locked",
+ "detail" : "Requested resource is in a locked state."
+ }
+ }
+ }
+ },
+ "BadRequest" : {
+ "description" : "Bad Request",
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ },
+ "example" : {
+ "status" : 400,
+ "title" : "Bad Request",
+ "detail" : "The provided request is not valid."
+ }
+ }
+ }
+ },
+ "Forbidden" : {
+ "description" : "Forbidden",
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ },
+ "example" : {
+ "status" : 403,
+ "title" : "Forbidden",
+ "detail" : "Your role does not allow to perform this action. Contact System Administrator to change your access rights."
+ }
+ }
+ }
+ },
+ "NotFound" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ },
+ "examples" : {
+ "service_status" : {
+ "description" : "List of service information",
+ "value" : {
+ "callback_url" : "callback_url",
+ "service_id" : "service_id",
+ "keep_alive_interval_seconds" : 0,
+ "time_since_last_activity_seconds" : 6
+ }
+ },
+ "service_status_list" : {
+ "description" : "List of service information",
+ "value" : {
+ "service_list" : [ {
+ "callback_url" : "callback_url",
+ "service_id" : "service_id",
+ "keep_alive_interval_seconds" : 0,
+ "time_since_last_activity_seconds" : 6
+ }, {
+ "callback_url" : "callback_url",
+ "service_id" : "service_id",
+ "keep_alive_interval_seconds" : 0,
+ "time_since_last_activity_seconds" : 6
+ } ]
+ }
+ },
+ "policy_type_definition" : {
+ "description" : "Schema of the given Policy type",
+ "value" : {
+ "policy_schema" : "{}"
+ }
+ },
+ "policy_type_id_list" : {
+ "description" : "Array of policy type id's",
+ "value" : {
+ "policy_type_id_list" : [ "policytype_id", "policytype_id" ]
+ }
+ },
+ "policy_info" : {
+ "description" : "Policy information of one A1-P policy",
+ "value" : {
+ "ric_id" : "ric_id",
+ "policy_id" : "policy_id",
+ "transient" : false,
+ "service_id" : "service_id",
+ "policy_data" : "{}",
+ "status_notification_uri" : "status_notification_uri",
+ "policytype_id" : "policytype_id"
+ }
+ },
+ "policy_info_list" : {
+ "description" : "List of policy information",
+ "value" : {
+ "policies" : [ {
+ "ric_id" : "ric_id",
+ "policy_id" : "policy_id",
+ "transient" : false,
+ "service_id" : "service_id",
+ "policy_data" : "{}",
+ "status_notification_uri" : "status_notification_uri",
+ "policytype_id" : "policytype_id"
+ }, {
+ "ric_id" : "ric_id",
+ "policy_id" : "policy_id",
+ "transient" : false,
+ "service_id" : "service_id",
+ "policy_data" : "{}",
+ "status_notification_uri" : "status_notification_uri",
+ "policytype_id" : "policytype_id"
+ } ]
+ }
+ },
+ "policy_id_list" : {
+ "description" : "A list of policy identities",
+ "value" : {
+ "policy_ids" : [ "some_policy_id", "some_policy_id" ]
+ }
+ },
+ "policy_status_info" : {
+ "description" : "Status for one A1-P Policy",
+ "value" : {
+ "last_modified" : "last_modified",
+ "status" : {
+ "value" : {
+ "status" : "status"
+ }
+ }
+ }
+ },
+ "status_info" : {
+ "value" : {
+ "status" : "status"
+ }
+ },
+ "ric_info" : {
+ "value" : {
+ "ric_id" : "ric_id",
+ "managed_element_ids" : [ "some_managed_element_id", "some_managed_element_id" ],
+ "state" : "UNAVAILABLE",
+ "policytype_ids" : [ "some_policytype_id", "some_policytype_id" ]
+ }
+ },
+ "ric_info_list" : {
+ "value" : {
+ "rics" : [ {
+ "ric_id" : "ric_id",
+ "managed_element_ids" : [ "some_managed_element_id", "some_managed_element_id" ],
+ "state" : "UNAVAILABLE",
+ "policytype_ids" : [ "policytype_id", "policytype_id" ]
+ }, {
+ "ric_id" : "ric_id",
+ "managed_element_ids" : [ "managed_element_ids", "managed_element_ids" ],
+ "state" : "UNAVAILABLE",
+ "policytype_ids" : [ "policytype_ids", "policytype_ids" ]
+ } ]
+ }
+ }
+ }
+ }
} \ No newline at end of file
diff --git a/a1-policy-management/api/pms-api.yaml b/a1-policy-management/api/pms-api.yaml
index 699d5edc..1c25e051 100644
--- a/a1-policy-management/api/pms-api.yaml
+++ b/a1-policy-management/api/pms-api.yaml
@@ -1307,6 +1307,7 @@ components:
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.
type: string
+ default: ""
policy_data:
description: the configuration of the policy
type: object
@@ -1319,7 +1320,6 @@ components:
required:
- ric_id
- policy_id
- - service_id
- policy_data
- policytype_id
type: object
diff --git a/a1-policy-management/api/pms-api/index.html b/a1-policy-management/api/pms-api/index.html
index c4aa60e7..66934cda 100644
--- a/a1-policy-management/api/pms-api/index.html
+++ b/a1-policy-management/api/pms-api/index.html
@@ -846,302 +846,313 @@ ul.nav-tabs {
<script>
// Script section to load models into a JS Var
var defs = {}
- defs["authorization_result"] = {
- "required" : [ "result" ],
- "type" : "object",
- "properties" : {
- "result" : {
- "type" : "boolean",
- "description" : "If true, the access is granted"
- }
- },
- "description" : "Result of authorization"
-};
- defs["error_information"] = {
- "type" : "object",
- "properties" : {
- "detail" : {
- "type" : "string",
- "description" : " A human-readable explanation specific to this occurrence of the problem.",
- "example" : "Policy type not found"
- },
- "status" : {
- "type" : "integer",
- "description" : "The HTTP status code generated by the origin server for this occurrence of the problem. ",
- "format" : "int32",
- "example" : 404
- }
- },
- "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807"
-};
- defs["input"] = {
- "required" : [ "access_type", "auth_token", "policy_type_id" ],
- "type" : "object",
- "properties" : {
- "access_type" : {
- "type" : "string",
- "description" : "Access type",
- "enum" : [ "READ", "WRITE", "DELETE" ]
- },
- "auth_token" : {
- "type" : "string",
- "description" : "Authorization token"
- },
- "policy_type_id" : {
- "type" : "string",
- "description" : "Policy type identifier"
- }
- },
- "description" : "input"
-};
- defs["Link"] = {
- "type" : "object",
- "properties" : {
- "templated" : {
- "type" : "boolean"
- },
- "href" : {
- "type" : "string"
- }
- }
-};
- defs["policy_authorization"] = {
- "required" : [ "input" ],
- "type" : "object",
- "properties" : {
- "input" : {
- "$ref" : "#/components/schemas/input"
- }
- },
- "description" : "Authorization request for A1 policy requests"
-};
- defs["policy_id_list_v2"] = {
- "type" : "object",
- "properties" : {
- "policy_ids" : {
- "type" : "array",
- "description" : "Policy identities",
- "items" : {
- "type" : "string",
- "description" : "Policy identities"
- }
- }
- },
- "description" : "A list of policy identities"
-};
- defs["policy_info_list_v2"] = {
- "type" : "object",
- "properties" : {
- "policies" : {
- "type" : "array",
- "description" : "List of policy information",
- "items" : {
- "$ref" : "#/components/schemas/policy_info_v2"
- }
- }
- },
- "description" : "List of policy information"
-};
- defs["policy_info_v2"] = {
- "required" : [ "policy_data", "policy_id", "policytype_id", "ric_id" ],
- "type" : "object",
- "properties" : {
- "ric_id" : {
- "type" : "string",
- "description" : "identity of the target Near-RT RIC"
- },
- "policy_id" : {
- "type" : "string",
- "description" : "identity of the policy"
- },
- "transient" : {
- "type" : "boolean",
- "description" : "if true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.",
- "example" : false,
- "default" : false
- },
- "service_id" : {
- "type" : "string",
- "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."
- },
- "policy_data" : {
- "type" : "object",
- "description" : "the configuration of the policy"
- },
- "status_notification_uri" : {
- "type" : "string",
- "description" : "Callback URI for policy status updates"
- },
- "policytype_id" : {
- "type" : "string",
- "description" : "identity of the policy type"
- }
- },
- "description" : "Information for one A1-P Policy"
-};
- defs["policy_status_info_v2"] = {
- "type" : "object",
- "properties" : {
- "last_modified" : {
- "type" : "string",
- "description" : "timestamp, last modification time"
- },
- "status" : {
- "type" : "object",
- "description" : "the Policy status"
- }
- },
- "description" : "Status for one A1-P Policy"
-};
- defs["policytype_id_list_v2"] = {
- "type" : "object",
- "properties" : {
- "policytype_ids" : {
- "type" : "array",
- "description" : "Policy type identities",
- "items" : {
- "type" : "string",
- "description" : "Policy type identities"
- }
- }
- },
- "description" : "Information about policy types"
-};
- defs["policytype_v2"] = {
- "type" : "object",
- "properties" : {
- "policy_schema" : {
- "type" : "object",
- "description" : "Policy type json schema. The schema is a json object following http://json-schema.org/draft-07/schema"
- }
- },
- "description" : "Policy type"
-};
- defs["ric_info_list_v2"] = {
- "type" : "object",
- "properties" : {
- "rics" : {
- "type" : "array",
- "description" : "List of Near-RT RIC information",
- "items" : {
- "$ref" : "#/components/schemas/ric_info_v2"
- }
- }
- },
- "description" : "List of Near-RT RIC information"
-};
- defs["ric_info_v2"] = {
- "type" : "object",
- "properties" : {
- "ric_id" : {
- "type" : "string",
- "description" : "identity of the Near-RT RIC"
- },
- "managed_element_ids" : {
- "type" : "array",
- "description" : "O1 identities for managed entities",
- "items" : {
- "type" : "string",
- "description" : "O1 identities for managed entities"
- }
- },
- "state" : {
- "type" : "string",
- "description" : "Represents the states for a Near-RT RIC",
- "enum" : [ "UNAVAILABLE", "AVAILABLE", "SYNCHRONIZING", "CONSISTENCY_CHECK" ]
- },
- "policytype_ids" : {
- "type" : "array",
- "description" : "supported policy types",
- "items" : {
- "type" : "string",
- "description" : "supported policy types"
- }
- }
- },
- "description" : "Information for a Near-RT RIC"
-};
- defs["service_callback_info_v2"] = {
- "required" : [ "event_type", "ric_id" ],
- "type" : "object",
- "properties" : {
- "ric_id" : {
- "type" : "string",
- "description" : "identity of a Near-RT RIC"
- },
- "event_type" : {
- "type" : "string",
- "description" : "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management",
- "enum" : [ "AVAILABLE" ]
- }
- },
- "description" : "Information transferred as in Service callbacks (callback_url)"
-};
- defs["service_list_v2"] = {
- "type" : "object",
- "properties" : {
- "service_list" : {
- "type" : "array",
- "description" : "List of service information",
- "items" : {
- "$ref" : "#/components/schemas/service_status_v2"
- }
- }
- },
- "description" : "List of service information"
-};
- defs["service_registration_info_v2"] = {
- "required" : [ "service_id" ],
- "type" : "object",
- "properties" : {
- "callback_url" : {
- "type" : "string",
- "description" : "callback for notifying of Near-RT RIC state changes"
- },
- "service_id" : {
- "type" : "string",
- "description" : "identity of the service"
- },
- "keep_alive_interval_seconds" : {
- "type" : "integer",
- "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"
- }
- },
- "description" : "Information for one service"
-};
- defs["service_status_v2"] = {
- "type" : "object",
- "properties" : {
- "callback_url" : {
- "type" : "string",
- "description" : "callback for notifying of RIC synchronization"
- },
- "service_id" : {
- "type" : "string",
- "description" : "identity of the service"
- },
- "keep_alive_interval_seconds" : {
- "type" : "integer",
- "description" : "policy keep alive timeout",
- "format" : "int64"
- },
- "time_since_last_activity_seconds" : {
- "type" : "integer",
- "description" : "time since last invocation by the service",
- "format" : "int64"
- }
- },
- "description" : "List of service information"
-};
- defs["status_info_v2"] = {
- "type" : "object",
- "properties" : {
- "status" : {
- "type" : "string",
- "description" : "status text"
- }
- }
+ defs["authorization_result"] = {
+ "required" : [ "result" ],
+ "type" : "object",
+ "properties" : {
+ "result" : {
+ "type" : "boolean",
+ "description" : "If true, the access is granted"
+ }
+ },
+ "description" : "Result of authorization",
+ "example" : {
+ "result" : true
+ }
+};
+ defs["error_information"] = {
+ "type" : "object",
+ "properties" : {
+ "detail" : {
+ "type" : "string",
+ "description" : " A human-readable explanation specific to this occurrence of the problem.",
+ "example" : "Policy type not found"
+ },
+ "title" : {
+ "type" : "string",
+ "description" : "A specific error name",
+ "example" : "Not Found"
+ },
+ "status" : {
+ "type" : "integer",
+ "description" : "The HTTP status code generated by the origin server for this occurrence of the problem. ",
+ "format" : "int32",
+ "example" : 404
+ }
+ },
+ "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807"
+};
+ defs["input"] = {
+ "required" : [ "access_type", "auth_token", "policy_type_id" ],
+ "type" : "object",
+ "properties" : {
+ "access_type" : {
+ "type" : "string",
+ "description" : "Access type",
+ "enum" : [ "READ", "WRITE", "DELETE" ]
+ },
+ "auth_token" : {
+ "type" : "string",
+ "description" : "Authorization token"
+ },
+ "policy_type_id" : {
+ "type" : "string",
+ "description" : "Policy type identifier"
+ }
+ },
+ "description" : "input"
+};
+ defs["Link"] = {
+ "type" : "object",
+ "properties" : {
+ "templated" : {
+ "type" : "boolean"
+ },
+ "href" : {
+ "type" : "string"
+ }
+ }
+};
+ defs["policy_authorization"] = {
+ "required" : [ "input" ],
+ "type" : "object",
+ "properties" : {
+ "input" : {
+ "$ref" : "#/components/schemas/input"
+ }
+ },
+ "description" : "Authorization request for A1 policy requests"
+};
+ defs["policy_id_list"] = {
+ "type" : "object",
+ "properties" : {
+ "policy_ids" : {
+ "type" : "array",
+ "description" : "Policy identities",
+ "items" : {
+ "type" : "string",
+ "description" : "Policy identities"
+ }
+ }
+ },
+ "description" : "A list of policy identities",
+ "example" : {
+ "policy_ids" : [ "policy_ids", "policy_ids" ]
+ }
+};
+ defs["policy_info"] = {
+ "required" : [ "policy_data", "policy_id", "policytype_id", "ric_id" ],
+ "type" : "object",
+ "properties" : {
+ "ric_id" : {
+ "type" : "string",
+ "description" : "identity of the target Near-RT RIC"
+ },
+ "policy_id" : {
+ "type" : "string",
+ "description" : "identity of the policy"
+ },
+ "transient" : {
+ "type" : "boolean",
+ "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,
+ "example" : false,
+ "default" : false
+ },
+ "service_id" : {
+ "type" : "string",
+ "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.",
+ "default" : ""
+ },
+ "policy_data" : {
+ "type" : "object",
+ "description" : "the configuration of the policy"
+ },
+ "status_notification_uri" : {
+ "type" : "string",
+ "description" : "Callback URI for policy status updates"
+ },
+ "policytype_id" : {
+ "type" : "string",
+ "description" : "identity of the policy type"
+ }
+ },
+ "description" : "Information for one A1-P Policy"
+};
+ defs["policy_info_list"] = {
+ "type" : "object",
+ "properties" : {
+ "policies" : {
+ "type" : "array",
+ "description" : "List of policy information",
+ "items" : {
+ "$ref" : "#/components/schemas/policy_info"
+ }
+ }
+ },
+ "description" : "List of policy information"
+};
+ defs["policy_status_info"] = {
+ "type" : "object",
+ "properties" : {
+ "last_modified" : {
+ "type" : "string",
+ "description" : "timestamp, last modification time"
+ },
+ "status" : {
+ "type" : "object",
+ "description" : "the Policy status"
+ }
+ },
+ "description" : "Status for one A1-P Policy"
+};
+ defs["policy_type_definition"] = {
+ "type" : "object",
+ "properties" : {
+ "policy_schema" : {
+ "type" : "object",
+ "description" : "Policy type json schema. The schema is a json object following http://json-schema.org/draft-07/schema"
+ }
+ },
+ "description" : "Contains policy type schema definition"
+};
+ defs["policy_type_id_list"] = {
+ "type" : "object",
+ "properties" : {
+ "policytype_ids" : {
+ "type" : "array",
+ "description" : "Policy type identities",
+ "items" : {
+ "type" : "string",
+ "description" : "Policy type identities"
+ }
+ }
+ },
+ "description" : "Information about policy types"
+};
+ defs["ric_info"] = {
+ "type" : "object",
+ "properties" : {
+ "ric_id" : {
+ "type" : "string",
+ "description" : "identity of the Near-RT RIC"
+ },
+ "managed_element_ids" : {
+ "type" : "array",
+ "description" : "O1 identities for managed entities",
+ "items" : {
+ "type" : "string",
+ "description" : "O1 identities for managed entities"
+ }
+ },
+ "state" : {
+ "type" : "string",
+ "description" : "Represents the states for a Near-RT RIC",
+ "enum" : [ "UNAVAILABLE", "AVAILABLE", "SYNCHRONIZING", "CONSISTENCY_CHECK" ]
+ },
+ "policytype_ids" : {
+ "type" : "array",
+ "description" : "supported policy types",
+ "items" : {
+ "type" : "string",
+ "description" : "supported policy types"
+ }
+ }
+ },
+ "description" : "Information for a Near-RT RIC"
+};
+ defs["ric_info_list"] = {
+ "type" : "object",
+ "properties" : {
+ "rics" : {
+ "type" : "array",
+ "description" : "List of Near-RT RIC information",
+ "items" : {
+ "$ref" : "#/components/schemas/ric_info"
+ }
+ }
+ },
+ "description" : "List of Near-RT RIC information"
+};
+ defs["service_callback_info_v2"] = {
+ "required" : [ "event_type", "ric_id" ],
+ "type" : "object",
+ "properties" : {
+ "ric_id" : {
+ "type" : "string",
+ "description" : "identity of a Near-RT RIC"
+ },
+ "event_type" : {
+ "type" : "string",
+ "description" : "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management",
+ "enum" : [ "AVAILABLE" ]
+ }
+ },
+ "description" : "Information transferred as in Service callbacks (callback_url)"
+};
+ defs["service_registration_info"] = {
+ "required" : [ "service_id" ],
+ "type" : "object",
+ "properties" : {
+ "callback_url" : {
+ "type" : "string",
+ "description" : "callback for notifying of Near-RT RIC state changes"
+ },
+ "service_id" : {
+ "type" : "string",
+ "description" : "identity of the service"
+ },
+ "keep_alive_interval_seconds" : {
+ "type" : "integer",
+ "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"
+ }
+ },
+ "description" : "Information for one service"
+};
+ defs["service_status"] = {
+ "type" : "object",
+ "properties" : {
+ "callback_url" : {
+ "type" : "string",
+ "description" : "callback for notifying of RIC synchronization"
+ },
+ "service_id" : {
+ "type" : "string",
+ "description" : "identity of the service"
+ },
+ "keep_alive_interval_seconds" : {
+ "type" : "integer",
+ "description" : "policy keep alive timeout",
+ "format" : "int64"
+ },
+ "time_since_last_activity_seconds" : {
+ "type" : "integer",
+ "description" : "time since last invocation by the service",
+ "format" : "int64"
+ }
+ }
+};
+ defs["service_status_list"] = {
+ "type" : "object",
+ "properties" : {
+ "service_list" : {
+ "type" : "array",
+ "description" : "List of service information",
+ "items" : {
+ "$ref" : "#/components/schemas/service_status"
+ }
+ }
+ }
+};
+ defs["status_info"] = {
+ "type" : "object",
+ "properties" : {
+ "status" : {
+ "type" : "string",
+ "description" : "status text"
+ }
+ }
};
var errs = {};
@@ -1177,8 +1188,8 @@ ul.nav-tabs {
<li data-group="A1PolicyManagement" data-name="getPolicyStatus" class="">
<a href="#api-A1PolicyManagement-getPolicyStatus">getPolicyStatus</a>
</li>
- <li data-group="A1PolicyManagement" data-name="getPolicyType" class="">
- <a href="#api-A1PolicyManagement-getPolicyType">getPolicyType</a>
+ <li data-group="A1PolicyManagement" data-name="getPolicyTypeDefinition" class="">
+ <a href="#api-A1PolicyManagement-getPolicyTypeDefinition">getPolicyTypeDefinition</a>
</li>
<li data-group="A1PolicyManagement" data-name="getPolicyTypes" class="">
<a href="#api-A1PolicyManagement-getPolicyTypes">getPolicyTypes</a>
@@ -1230,6 +1241,13 @@ 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="Configuration"><a href="#api-Configuration">API Methods - Configuration</a></li>
+ <li data-group="Configuration" data-name="getConfiguration" class="">
+ <a href="#api-Configuration-getConfiguration">getConfiguration</a>
+ </li>
+ <li data-group="Configuration" data-name="putConfiguration" class="">
+ <a href="#api-Configuration-putConfiguration">putConfiguration</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>
@@ -1237,13 +1255,6 @@ ul.nav-tabs {
<li data-group="HealthCheck" data-name="getStatusV1" class="">
<a href="#api-HealthCheck-getStatusV1">getStatusV1</a>
</li>
- <li class="nav-header" data-group="ManagementOfConfiguration"><a href="#api-ManagementOfConfiguration">API Methods - ManagementOfConfiguration</a></li>
- <li data-group="ManagementOfConfiguration" data-name="getConfiguration" class="">
- <a href="#api-ManagementOfConfiguration-getConfiguration">getConfiguration</a>
- </li>
- <li data-group="ManagementOfConfiguration" data-name="putConfiguration" class="">
- <a href="#api-ManagementOfConfiguration-putConfiguration">putConfiguration</a>
- </li>
<li class="nav-header" data-group="NearRTRICRepository"><a href="#api-NearRTRICRepository">API Methods - NearRTRICRepository</a></li>
<li data-group="NearRTRICRepository" data-name="getRic" class="">
<a href="#api-NearRTRICRepository-getRic">getRic</a>
@@ -1251,10 +1262,6 @@ 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 +1288,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.2.0</div>
+ <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 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>
+ <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>
</div>
</div>
@@ -1301,7 +1308,7 @@ ul.nav-tabs {
<div class="pull-right"></div>
<div class="clearfix"></div>
<p></p>
- <p class="marked"></p>
+ <p class="marked">Deleting the policy using the Policy&#39;s Policy ID.</p>
<p></p>
<br />
<pre class="prettyprint language-html prettyprinted" data-type="delete"><code><span class="pln">/a1-policy/v2/policies/{policy_id}</span></code></pre>
@@ -1326,7 +1333,7 @@ ul.nav-tabs {
<div class="tab-content">
<div class="tab-pane active" id="examples-A1PolicyManagement-deletePolicy-0-curl">
<pre class="prettyprint"><code class="language-bsh">curl -X DELETE \
- -H "Accept: */*" \
+ -H "Accept: */*,application/problem+json" \
"http://localhost/a1-policy/v2/policies/{policy_id}"
</code></pre>
</div>
@@ -1564,7 +1571,7 @@ pub fn main() {
<h3 id="examples-A1PolicyManagement-deletePolicy-title-200"></h3>
<p id="examples-A1PolicyManagement-deletePolicy-description-200" class="marked"></p>
<script>
- var responseA1PolicyManagement200_description = `Not used`;
+ var responseA1PolicyManagement200_description = `OK - Policy deleted`;
var responseA1PolicyManagement200_description_break = responseA1PolicyManagement200_description.indexOf('\n');
if (responseA1PolicyManagement200_description_break == -1) {
$("#examples-A1PolicyManagement-deletePolicy-title-200").text("Status: 200 - " + responseA1PolicyManagement200_description);
@@ -1591,22 +1598,18 @@ pub fn main() {
<div id="responses-A1PolicyManagement-deletePolicy-schema-200" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "Not used",
- "content" : {
- "*/*" : {
- "schema" : {
- "$ref" : "#/components/schemas/void"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -1630,7 +1633,7 @@ pub fn main() {
<h3 id="examples-A1PolicyManagement-deletePolicy-title-423"></h3>
<p id="examples-A1PolicyManagement-deletePolicy-description-423" class="marked"></p>
<script>
- var responseA1PolicyManagement423_description = `Near-RT RIC is not operational`;
+ var responseA1PolicyManagement423_description = `Locked - HTTP Status code which can be used when the state is Locked`;
var responseA1PolicyManagement423_description_break = responseA1PolicyManagement423_description.indexOf('\n');
if (responseA1PolicyManagement423_description_break == -1) {
$("#examples-A1PolicyManagement-deletePolicy-title-423").text("Status: 423 - " + responseA1PolicyManagement423_description);
@@ -1657,22 +1660,18 @@ pub fn main() {
<div id="responses-A1PolicyManagement-deletePolicy-schema-423" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "Near-RT RIC is not operational",
- "content" : {
- "*/*" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -1693,138 +1692,6 @@ pub fn main() {
<input id='responses-A1PolicyManagement-deletePolicy-423-schema-data' type='hidden' value=''></input>
</div>
</div>
- <h3 id="examples-A1PolicyManagement-deletePolicy-title-204"></h3>
- <p id="examples-A1PolicyManagement-deletePolicy-description-204" class="marked"></p>
- <script>
- var responseA1PolicyManagement204_description = `Policy deleted`;
- var responseA1PolicyManagement204_description_break = responseA1PolicyManagement204_description.indexOf('\n');
- if (responseA1PolicyManagement204_description_break == -1) {
- $("#examples-A1PolicyManagement-deletePolicy-title-204").text("Status: 204 - " + responseA1PolicyManagement204_description);
- } else {
- $("#examples-A1PolicyManagement-deletePolicy-title-204").text("Status: 204 - " + responseA1PolicyManagement204_description.substring(0, responseA1PolicyManagement204_description_break));
- $("#examples-A1PolicyManagement-deletePolicy-description-204").html(responseA1PolicyManagement204_description.substring(responseA1PolicyManagement204_description_break));
- }
- </script>
-
-
- <ul id="responses-detail-A1PolicyManagement-deletePolicy-204" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-A1PolicyManagement-deletePolicy-204-schema">Schema</a>
- </li>
-
-
-
-
- </ul>
-
-
- <div class="tab-content" id="responses-A1PolicyManagement-deletePolicy-204-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-A1PolicyManagement-deletePolicy-204-schema">
- <div id="responses-A1PolicyManagement-deletePolicy-schema-204" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = {
- "description" : "Policy deleted",
- "content" : {
- "*/*" : {
- "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-A1PolicyManagement-deletePolicy-204-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-A1PolicyManagement-deletePolicy-schema-204');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-A1PolicyManagement-deletePolicy-204-schema-data' type='hidden' value=''></input>
- </div>
- </div>
- <h3 id="examples-A1PolicyManagement-deletePolicy-title-404"></h3>
- <p id="examples-A1PolicyManagement-deletePolicy-description-404" class="marked"></p>
- <script>
- var responseA1PolicyManagement404_description = `Policy is not found`;
- var responseA1PolicyManagement404_description_break = responseA1PolicyManagement404_description.indexOf('\n');
- if (responseA1PolicyManagement404_description_break == -1) {
- $("#examples-A1PolicyManagement-deletePolicy-title-404").text("Status: 404 - " + responseA1PolicyManagement404_description);
- } else {
- $("#examples-A1PolicyManagement-deletePolicy-title-404").text("Status: 404 - " + responseA1PolicyManagement404_description.substring(0, responseA1PolicyManagement404_description_break));
- $("#examples-A1PolicyManagement-deletePolicy-description-404").html(responseA1PolicyManagement404_description.substring(responseA1PolicyManagement404_description_break));
- }
- </script>
-
-
- <ul id="responses-detail-A1PolicyManagement-deletePolicy-404" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-A1PolicyManagement-deletePolicy-404-schema">Schema</a>
- </li>
-
-
-
-
- </ul>
-
-
- <div class="tab-content" id="responses-A1PolicyManagement-deletePolicy-404-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-A1PolicyManagement-deletePolicy-404-schema">
- <div id="responses-A1PolicyManagement-deletePolicy-schema-404" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = {
- "description" : "Policy is not found",
- "content" : {
- "*/*" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
-};
- 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-A1PolicyManagement-deletePolicy-404-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-A1PolicyManagement-deletePolicy-schema-404');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-A1PolicyManagement-deletePolicy-404-schema-data' type='hidden' value=''></input>
- </div>
- </div>
</article>
</div>
<hr>
@@ -1832,12 +1699,12 @@ pub fn main() {
<article id="api-A1PolicyManagement-getPolicy-0" data-group="User" data-name="getPolicy" data-version="0">
<div class="pull-left">
<h1>getPolicy</h1>
- <p>Returns a policy</p>
+ <p></p>
</div>
<div class="pull-right"></div>
<div class="clearfix"></div>
<p></p>
- <p class="marked"></p>
+ <p class="marked">Returns a policy</p>
<p></p>
<br />
<pre class="prettyprint language-html prettyprinted" data-type="get"><code><span class="pln">/a1-policy/v2/policies/{policy_id}</span></code></pre>
@@ -1862,7 +1729,7 @@ pub fn main() {
<div class="tab-content">
<div class="tab-pane active" id="examples-A1PolicyManagement-getPolicy-0-curl">
<pre class="prettyprint"><code class="language-bsh">curl -X GET \
- -H "Accept: application/json" \
+ -H "Accept: application/json,application/problem+json" \
"http://localhost/a1-policy/v2/policies/{policy_id}"
</code></pre>
</div>
@@ -1883,7 +1750,7 @@ public class A1PolicyManagementApiExample {
String policyId = policyId_example; // String |
try {
- policy_info_v2 result = apiInstance.getPolicy(policyId);
+ policy_info result = apiInstance.getPolicy(policyId);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling A1PolicyManagementApi#getPolicy");
@@ -1903,7 +1770,7 @@ public class A1PolicyManagementApiExample {
String policyId = policyId_example; // String |
try {
- policy_info_v2 result = apiInstance.getPolicy(policyId);
+ policy_info result = apiInstance.getPolicy(policyId);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling A1PolicyManagementApi#getPolicy");
@@ -1923,9 +1790,8 @@ public class A1PolicyManagementApiExample {
A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init];
String *policyId = policyId_example; // (default to null)
-// Returns a policy
[apiInstance getPolicyWith:policyId
- completionHandler: ^(policy_info_v2 output, NSError* error) {
+ completionHandler: ^(policy_info output, NSError* error) {
if (output) {
NSLog(@"%@", output);
}
@@ -1976,8 +1842,7 @@ namespace Example
var policyId = policyId_example; // String | (default to null)
try {
- // Returns a policy
- policy_info_v2 result = apiInstance.getPolicy(policyId);
+ policy_info result = apiInstance.getPolicy(policyId);
Debug.WriteLine(result);
} catch (Exception e) {
Debug.Print("Exception when calling A1PolicyManagementApi.getPolicy: " + e.Message );
@@ -2035,7 +1900,6 @@ api_instance = openapi_client.A1PolicyManagementApi()
policyId = policyId_example # String | (default to null)
try:
- # Returns a policy
api_response = api_instance.get_policy(policyId)
pprint(api_response)
except ApiException as e:
@@ -2100,7 +1964,7 @@ pub fn main() {
<h3 id="examples-A1PolicyManagement-getPolicy-title-200"></h3>
<p id="examples-A1PolicyManagement-getPolicy-description-200" class="marked"></p>
<script>
- var responseA1PolicyManagement200_description = `Policy found`;
+ var responseA1PolicyManagement200_description = `OK - Policy found`;
var responseA1PolicyManagement200_description_break = responseA1PolicyManagement200_description.indexOf('\n');
if (responseA1PolicyManagement200_description_break == -1) {
$("#examples-A1PolicyManagement-getPolicy-title-200").text("Status: 200 - " + responseA1PolicyManagement200_description);
@@ -2127,22 +1991,18 @@ pub fn main() {
<div id="responses-A1PolicyManagement-getPolicy-schema-200" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "Policy found",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_info_v2"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -2166,7 +2026,7 @@ pub fn main() {
<h3 id="examples-A1PolicyManagement-getPolicy-title-404"></h3>
<p id="examples-A1PolicyManagement-getPolicy-description-404" class="marked"></p>
<script>
- var responseA1PolicyManagement404_description = `Policy is not found`;
+ var responseA1PolicyManagement404_description = `Not Found`;
var responseA1PolicyManagement404_description_break = responseA1PolicyManagement404_description.indexOf('\n');
if (responseA1PolicyManagement404_description_break == -1) {
$("#examples-A1PolicyManagement-getPolicy-title-404").text("Status: 404 - " + responseA1PolicyManagement404_description);
@@ -2178,56 +2038,12 @@ pub fn main() {
<ul id="responses-detail-A1PolicyManagement-getPolicy-404" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-A1PolicyManagement-getPolicy-404-schema">Schema</a>
- </li>
-
-
</ul>
<div class="tab-content" id="responses-A1PolicyManagement-getPolicy-404-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-A1PolicyManagement-getPolicy-404-schema">
- <div id="responses-A1PolicyManagement-getPolicy-schema-404" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = {
- "description" : "Policy is not found",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
-};
- 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-A1PolicyManagement-getPolicy-404-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-A1PolicyManagement-getPolicy-schema-404');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-A1PolicyManagement-getPolicy-404-schema-data' type='hidden' value=''></input>
- </div>
</div>
</article>
</div>
@@ -2266,7 +2082,7 @@ pub fn main() {
<div class="tab-content">
<div class="tab-pane active" id="examples-A1PolicyManagement-getPolicyIds-0-curl">
<pre class="prettyprint"><code class="language-bsh">curl -X GET \
- -H "Accept: application/json" \
+ -H "Accept: application/json,application/problem+json" \
"http://localhost/a1-policy/v2/policies?policytype_id=policytypeId_example&ric_id=ricId_example&service_id=serviceId_example&type_name=typeName_example"
</code></pre>
</div>
@@ -2290,7 +2106,7 @@ public class A1PolicyManagementApiExample {
String typeName = typeName_example; // String | Select policies of types with the given type name (type identity has the format <typename_version>)
try {
- policy_id_list_v2 result = apiInstance.getPolicyIds(policytypeId, ricId, serviceId, typeName);
+ policy_id_list result = apiInstance.getPolicyIds(policytypeId, ricId, serviceId, typeName);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling A1PolicyManagementApi#getPolicyIds");
@@ -2313,7 +2129,7 @@ public class A1PolicyManagementApiExample {
String typeName = typeName_example; // String | Select policies of types with the given type name (type identity has the format <typename_version>)
try {
- policy_id_list_v2 result = apiInstance.getPolicyIds(policytypeId, ricId, serviceId, typeName);
+ policy_id_list result = apiInstance.getPolicyIds(policytypeId, ricId, serviceId, typeName);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling A1PolicyManagementApi#getPolicyIds");
@@ -2341,7 +2157,7 @@ String *typeName = typeName_example; // Select policies of types with the given
ricId:ricId
serviceId:serviceId
typeName:typeName
- completionHandler: ^(policy_id_list_v2 output, NSError* error) {
+ completionHandler: ^(policy_id_list output, NSError* error) {
if (output) {
NSLog(@"%@", output);
}
@@ -2401,7 +2217,7 @@ namespace Example
try {
// Query policy identities
- policy_id_list_v2 result = apiInstance.getPolicyIds(policytypeId, ricId, serviceId, typeName);
+ policy_id_list result = apiInstance.getPolicyIds(policytypeId, ricId, serviceId, typeName);
Debug.WriteLine(result);
} catch (Exception e) {
Debug.Print("Exception when calling A1PolicyManagementApi.getPolicyIds: " + e.Message );
@@ -2596,7 +2412,7 @@ Select policies of types with the given type name (type identity has the format
<h3 id="examples-A1PolicyManagement-getPolicyIds-title-200"></h3>
<p id="examples-A1PolicyManagement-getPolicyIds-description-200" class="marked"></p>
<script>
- var responseA1PolicyManagement200_description = `Policy identities`;
+ var responseA1PolicyManagement200_description = `OK - Policy identities`;
var responseA1PolicyManagement200_description_break = responseA1PolicyManagement200_description.indexOf('\n');
if (responseA1PolicyManagement200_description_break == -1) {
$("#examples-A1PolicyManagement-getPolicyIds-title-200").text("Status: 200 - " + responseA1PolicyManagement200_description);
@@ -2623,22 +2439,18 @@ Select policies of types with the given type name (type identity has the format
<div id="responses-A1PolicyManagement-getPolicyIds-schema-200" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "Policy identities",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_id_list_v2"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -2662,7 +2474,7 @@ Select policies of types with the given type name (type identity has the format
<h3 id="examples-A1PolicyManagement-getPolicyIds-title-404"></h3>
<p id="examples-A1PolicyManagement-getPolicyIds-description-404" class="marked"></p>
<script>
- var responseA1PolicyManagement404_description = `Near-RT RIC or type not found`;
+ var responseA1PolicyManagement404_description = `Not Found`;
var responseA1PolicyManagement404_description_break = responseA1PolicyManagement404_description.indexOf('\n');
if (responseA1PolicyManagement404_description_break == -1) {
$("#examples-A1PolicyManagement-getPolicyIds-title-404").text("Status: 404 - " + responseA1PolicyManagement404_description);
@@ -2674,56 +2486,12 @@ Select policies of types with the given type name (type identity has the format
<ul id="responses-detail-A1PolicyManagement-getPolicyIds-404" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-A1PolicyManagement-getPolicyIds-404-schema">Schema</a>
- </li>
-
-
</ul>
<div class="tab-content" id="responses-A1PolicyManagement-getPolicyIds-404-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-A1PolicyManagement-getPolicyIds-404-schema">
- <div id="responses-A1PolicyManagement-getPolicyIds-schema-404" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = {
- "description" : "Near-RT RIC or type not found",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
-};
- 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-A1PolicyManagement-getPolicyIds-404-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-A1PolicyManagement-getPolicyIds-schema-404');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-A1PolicyManagement-getPolicyIds-404-schema-data' type='hidden' value=''></input>
- </div>
</div>
</article>
</div>
@@ -2786,7 +2554,7 @@ public class A1PolicyManagementApiExample {
String typeName = typeName_example; // String | Select policies of a given type name (type identity has the format <typename_version>)
try {
- policy_info_list_v2 result = apiInstance.getPolicyInstances(policytypeId, ricId, serviceId, typeName);
+ policy_info_list result = apiInstance.getPolicyInstances(policytypeId, ricId, serviceId, typeName);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling A1PolicyManagementApi#getPolicyInstances");
@@ -2809,7 +2577,7 @@ public class A1PolicyManagementApiExample {
String typeName = typeName_example; // String | Select policies of a given type name (type identity has the format <typename_version>)
try {
- policy_info_list_v2 result = apiInstance.getPolicyInstances(policytypeId, ricId, serviceId, typeName);
+ policy_info_list result = apiInstance.getPolicyInstances(policytypeId, ricId, serviceId, typeName);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling A1PolicyManagementApi#getPolicyInstances");
@@ -2837,7 +2605,7 @@ String *typeName = typeName_example; // Select policies of a given type name (ty
ricId:ricId
serviceId:serviceId
typeName:typeName
- completionHandler: ^(policy_info_list_v2 output, NSError* error) {
+ completionHandler: ^(policy_info_list output, NSError* error) {
if (output) {
NSLog(@"%@", output);
}
@@ -2897,7 +2665,7 @@ namespace Example
try {
// Query for A1 policy instances
- policy_info_list_v2 result = apiInstance.getPolicyInstances(policytypeId, ricId, serviceId, typeName);
+ policy_info_list result = apiInstance.getPolicyInstances(policytypeId, ricId, serviceId, typeName);
Debug.WriteLine(result);
} catch (Exception e) {
Debug.Print("Exception when calling A1PolicyManagementApi.getPolicyInstances: " + e.Message );
@@ -3092,7 +2860,7 @@ Select policies of a given type name (type identity has the format &lt;typename_
<h3 id="examples-A1PolicyManagement-getPolicyInstances-title-200"></h3>
<p id="examples-A1PolicyManagement-getPolicyInstances-description-200" class="marked"></p>
<script>
- var responseA1PolicyManagement200_description = `Policies`;
+ var responseA1PolicyManagement200_description = `OK - Returns A1 Policies which matches the criteria`;
var responseA1PolicyManagement200_description_break = responseA1PolicyManagement200_description.indexOf('\n');
if (responseA1PolicyManagement200_description_break == -1) {
$("#examples-A1PolicyManagement-getPolicyInstances-title-200").text("Status: 200 - " + responseA1PolicyManagement200_description);
@@ -3119,22 +2887,18 @@ Select policies of a given type name (type identity has the format &lt;typename_
<div id="responses-A1PolicyManagement-getPolicyInstances-schema-200" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "Policies",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_info_list_v2"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -3158,7 +2922,7 @@ Select policies of a given type name (type identity has the format &lt;typename_
<h3 id="examples-A1PolicyManagement-getPolicyInstances-title-404"></h3>
<p id="examples-A1PolicyManagement-getPolicyInstances-description-404" class="marked"></p>
<script>
- var responseA1PolicyManagement404_description = `Near-RT RIC, policy type or service not found`;
+ var responseA1PolicyManagement404_description = `Not Found - Near-RT RIC, policy type or service not found`;
var responseA1PolicyManagement404_description_break = responseA1PolicyManagement404_description.indexOf('\n');
if (responseA1PolicyManagement404_description_break == -1) {
$("#examples-A1PolicyManagement-getPolicyInstances-title-404").text("Status: 404 - " + responseA1PolicyManagement404_description);
@@ -3185,22 +2949,18 @@ Select policies of a given type name (type identity has the format &lt;typename_
<div id="responses-A1PolicyManagement-getPolicyInstances-schema-404" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "Near-RT RIC, policy type or service not found",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -3228,12 +2988,12 @@ Select policies of a given type name (type identity has the format &lt;typename_
<article id="api-A1PolicyManagement-getPolicyStatus-0" data-group="User" data-name="getPolicyStatus" data-version="0">
<div class="pull-left">
<h1>getPolicyStatus</h1>
- <p>Returns a policy status</p>
+ <p></p>
</div>
<div class="pull-right"></div>
<div class="clearfix"></div>
<p></p>
- <p class="marked"></p>
+ <p class="marked">Returns a policy status</p>
<p></p>
<br />
<pre class="prettyprint language-html prettyprinted" data-type="get"><code><span class="pln">/a1-policy/v2/policies/{policy_id}/status</span></code></pre>
@@ -3258,7 +3018,7 @@ Select policies of a given type name (type identity has the format &lt;typename_
<div class="tab-content">
<div class="tab-pane active" id="examples-A1PolicyManagement-getPolicyStatus-0-curl">
<pre class="prettyprint"><code class="language-bsh">curl -X GET \
- -H "Accept: application/json" \
+ -H "Accept: application/json,application/problem+json" \
"http://localhost/a1-policy/v2/policies/{policy_id}/status"
</code></pre>
</div>
@@ -3279,7 +3039,7 @@ public class A1PolicyManagementApiExample {
String policyId = policyId_example; // String |
try {
- policy_status_info_v2 result = apiInstance.getPolicyStatus(policyId);
+ policy_status_info result = apiInstance.getPolicyStatus(policyId);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling A1PolicyManagementApi#getPolicyStatus");
@@ -3299,7 +3059,7 @@ public class A1PolicyManagementApiExample {
String policyId = policyId_example; // String |
try {
- policy_status_info_v2 result = apiInstance.getPolicyStatus(policyId);
+ policy_status_info result = apiInstance.getPolicyStatus(policyId);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling A1PolicyManagementApi#getPolicyStatus");
@@ -3319,9 +3079,8 @@ public class A1PolicyManagementApiExample {
A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init];
String *policyId = policyId_example; // (default to null)
-// Returns a policy status
[apiInstance getPolicyStatusWith:policyId
- completionHandler: ^(policy_status_info_v2 output, NSError* error) {
+ completionHandler: ^(policy_status_info output, NSError* error) {
if (output) {
NSLog(@"%@", output);
}
@@ -3372,8 +3131,7 @@ namespace Example
var policyId = policyId_example; // String | (default to null)
try {
- // Returns a policy status
- policy_status_info_v2 result = apiInstance.getPolicyStatus(policyId);
+ policy_status_info result = apiInstance.getPolicyStatus(policyId);
Debug.WriteLine(result);
} catch (Exception e) {
Debug.Print("Exception when calling A1PolicyManagementApi.getPolicyStatus: " + e.Message );
@@ -3431,7 +3189,6 @@ api_instance = openapi_client.A1PolicyManagementApi()
policyId = policyId_example # String | (default to null)
try:
- # Returns a policy status
api_response = api_instance.get_policy_status(policyId)
pprint(api_response)
except ApiException as e:
@@ -3496,7 +3253,7 @@ pub fn main() {
<h3 id="examples-A1PolicyManagement-getPolicyStatus-title-200"></h3>
<p id="examples-A1PolicyManagement-getPolicyStatus-description-200" class="marked"></p>
<script>
- var responseA1PolicyManagement200_description = `Policy status`;
+ var responseA1PolicyManagement200_description = `OK - Policy status`;
var responseA1PolicyManagement200_description_break = responseA1PolicyManagement200_description.indexOf('\n');
if (responseA1PolicyManagement200_description_break == -1) {
$("#examples-A1PolicyManagement-getPolicyStatus-title-200").text("Status: 200 - " + responseA1PolicyManagement200_description);
@@ -3523,22 +3280,18 @@ pub fn main() {
<div id="responses-A1PolicyManagement-getPolicyStatus-schema-200" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "Policy status",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_status_info_v2"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -3562,7 +3315,7 @@ pub fn main() {
<h3 id="examples-A1PolicyManagement-getPolicyStatus-title-404"></h3>
<p id="examples-A1PolicyManagement-getPolicyStatus-description-404" class="marked"></p>
<script>
- var responseA1PolicyManagement404_description = `Policy is not found`;
+ var responseA1PolicyManagement404_description = `Not Found`;
var responseA1PolicyManagement404_description_break = responseA1PolicyManagement404_description.indexOf('\n');
if (responseA1PolicyManagement404_description_break == -1) {
$("#examples-A1PolicyManagement-getPolicyStatus-title-404").text("Status: 404 - " + responseA1PolicyManagement404_description);
@@ -3574,70 +3327,26 @@ pub fn main() {
<ul id="responses-detail-A1PolicyManagement-getPolicyStatus-404" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-A1PolicyManagement-getPolicyStatus-404-schema">Schema</a>
- </li>
-
-
</ul>
<div class="tab-content" id="responses-A1PolicyManagement-getPolicyStatus-404-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-A1PolicyManagement-getPolicyStatus-404-schema">
- <div id="responses-A1PolicyManagement-getPolicyStatus-schema-404" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = {
- "description" : "Policy is not found",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
-};
- 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-A1PolicyManagement-getPolicyStatus-404-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-A1PolicyManagement-getPolicyStatus-schema-404');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-A1PolicyManagement-getPolicyStatus-404-schema-data' type='hidden' value=''></input>
- </div>
</div>
</article>
</div>
<hr>
- <div id="api-A1PolicyManagement-getPolicyType">
- <article id="api-A1PolicyManagement-getPolicyType-0" data-group="User" data-name="getPolicyType" data-version="0">
+ <div id="api-A1PolicyManagement-getPolicyTypeDefinition">
+ <article id="api-A1PolicyManagement-getPolicyTypeDefinition-0" data-group="User" data-name="getPolicyTypeDefinition" data-version="0">
<div class="pull-left">
- <h1>getPolicyType</h1>
- <p>Returns a policy type definition</p>
+ <h1>getPolicyTypeDefinition</h1>
+ <p></p>
</div>
<div class="pull-right"></div>
<div class="clearfix"></div>
<p></p>
- <p class="marked"></p>
+ <p class="marked">Returns a policy type definition</p>
<p></p>
<br />
<pre class="prettyprint language-html prettyprinted" data-type="get"><code><span class="pln">/a1-policy/v2/policy-types/{policytype_id}</span></code></pre>
@@ -3645,28 +3354,28 @@ pub fn main() {
<h3>Usage and SDK Samples</h3>
</p>
<ul class="nav nav-tabs nav-tabs-examples">
- <li class="active"><a href="#examples-A1PolicyManagement-getPolicyType-0-curl">Curl</a></li>
- <li class=""><a href="#examples-A1PolicyManagement-getPolicyType-0-java">Java</a></li>
- <li class=""><a href="#examples-A1PolicyManagement-getPolicyType-0-android">Android</a></li>
- <!--<li class=""><a href="#examples-A1PolicyManagement-getPolicyType-0-groovy">Groovy</a></li>-->
- <li class=""><a href="#examples-A1PolicyManagement-getPolicyType-0-objc">Obj-C</a></li>
- <li class=""><a href="#examples-A1PolicyManagement-getPolicyType-0-javascript">JavaScript</a></li>
- <!--<li class=""><a href="#examples-A1PolicyManagement-getPolicyType-0-angular">Angular</a></li>-->
- <li class=""><a href="#examples-A1PolicyManagement-getPolicyType-0-csharp">C#</a></li>
- <li class=""><a href="#examples-A1PolicyManagement-getPolicyType-0-php">PHP</a></li>
- <li class=""><a href="#examples-A1PolicyManagement-getPolicyType-0-perl">Perl</a></li>
- <li class=""><a href="#examples-A1PolicyManagement-getPolicyType-0-python">Python</a></li>
- <li class=""><a href="#examples-A1PolicyManagement-getPolicyType-0-rust">Rust</a></li>
+ <li class="active"><a href="#examples-A1PolicyManagement-getPolicyTypeDefinition-0-curl">Curl</a></li>
+ <li class=""><a href="#examples-A1PolicyManagement-getPolicyTypeDefinition-0-java">Java</a></li>
+ <li class=""><a href="#examples-A1PolicyManagement-getPolicyTypeDefinition-0-android">Android</a></li>
+ <!--<li class=""><a href="#examples-A1PolicyManagement-getPolicyTypeDefinition-0-groovy">Groovy</a></li>-->
+ <li class=""><a href="#examples-A1PolicyManagement-getPolicyTypeDefinition-0-objc">Obj-C</a></li>
+ <li class=""><a href="#examples-A1PolicyManagement-getPolicyTypeDefinition-0-javascript">JavaScript</a></li>
+ <!--<li class=""><a href="#examples-A1PolicyManagement-getPolicyTypeDefinition-0-angular">Angular</a></li>-->
+ <li class=""><a href="#examples-A1PolicyManagement-getPolicyTypeDefinition-0-csharp">C#</a></li>
+ <li class=""><a href="#examples-A1PolicyManagement-getPolicyTypeDefinition-0-php">PHP</a></li>
+ <li class=""><a href="#examples-A1PolicyManagement-getPolicyTypeDefinition-0-perl">Perl</a></li>
+ <li class=""><a href="#examples-A1PolicyManagement-getPolicyTypeDefinition-0-python">Python</a></li>
+ <li class=""><a href="#examples-A1PolicyManagement-getPolicyTypeDefinition-0-rust">Rust</a></li>
</ul>
<div class="tab-content">
- <div class="tab-pane active" id="examples-A1PolicyManagement-getPolicyType-0-curl">
+ <div class="tab-pane active" id="examples-A1PolicyManagement-getPolicyTypeDefinition-0-curl">
<pre class="prettyprint"><code class="language-bsh">curl -X GET \
- -H "Accept: */*" \
+ -H "Accept: application/json,application/problem+json" \
"http://localhost/a1-policy/v2/policy-types/{policytype_id}"
</code></pre>
</div>
- <div class="tab-pane" id="examples-A1PolicyManagement-getPolicyType-0-java">
+ <div class="tab-pane" id="examples-A1PolicyManagement-getPolicyTypeDefinition-0-java">
<pre class="prettyprint"><code class="language-java">import org.openapitools.client.*;
import org.openapitools.client.auth.*;
import org.openapitools.client.model.*;
@@ -3683,10 +3392,10 @@ public class A1PolicyManagementApiExample {
String policytypeId = policytypeId_example; // String |
try {
- policytype_v2 result = apiInstance.getPolicyType(policytypeId);
+ policy_type_definition result = apiInstance.getPolicyTypeDefinition(policytypeId);
System.out.println(result);
} catch (ApiException e) {
- System.err.println("Exception when calling A1PolicyManagementApi#getPolicyType");
+ System.err.println("Exception when calling A1PolicyManagementApi#getPolicyTypeDefinition");
e.printStackTrace();
}
}
@@ -3694,7 +3403,7 @@ public class A1PolicyManagementApiExample {
</code></pre>
</div>
- <div class="tab-pane" id="examples-A1PolicyManagement-getPolicyType-0-android">
+ <div class="tab-pane" id="examples-A1PolicyManagement-getPolicyTypeDefinition-0-android">
<pre class="prettyprint"><code class="language-java">import org.openapitools.client.api.A1PolicyManagementApi;
public class A1PolicyManagementApiExample {
@@ -3703,29 +3412,28 @@ public class A1PolicyManagementApiExample {
String policytypeId = policytypeId_example; // String |
try {
- policytype_v2 result = apiInstance.getPolicyType(policytypeId);
+ policy_type_definition result = apiInstance.getPolicyTypeDefinition(policytypeId);
System.out.println(result);
} catch (ApiException e) {
- System.err.println("Exception when calling A1PolicyManagementApi#getPolicyType");
+ System.err.println("Exception when calling A1PolicyManagementApi#getPolicyTypeDefinition");
e.printStackTrace();
}
}
}</code></pre>
</div>
<!--
- <div class="tab-pane" id="examples-A1PolicyManagement-getPolicyType-0-groovy">
+ <div class="tab-pane" id="examples-A1PolicyManagement-getPolicyTypeDefinition-0-groovy">
<pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
</div> -->
- <div class="tab-pane" id="examples-A1PolicyManagement-getPolicyType-0-objc">
+ <div class="tab-pane" id="examples-A1PolicyManagement-getPolicyTypeDefinition-0-objc">
<pre class="prettyprint"><code class="language-cpp">
// Create an instance of the API class
A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init];
String *policytypeId = policytypeId_example; // (default to null)
-// Returns a policy type definition
-[apiInstance getPolicyTypeWith:policytypeId
- completionHandler: ^(policytype_v2 output, NSError* error) {
+[apiInstance getPolicyTypeDefinitionWith:policytypeId
+ completionHandler: ^(policy_type_definition output, NSError* error) {
if (output) {
NSLog(@"%@", output);
}
@@ -3736,7 +3444,7 @@ String *policytypeId = policytypeId_example; // (default to null)
</code></pre>
</div>
- <div class="tab-pane" id="examples-A1PolicyManagement-getPolicyType-0-javascript">
+ <div class="tab-pane" id="examples-A1PolicyManagement-getPolicyTypeDefinition-0-javascript">
<pre class="prettyprint"><code class="language-js">var A1PolicyManagementService = require('a1_policy_management_service');
// Create an instance of the API class
@@ -3750,14 +3458,14 @@ var callback = function(error, data, response) {
console.log('API called successfully. Returned data: ' + data);
}
};
-api.getPolicyType(policytypeId, callback);
+api.getPolicyTypeDefinition(policytypeId, callback);
</code></pre>
</div>
- <!--<div class="tab-pane" id="examples-A1PolicyManagement-getPolicyType-0-angular">
+ <!--<div class="tab-pane" id="examples-A1PolicyManagement-getPolicyTypeDefinition-0-angular">
<pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
</div>-->
- <div class="tab-pane" id="examples-A1PolicyManagement-getPolicyType-0-csharp">
+ <div class="tab-pane" id="examples-A1PolicyManagement-getPolicyTypeDefinition-0-csharp">
<pre class="prettyprint"><code class="language-cs">using System;
using System.Diagnostics;
using Org.OpenAPITools.Api;
@@ -3766,7 +3474,7 @@ using Org.OpenAPITools.Model;
namespace Example
{
- public class getPolicyTypeExample
+ public class getPolicyTypeDefinitionExample
{
public void main()
{
@@ -3776,11 +3484,10 @@ namespace Example
var policytypeId = policytypeId_example; // String | (default to null)
try {
- // Returns a policy type definition
- policytype_v2 result = apiInstance.getPolicyType(policytypeId);
+ policy_type_definition result = apiInstance.getPolicyTypeDefinition(policytypeId);
Debug.WriteLine(result);
} catch (Exception e) {
- Debug.Print("Exception when calling A1PolicyManagementApi.getPolicyType: " + e.Message );
+ Debug.Print("Exception when calling A1PolicyManagementApi.getPolicyTypeDefinition: " + e.Message );
}
}
}
@@ -3788,7 +3495,7 @@ namespace Example
</code></pre>
</div>
- <div class="tab-pane" id="examples-A1PolicyManagement-getPolicyType-0-php">
+ <div class="tab-pane" id="examples-A1PolicyManagement-getPolicyTypeDefinition-0-php">
<pre class="prettyprint"><code class="language-php"><&#63;php
require_once(__DIR__ . '/vendor/autoload.php');
@@ -3797,15 +3504,15 @@ $api_instance = new OpenAPITools\Client\Api\A1PolicyManagementApi();
$policytypeId = policytypeId_example; // String |
try {
- $result = $api_instance->getPolicyType($policytypeId);
+ $result = $api_instance->getPolicyTypeDefinition($policytypeId);
print_r($result);
} catch (Exception $e) {
- echo 'Exception when calling A1PolicyManagementApi->getPolicyType: ', $e->getMessage(), PHP_EOL;
+ echo 'Exception when calling A1PolicyManagementApi->getPolicyTypeDefinition: ', $e->getMessage(), PHP_EOL;
}
?></code></pre>
</div>
- <div class="tab-pane" id="examples-A1PolicyManagement-getPolicyType-0-perl">
+ <div class="tab-pane" id="examples-A1PolicyManagement-getPolicyTypeDefinition-0-perl">
<pre class="prettyprint"><code class="language-perl">use Data::Dumper;
use WWW::OPenAPIClient::Configuration;
use WWW::OPenAPIClient::A1PolicyManagementApi;
@@ -3815,15 +3522,15 @@ my $api_instance = WWW::OPenAPIClient::A1PolicyManagementApi->new();
my $policytypeId = policytypeId_example; # String |
eval {
- my $result = $api_instance->getPolicyType(policytypeId => $policytypeId);
+ my $result = $api_instance->getPolicyTypeDefinition(policytypeId => $policytypeId);
print Dumper($result);
};
if ($@) {
- warn "Exception when calling A1PolicyManagementApi->getPolicyType: $@\n";
+ warn "Exception when calling A1PolicyManagementApi->getPolicyTypeDefinition: $@\n";
}</code></pre>
</div>
- <div class="tab-pane" id="examples-A1PolicyManagement-getPolicyType-0-python">
+ <div class="tab-pane" id="examples-A1PolicyManagement-getPolicyTypeDefinition-0-python">
<pre class="prettyprint"><code class="language-python">from __future__ import print_statement
import time
import openapi_client
@@ -3835,21 +3542,20 @@ api_instance = openapi_client.A1PolicyManagementApi()
policytypeId = policytypeId_example # String | (default to null)
try:
- # Returns a policy type definition
- api_response = api_instance.get_policy_type(policytypeId)
+ api_response = api_instance.get_policy_type_definition(policytypeId)
pprint(api_response)
except ApiException as e:
- print("Exception when calling A1PolicyManagementApi->getPolicyType: %s\n" % e)</code></pre>
+ print("Exception when calling A1PolicyManagementApi->getPolicyTypeDefinition: %s\n" % e)</code></pre>
</div>
- <div class="tab-pane" id="examples-A1PolicyManagement-getPolicyType-0-rust">
+ <div class="tab-pane" id="examples-A1PolicyManagement-getPolicyTypeDefinition-0-rust">
<pre class="prettyprint"><code class="language-rust">extern crate A1PolicyManagementApi;
pub fn main() {
let policytypeId = policytypeId_example; // String
let mut context = A1PolicyManagementApi::Context::default();
- let result = client.getPolicyType(policytypeId, &context).wait();
+ let result = client.getPolicyTypeDefinition(policytypeId, &context).wait();
println!("{:?}", result);
}
@@ -3874,7 +3580,7 @@ pub fn main() {
<td>
- <div id="d2e199_getPolicyType_policytypeId">
+ <div id="d2e199_getPolicyTypeDefinition_policytypeId">
<div class="json-schema-view">
<div class="primitive">
<span class="type">
@@ -3897,23 +3603,23 @@ pub fn main() {
<h2>Responses</h2>
- <h3 id="examples-A1PolicyManagement-getPolicyType-title-200"></h3>
- <p id="examples-A1PolicyManagement-getPolicyType-description-200" class="marked"></p>
+ <h3 id="examples-A1PolicyManagement-getPolicyTypeDefinition-title-200"></h3>
+ <p id="examples-A1PolicyManagement-getPolicyTypeDefinition-description-200" class="marked"></p>
<script>
- var responseA1PolicyManagement200_description = `Policy type`;
+ var responseA1PolicyManagement200_description = `OK - schema of the given policy type`;
var responseA1PolicyManagement200_description_break = responseA1PolicyManagement200_description.indexOf('\n');
if (responseA1PolicyManagement200_description_break == -1) {
- $("#examples-A1PolicyManagement-getPolicyType-title-200").text("Status: 200 - " + responseA1PolicyManagement200_description);
+ $("#examples-A1PolicyManagement-getPolicyTypeDefinition-title-200").text("Status: 200 - " + responseA1PolicyManagement200_description);
} else {
- $("#examples-A1PolicyManagement-getPolicyType-title-200").text("Status: 200 - " + responseA1PolicyManagement200_description.substring(0, responseA1PolicyManagement200_description_break));
- $("#examples-A1PolicyManagement-getPolicyType-description-200").html(responseA1PolicyManagement200_description.substring(responseA1PolicyManagement200_description_break));
+ $("#examples-A1PolicyManagement-getPolicyTypeDefinition-title-200").text("Status: 200 - " + responseA1PolicyManagement200_description.substring(0, responseA1PolicyManagement200_description_break));
+ $("#examples-A1PolicyManagement-getPolicyTypeDefinition-description-200").html(responseA1PolicyManagement200_description.substring(responseA1PolicyManagement200_description_break));
}
</script>
- <ul id="responses-detail-A1PolicyManagement-getPolicyType-200" class="nav nav-tabs nav-tabs-examples" >
+ <ul id="responses-detail-A1PolicyManagement-getPolicyTypeDefinition-200" class="nav nav-tabs nav-tabs-examples" >
<li class="active">
- <a data-toggle="tab" href="#responses-A1PolicyManagement-getPolicyType-200-schema">Schema</a>
+ <a data-toggle="tab" href="#responses-A1PolicyManagement-getPolicyTypeDefinition-200-schema">Schema</a>
</li>
@@ -3922,27 +3628,23 @@ pub fn main() {
</ul>
- <div class="tab-content" id="responses-A1PolicyManagement-getPolicyType-200-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-A1PolicyManagement-getPolicyType-200-schema">
- <div id="responses-A1PolicyManagement-getPolicyType-schema-200" class="exampleStyle">
+ <div class="tab-content" id="responses-A1PolicyManagement-getPolicyTypeDefinition-200-wrapper" style='margin-bottom: 10px;'>
+ <div class="tab-pane active" id="responses-A1PolicyManagement-getPolicyTypeDefinition-200-schema">
+ <div id="responses-A1PolicyManagement-getPolicyTypeDefinition-schema-200" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "Policy type",
- "content" : {
- "*/*" : {
- "schema" : {
- "$ref" : "#/components/schemas/policytype_v2"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -3953,81 +3655,37 @@ pub fn main() {
}
var view = new JSONSchemaView(schema, 3);
- $('#responses-A1PolicyManagement-getPolicyType-200-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-A1PolicyManagement-getPolicyType-schema-200');
+ $('#responses-A1PolicyManagement-getPolicyTypeDefinition-200-schema-data').val(JSON.stringify(schema));
+ var result = $('#responses-A1PolicyManagement-getPolicyTypeDefinition-schema-200');
result.empty();
result.append(view.render());
});
</script>
</div>
- <input id='responses-A1PolicyManagement-getPolicyType-200-schema-data' type='hidden' value=''></input>
+ <input id='responses-A1PolicyManagement-getPolicyTypeDefinition-200-schema-data' type='hidden' value=''></input>
</div>
</div>
- <h3 id="examples-A1PolicyManagement-getPolicyType-title-404"></h3>
- <p id="examples-A1PolicyManagement-getPolicyType-description-404" class="marked"></p>
+ <h3 id="examples-A1PolicyManagement-getPolicyTypeDefinition-title-404"></h3>
+ <p id="examples-A1PolicyManagement-getPolicyTypeDefinition-description-404" class="marked"></p>
<script>
- var responseA1PolicyManagement404_description = `Policy type is not found`;
+ var responseA1PolicyManagement404_description = `Not Found`;
var responseA1PolicyManagement404_description_break = responseA1PolicyManagement404_description.indexOf('\n');
if (responseA1PolicyManagement404_description_break == -1) {
- $("#examples-A1PolicyManagement-getPolicyType-title-404").text("Status: 404 - " + responseA1PolicyManagement404_description);
+ $("#examples-A1PolicyManagement-getPolicyTypeDefinition-title-404").text("Status: 404 - " + responseA1PolicyManagement404_description);
} else {
- $("#examples-A1PolicyManagement-getPolicyType-title-404").text("Status: 404 - " + responseA1PolicyManagement404_description.substring(0, responseA1PolicyManagement404_description_break));
- $("#examples-A1PolicyManagement-getPolicyType-description-404").html(responseA1PolicyManagement404_description.substring(responseA1PolicyManagement404_description_break));
+ $("#examples-A1PolicyManagement-getPolicyTypeDefinition-title-404").text("Status: 404 - " + responseA1PolicyManagement404_description.substring(0, responseA1PolicyManagement404_description_break));
+ $("#examples-A1PolicyManagement-getPolicyTypeDefinition-description-404").html(responseA1PolicyManagement404_description.substring(responseA1PolicyManagement404_description_break));
}
</script>
- <ul id="responses-detail-A1PolicyManagement-getPolicyType-404" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-A1PolicyManagement-getPolicyType-404-schema">Schema</a>
- </li>
-
-
+ <ul id="responses-detail-A1PolicyManagement-getPolicyTypeDefinition-404" class="nav nav-tabs nav-tabs-examples" >
</ul>
- <div class="tab-content" id="responses-A1PolicyManagement-getPolicyType-404-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-A1PolicyManagement-getPolicyType-404-schema">
- <div id="responses-A1PolicyManagement-getPolicyType-schema-404" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = {
- "description" : "Policy type is not found",
- "content" : {
- "*/*" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
-};
- 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-A1PolicyManagement-getPolicyType-404-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-A1PolicyManagement-getPolicyType-schema-404');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-A1PolicyManagement-getPolicyType-404-schema-data' type='hidden' value=''></input>
- </div>
+ <div class="tab-content" id="responses-A1PolicyManagement-getPolicyTypeDefinition-404-wrapper" style='margin-bottom: 10px;'>
</div>
</article>
</div>
@@ -4036,12 +3694,12 @@ pub fn main() {
<article id="api-A1PolicyManagement-getPolicyTypes-0" data-group="User" data-name="getPolicyTypes" data-version="0">
<div class="pull-left">
<h1>getPolicyTypes</h1>
- <p>Query policy type identities</p>
+ <p></p>
</div>
<div class="pull-right"></div>
<div class="clearfix"></div>
<p></p>
- <p class="marked"></p>
+ <p class="marked">Query policy type identities</p>
<p></p>
<br />
<pre class="prettyprint language-html prettyprinted" data-type="get"><code><span class="pln">/a1-policy/v2/policy-types</span></code></pre>
@@ -4066,7 +3724,7 @@ pub fn main() {
<div class="tab-content">
<div class="tab-pane active" id="examples-A1PolicyManagement-getPolicyTypes-0-curl">
<pre class="prettyprint"><code class="language-bsh">curl -X GET \
- -H "Accept: application/json" \
+ -H "Accept: application/json,application/problem+json" \
"http://localhost/a1-policy/v2/policy-types?ric_id=ricId_example&type_name=typeName_example&compatible_with_version=compatibleWithVersion_example"
</code></pre>
</div>
@@ -4089,7 +3747,7 @@ public class A1PolicyManagementApiExample {
String compatibleWithVersion = compatibleWithVersion_example; // String | 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.
try {
- policytype_id_list_v2 result = apiInstance.getPolicyTypes(ricId, typeName, compatibleWithVersion);
+ policy_type_id_list result = apiInstance.getPolicyTypes(ricId, typeName, compatibleWithVersion);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling A1PolicyManagementApi#getPolicyTypes");
@@ -4111,7 +3769,7 @@ public class A1PolicyManagementApiExample {
String compatibleWithVersion = compatibleWithVersion_example; // String | 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.
try {
- policytype_id_list_v2 result = apiInstance.getPolicyTypes(ricId, typeName, compatibleWithVersion);
+ policy_type_id_list result = apiInstance.getPolicyTypes(ricId, typeName, compatibleWithVersion);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling A1PolicyManagementApi#getPolicyTypes");
@@ -4133,11 +3791,10 @@ String *ricId = ricId_example; // Select types for the given Near-RT RIC identit
String *typeName = typeName_example; // Select types with the given type name (type identity has the format <typename_version>) (optional) (default to null)
String *compatibleWithVersion = compatibleWithVersion_example; // 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. (optional) (default to null)
-// Query policy type identities
[apiInstance getPolicyTypesWith:ricId
typeName:typeName
compatibleWithVersion:compatibleWithVersion
- completionHandler: ^(policytype_id_list_v2 output, NSError* error) {
+ completionHandler: ^(policy_type_id_list output, NSError* error) {
if (output) {
NSLog(@"%@", output);
}
@@ -4194,8 +3851,7 @@ namespace Example
var compatibleWithVersion = compatibleWithVersion_example; // String | 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. (optional) (default to null)
try {
- // Query policy type identities
- policytype_id_list_v2 result = apiInstance.getPolicyTypes(ricId, typeName, compatibleWithVersion);
+ policy_type_id_list result = apiInstance.getPolicyTypes(ricId, typeName, compatibleWithVersion);
Debug.WriteLine(result);
} catch (Exception e) {
Debug.Print("Exception when calling A1PolicyManagementApi.getPolicyTypes: " + e.Message );
@@ -4259,7 +3915,6 @@ typeName = typeName_example # String | Select types with the given type name (ty
compatibleWithVersion = compatibleWithVersion_example # String | 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. (optional) (default to null)
try:
- # Query policy type identities
api_response = api_instance.get_policy_types(ricId=ricId, typeName=typeName, compatibleWithVersion=compatibleWithVersion)
pprint(api_response)
except ApiException as e:
@@ -4366,7 +4021,7 @@ Select types that are compatible with the given version. This parameter is only
<h3 id="examples-A1PolicyManagement-getPolicyTypes-title-200"></h3>
<p id="examples-A1PolicyManagement-getPolicyTypes-description-200" class="marked"></p>
<script>
- var responseA1PolicyManagement200_description = `Policy type IDs`;
+ var responseA1PolicyManagement200_description = `OK - Policy Type IDs Found`;
var responseA1PolicyManagement200_description_break = responseA1PolicyManagement200_description.indexOf('\n');
if (responseA1PolicyManagement200_description_break == -1) {
$("#examples-A1PolicyManagement-getPolicyTypes-title-200").text("Status: 200 - " + responseA1PolicyManagement200_description);
@@ -4393,22 +4048,18 @@ Select types that are compatible with the given version. This parameter is only
<div id="responses-A1PolicyManagement-getPolicyTypes-schema-200" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "Policy type IDs",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policytype_id_list_v2"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -4432,7 +4083,7 @@ Select types that are compatible with the given version. This parameter is only
<h3 id="examples-A1PolicyManagement-getPolicyTypes-title-404"></h3>
<p id="examples-A1PolicyManagement-getPolicyTypes-description-404" class="marked"></p>
<script>
- var responseA1PolicyManagement404_description = `Near-RT RIC is not found`;
+ var responseA1PolicyManagement404_description = `Not Found`;
var responseA1PolicyManagement404_description_break = responseA1PolicyManagement404_description.indexOf('\n');
if (responseA1PolicyManagement404_description_break == -1) {
$("#examples-A1PolicyManagement-getPolicyTypes-title-404").text("Status: 404 - " + responseA1PolicyManagement404_description);
@@ -4444,56 +4095,12 @@ Select types that are compatible with the given version. This parameter is only
<ul id="responses-detail-A1PolicyManagement-getPolicyTypes-404" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-A1PolicyManagement-getPolicyTypes-404-schema">Schema</a>
- </li>
-
-
</ul>
<div class="tab-content" id="responses-A1PolicyManagement-getPolicyTypes-404-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-A1PolicyManagement-getPolicyTypes-404-schema">
- <div id="responses-A1PolicyManagement-getPolicyTypes-schema-404" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = {
- "description" : "Near-RT RIC is not found",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
-};
- 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-A1PolicyManagement-getPolicyTypes-404-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-A1PolicyManagement-getPolicyTypes-schema-404');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-A1PolicyManagement-getPolicyTypes-404-schema-data' type='hidden' value=''></input>
- </div>
</div>
</article>
</div>
@@ -4502,12 +4109,12 @@ Select types that are compatible with the given version. This parameter is only
<article id="api-A1PolicyManagement-putPolicy-0" data-group="User" data-name="putPolicy" data-version="0">
<div class="pull-left">
<h1>putPolicy</h1>
- <p>Create or update a policy</p>
+ <p></p>
</div>
<div class="pull-right"></div>
<div class="clearfix"></div>
<p></p>
- <p class="marked"></p>
+ <p class="marked">Create or update a policy</p>
<p></p>
<br />
<pre class="prettyprint language-html prettyprinted" data-type="put"><code><span class="pln">/a1-policy/v2/policies</span></code></pre>
@@ -4532,7 +4139,7 @@ Select types that are compatible with the given version. This parameter is only
<div class="tab-content">
<div class="tab-pane active" id="examples-A1PolicyManagement-putPolicy-0-curl">
<pre class="prettyprint"><code class="language-bsh">curl -X PUT \
- -H "Accept: application/json" \
+ -H "Accept: application/json,application/problem+json" \
-H "Content-Type: application/json" \
"http://localhost/a1-policy/v2/policies" \
-d ''
@@ -4552,10 +4159,10 @@ public class A1PolicyManagementApiExample {
// Create an instance of the API class
A1PolicyManagementApi apiInstance = new A1PolicyManagementApi();
- PolicyInfoV2 policyInfoV2 = ; // PolicyInfoV2 |
+ PolicyInfo policyInfo = ; // PolicyInfo |
try {
- Object result = apiInstance.putPolicy(policyInfoV2);
+ Object result = apiInstance.putPolicy(policyInfo);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling A1PolicyManagementApi#putPolicy");
@@ -4572,10 +4179,10 @@ public class A1PolicyManagementApiExample {
public class A1PolicyManagementApiExample {
public static void main(String[] args) {
A1PolicyManagementApi apiInstance = new A1PolicyManagementApi();
- PolicyInfoV2 policyInfoV2 = ; // PolicyInfoV2 |
+ PolicyInfo policyInfo = ; // PolicyInfo |
try {
- Object result = apiInstance.putPolicy(policyInfoV2);
+ Object result = apiInstance.putPolicy(policyInfo);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling A1PolicyManagementApi#putPolicy");
@@ -4593,10 +4200,9 @@ public class A1PolicyManagementApiExample {
// Create an instance of the API class
A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init];
-PolicyInfoV2 *policyInfoV2 = ; //
+PolicyInfo *policyInfo = ; //
-// Create or update a policy
-[apiInstance putPolicyWith:policyInfoV2
+[apiInstance putPolicyWith:policyInfo
completionHandler: ^(Object output, NSError* error) {
if (output) {
NSLog(@"%@", output);
@@ -4613,7 +4219,7 @@ PolicyInfoV2 *policyInfoV2 = ; //
// Create an instance of the API class
var api = new A1PolicyManagementService.A1PolicyManagementApi()
-var policyInfoV2 = ; // {PolicyInfoV2}
+var policyInfo = ; // {PolicyInfo}
var callback = function(error, data, response) {
if (error) {
@@ -4622,7 +4228,7 @@ var callback = function(error, data, response) {
console.log('API called successfully. Returned data: ' + data);
}
};
-api.putPolicy(policyInfoV2, callback);
+api.putPolicy(policyInfo, callback);
</code></pre>
</div>
@@ -4645,11 +4251,10 @@ namespace Example
// Create an instance of the API class
var apiInstance = new A1PolicyManagementApi();
- var policyInfoV2 = new PolicyInfoV2(); // PolicyInfoV2 |
+ var policyInfo = new PolicyInfo(); // PolicyInfo |
try {
- // Create or update a policy
- Object result = apiInstance.putPolicy(policyInfoV2);
+ Object result = apiInstance.putPolicy(policyInfo);
Debug.WriteLine(result);
} catch (Exception e) {
Debug.Print("Exception when calling A1PolicyManagementApi.putPolicy: " + e.Message );
@@ -4666,10 +4271,10 @@ require_once(__DIR__ . '/vendor/autoload.php');
// Create an instance of the API class
$api_instance = new OpenAPITools\Client\Api\A1PolicyManagementApi();
-$policyInfoV2 = ; // PolicyInfoV2 |
+$policyInfo = ; // PolicyInfo |
try {
- $result = $api_instance->putPolicy($policyInfoV2);
+ $result = $api_instance->putPolicy($policyInfo);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling A1PolicyManagementApi->putPolicy: ', $e->getMessage(), PHP_EOL;
@@ -4684,10 +4289,10 @@ use WWW::OPenAPIClient::A1PolicyManagementApi;
# Create an instance of the API class
my $api_instance = WWW::OPenAPIClient::A1PolicyManagementApi->new();
-my $policyInfoV2 = WWW::OPenAPIClient::Object::PolicyInfoV2->new(); # PolicyInfoV2 |
+my $policyInfo = WWW::OPenAPIClient::Object::PolicyInfo->new(); # PolicyInfo |
eval {
- my $result = $api_instance->putPolicy(policyInfoV2 => $policyInfoV2);
+ my $result = $api_instance->putPolicy(policyInfo => $policyInfo);
print Dumper($result);
};
if ($@) {
@@ -4704,11 +4309,10 @@ from pprint import pprint
# Create an instance of the API class
api_instance = openapi_client.A1PolicyManagementApi()
-policyInfoV2 = # PolicyInfoV2 |
+policyInfo = # PolicyInfo |
try:
- # Create or update a policy
- api_response = api_instance.put_policy(policyInfoV2)
+ api_response = api_instance.put_policy(policyInfo)
pprint(api_response)
except ApiException as e:
print("Exception when calling A1PolicyManagementApi->putPolicy: %s\n" % e)</code></pre>
@@ -4718,10 +4322,10 @@ except ApiException as e:
<pre class="prettyprint"><code class="language-rust">extern crate A1PolicyManagementApi;
pub fn main() {
- let policyInfoV2 = ; // PolicyInfoV2
+ let policyInfo = ; // PolicyInfo
let mut context = A1PolicyManagementApi::Context::default();
- let result = client.putPolicy(policyInfoV2, &context).wait();
+ let result = client.putPolicy(policyInfo, &context).wait();
println!("{:?}", result);
}
@@ -4744,20 +4348,20 @@ pub fn main() {
<th width="150px">Name</th>
<th>Description</th>
</tr>
- <tr><td style="width:150px;">policyInfoV2 <span style="color:red;">*</span></td>
+ <tr><td style="width:150px;">policyInfo <span style="color:red;">*</span></td>
<td>
<p class="marked"></p>
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_info_v2"
- }
- }
- },
- "required" : true
+ var schemaWrapper = {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_info"
+ }
+ }
+ },
+ "required" : true
};
var schema = findNode('schema',schemaWrapper).schema;
@@ -4774,12 +4378,12 @@ $(document).ready(function() {
}
var view = new JSONSchemaView(schema,2,{isBodyParam: true});
- var result = $('#d2e199_putPolicy_policyInfoV2');
+ var result = $('#d2e199_putPolicy_policyInfo');
result.empty();
result.append(view.render());
});
</script>
-<div id="d2e199_putPolicy_policyInfoV2"></div>
+<div id="d2e199_putPolicy_policyInfo"></div>
</td>
</tr>
@@ -4791,7 +4395,7 @@ $(document).ready(function() {
<h3 id="examples-A1PolicyManagement-putPolicy-title-200"></h3>
<p id="examples-A1PolicyManagement-putPolicy-description-200" class="marked"></p>
<script>
- var responseA1PolicyManagement200_description = `Policy updated`;
+ var responseA1PolicyManagement200_description = `OK - Policy updated`;
var responseA1PolicyManagement200_description_break = responseA1PolicyManagement200_description.indexOf('\n');
if (responseA1PolicyManagement200_description_break == -1) {
$("#examples-A1PolicyManagement-putPolicy-title-200").text("Status: 200 - " + responseA1PolicyManagement200_description);
@@ -4818,22 +4422,18 @@ $(document).ready(function() {
<div id="responses-A1PolicyManagement-putPolicy-schema-200" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "Policy updated",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/void"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -4857,7 +4457,7 @@ $(document).ready(function() {
<h3 id="examples-A1PolicyManagement-putPolicy-title-201"></h3>
<p id="examples-A1PolicyManagement-putPolicy-description-201" class="marked"></p>
<script>
- var responseA1PolicyManagement201_description = `Policy created`;
+ var responseA1PolicyManagement201_description = `Created - Policy created`;
var responseA1PolicyManagement201_description_break = responseA1PolicyManagement201_description.indexOf('\n');
if (responseA1PolicyManagement201_description_break == -1) {
$("#examples-A1PolicyManagement-putPolicy-title-201").text("Status: 201 - " + responseA1PolicyManagement201_description);
@@ -4884,22 +4484,18 @@ $(document).ready(function() {
<div id="responses-A1PolicyManagement-putPolicy-schema-201" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "Policy created",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/void"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -4923,7 +4519,7 @@ $(document).ready(function() {
<h3 id="examples-A1PolicyManagement-putPolicy-title-423"></h3>
<p id="examples-A1PolicyManagement-putPolicy-description-423" class="marked"></p>
<script>
- var responseA1PolicyManagement423_description = `Near-RT RIC is not operational`;
+ var responseA1PolicyManagement423_description = `Locked - HTTP Status code which can be used when the state is Locked`;
var responseA1PolicyManagement423_description_break = responseA1PolicyManagement423_description.indexOf('\n');
if (responseA1PolicyManagement423_description_break == -1) {
$("#examples-A1PolicyManagement-putPolicy-title-423").text("Status: 423 - " + responseA1PolicyManagement423_description);
@@ -4950,22 +4546,18 @@ $(document).ready(function() {
<div id="responses-A1PolicyManagement-putPolicy-schema-423" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "Near-RT RIC is not operational",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -4986,72 +4578,6 @@ $(document).ready(function() {
<input id='responses-A1PolicyManagement-putPolicy-423-schema-data' type='hidden' value=''></input>
</div>
</div>
- <h3 id="examples-A1PolicyManagement-putPolicy-title-404"></h3>
- <p id="examples-A1PolicyManagement-putPolicy-description-404" class="marked"></p>
- <script>
- var responseA1PolicyManagement404_description = `Near-RT RIC or policy type is not found`;
- var responseA1PolicyManagement404_description_break = responseA1PolicyManagement404_description.indexOf('\n');
- if (responseA1PolicyManagement404_description_break == -1) {
- $("#examples-A1PolicyManagement-putPolicy-title-404").text("Status: 404 - " + responseA1PolicyManagement404_description);
- } else {
- $("#examples-A1PolicyManagement-putPolicy-title-404").text("Status: 404 - " + responseA1PolicyManagement404_description.substring(0, responseA1PolicyManagement404_description_break));
- $("#examples-A1PolicyManagement-putPolicy-description-404").html(responseA1PolicyManagement404_description.substring(responseA1PolicyManagement404_description_break));
- }
- </script>
-
-
- <ul id="responses-detail-A1PolicyManagement-putPolicy-404" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-A1PolicyManagement-putPolicy-404-schema">Schema</a>
- </li>
-
-
-
-
- </ul>
-
-
- <div class="tab-content" id="responses-A1PolicyManagement-putPolicy-404-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-A1PolicyManagement-putPolicy-404-schema">
- <div id="responses-A1PolicyManagement-putPolicy-schema-404" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = {
- "description" : "Near-RT RIC or policy type is not found",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
-};
- 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-A1PolicyManagement-putPolicy-404-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-A1PolicyManagement-putPolicy-schema-404');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-A1PolicyManagement-putPolicy-404-schema-data' type='hidden' value=''></input>
- </div>
- </div>
</article>
</div>
<hr>
@@ -5320,32 +4846,18 @@ pub fn main() {
<div id="responses-Actuator-health-schema-200" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -5631,32 +5143,18 @@ pub fn main() {
<div id="responses-Actuator-healthPath-schema-200" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -5942,22 +5440,18 @@ pub fn main() {
<div id="responses-Actuator-heapdump-schema-200" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "OK",
- "content" : {
- "application/octet-stream" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -6243,32 +5737,18 @@ pub fn main() {
<div id="responses-Actuator-info-schema-200" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -6554,50 +6034,18 @@ pub fn main() {
<div id="responses-Actuator-links-schema-200" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object",
- "additionalProperties" : {
- "type" : "object",
- "additionalProperties" : {
- "$ref" : "#/components/schemas/Link"
- }
- }
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object",
- "additionalProperties" : {
- "type" : "object",
- "additionalProperties" : {
- "$ref" : "#/components/schemas/Link"
- }
- }
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object",
- "additionalProperties" : {
- "type" : "object",
- "additionalProperties" : {
- "$ref" : "#/components/schemas/Link"
- }
- }
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -6883,22 +6331,18 @@ pub fn main() {
<div id="responses-Actuator-logfile-schema-200" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "OK",
- "content" : {
- "text/plain;charset=UTF-8" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -7184,32 +6628,18 @@ pub fn main() {
<div id="responses-Actuator-loggers-schema-200" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -7532,32 +6962,18 @@ pub fn main() {
<div id="responses-Actuator-loggersName-schema-200" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -7871,15 +7287,15 @@ pub fn main() {
<p class="marked"></p>
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "content" : {
- "application/json" : {
- "schema" : {
- "type" : "string",
- "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", "OFF" ]
- }
- }
- }
+ var schemaWrapper = {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "type" : "string",
+ "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", "OFF" ]
+ }
+ }
+ }
};
var schema = findNode('schema',schemaWrapper).schema;
@@ -7940,22 +7356,18 @@ $(document).ready(function() {
<div id="responses-Actuator-loggersName2-schema-200" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "OK",
- "content" : {
- "*/*" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -8241,32 +7653,18 @@ pub fn main() {
<div id="responses-Actuator-metrics-schema-200" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -8589,32 +7987,18 @@ pub fn main() {
<div id="responses-Actuator-metricsRequiredMetricName-schema-200" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -8900,32 +8284,18 @@ pub fn main() {
<div id="responses-Actuator-shutdown-schema-200" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -9211,37 +8581,18 @@ pub fn main() {
<div id="responses-Actuator-threaddump-schema-200" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "OK",
- "content" : {
- "text/plain;charset=UTF-8" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -9302,7 +8653,7 @@ pub fn main() {
<div class="tab-content">
<div class="tab-pane active" id="examples-AuthorizationAPI-performAccessControl-0-curl">
<pre class="prettyprint"><code class="language-bsh">curl -X POST \
- -H "Accept: application/json" \
+ -H "Accept: application/json,application/problem+json" \
-H "Content-Type: application/json" \
"http://localhost/example-authz-check" \
-d ''
@@ -9519,15 +8870,15 @@ pub fn main() {
<p class="marked"></p>
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_authorization"
- }
- }
- },
- "required" : true
+ var schemaWrapper = {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_authorization"
+ }
+ }
+ },
+ "required" : true
};
var schema = findNode('schema',schemaWrapper).schema;
@@ -9588,22 +8939,18 @@ $(document).ready(function() {
<div id="responses-AuthorizationAPI-performAccessControl-schema-200" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "OK",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/authorization_result"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -9624,70 +8971,132 @@ $(document).ready(function() {
<input id='responses-AuthorizationAPI-performAccessControl-200-schema-data' type='hidden' value=''></input>
</div>
</div>
+ <h3 id="examples-AuthorizationAPI-performAccessControl-title-403"></h3>
+ <p id="examples-AuthorizationAPI-performAccessControl-description-403" class="marked"></p>
+ <script>
+ var responseAuthorizationAPI403_description = `Forbidden`;
+ var responseAuthorizationAPI403_description_break = responseAuthorizationAPI403_description.indexOf('\n');
+ if (responseAuthorizationAPI403_description_break == -1) {
+ $("#examples-AuthorizationAPI-performAccessControl-title-403").text("Status: 403 - " + responseAuthorizationAPI403_description);
+ } else {
+ $("#examples-AuthorizationAPI-performAccessControl-title-403").text("Status: 403 - " + responseAuthorizationAPI403_description.substring(0, responseAuthorizationAPI403_description_break));
+ $("#examples-AuthorizationAPI-performAccessControl-description-403").html(responseAuthorizationAPI403_description.substring(responseAuthorizationAPI403_description_break));
+ }
+ </script>
+
+
+ <ul id="responses-detail-AuthorizationAPI-performAccessControl-403" class="nav nav-tabs nav-tabs-examples" >
+ <li class="active">
+ <a data-toggle="tab" href="#responses-AuthorizationAPI-performAccessControl-403-schema">Schema</a>
+ </li>
+
+
+
+
+ </ul>
+
+
+ <div class="tab-content" id="responses-AuthorizationAPI-performAccessControl-403-wrapper" style='margin-bottom: 10px;'>
+ <div class="tab-pane active" id="responses-AuthorizationAPI-performAccessControl-403-schema">
+ <div id="responses-AuthorizationAPI-performAccessControl-schema-403" class="exampleStyle">
+ <script>
+ $(document).ready(function() {
+ var schemaWrapper = ;
+ var schema = findNode('schema',schemaWrapper).schema;
+ if (!schema) {
+ schema = schemaWrapper.schema;
+ }
+ if (schema.$ref != null) {
+ schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$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-AuthorizationAPI-performAccessControl-403-schema-data').val(JSON.stringify(schema));
+ var result = $('#responses-AuthorizationAPI-performAccessControl-schema-403');
+ result.empty();
+ result.append(view.render());
+ });
+ </script>
+ </div>
+ <input id='responses-AuthorizationAPI-performAccessControl-403-schema-data' type='hidden' value=''></input>
+ </div>
+ </div>
</article>
</div>
<hr>
</section>
- <section id="api-HealthCheck">
- <h1>HealthCheck</h1>
- <div id="api-HealthCheck-getStatus">
- <article id="api-HealthCheck-getStatus-0" data-group="User" data-name="getStatus" data-version="0">
+ <section id="api-Configuration">
+ <h1>Configuration</h1>
+ <div id="api-Configuration-getConfiguration">
+ <article id="api-Configuration-getConfiguration-0" data-group="User" data-name="getConfiguration" data-version="0">
<div class="pull-left">
- <h1>getStatus</h1>
- <p>Returns status and statistics of this service</p>
+ <h1>getConfiguration</h1>
+ <p></p>
</div>
<div class="pull-right"></div>
<div class="clearfix"></div>
<p></p>
- <p class="marked"></p>
+ <p class="marked">Returns the contents of the application configuration file</p>
<p></p>
<br />
- <pre class="prettyprint language-html prettyprinted" data-type="get"><code><span class="pln">/a1-policy/v2/status</span></code></pre>
+ <pre class="prettyprint language-html prettyprinted" data-type="get"><code><span class="pln">/a1-policy/v2/configuration</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-HealthCheck-getStatus-0-curl">Curl</a></li>
- <li class=""><a href="#examples-HealthCheck-getStatus-0-java">Java</a></li>
- <li class=""><a href="#examples-HealthCheck-getStatus-0-android">Android</a></li>
- <!--<li class=""><a href="#examples-HealthCheck-getStatus-0-groovy">Groovy</a></li>-->
- <li class=""><a href="#examples-HealthCheck-getStatus-0-objc">Obj-C</a></li>
- <li class=""><a href="#examples-HealthCheck-getStatus-0-javascript">JavaScript</a></li>
- <!--<li class=""><a href="#examples-HealthCheck-getStatus-0-angular">Angular</a></li>-->
- <li class=""><a href="#examples-HealthCheck-getStatus-0-csharp">C#</a></li>
- <li class=""><a href="#examples-HealthCheck-getStatus-0-php">PHP</a></li>
- <li class=""><a href="#examples-HealthCheck-getStatus-0-perl">Perl</a></li>
- <li class=""><a href="#examples-HealthCheck-getStatus-0-python">Python</a></li>
- <li class=""><a href="#examples-HealthCheck-getStatus-0-rust">Rust</a></li>
+ <li class="active"><a href="#examples-Configuration-getConfiguration-0-curl">Curl</a></li>
+ <li class=""><a href="#examples-Configuration-getConfiguration-0-java">Java</a></li>
+ <li class=""><a href="#examples-Configuration-getConfiguration-0-android">Android</a></li>
+ <!--<li class=""><a href="#examples-Configuration-getConfiguration-0-groovy">Groovy</a></li>-->
+ <li class=""><a href="#examples-Configuration-getConfiguration-0-objc">Obj-C</a></li>
+ <li class=""><a href="#examples-Configuration-getConfiguration-0-javascript">JavaScript</a></li>
+ <!--<li class=""><a href="#examples-Configuration-getConfiguration-0-angular">Angular</a></li>-->
+ <li class=""><a href="#examples-Configuration-getConfiguration-0-csharp">C#</a></li>
+ <li class=""><a href="#examples-Configuration-getConfiguration-0-php">PHP</a></li>
+ <li class=""><a href="#examples-Configuration-getConfiguration-0-perl">Perl</a></li>
+ <li class=""><a href="#examples-Configuration-getConfiguration-0-python">Python</a></li>
+ <li class=""><a href="#examples-Configuration-getConfiguration-0-rust">Rust</a></li>
</ul>
<div class="tab-content">
- <div class="tab-pane active" id="examples-HealthCheck-getStatus-0-curl">
+ <div class="tab-pane active" id="examples-Configuration-getConfiguration-0-curl">
<pre class="prettyprint"><code class="language-bsh">curl -X GET \
- -H "Accept: application/json" \
- "http://localhost/a1-policy/v2/status"
+ -H "Accept: application/json,application/problem+json" \
+ "http://localhost/a1-policy/v2/configuration"
</code></pre>
</div>
- <div class="tab-pane" id="examples-HealthCheck-getStatus-0-java">
+ <div class="tab-pane" id="examples-Configuration-getConfiguration-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.HealthCheckApi;
+import org.openapitools.client.api.ConfigurationApi;
import java.io.File;
import java.util.*;
-public class HealthCheckApiExample {
+public class ConfigurationApiExample {
public static void main(String[] args) {
// Create an instance of the API class
- HealthCheckApi apiInstance = new HealthCheckApi();
+ ConfigurationApi apiInstance = new ConfigurationApi();
try {
- status_info_v2 result = apiInstance.getStatus();
+ 'String' result = apiInstance.getConfiguration();
System.out.println(result);
} catch (ApiException e) {
- System.err.println("Exception when calling HealthCheckApi#getStatus");
+ System.err.println("Exception when calling ConfigurationApi#getConfiguration");
e.printStackTrace();
}
}
@@ -9695,36 +9104,35 @@ public class HealthCheckApiExample {
</code></pre>
</div>
- <div class="tab-pane" id="examples-HealthCheck-getStatus-0-android">
- <pre class="prettyprint"><code class="language-java">import org.openapitools.client.api.HealthCheckApi;
+ <div class="tab-pane" id="examples-Configuration-getConfiguration-0-android">
+ <pre class="prettyprint"><code class="language-java">import org.openapitools.client.api.ConfigurationApi;
-public class HealthCheckApiExample {
+public class ConfigurationApiExample {
public static void main(String[] args) {
- HealthCheckApi apiInstance = new HealthCheckApi();
+ ConfigurationApi apiInstance = new ConfigurationApi();
try {
- status_info_v2 result = apiInstance.getStatus();
+ 'String' result = apiInstance.getConfiguration();
System.out.println(result);
} catch (ApiException e) {
- System.err.println("Exception when calling HealthCheckApi#getStatus");
+ System.err.println("Exception when calling ConfigurationApi#getConfiguration");
e.printStackTrace();
}
}
}</code></pre>
</div>
<!--
- <div class="tab-pane" id="examples-HealthCheck-getStatus-0-groovy">
+ <div class="tab-pane" id="examples-Configuration-getConfiguration-0-groovy">
<pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
</div> -->
- <div class="tab-pane" id="examples-HealthCheck-getStatus-0-objc">
+ <div class="tab-pane" id="examples-Configuration-getConfiguration-0-objc">
<pre class="prettyprint"><code class="language-cpp">
// Create an instance of the API class
-HealthCheckApi *apiInstance = [[HealthCheckApi alloc] init];
+ConfigurationApi *apiInstance = [[ConfigurationApi alloc] init];
-// Returns status and statistics of this service
-[apiInstance getStatusWithCompletionHandler:
- ^(status_info_v2 output, NSError* error) {
+[apiInstance getConfigurationWithCompletionHandler:
+ ^('String' output, NSError* error) {
if (output) {
NSLog(@"%@", output);
}
@@ -9735,11 +9143,11 @@ HealthCheckApi *apiInstance = [[HealthCheckApi alloc] init];
</code></pre>
</div>
- <div class="tab-pane" id="examples-HealthCheck-getStatus-0-javascript">
+ <div class="tab-pane" id="examples-Configuration-getConfiguration-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.HealthCheckApi()
+var api = new A1PolicyManagementService.ConfigurationApi()
var callback = function(error, data, response) {
if (error) {
console.error(error);
@@ -9747,14 +9155,14 @@ var callback = function(error, data, response) {
console.log('API called successfully. Returned data: ' + data);
}
};
-api.getStatus(callback);
+api.getConfiguration(callback);
</code></pre>
</div>
- <!--<div class="tab-pane" id="examples-HealthCheck-getStatus-0-angular">
+ <!--<div class="tab-pane" id="examples-Configuration-getConfiguration-0-angular">
<pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
</div>-->
- <div class="tab-pane" id="examples-HealthCheck-getStatus-0-csharp">
+ <div class="tab-pane" id="examples-Configuration-getConfiguration-0-csharp">
<pre class="prettyprint"><code class="language-cs">using System;
using System.Diagnostics;
using Org.OpenAPITools.Api;
@@ -9763,20 +9171,19 @@ using Org.OpenAPITools.Model;
namespace Example
{
- public class getStatusExample
+ public class getConfigurationExample
{
public void main()
{
// Create an instance of the API class
- var apiInstance = new HealthCheckApi();
+ var apiInstance = new ConfigurationApi();
try {
- // Returns status and statistics of this service
- status_info_v2 result = apiInstance.getStatus();
+ 'String' result = apiInstance.getConfiguration();
Debug.WriteLine(result);
} catch (Exception e) {
- Debug.Print("Exception when calling HealthCheckApi.getStatus: " + e.Message );
+ Debug.Print("Exception when calling ConfigurationApi.getConfiguration: " + e.Message );
}
}
}
@@ -9784,40 +9191,40 @@ namespace Example
</code></pre>
</div>
- <div class="tab-pane" id="examples-HealthCheck-getStatus-0-php">
+ <div class="tab-pane" id="examples-Configuration-getConfiguration-0-php">
<pre class="prettyprint"><code class="language-php"><&#63;php
require_once(__DIR__ . '/vendor/autoload.php');
// Create an instance of the API class
-$api_instance = new OpenAPITools\Client\Api\HealthCheckApi();
+$api_instance = new OpenAPITools\Client\Api\ConfigurationApi();
try {
- $result = $api_instance->getStatus();
+ $result = $api_instance->getConfiguration();
print_r($result);
} catch (Exception $e) {
- echo 'Exception when calling HealthCheckApi->getStatus: ', $e->getMessage(), PHP_EOL;
+ echo 'Exception when calling ConfigurationApi->getConfiguration: ', $e->getMessage(), PHP_EOL;
}
?></code></pre>
</div>
- <div class="tab-pane" id="examples-HealthCheck-getStatus-0-perl">
+ <div class="tab-pane" id="examples-Configuration-getConfiguration-0-perl">
<pre class="prettyprint"><code class="language-perl">use Data::Dumper;
use WWW::OPenAPIClient::Configuration;
-use WWW::OPenAPIClient::HealthCheckApi;
+use WWW::OPenAPIClient::ConfigurationApi;
# Create an instance of the API class
-my $api_instance = WWW::OPenAPIClient::HealthCheckApi->new();
+my $api_instance = WWW::OPenAPIClient::ConfigurationApi->new();
eval {
- my $result = $api_instance->getStatus();
+ my $result = $api_instance->getConfiguration();
print Dumper($result);
};
if ($@) {
- warn "Exception when calling HealthCheckApi->getStatus: $@\n";
+ warn "Exception when calling ConfigurationApi->getConfiguration: $@\n";
}</code></pre>
</div>
- <div class="tab-pane" id="examples-HealthCheck-getStatus-0-python">
+ <div class="tab-pane" id="examples-Configuration-getConfiguration-0-python">
<pre class="prettyprint"><code class="language-python">from __future__ import print_statement
import time
import openapi_client
@@ -9825,23 +9232,22 @@ from openapi_client.rest import ApiException
from pprint import pprint
# Create an instance of the API class
-api_instance = openapi_client.HealthCheckApi()
+api_instance = openapi_client.ConfigurationApi()
try:
- # Returns status and statistics of this service
- api_response = api_instance.get_status()
+ api_response = api_instance.get_configuration()
pprint(api_response)
except ApiException as e:
- print("Exception when calling HealthCheckApi->getStatus: %s\n" % e)</code></pre>
+ print("Exception when calling ConfigurationApi->getConfiguration: %s\n" % e)</code></pre>
</div>
- <div class="tab-pane" id="examples-HealthCheck-getStatus-0-rust">
- <pre class="prettyprint"><code class="language-rust">extern crate HealthCheckApi;
+ <div class="tab-pane" id="examples-Configuration-getConfiguration-0-rust">
+ <pre class="prettyprint"><code class="language-rust">extern crate ConfigurationApi;
pub fn main() {
- let mut context = HealthCheckApi::Context::default();
- let result = client.getStatus(&context).wait();
+ let mut context = ConfigurationApi::Context::default();
+ let result = client.getConfiguration(&context).wait();
println!("{:?}", result);
}
@@ -9862,23 +9268,23 @@ pub fn main() {
<h2>Responses</h2>
- <h3 id="examples-HealthCheck-getStatus-title-200"></h3>
- <p id="examples-HealthCheck-getStatus-description-200" class="marked"></p>
+ <h3 id="examples-Configuration-getConfiguration-title-200"></h3>
+ <p id="examples-Configuration-getConfiguration-description-200" class="marked"></p>
<script>
- var responseHealthCheck200_description = `Service is living`;
- var responseHealthCheck200_description_break = responseHealthCheck200_description.indexOf('\n');
- if (responseHealthCheck200_description_break == -1) {
- $("#examples-HealthCheck-getStatus-title-200").text("Status: 200 - " + responseHealthCheck200_description);
+ var responseConfiguration200_description = `OK - Configuration`;
+ var responseConfiguration200_description_break = responseConfiguration200_description.indexOf('\n');
+ if (responseConfiguration200_description_break == -1) {
+ $("#examples-Configuration-getConfiguration-title-200").text("Status: 200 - " + responseConfiguration200_description);
} else {
- $("#examples-HealthCheck-getStatus-title-200").text("Status: 200 - " + responseHealthCheck200_description.substring(0, responseHealthCheck200_description_break));
- $("#examples-HealthCheck-getStatus-description-200").html(responseHealthCheck200_description.substring(responseHealthCheck200_description_break));
+ $("#examples-Configuration-getConfiguration-title-200").text("Status: 200 - " + responseConfiguration200_description.substring(0, responseConfiguration200_description_break));
+ $("#examples-Configuration-getConfiguration-description-200").html(responseConfiguration200_description.substring(responseConfiguration200_description_break));
}
</script>
- <ul id="responses-detail-HealthCheck-getStatus-200" class="nav nav-tabs nav-tabs-examples" >
+ <ul id="responses-detail-Configuration-getConfiguration-200" class="nav nav-tabs nav-tabs-examples" >
<li class="active">
- <a data-toggle="tab" href="#responses-HealthCheck-getStatus-200-schema">Schema</a>
+ <a data-toggle="tab" href="#responses-Configuration-getConfiguration-200-schema">Schema</a>
</li>
@@ -9887,27 +9293,23 @@ pub fn main() {
</ul>
- <div class="tab-content" id="responses-HealthCheck-getStatus-200-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-HealthCheck-getStatus-200-schema">
- <div id="responses-HealthCheck-getStatus-schema-200" class="exampleStyle">
+ <div class="tab-content" id="responses-Configuration-getConfiguration-200-wrapper" style='margin-bottom: 10px;'>
+ <div class="tab-pane active" id="responses-Configuration-getConfiguration-200-schema">
+ <div id="responses-Configuration-getConfiguration-schema-200" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "Service is living",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/status_info_v2"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -9918,77 +9320,102 @@ pub fn main() {
}
var view = new JSONSchemaView(schema, 3);
- $('#responses-HealthCheck-getStatus-200-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-HealthCheck-getStatus-schema-200');
+ $('#responses-Configuration-getConfiguration-200-schema-data').val(JSON.stringify(schema));
+ var result = $('#responses-Configuration-getConfiguration-schema-200');
result.empty();
result.append(view.render());
});
</script>
</div>
- <input id='responses-HealthCheck-getStatus-200-schema-data' type='hidden' value=''></input>
+ <input id='responses-Configuration-getConfiguration-200-schema-data' type='hidden' value=''></input>
</div>
</div>
+ <h3 id="examples-Configuration-getConfiguration-title-404"></h3>
+ <p id="examples-Configuration-getConfiguration-description-404" class="marked"></p>
+ <script>
+ var responseConfiguration404_description = `Not Found`;
+ var responseConfiguration404_description_break = responseConfiguration404_description.indexOf('\n');
+ if (responseConfiguration404_description_break == -1) {
+ $("#examples-Configuration-getConfiguration-title-404").text("Status: 404 - " + responseConfiguration404_description);
+ } else {
+ $("#examples-Configuration-getConfiguration-title-404").text("Status: 404 - " + responseConfiguration404_description.substring(0, responseConfiguration404_description_break));
+ $("#examples-Configuration-getConfiguration-description-404").html(responseConfiguration404_description.substring(responseConfiguration404_description_break));
+ }
+ </script>
+
+
+ <ul id="responses-detail-Configuration-getConfiguration-404" class="nav nav-tabs nav-tabs-examples" >
+
+
+ </ul>
+
+
+ <div class="tab-content" id="responses-Configuration-getConfiguration-404-wrapper" style='margin-bottom: 10px;'>
+ </div>
</article>
</div>
<hr>
- <div id="api-HealthCheck-getStatusV1">
- <article id="api-HealthCheck-getStatusV1-0" data-group="User" data-name="getStatusV1" data-version="0">
+ <div id="api-Configuration-putConfiguration">
+ <article id="api-Configuration-putConfiguration-0" data-group="User" data-name="putConfiguration" data-version="0">
<div class="pull-left">
- <h1>getStatusV1</h1>
- <p>Returns status and statistics of this service</p>
+ <h1>putConfiguration</h1>
+ <p></p>
</div>
<div class="pull-right"></div>
<div class="clearfix"></div>
<p></p>
- <p class="marked"></p>
+ <p class="marked">Replace the current configuration with the given configuration</p>
<p></p>
<br />
- <pre class="prettyprint language-html prettyprinted" data-type="get"><code><span class="pln">/status</span></code></pre>
+ <pre class="prettyprint language-html prettyprinted" data-type="put"><code><span class="pln">/a1-policy/v2/configuration</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-HealthCheck-getStatusV1-0-curl">Curl</a></li>
- <li class=""><a href="#examples-HealthCheck-getStatusV1-0-java">Java</a></li>
- <li class=""><a href="#examples-HealthCheck-getStatusV1-0-android">Android</a></li>
- <!--<li class=""><a href="#examples-HealthCheck-getStatusV1-0-groovy">Groovy</a></li>-->
- <li class=""><a href="#examples-HealthCheck-getStatusV1-0-objc">Obj-C</a></li>
- <li class=""><a href="#examples-HealthCheck-getStatusV1-0-javascript">JavaScript</a></li>
- <!--<li class=""><a href="#examples-HealthCheck-getStatusV1-0-angular">Angular</a></li>-->
- <li class=""><a href="#examples-HealthCheck-getStatusV1-0-csharp">C#</a></li>
- <li class=""><a href="#examples-HealthCheck-getStatusV1-0-php">PHP</a></li>
- <li class=""><a href="#examples-HealthCheck-getStatusV1-0-perl">Perl</a></li>
- <li class=""><a href="#examples-HealthCheck-getStatusV1-0-python">Python</a></li>
- <li class=""><a href="#examples-HealthCheck-getStatusV1-0-rust">Rust</a></li>
+ <li class="active"><a href="#examples-Configuration-putConfiguration-0-curl">Curl</a></li>
+ <li class=""><a href="#examples-Configuration-putConfiguration-0-java">Java</a></li>
+ <li class=""><a href="#examples-Configuration-putConfiguration-0-android">Android</a></li>
+ <!--<li class=""><a href="#examples-Configuration-putConfiguration-0-groovy">Groovy</a></li>-->
+ <li class=""><a href="#examples-Configuration-putConfiguration-0-objc">Obj-C</a></li>
+ <li class=""><a href="#examples-Configuration-putConfiguration-0-javascript">JavaScript</a></li>
+ <!--<li class=""><a href="#examples-Configuration-putConfiguration-0-angular">Angular</a></li>-->
+ <li class=""><a href="#examples-Configuration-putConfiguration-0-csharp">C#</a></li>
+ <li class=""><a href="#examples-Configuration-putConfiguration-0-php">PHP</a></li>
+ <li class=""><a href="#examples-Configuration-putConfiguration-0-perl">Perl</a></li>
+ <li class=""><a href="#examples-Configuration-putConfiguration-0-python">Python</a></li>
+ <li class=""><a href="#examples-Configuration-putConfiguration-0-rust">Rust</a></li>
</ul>
<div class="tab-content">
- <div class="tab-pane active" id="examples-HealthCheck-getStatusV1-0-curl">
- <pre class="prettyprint"><code class="language-bsh">curl -X GET \
- -H "Accept: */*" \
- "http://localhost/status"
+ <div class="tab-pane active" id="examples-Configuration-putConfiguration-0-curl">
+ <pre class="prettyprint"><code class="language-bsh">curl -X PUT \
+ -H "Accept: */*,application/problem+json" \
+ -H "Content-Type: application/json" \
+ "http://localhost/a1-policy/v2/configuration" \
+ -d ''
</code></pre>
</div>
- <div class="tab-pane" id="examples-HealthCheck-getStatusV1-0-java">
+ <div class="tab-pane" id="examples-Configuration-putConfiguration-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.HealthCheckApi;
+import org.openapitools.client.api.ConfigurationApi;
import java.io.File;
import java.util.*;
-public class HealthCheckApiExample {
+public class ConfigurationApiExample {
public static void main(String[] args) {
// Create an instance of the API class
- HealthCheckApi apiInstance = new HealthCheckApi();
+ ConfigurationApi apiInstance = new ConfigurationApi();
+ Object body = Object; // Object |
try {
- 'String' result = apiInstance.getStatusV1();
+ Object result = apiInstance.putConfiguration(body);
System.out.println(result);
} catch (ApiException e) {
- System.err.println("Exception when calling HealthCheckApi#getStatusV1");
+ System.err.println("Exception when calling ConfigurationApi#putConfiguration");
e.printStackTrace();
}
}
@@ -9996,36 +9423,37 @@ public class HealthCheckApiExample {
</code></pre>
</div>
- <div class="tab-pane" id="examples-HealthCheck-getStatusV1-0-android">
- <pre class="prettyprint"><code class="language-java">import org.openapitools.client.api.HealthCheckApi;
+ <div class="tab-pane" id="examples-Configuration-putConfiguration-0-android">
+ <pre class="prettyprint"><code class="language-java">import org.openapitools.client.api.ConfigurationApi;
-public class HealthCheckApiExample {
+public class ConfigurationApiExample {
public static void main(String[] args) {
- HealthCheckApi apiInstance = new HealthCheckApi();
+ ConfigurationApi apiInstance = new ConfigurationApi();
+ Object body = Object; // Object |
try {
- 'String' result = apiInstance.getStatusV1();
+ Object result = apiInstance.putConfiguration(body);
System.out.println(result);
} catch (ApiException e) {
- System.err.println("Exception when calling HealthCheckApi#getStatusV1");
+ System.err.println("Exception when calling ConfigurationApi#putConfiguration");
e.printStackTrace();
}
}
}</code></pre>
</div>
<!--
- <div class="tab-pane" id="examples-HealthCheck-getStatusV1-0-groovy">
+ <div class="tab-pane" id="examples-Configuration-putConfiguration-0-groovy">
<pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
</div> -->
- <div class="tab-pane" id="examples-HealthCheck-getStatusV1-0-objc">
+ <div class="tab-pane" id="examples-Configuration-putConfiguration-0-objc">
<pre class="prettyprint"><code class="language-cpp">
// Create an instance of the API class
-HealthCheckApi *apiInstance = [[HealthCheckApi alloc] init];
+ConfigurationApi *apiInstance = [[ConfigurationApi alloc] init];
+Object *body = Object; //
-// Returns status and statistics of this service
-[apiInstance getStatusV1WithCompletionHandler:
- ^('String' output, NSError* error) {
+[apiInstance putConfigurationWith:body
+ completionHandler: ^(Object output, NSError* error) {
if (output) {
NSLog(@"%@", output);
}
@@ -10036,11 +9464,13 @@ HealthCheckApi *apiInstance = [[HealthCheckApi alloc] init];
</code></pre>
</div>
- <div class="tab-pane" id="examples-HealthCheck-getStatusV1-0-javascript">
+ <div class="tab-pane" id="examples-Configuration-putConfiguration-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.HealthCheckApi()
+var api = new A1PolicyManagementService.ConfigurationApi()
+var body = Object; // {Object}
+
var callback = function(error, data, response) {
if (error) {
console.error(error);
@@ -10048,14 +9478,14 @@ var callback = function(error, data, response) {
console.log('API called successfully. Returned data: ' + data);
}
};
-api.getStatusV1(callback);
+api.putConfiguration(body, callback);
</code></pre>
</div>
- <!--<div class="tab-pane" id="examples-HealthCheck-getStatusV1-0-angular">
+ <!--<div class="tab-pane" id="examples-Configuration-putConfiguration-0-angular">
<pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
</div>-->
- <div class="tab-pane" id="examples-HealthCheck-getStatusV1-0-csharp">
+ <div class="tab-pane" id="examples-Configuration-putConfiguration-0-csharp">
<pre class="prettyprint"><code class="language-cs">using System;
using System.Diagnostics;
using Org.OpenAPITools.Api;
@@ -10064,20 +9494,20 @@ using Org.OpenAPITools.Model;
namespace Example
{
- public class getStatusV1Example
+ public class putConfigurationExample
{
public void main()
{
// Create an instance of the API class
- var apiInstance = new HealthCheckApi();
+ var apiInstance = new ConfigurationApi();
+ var body = Object; // Object |
try {
- // Returns status and statistics of this service
- 'String' result = apiInstance.getStatusV1();
+ Object result = apiInstance.putConfiguration(body);
Debug.WriteLine(result);
} catch (Exception e) {
- Debug.Print("Exception when calling HealthCheckApi.getStatusV1: " + e.Message );
+ Debug.Print("Exception when calling ConfigurationApi.putConfiguration: " + e.Message );
}
}
}
@@ -10085,40 +9515,42 @@ namespace Example
</code></pre>
</div>
- <div class="tab-pane" id="examples-HealthCheck-getStatusV1-0-php">
+ <div class="tab-pane" id="examples-Configuration-putConfiguration-0-php">
<pre class="prettyprint"><code class="language-php"><&#63;php
require_once(__DIR__ . '/vendor/autoload.php');
// Create an instance of the API class
-$api_instance = new OpenAPITools\Client\Api\HealthCheckApi();
+$api_instance = new OpenAPITools\Client\Api\ConfigurationApi();
+$body = Object; // Object |
try {
- $result = $api_instance->getStatusV1();
+ $result = $api_instance->putConfiguration($body);
print_r($result);
} catch (Exception $e) {
- echo 'Exception when calling HealthCheckApi->getStatusV1: ', $e->getMessage(), PHP_EOL;
+ echo 'Exception when calling ConfigurationApi->putConfiguration: ', $e->getMessage(), PHP_EOL;
}
?></code></pre>
</div>
- <div class="tab-pane" id="examples-HealthCheck-getStatusV1-0-perl">
+ <div class="tab-pane" id="examples-Configuration-putConfiguration-0-perl">
<pre class="prettyprint"><code class="language-perl">use Data::Dumper;
use WWW::OPenAPIClient::Configuration;
-use WWW::OPenAPIClient::HealthCheckApi;
+use WWW::OPenAPIClient::ConfigurationApi;
# Create an instance of the API class
-my $api_instance = WWW::OPenAPIClient::HealthCheckApi->new();
+my $api_instance = WWW::OPenAPIClient::ConfigurationApi->new();
+my $body = WWW::OPenAPIClient::Object::Object->new(); # Object |
eval {
- my $result = $api_instance->getStatusV1();
+ my $result = $api_instance->putConfiguration(body => $body);
print Dumper($result);
};
if ($@) {
- warn "Exception when calling HealthCheckApi->getStatusV1: $@\n";
+ warn "Exception when calling ConfigurationApi->putConfiguration: $@\n";
}</code></pre>
</div>
- <div class="tab-pane" id="examples-HealthCheck-getStatusV1-0-python">
+ <div class="tab-pane" id="examples-Configuration-putConfiguration-0-python">
<pre class="prettyprint"><code class="language-python">from __future__ import print_statement
import time
import openapi_client
@@ -10126,23 +9558,24 @@ from openapi_client.rest import ApiException
from pprint import pprint
# Create an instance of the API class
-api_instance = openapi_client.HealthCheckApi()
+api_instance = openapi_client.ConfigurationApi()
+body = Object # Object |
try:
- # Returns status and statistics of this service
- api_response = api_instance.get_status_v1()
+ api_response = api_instance.put_configuration(body)
pprint(api_response)
except ApiException as e:
- print("Exception when calling HealthCheckApi->getStatusV1: %s\n" % e)</code></pre>
+ print("Exception when calling ConfigurationApi->putConfiguration: %s\n" % e)</code></pre>
</div>
- <div class="tab-pane" id="examples-HealthCheck-getStatusV1-0-rust">
- <pre class="prettyprint"><code class="language-rust">extern crate HealthCheckApi;
+ <div class="tab-pane" id="examples-Configuration-putConfiguration-0-rust">
+ <pre class="prettyprint"><code class="language-rust">extern crate ConfigurationApi;
pub fn main() {
+ let body = Object; // Object
- let mut context = HealthCheckApi::Context::default();
- let result = client.getStatusV1(&context).wait();
+ let mut context = ConfigurationApi::Context::default();
+ let result = client.putConfiguration(body, &context).wait();
println!("{:?}", result);
}
@@ -10159,27 +9592,73 @@ pub fn main() {
+ <div class="methodsubtabletitle">Body parameters</div>
+ <table id="methodsubtable">
+ <tr>
+ <th width="150px">Name</th>
+ <th>Description</th>
+ </tr>
+ <tr><td style="width:150px;">body <span style="color:red;">*</span></td>
+<td>
+<p class="marked"></p>
+<script>
+$(document).ready(function() {
+ var schemaWrapper = {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ },
+ "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_putConfiguration_body');
+ result.empty();
+ result.append(view.render());
+});
+</script>
+<div id="d2e199_putConfiguration_body"></div>
+</td>
+</tr>
+
+ </table>
<h2>Responses</h2>
- <h3 id="examples-HealthCheck-getStatusV1-title-200"></h3>
- <p id="examples-HealthCheck-getStatusV1-description-200" class="marked"></p>
+ <h3 id="examples-Configuration-putConfiguration-title-200"></h3>
+ <p id="examples-Configuration-putConfiguration-description-200" class="marked"></p>
<script>
- var responseHealthCheck200_description = `Service is living`;
- var responseHealthCheck200_description_break = responseHealthCheck200_description.indexOf('\n');
- if (responseHealthCheck200_description_break == -1) {
- $("#examples-HealthCheck-getStatusV1-title-200").text("Status: 200 - " + responseHealthCheck200_description);
+ var responseConfiguration200_description = `OK - Configuration updated`;
+ var responseConfiguration200_description_break = responseConfiguration200_description.indexOf('\n');
+ if (responseConfiguration200_description_break == -1) {
+ $("#examples-Configuration-putConfiguration-title-200").text("Status: 200 - " + responseConfiguration200_description);
} else {
- $("#examples-HealthCheck-getStatusV1-title-200").text("Status: 200 - " + responseHealthCheck200_description.substring(0, responseHealthCheck200_description_break));
- $("#examples-HealthCheck-getStatusV1-description-200").html(responseHealthCheck200_description.substring(responseHealthCheck200_description_break));
+ $("#examples-Configuration-putConfiguration-title-200").text("Status: 200 - " + responseConfiguration200_description.substring(0, responseConfiguration200_description_break));
+ $("#examples-Configuration-putConfiguration-description-200").html(responseConfiguration200_description.substring(responseConfiguration200_description_break));
}
</script>
- <ul id="responses-detail-HealthCheck-getStatusV1-200" class="nav nav-tabs nav-tabs-examples" >
+ <ul id="responses-detail-Configuration-putConfiguration-200" class="nav nav-tabs nav-tabs-examples" >
<li class="active">
- <a data-toggle="tab" href="#responses-HealthCheck-getStatusV1-200-schema">Schema</a>
+ <a data-toggle="tab" href="#responses-Configuration-putConfiguration-200-schema">Schema</a>
</li>
@@ -10188,27 +9667,23 @@ pub fn main() {
</ul>
- <div class="tab-content" id="responses-HealthCheck-getStatusV1-200-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-HealthCheck-getStatusV1-200-schema">
- <div id="responses-HealthCheck-getStatusV1-schema-200" class="exampleStyle">
+ <div class="tab-content" id="responses-Configuration-putConfiguration-200-wrapper" style='margin-bottom: 10px;'>
+ <div class="tab-pane active" id="responses-Configuration-putConfiguration-200-schema">
+ <div id="responses-Configuration-putConfiguration-schema-200" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "Service is living",
- "content" : {
- "*/*" : {
- "schema" : {
- "type" : "string"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -10219,80 +9694,142 @@ pub fn main() {
}
var view = new JSONSchemaView(schema, 3);
- $('#responses-HealthCheck-getStatusV1-200-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-HealthCheck-getStatusV1-schema-200');
+ $('#responses-Configuration-putConfiguration-200-schema-data').val(JSON.stringify(schema));
+ var result = $('#responses-Configuration-putConfiguration-schema-200');
result.empty();
result.append(view.render());
});
</script>
</div>
- <input id='responses-HealthCheck-getStatusV1-200-schema-data' type='hidden' value=''></input>
+ <input id='responses-Configuration-putConfiguration-200-schema-data' type='hidden' value=''></input>
+ </div>
+ </div>
+ <h3 id="examples-Configuration-putConfiguration-title-400"></h3>
+ <p id="examples-Configuration-putConfiguration-description-400" class="marked"></p>
+ <script>
+ var responseConfiguration400_description = `Bad Request`;
+ var responseConfiguration400_description_break = responseConfiguration400_description.indexOf('\n');
+ if (responseConfiguration400_description_break == -1) {
+ $("#examples-Configuration-putConfiguration-title-400").text("Status: 400 - " + responseConfiguration400_description);
+ } else {
+ $("#examples-Configuration-putConfiguration-title-400").text("Status: 400 - " + responseConfiguration400_description.substring(0, responseConfiguration400_description_break));
+ $("#examples-Configuration-putConfiguration-description-400").html(responseConfiguration400_description.substring(responseConfiguration400_description_break));
+ }
+ </script>
+
+
+ <ul id="responses-detail-Configuration-putConfiguration-400" class="nav nav-tabs nav-tabs-examples" >
+ <li class="active">
+ <a data-toggle="tab" href="#responses-Configuration-putConfiguration-400-schema">Schema</a>
+ </li>
+
+
+
+
+ </ul>
+
+
+ <div class="tab-content" id="responses-Configuration-putConfiguration-400-wrapper" style='margin-bottom: 10px;'>
+ <div class="tab-pane active" id="responses-Configuration-putConfiguration-400-schema">
+ <div id="responses-Configuration-putConfiguration-schema-400" class="exampleStyle">
+ <script>
+ $(document).ready(function() {
+ var schemaWrapper = ;
+ var schema = findNode('schema',schemaWrapper).schema;
+ if (!schema) {
+ schema = schemaWrapper.schema;
+ }
+ if (schema.$ref != null) {
+ schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$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-Configuration-putConfiguration-400-schema-data').val(JSON.stringify(schema));
+ var result = $('#responses-Configuration-putConfiguration-schema-400');
+ result.empty();
+ result.append(view.render());
+ });
+ </script>
+ </div>
+ <input id='responses-Configuration-putConfiguration-400-schema-data' type='hidden' value=''></input>
</div>
</div>
</article>
</div>
<hr>
</section>
- <section id="api-ManagementOfConfiguration">
- <h1>ManagementOfConfiguration</h1>
- <div id="api-ManagementOfConfiguration-getConfiguration">
- <article id="api-ManagementOfConfiguration-getConfiguration-0" data-group="User" data-name="getConfiguration" data-version="0">
+ <section id="api-HealthCheck">
+ <h1>HealthCheck</h1>
+ <div id="api-HealthCheck-getStatus">
+ <article id="api-HealthCheck-getStatus-0" data-group="User" data-name="getStatus" data-version="0">
<div class="pull-left">
- <h1>getConfiguration</h1>
- <p>Returns the contents of the application configuration file</p>
+ <h1>getStatus</h1>
+ <p></p>
</div>
<div class="pull-right"></div>
<div class="clearfix"></div>
<p></p>
- <p class="marked"></p>
+ <p class="marked">Returns status and statistics of this service</p>
<p></p>
<br />
- <pre class="prettyprint language-html prettyprinted" data-type="get"><code><span class="pln">/a1-policy/v2/configuration</span></code></pre>
+ <pre class="prettyprint language-html prettyprinted" data-type="get"><code><span class="pln">/a1-policy/v2/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-ManagementOfConfiguration-getConfiguration-0-curl">Curl</a></li>
- <li class=""><a href="#examples-ManagementOfConfiguration-getConfiguration-0-java">Java</a></li>
- <li class=""><a href="#examples-ManagementOfConfiguration-getConfiguration-0-android">Android</a></li>
- <!--<li class=""><a href="#examples-ManagementOfConfiguration-getConfiguration-0-groovy">Groovy</a></li>-->
- <li class=""><a href="#examples-ManagementOfConfiguration-getConfiguration-0-objc">Obj-C</a></li>
- <li class=""><a href="#examples-ManagementOfConfiguration-getConfiguration-0-javascript">JavaScript</a></li>
- <!--<li class=""><a href="#examples-ManagementOfConfiguration-getConfiguration-0-angular">Angular</a></li>-->
- <li class=""><a href="#examples-ManagementOfConfiguration-getConfiguration-0-csharp">C#</a></li>
- <li class=""><a href="#examples-ManagementOfConfiguration-getConfiguration-0-php">PHP</a></li>
- <li class=""><a href="#examples-ManagementOfConfiguration-getConfiguration-0-perl">Perl</a></li>
- <li class=""><a href="#examples-ManagementOfConfiguration-getConfiguration-0-python">Python</a></li>
- <li class=""><a href="#examples-ManagementOfConfiguration-getConfiguration-0-rust">Rust</a></li>
+ <li class="active"><a href="#examples-HealthCheck-getStatus-0-curl">Curl</a></li>
+ <li class=""><a href="#examples-HealthCheck-getStatus-0-java">Java</a></li>
+ <li class=""><a href="#examples-HealthCheck-getStatus-0-android">Android</a></li>
+ <!--<li class=""><a href="#examples-HealthCheck-getStatus-0-groovy">Groovy</a></li>-->
+ <li class=""><a href="#examples-HealthCheck-getStatus-0-objc">Obj-C</a></li>
+ <li class=""><a href="#examples-HealthCheck-getStatus-0-javascript">JavaScript</a></li>
+ <!--<li class=""><a href="#examples-HealthCheck-getStatus-0-angular">Angular</a></li>-->
+ <li class=""><a href="#examples-HealthCheck-getStatus-0-csharp">C#</a></li>
+ <li class=""><a href="#examples-HealthCheck-getStatus-0-php">PHP</a></li>
+ <li class=""><a href="#examples-HealthCheck-getStatus-0-perl">Perl</a></li>
+ <li class=""><a href="#examples-HealthCheck-getStatus-0-python">Python</a></li>
+ <li class=""><a href="#examples-HealthCheck-getStatus-0-rust">Rust</a></li>
</ul>
<div class="tab-content">
- <div class="tab-pane active" id="examples-ManagementOfConfiguration-getConfiguration-0-curl">
+ <div class="tab-pane active" id="examples-HealthCheck-getStatus-0-curl">
<pre class="prettyprint"><code class="language-bsh">curl -X GET \
-H "Accept: application/json" \
- "http://localhost/a1-policy/v2/configuration"
+ "http://localhost/a1-policy/v2/status"
</code></pre>
</div>
- <div class="tab-pane" id="examples-ManagementOfConfiguration-getConfiguration-0-java">
+ <div class="tab-pane" id="examples-HealthCheck-getStatus-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.ManagementOfConfigurationApi;
+import org.openapitools.client.api.HealthCheckApi;
import java.io.File;
import java.util.*;
-public class ManagementOfConfigurationApiExample {
+public class HealthCheckApiExample {
public static void main(String[] args) {
// Create an instance of the API class
- ManagementOfConfigurationApi apiInstance = new ManagementOfConfigurationApi();
+ HealthCheckApi apiInstance = new HealthCheckApi();
try {
- Object result = apiInstance.getConfiguration();
+ status_info result = apiInstance.getStatus();
System.out.println(result);
} catch (ApiException e) {
- System.err.println("Exception when calling ManagementOfConfigurationApi#getConfiguration");
+ System.err.println("Exception when calling HealthCheckApi#getStatus");
e.printStackTrace();
}
}
@@ -10300,36 +9837,35 @@ public class ManagementOfConfigurationApiExample {
</code></pre>
</div>
- <div class="tab-pane" id="examples-ManagementOfConfiguration-getConfiguration-0-android">
- <pre class="prettyprint"><code class="language-java">import org.openapitools.client.api.ManagementOfConfigurationApi;
+ <div class="tab-pane" id="examples-HealthCheck-getStatus-0-android">
+ <pre class="prettyprint"><code class="language-java">import org.openapitools.client.api.HealthCheckApi;
-public class ManagementOfConfigurationApiExample {
+public class HealthCheckApiExample {
public static void main(String[] args) {
- ManagementOfConfigurationApi apiInstance = new ManagementOfConfigurationApi();
+ HealthCheckApi apiInstance = new HealthCheckApi();
try {
- Object result = apiInstance.getConfiguration();
+ status_info result = apiInstance.getStatus();
System.out.println(result);
} catch (ApiException e) {
- System.err.println("Exception when calling ManagementOfConfigurationApi#getConfiguration");
+ System.err.println("Exception when calling HealthCheckApi#getStatus");
e.printStackTrace();
}
}
}</code></pre>
</div>
<!--
- <div class="tab-pane" id="examples-ManagementOfConfiguration-getConfiguration-0-groovy">
+ <div class="tab-pane" id="examples-HealthCheck-getStatus-0-groovy">
<pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
</div> -->
- <div class="tab-pane" id="examples-ManagementOfConfiguration-getConfiguration-0-objc">
+ <div class="tab-pane" id="examples-HealthCheck-getStatus-0-objc">
<pre class="prettyprint"><code class="language-cpp">
// Create an instance of the API class
-ManagementOfConfigurationApi *apiInstance = [[ManagementOfConfigurationApi alloc] init];
+HealthCheckApi *apiInstance = [[HealthCheckApi alloc] init];
-// Returns the contents of the application configuration file
-[apiInstance getConfigurationWithCompletionHandler:
- ^(Object output, NSError* error) {
+[apiInstance getStatusWithCompletionHandler:
+ ^(status_info output, NSError* error) {
if (output) {
NSLog(@"%@", output);
}
@@ -10340,11 +9876,11 @@ ManagementOfConfigurationApi *apiInstance = [[ManagementOfConfigurationApi alloc
</code></pre>
</div>
- <div class="tab-pane" id="examples-ManagementOfConfiguration-getConfiguration-0-javascript">
+ <div class="tab-pane" id="examples-HealthCheck-getStatus-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.ManagementOfConfigurationApi()
+var api = new A1PolicyManagementService.HealthCheckApi()
var callback = function(error, data, response) {
if (error) {
console.error(error);
@@ -10352,14 +9888,14 @@ var callback = function(error, data, response) {
console.log('API called successfully. Returned data: ' + data);
}
};
-api.getConfiguration(callback);
+api.getStatus(callback);
</code></pre>
</div>
- <!--<div class="tab-pane" id="examples-ManagementOfConfiguration-getConfiguration-0-angular">
+ <!--<div class="tab-pane" id="examples-HealthCheck-getStatus-0-angular">
<pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
</div>-->
- <div class="tab-pane" id="examples-ManagementOfConfiguration-getConfiguration-0-csharp">
+ <div class="tab-pane" id="examples-HealthCheck-getStatus-0-csharp">
<pre class="prettyprint"><code class="language-cs">using System;
using System.Diagnostics;
using Org.OpenAPITools.Api;
@@ -10368,20 +9904,19 @@ using Org.OpenAPITools.Model;
namespace Example
{
- public class getConfigurationExample
+ public class getStatusExample
{
public void main()
{
// Create an instance of the API class
- var apiInstance = new ManagementOfConfigurationApi();
+ var apiInstance = new HealthCheckApi();
try {
- // Returns the contents of the application configuration file
- Object result = apiInstance.getConfiguration();
+ status_info result = apiInstance.getStatus();
Debug.WriteLine(result);
} catch (Exception e) {
- Debug.Print("Exception when calling ManagementOfConfigurationApi.getConfiguration: " + e.Message );
+ Debug.Print("Exception when calling HealthCheckApi.getStatus: " + e.Message );
}
}
}
@@ -10389,40 +9924,40 @@ namespace Example
</code></pre>
</div>
- <div class="tab-pane" id="examples-ManagementOfConfiguration-getConfiguration-0-php">
+ <div class="tab-pane" id="examples-HealthCheck-getStatus-0-php">
<pre class="prettyprint"><code class="language-php"><&#63;php
require_once(__DIR__ . '/vendor/autoload.php');
// Create an instance of the API class
-$api_instance = new OpenAPITools\Client\Api\ManagementOfConfigurationApi();
+$api_instance = new OpenAPITools\Client\Api\HealthCheckApi();
try {
- $result = $api_instance->getConfiguration();
+ $result = $api_instance->getStatus();
print_r($result);
} catch (Exception $e) {
- echo 'Exception when calling ManagementOfConfigurationApi->getConfiguration: ', $e->getMessage(), PHP_EOL;
+ echo 'Exception when calling HealthCheckApi->getStatus: ', $e->getMessage(), PHP_EOL;
}
?></code></pre>
</div>
- <div class="tab-pane" id="examples-ManagementOfConfiguration-getConfiguration-0-perl">
+ <div class="tab-pane" id="examples-HealthCheck-getStatus-0-perl">
<pre class="prettyprint"><code class="language-perl">use Data::Dumper;
use WWW::OPenAPIClient::Configuration;
-use WWW::OPenAPIClient::ManagementOfConfigurationApi;
+use WWW::OPenAPIClient::HealthCheckApi;
# Create an instance of the API class
-my $api_instance = WWW::OPenAPIClient::ManagementOfConfigurationApi->new();
+my $api_instance = WWW::OPenAPIClient::HealthCheckApi->new();
eval {
- my $result = $api_instance->getConfiguration();
+ my $result = $api_instance->getStatus();
print Dumper($result);
};
if ($@) {
- warn "Exception when calling ManagementOfConfigurationApi->getConfiguration: $@\n";
+ warn "Exception when calling HealthCheckApi->getStatus: $@\n";
}</code></pre>
</div>
- <div class="tab-pane" id="examples-ManagementOfConfiguration-getConfiguration-0-python">
+ <div class="tab-pane" id="examples-HealthCheck-getStatus-0-python">
<pre class="prettyprint"><code class="language-python">from __future__ import print_statement
import time
import openapi_client
@@ -10430,23 +9965,22 @@ from openapi_client.rest import ApiException
from pprint import pprint
# Create an instance of the API class
-api_instance = openapi_client.ManagementOfConfigurationApi()
+api_instance = openapi_client.HealthCheckApi()
try:
- # Returns the contents of the application configuration file
- api_response = api_instance.get_configuration()
+ api_response = api_instance.get_status()
pprint(api_response)
except ApiException as e:
- print("Exception when calling ManagementOfConfigurationApi->getConfiguration: %s\n" % e)</code></pre>
+ print("Exception when calling HealthCheckApi->getStatus: %s\n" % e)</code></pre>
</div>
- <div class="tab-pane" id="examples-ManagementOfConfiguration-getConfiguration-0-rust">
- <pre class="prettyprint"><code class="language-rust">extern crate ManagementOfConfigurationApi;
+ <div class="tab-pane" id="examples-HealthCheck-getStatus-0-rust">
+ <pre class="prettyprint"><code class="language-rust">extern crate HealthCheckApi;
pub fn main() {
- let mut context = ManagementOfConfigurationApi::Context::default();
- let result = client.getConfiguration(&context).wait();
+ let mut context = HealthCheckApi::Context::default();
+ let result = client.getStatus(&context).wait();
println!("{:?}", result);
}
@@ -10467,23 +10001,23 @@ pub fn main() {
<h2>Responses</h2>
- <h3 id="examples-ManagementOfConfiguration-getConfiguration-title-200"></h3>
- <p id="examples-ManagementOfConfiguration-getConfiguration-description-200" class="marked"></p>
+ <h3 id="examples-HealthCheck-getStatus-title-200"></h3>
+ <p id="examples-HealthCheck-getStatus-description-200" class="marked"></p>
<script>
- var responseManagementOfConfiguration200_description = `Configuration`;
- var responseManagementOfConfiguration200_description_break = responseManagementOfConfiguration200_description.indexOf('\n');
- if (responseManagementOfConfiguration200_description_break == -1) {
- $("#examples-ManagementOfConfiguration-getConfiguration-title-200").text("Status: 200 - " + responseManagementOfConfiguration200_description);
+ var responseHealthCheck200_description = `OK- Service is living Ok`;
+ var responseHealthCheck200_description_break = responseHealthCheck200_description.indexOf('\n');
+ if (responseHealthCheck200_description_break == -1) {
+ $("#examples-HealthCheck-getStatus-title-200").text("Status: 200 - " + responseHealthCheck200_description);
} else {
- $("#examples-ManagementOfConfiguration-getConfiguration-title-200").text("Status: 200 - " + responseManagementOfConfiguration200_description.substring(0, responseManagementOfConfiguration200_description_break));
- $("#examples-ManagementOfConfiguration-getConfiguration-description-200").html(responseManagementOfConfiguration200_description.substring(responseManagementOfConfiguration200_description_break));
+ $("#examples-HealthCheck-getStatus-title-200").text("Status: 200 - " + responseHealthCheck200_description.substring(0, responseHealthCheck200_description_break));
+ $("#examples-HealthCheck-getStatus-description-200").html(responseHealthCheck200_description.substring(responseHealthCheck200_description_break));
}
</script>
- <ul id="responses-detail-ManagementOfConfiguration-getConfiguration-200" class="nav nav-tabs nav-tabs-examples" >
+ <ul id="responses-detail-HealthCheck-getStatus-200" class="nav nav-tabs nav-tabs-examples" >
<li class="active">
- <a data-toggle="tab" href="#responses-ManagementOfConfiguration-getConfiguration-200-schema">Schema</a>
+ <a data-toggle="tab" href="#responses-HealthCheck-getStatus-200-schema">Schema</a>
</li>
@@ -10492,93 +10026,23 @@ pub fn main() {
</ul>
- <div class="tab-content" id="responses-ManagementOfConfiguration-getConfiguration-200-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-ManagementOfConfiguration-getConfiguration-200-schema">
- <div id="responses-ManagementOfConfiguration-getConfiguration-schema-200" class="exampleStyle">
+ <div class="tab-content" id="responses-HealthCheck-getStatus-200-wrapper" style='margin-bottom: 10px;'>
+ <div class="tab-pane active" id="responses-HealthCheck-getStatus-200-schema">
+ <div id="responses-HealthCheck-getStatus-schema-200" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "Configuration",
- "content" : {
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
-};
+ var schemaWrapper = ;
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);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
});
- }
-
- var view = new JSONSchemaView(schema, 3);
- $('#responses-ManagementOfConfiguration-getConfiguration-200-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-ManagementOfConfiguration-getConfiguration-schema-200');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-ManagementOfConfiguration-getConfiguration-200-schema-data' type='hidden' value=''></input>
- </div>
- </div>
- <h3 id="examples-ManagementOfConfiguration-getConfiguration-title-404"></h3>
- <p id="examples-ManagementOfConfiguration-getConfiguration-description-404" class="marked"></p>
- <script>
- var responseManagementOfConfiguration404_description = `File is not found or readable`;
- var responseManagementOfConfiguration404_description_break = responseManagementOfConfiguration404_description.indexOf('\n');
- if (responseManagementOfConfiguration404_description_break == -1) {
- $("#examples-ManagementOfConfiguration-getConfiguration-title-404").text("Status: 404 - " + responseManagementOfConfiguration404_description);
- } else {
- $("#examples-ManagementOfConfiguration-getConfiguration-title-404").text("Status: 404 - " + responseManagementOfConfiguration404_description.substring(0, responseManagementOfConfiguration404_description_break));
- $("#examples-ManagementOfConfiguration-getConfiguration-description-404").html(responseManagementOfConfiguration404_description.substring(responseManagementOfConfiguration404_description_break));
- }
- </script>
-
-
- <ul id="responses-detail-ManagementOfConfiguration-getConfiguration-404" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-ManagementOfConfiguration-getConfiguration-404-schema">Schema</a>
- </li>
-
-
-
-
- </ul>
-
-
- <div class="tab-content" id="responses-ManagementOfConfiguration-getConfiguration-404-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-ManagementOfConfiguration-getConfiguration-404-schema">
- <div id="responses-ManagementOfConfiguration-getConfiguration-schema-404" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = {
- "description" : "File is not found or readable",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
-};
- 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 {
@@ -10589,80 +10053,77 @@ pub fn main() {
}
var view = new JSONSchemaView(schema, 3);
- $('#responses-ManagementOfConfiguration-getConfiguration-404-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-ManagementOfConfiguration-getConfiguration-schema-404');
+ $('#responses-HealthCheck-getStatus-200-schema-data').val(JSON.stringify(schema));
+ var result = $('#responses-HealthCheck-getStatus-schema-200');
result.empty();
result.append(view.render());
});
</script>
</div>
- <input id='responses-ManagementOfConfiguration-getConfiguration-404-schema-data' type='hidden' value=''></input>
+ <input id='responses-HealthCheck-getStatus-200-schema-data' type='hidden' value=''></input>
</div>
</div>
</article>
</div>
<hr>
- <div id="api-ManagementOfConfiguration-putConfiguration">
- <article id="api-ManagementOfConfiguration-putConfiguration-0" data-group="User" data-name="putConfiguration" data-version="0">
+ <div id="api-HealthCheck-getStatusV1">
+ <article id="api-HealthCheck-getStatusV1-0" data-group="User" data-name="getStatusV1" data-version="0">
<div class="pull-left">
- <h1>putConfiguration</h1>
- <p>Replace the current configuration file with the given configuration</p>
+ <h1>getStatusV1</h1>
+ <p></p>
</div>
<div class="pull-right"></div>
<div class="clearfix"></div>
<p></p>
- <p class="marked"></p>
+ <p class="marked">Returns status and statistics of this service</p>
<p></p>
<br />
- <pre class="prettyprint language-html prettyprinted" data-type="put"><code><span class="pln">/a1-policy/v2/configuration</span></code></pre>
+ <pre class="prettyprint language-html prettyprinted" data-type="get"><code><span class="pln">/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-ManagementOfConfiguration-putConfiguration-0-curl">Curl</a></li>
- <li class=""><a href="#examples-ManagementOfConfiguration-putConfiguration-0-java">Java</a></li>
- <li class=""><a href="#examples-ManagementOfConfiguration-putConfiguration-0-android">Android</a></li>
- <!--<li class=""><a href="#examples-ManagementOfConfiguration-putConfiguration-0-groovy">Groovy</a></li>-->
- <li class=""><a href="#examples-ManagementOfConfiguration-putConfiguration-0-objc">Obj-C</a></li>
- <li class=""><a href="#examples-ManagementOfConfiguration-putConfiguration-0-javascript">JavaScript</a></li>
- <!--<li class=""><a href="#examples-ManagementOfConfiguration-putConfiguration-0-angular">Angular</a></li>-->
- <li class=""><a href="#examples-ManagementOfConfiguration-putConfiguration-0-csharp">C#</a></li>
- <li class=""><a href="#examples-ManagementOfConfiguration-putConfiguration-0-php">PHP</a></li>
- <li class=""><a href="#examples-ManagementOfConfiguration-putConfiguration-0-perl">Perl</a></li>
- <li class=""><a href="#examples-ManagementOfConfiguration-putConfiguration-0-python">Python</a></li>
- <li class=""><a href="#examples-ManagementOfConfiguration-putConfiguration-0-rust">Rust</a></li>
+ <li class="active"><a href="#examples-HealthCheck-getStatusV1-0-curl">Curl</a></li>
+ <li class=""><a href="#examples-HealthCheck-getStatusV1-0-java">Java</a></li>
+ <li class=""><a href="#examples-HealthCheck-getStatusV1-0-android">Android</a></li>
+ <!--<li class=""><a href="#examples-HealthCheck-getStatusV1-0-groovy">Groovy</a></li>-->
+ <li class=""><a href="#examples-HealthCheck-getStatusV1-0-objc">Obj-C</a></li>
+ <li class=""><a href="#examples-HealthCheck-getStatusV1-0-javascript">JavaScript</a></li>
+ <!--<li class=""><a href="#examples-HealthCheck-getStatusV1-0-angular">Angular</a></li>-->
+ <li class=""><a href="#examples-HealthCheck-getStatusV1-0-csharp">C#</a></li>
+ <li class=""><a href="#examples-HealthCheck-getStatusV1-0-php">PHP</a></li>
+ <li class=""><a href="#examples-HealthCheck-getStatusV1-0-perl">Perl</a></li>
+ <li class=""><a href="#examples-HealthCheck-getStatusV1-0-python">Python</a></li>
+ <li class=""><a href="#examples-HealthCheck-getStatusV1-0-rust">Rust</a></li>
</ul>
<div class="tab-content">
- <div class="tab-pane active" id="examples-ManagementOfConfiguration-putConfiguration-0-curl">
- <pre class="prettyprint"><code class="language-bsh">curl -X PUT \
+ <div class="tab-pane active" id="examples-HealthCheck-getStatusV1-0-curl">
+ <pre class="prettyprint"><code class="language-bsh">curl -X GET \
-H "Accept: */*" \
- -H "Content-Type: application/json" \
- "http://localhost/a1-policy/v2/configuration" \
- -d ''
+ "http://localhost/status"
</code></pre>
</div>
- <div class="tab-pane" id="examples-ManagementOfConfiguration-putConfiguration-0-java">
+ <div class="tab-pane" id="examples-HealthCheck-getStatusV1-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.ManagementOfConfigurationApi;
+import org.openapitools.client.api.HealthCheckApi;
import java.io.File;
import java.util.*;
-public class ManagementOfConfigurationApiExample {
+public class HealthCheckApiExample {
public static void main(String[] args) {
// Create an instance of the API class
- ManagementOfConfigurationApi apiInstance = new ManagementOfConfigurationApi();
- Object body = Object; // Object |
+ HealthCheckApi apiInstance = new HealthCheckApi();
try {
- Object result = apiInstance.putConfiguration(body);
+ 'String' result = apiInstance.getStatusV1();
System.out.println(result);
} catch (ApiException e) {
- System.err.println("Exception when calling ManagementOfConfigurationApi#putConfiguration");
+ System.err.println("Exception when calling HealthCheckApi#getStatusV1");
e.printStackTrace();
}
}
@@ -10670,38 +10131,35 @@ public class ManagementOfConfigurationApiExample {
</code></pre>
</div>
- <div class="tab-pane" id="examples-ManagementOfConfiguration-putConfiguration-0-android">
- <pre class="prettyprint"><code class="language-java">import org.openapitools.client.api.ManagementOfConfigurationApi;
+ <div class="tab-pane" id="examples-HealthCheck-getStatusV1-0-android">
+ <pre class="prettyprint"><code class="language-java">import org.openapitools.client.api.HealthCheckApi;
-public class ManagementOfConfigurationApiExample {
+public class HealthCheckApiExample {
public static void main(String[] args) {
- ManagementOfConfigurationApi apiInstance = new ManagementOfConfigurationApi();
- Object body = Object; // Object |
+ HealthCheckApi apiInstance = new HealthCheckApi();
try {
- Object result = apiInstance.putConfiguration(body);
+ 'String' result = apiInstance.getStatusV1();
System.out.println(result);
} catch (ApiException e) {
- System.err.println("Exception when calling ManagementOfConfigurationApi#putConfiguration");
+ System.err.println("Exception when calling HealthCheckApi#getStatusV1");
e.printStackTrace();
}
}
}</code></pre>
</div>
<!--
- <div class="tab-pane" id="examples-ManagementOfConfiguration-putConfiguration-0-groovy">
+ <div class="tab-pane" id="examples-HealthCheck-getStatusV1-0-groovy">
<pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
</div> -->
- <div class="tab-pane" id="examples-ManagementOfConfiguration-putConfiguration-0-objc">
+ <div class="tab-pane" id="examples-HealthCheck-getStatusV1-0-objc">
<pre class="prettyprint"><code class="language-cpp">
// Create an instance of the API class
-ManagementOfConfigurationApi *apiInstance = [[ManagementOfConfigurationApi alloc] init];
-Object *body = Object; //
+HealthCheckApi *apiInstance = [[HealthCheckApi alloc] init];
-// Replace the current configuration file with the given configuration
-[apiInstance putConfigurationWith:body
- completionHandler: ^(Object output, NSError* error) {
+[apiInstance getStatusV1WithCompletionHandler:
+ ^('String' output, NSError* error) {
if (output) {
NSLog(@"%@", output);
}
@@ -10712,13 +10170,11 @@ Object *body = Object; //
</code></pre>
</div>
- <div class="tab-pane" id="examples-ManagementOfConfiguration-putConfiguration-0-javascript">
+ <div class="tab-pane" id="examples-HealthCheck-getStatusV1-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.ManagementOfConfigurationApi()
-var body = Object; // {Object}
-
+var api = new A1PolicyManagementService.HealthCheckApi()
var callback = function(error, data, response) {
if (error) {
console.error(error);
@@ -10726,14 +10182,14 @@ var callback = function(error, data, response) {
console.log('API called successfully. Returned data: ' + data);
}
};
-api.putConfiguration(body, callback);
+api.getStatusV1(callback);
</code></pre>
</div>
- <!--<div class="tab-pane" id="examples-ManagementOfConfiguration-putConfiguration-0-angular">
+ <!--<div class="tab-pane" id="examples-HealthCheck-getStatusV1-0-angular">
<pre class="prettyprint language-json prettyprinted" data-type="json"><code>Coming Soon!</code></pre>
</div>-->
- <div class="tab-pane" id="examples-ManagementOfConfiguration-putConfiguration-0-csharp">
+ <div class="tab-pane" id="examples-HealthCheck-getStatusV1-0-csharp">
<pre class="prettyprint"><code class="language-cs">using System;
using System.Diagnostics;
using Org.OpenAPITools.Api;
@@ -10742,21 +10198,19 @@ using Org.OpenAPITools.Model;
namespace Example
{
- public class putConfigurationExample
+ public class getStatusV1Example
{
public void main()
{
// Create an instance of the API class
- var apiInstance = new ManagementOfConfigurationApi();
- var body = Object; // Object |
+ var apiInstance = new HealthCheckApi();
try {
- // Replace the current configuration file with the given configuration
- Object result = apiInstance.putConfiguration(body);
+ 'String' result = apiInstance.getStatusV1();
Debug.WriteLine(result);
} catch (Exception e) {
- Debug.Print("Exception when calling ManagementOfConfigurationApi.putConfiguration: " + e.Message );
+ Debug.Print("Exception when calling HealthCheckApi.getStatusV1: " + e.Message );
}
}
}
@@ -10764,42 +10218,40 @@ namespace Example
</code></pre>
</div>
- <div class="tab-pane" id="examples-ManagementOfConfiguration-putConfiguration-0-php">
+ <div class="tab-pane" id="examples-HealthCheck-getStatusV1-0-php">
<pre class="prettyprint"><code class="language-php"><&#63;php
require_once(__DIR__ . '/vendor/autoload.php');
// Create an instance of the API class
-$api_instance = new OpenAPITools\Client\Api\ManagementOfConfigurationApi();
-$body = Object; // Object |
+$api_instance = new OpenAPITools\Client\Api\HealthCheckApi();
try {
- $result = $api_instance->putConfiguration($body);
+ $result = $api_instance->getStatusV1();
print_r($result);
} catch (Exception $e) {
- echo 'Exception when calling ManagementOfConfigurationApi->putConfiguration: ', $e->getMessage(), PHP_EOL;
+ echo 'Exception when calling HealthCheckApi->getStatusV1: ', $e->getMessage(), PHP_EOL;
}
?></code></pre>
</div>
- <div class="tab-pane" id="examples-ManagementOfConfiguration-putConfiguration-0-perl">
+ <div class="tab-pane" id="examples-HealthCheck-getStatusV1-0-perl">
<pre class="prettyprint"><code class="language-perl">use Data::Dumper;
use WWW::OPenAPIClient::Configuration;
-use WWW::OPenAPIClient::ManagementOfConfigurationApi;
+use WWW::OPenAPIClient::HealthCheckApi;
# Create an instance of the API class
-my $api_instance = WWW::OPenAPIClient::ManagementOfConfigurationApi->new();
-my $body = WWW::OPenAPIClient::Object::Object->new(); # Object |
+my $api_instance = WWW::OPenAPIClient::HealthCheckApi->new();
eval {
- my $result = $api_instance->putConfiguration(body => $body);
+ my $result = $api_instance->getStatusV1();
print Dumper($result);
};
if ($@) {
- warn "Exception when calling ManagementOfConfigurationApi->putConfiguration: $@\n";
+ warn "Exception when calling HealthCheckApi->getStatusV1: $@\n";
}</code></pre>
</div>
- <div class="tab-pane" id="examples-ManagementOfConfiguration-putConfiguration-0-python">
+ <div class="tab-pane" id="examples-HealthCheck-getStatusV1-0-python">
<pre class="prettyprint"><code class="language-python">from __future__ import print_statement
import time
import openapi_client
@@ -10807,25 +10259,22 @@ from openapi_client.rest import ApiException
from pprint import pprint
# Create an instance of the API class
-api_instance = openapi_client.ManagementOfConfigurationApi()
-body = Object # Object |
+api_instance = openapi_client.HealthCheckApi()
try:
- # Replace the current configuration file with the given configuration
- api_response = api_instance.put_configuration(body)
+ api_response = api_instance.get_status_v1()
pprint(api_response)
except ApiException as e:
- print("Exception when calling ManagementOfConfigurationApi->putConfiguration: %s\n" % e)</code></pre>
+ print("Exception when calling HealthCheckApi->getStatusV1: %s\n" % e)</code></pre>
</div>
- <div class="tab-pane" id="examples-ManagementOfConfiguration-putConfiguration-0-rust">
- <pre class="prettyprint"><code class="language-rust">extern crate ManagementOfConfigurationApi;
+ <div class="tab-pane" id="examples-HealthCheck-getStatusV1-0-rust">
+ <pre class="prettyprint"><code class="language-rust">extern crate HealthCheckApi;
pub fn main() {
- let body = Object; // Object
- let mut context = ManagementOfConfigurationApi::Context::default();
- let result = client.putConfiguration(body, &context).wait();
+ let mut context = HealthCheckApi::Context::default();
+ let result = client.getStatusV1(&context).wait();
println!("{:?}", result);
}
@@ -10842,73 +10291,27 @@ pub fn main() {
- <div class="methodsubtabletitle">Body parameters</div>
- <table id="methodsubtable">
- <tr>
- <th width="150px">Name</th>
- <th>Description</th>
- </tr>
- <tr><td style="width:150px;">body <span style="color:red;">*</span></td>
-<td>
-<p class="marked"></p>
-<script>
-$(document).ready(function() {
- var schemaWrapper = {
- "content" : {
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- }
- },
- "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_putConfiguration_body');
- result.empty();
- result.append(view.render());
-});
-</script>
-<div id="d2e199_putConfiguration_body"></div>
-</td>
-</tr>
-
- </table>
<h2>Responses</h2>
- <h3 id="examples-ManagementOfConfiguration-putConfiguration-title-200"></h3>
- <p id="examples-ManagementOfConfiguration-putConfiguration-description-200" class="marked"></p>
+ <h3 id="examples-HealthCheck-getStatusV1-title-200"></h3>
+ <p id="examples-HealthCheck-getStatusV1-description-200" class="marked"></p>
<script>
- var responseManagementOfConfiguration200_description = `Configuration updated`;
- var responseManagementOfConfiguration200_description_break = responseManagementOfConfiguration200_description.indexOf('\n');
- if (responseManagementOfConfiguration200_description_break == -1) {
- $("#examples-ManagementOfConfiguration-putConfiguration-title-200").text("Status: 200 - " + responseManagementOfConfiguration200_description);
+ var responseHealthCheck200_description = `OK - Service is living`;
+ var responseHealthCheck200_description_break = responseHealthCheck200_description.indexOf('\n');
+ if (responseHealthCheck200_description_break == -1) {
+ $("#examples-HealthCheck-getStatusV1-title-200").text("Status: 200 - " + responseHealthCheck200_description);
} else {
- $("#examples-ManagementOfConfiguration-putConfiguration-title-200").text("Status: 200 - " + responseManagementOfConfiguration200_description.substring(0, responseManagementOfConfiguration200_description_break));
- $("#examples-ManagementOfConfiguration-putConfiguration-description-200").html(responseManagementOfConfiguration200_description.substring(responseManagementOfConfiguration200_description_break));
+ $("#examples-HealthCheck-getStatusV1-title-200").text("Status: 200 - " + responseHealthCheck200_description.substring(0, responseHealthCheck200_description_break));
+ $("#examples-HealthCheck-getStatusV1-description-200").html(responseHealthCheck200_description.substring(responseHealthCheck200_description_break));
}
</script>
- <ul id="responses-detail-ManagementOfConfiguration-putConfiguration-200" class="nav nav-tabs nav-tabs-examples" >
+ <ul id="responses-detail-HealthCheck-getStatusV1-200" class="nav nav-tabs nav-tabs-examples" >
<li class="active">
- <a data-toggle="tab" href="#responses-ManagementOfConfiguration-putConfiguration-200-schema">Schema</a>
+ <a data-toggle="tab" href="#responses-HealthCheck-getStatusV1-200-schema">Schema</a>
</li>
@@ -10917,93 +10320,23 @@ $(document).ready(function() {
</ul>
- <div class="tab-content" id="responses-ManagementOfConfiguration-putConfiguration-200-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-ManagementOfConfiguration-putConfiguration-200-schema">
- <div id="responses-ManagementOfConfiguration-putConfiguration-schema-200" class="exampleStyle">
+ <div class="tab-content" id="responses-HealthCheck-getStatusV1-200-wrapper" style='margin-bottom: 10px;'>
+ <div class="tab-pane active" id="responses-HealthCheck-getStatusV1-200-schema">
+ <div id="responses-HealthCheck-getStatusV1-schema-200" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "Configuration updated",
- "content" : {
- "*/*" : {
- "schema" : {
- "$ref" : "#/components/schemas/void"
- }
- }
- }
-};
+ var schemaWrapper = ;
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);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
});
- }
-
- var view = new JSONSchemaView(schema, 3);
- $('#responses-ManagementOfConfiguration-putConfiguration-200-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-ManagementOfConfiguration-putConfiguration-schema-200');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-ManagementOfConfiguration-putConfiguration-200-schema-data' type='hidden' value=''></input>
- </div>
- </div>
- <h3 id="examples-ManagementOfConfiguration-putConfiguration-title-400"></h3>
- <p id="examples-ManagementOfConfiguration-putConfiguration-description-400" class="marked"></p>
- <script>
- var responseManagementOfConfiguration400_description = `Invalid configuration provided`;
- var responseManagementOfConfiguration400_description_break = responseManagementOfConfiguration400_description.indexOf('\n');
- if (responseManagementOfConfiguration400_description_break == -1) {
- $("#examples-ManagementOfConfiguration-putConfiguration-title-400").text("Status: 400 - " + responseManagementOfConfiguration400_description);
- } else {
- $("#examples-ManagementOfConfiguration-putConfiguration-title-400").text("Status: 400 - " + responseManagementOfConfiguration400_description.substring(0, responseManagementOfConfiguration400_description_break));
- $("#examples-ManagementOfConfiguration-putConfiguration-description-400").html(responseManagementOfConfiguration400_description.substring(responseManagementOfConfiguration400_description_break));
- }
- </script>
-
-
- <ul id="responses-detail-ManagementOfConfiguration-putConfiguration-400" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-ManagementOfConfiguration-putConfiguration-400-schema">Schema</a>
- </li>
-
-
-
-
- </ul>
-
-
- <div class="tab-content" id="responses-ManagementOfConfiguration-putConfiguration-400-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-ManagementOfConfiguration-putConfiguration-400-schema">
- <div id="responses-ManagementOfConfiguration-putConfiguration-schema-400" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = {
- "description" : "Invalid configuration provided",
- "content" : {
- "*/*" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
-};
- 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 {
@@ -11014,80 +10347,14 @@ $(document).ready(function() {
}
var view = new JSONSchemaView(schema, 3);
- $('#responses-ManagementOfConfiguration-putConfiguration-400-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-ManagementOfConfiguration-putConfiguration-schema-400');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-ManagementOfConfiguration-putConfiguration-400-schema-data' type='hidden' value=''></input>
- </div>
- </div>
- <h3 id="examples-ManagementOfConfiguration-putConfiguration-title-500"></h3>
- <p id="examples-ManagementOfConfiguration-putConfiguration-description-500" class="marked"></p>
- <script>
- var responseManagementOfConfiguration500_description = `Something went wrong when replacing the configuration. Try again.`;
- var responseManagementOfConfiguration500_description_break = responseManagementOfConfiguration500_description.indexOf('\n');
- if (responseManagementOfConfiguration500_description_break == -1) {
- $("#examples-ManagementOfConfiguration-putConfiguration-title-500").text("Status: 500 - " + responseManagementOfConfiguration500_description);
- } else {
- $("#examples-ManagementOfConfiguration-putConfiguration-title-500").text("Status: 500 - " + responseManagementOfConfiguration500_description.substring(0, responseManagementOfConfiguration500_description_break));
- $("#examples-ManagementOfConfiguration-putConfiguration-description-500").html(responseManagementOfConfiguration500_description.substring(responseManagementOfConfiguration500_description_break));
- }
- </script>
-
-
- <ul id="responses-detail-ManagementOfConfiguration-putConfiguration-500" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-ManagementOfConfiguration-putConfiguration-500-schema">Schema</a>
- </li>
-
-
-
-
- </ul>
-
-
- <div class="tab-content" id="responses-ManagementOfConfiguration-putConfiguration-500-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-ManagementOfConfiguration-putConfiguration-500-schema">
- <div id="responses-ManagementOfConfiguration-putConfiguration-schema-500" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = {
- "description" : "Something went wrong when replacing the configuration. Try again.",
- "content" : {
- "*/*" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
-};
- 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-ManagementOfConfiguration-putConfiguration-500-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-ManagementOfConfiguration-putConfiguration-schema-500');
+ $('#responses-HealthCheck-getStatusV1-200-schema-data').val(JSON.stringify(schema));
+ var result = $('#responses-HealthCheck-getStatusV1-schema-200');
result.empty();
result.append(view.render());
});
</script>
</div>
- <input id='responses-ManagementOfConfiguration-putConfiguration-500-schema-data' type='hidden' value=''></input>
+ <input id='responses-HealthCheck-getStatusV1-200-schema-data' type='hidden' value=''></input>
</div>
</div>
</article>
@@ -11100,7 +10367,7 @@ $(document).ready(function() {
<article id="api-NearRTRICRepository-getRic-0" data-group="User" data-name="getRic" data-version="0">
<div class="pull-left">
<h1>getRic</h1>
- <p>Returns info for one Near-RT RIC</p>
+ <p>Returns info of Near-RT RIC queried by the ric-id and managed-element-id</p>
</div>
<div class="pull-right"></div>
<div class="clearfix"></div>
@@ -11130,7 +10397,7 @@ $(document).ready(function() {
<div class="tab-content">
<div class="tab-pane active" id="examples-NearRTRICRepository-getRic-0-curl">
<pre class="prettyprint"><code class="language-bsh">curl -X GET \
- -H "Accept: application/json" \
+ -H "Accept: application/json,application/problem+json" \
"http://localhost/a1-policy/v2/rics/ric?managed_element_id=managedElementId_example&ric_id=ricId_example"
</code></pre>
</div>
@@ -11152,7 +10419,7 @@ public class NearRTRICRepositoryApiExample {
String ricId = ricId_example; // String | The identity of a Near-RT RIC to get information for.
try {
- ric_info_v2 result = apiInstance.getRic(managedElementId, ricId);
+ ric_info result = apiInstance.getRic(managedElementId, ricId);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling NearRTRICRepositoryApi#getRic");
@@ -11173,7 +10440,7 @@ public class NearRTRICRepositoryApiExample {
String ricId = ricId_example; // String | The identity of a Near-RT RIC to get information for.
try {
- ric_info_v2 result = apiInstance.getRic(managedElementId, ricId);
+ ric_info result = apiInstance.getRic(managedElementId, ricId);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling NearRTRICRepositoryApi#getRic");
@@ -11194,10 +10461,10 @@ NearRTRICRepositoryApi *apiInstance = [[NearRTRICRepositoryApi alloc] init];
String *managedElementId = managedElementId_example; // The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned. (optional) (default to null)
String *ricId = ricId_example; // The identity of a Near-RT RIC to get information for. (optional) (default to null)
-// Returns info for one Near-RT RIC
+// Returns info of Near-RT RIC queried by the ric-id and managed-element-id
[apiInstance getRicWith:managedElementId
ricId:ricId
- completionHandler: ^(ric_info_v2 output, NSError* error) {
+ completionHandler: ^(ric_info output, NSError* error) {
if (output) {
NSLog(@"%@", output);
}
@@ -11252,8 +10519,8 @@ namespace Example
var ricId = ricId_example; // String | The identity of a Near-RT RIC to get information for. (optional) (default to null)
try {
- // Returns info for one Near-RT RIC
- ric_info_v2 result = apiInstance.getRic(managedElementId, ricId);
+ // Returns info of Near-RT RIC queried by the ric-id and managed-element-id
+ ric_info result = apiInstance.getRic(managedElementId, ricId);
Debug.WriteLine(result);
} catch (Exception e) {
Debug.Print("Exception when calling NearRTRICRepositoryApi.getRic: " + e.Message );
@@ -11314,7 +10581,7 @@ managedElementId = managedElementId_example # String | The identity of a Managed
ricId = ricId_example # String | The identity of a Near-RT RIC to get information for. (optional) (default to null)
try:
- # Returns info for one Near-RT RIC
+ # Returns info of Near-RT RIC queried by the ric-id and managed-element-id
api_response = api_instance.get_ric(managedElementId=managedElementId, ricId=ricId)
pprint(api_response)
except ApiException as e:
@@ -11400,7 +10667,7 @@ The identity of a Near-RT RIC to get information for.
<h3 id="examples-NearRTRICRepository-getRic-title-200"></h3>
<p id="examples-NearRTRICRepository-getRic-description-200" class="marked"></p>
<script>
- var responseNearRTRICRepository200_description = `Near-RT RIC is found`;
+ var responseNearRTRICRepository200_description = `OK - Near-RT RIC is found`;
var responseNearRTRICRepository200_description_break = responseNearRTRICRepository200_description.indexOf('\n');
if (responseNearRTRICRepository200_description_break == -1) {
$("#examples-NearRTRICRepository-getRic-title-200").text("Status: 200 - " + responseNearRTRICRepository200_description);
@@ -11427,22 +10694,18 @@ The identity of a Near-RT RIC to get information for.
<div id="responses-NearRTRICRepository-getRic-schema-200" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "Near-RT RIC is found",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/ric_info_v2"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -11466,7 +10729,7 @@ The identity of a Near-RT RIC to get information for.
<h3 id="examples-NearRTRICRepository-getRic-title-404"></h3>
<p id="examples-NearRTRICRepository-getRic-description-404" class="marked"></p>
<script>
- var responseNearRTRICRepository404_description = `Near-RT RIC is not found`;
+ var responseNearRTRICRepository404_description = `Not Found`;
var responseNearRTRICRepository404_description_break = responseNearRTRICRepository404_description.indexOf('\n');
if (responseNearRTRICRepository404_description_break == -1) {
$("#examples-NearRTRICRepository-getRic-title-404").text("Status: 404 - " + responseNearRTRICRepository404_description);
@@ -11478,56 +10741,12 @@ The identity of a Near-RT RIC to get information for.
<ul id="responses-detail-NearRTRICRepository-getRic-404" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-NearRTRICRepository-getRic-404-schema">Schema</a>
- </li>
-
-
</ul>
<div class="tab-content" id="responses-NearRTRICRepository-getRic-404-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-NearRTRICRepository-getRic-404-schema">
- <div id="responses-NearRTRICRepository-getRic-schema-404" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = {
- "description" : "Near-RT RIC is not found",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
-};
- 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-NearRTRICRepository-getRic-404-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-NearRTRICRepository-getRic-schema-404');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-NearRTRICRepository-getRic-404-schema-data' type='hidden' value=''></input>
- </div>
</div>
</article>
</div>
@@ -11566,7 +10785,7 @@ The identity of a Near-RT RIC to get information for.
<div class="tab-content">
<div class="tab-pane active" id="examples-NearRTRICRepository-getRics-0-curl">
<pre class="prettyprint"><code class="language-bsh">curl -X GET \
- -H "Accept: application/json" \
+ -H "Accept: application/json,application/problem+json" \
"http://localhost/a1-policy/v2/rics?policytype_id=policytypeId_example"
</code></pre>
</div>
@@ -11587,7 +10806,7 @@ public class NearRTRICRepositoryApiExample {
String policytypeId = policytypeId_example; // String | The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned
try {
- ric_info_list_v2 result = apiInstance.getRics(policytypeId);
+ ric_info_list result = apiInstance.getRics(policytypeId);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling NearRTRICRepositoryApi#getRics");
@@ -11607,7 +10826,7 @@ public class NearRTRICRepositoryApiExample {
String policytypeId = policytypeId_example; // String | The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned
try {
- ric_info_list_v2 result = apiInstance.getRics(policytypeId);
+ ric_info_list result = apiInstance.getRics(policytypeId);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling NearRTRICRepositoryApi#getRics");
@@ -11629,7 +10848,7 @@ String *policytypeId = policytypeId_example; // The identity of a policy type. I
// Query Near-RT RIC information
[apiInstance getRicsWith:policytypeId
- completionHandler: ^(ric_info_list_v2 output, NSError* error) {
+ completionHandler: ^(ric_info_list output, NSError* error) {
if (output) {
NSLog(@"%@", output);
}
@@ -11683,7 +10902,7 @@ namespace Example
try {
// Query Near-RT RIC information
- ric_info_list_v2 result = apiInstance.getRics(policytypeId);
+ ric_info_list result = apiInstance.getRics(policytypeId);
Debug.WriteLine(result);
} catch (Exception e) {
Debug.Print("Exception when calling NearRTRICRepositoryApi.getRics: " + e.Message );
@@ -11833,22 +11052,18 @@ The identity of a policy type. If given, all Near-RT RICs supporting the policy
<div id="responses-NearRTRICRepository-getRics-schema-200" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "OK",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/ric_info_list_v2"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -11872,7 +11087,7 @@ The identity of a policy type. If given, all Near-RT RICs supporting the policy
<h3 id="examples-NearRTRICRepository-getRics-title-404"></h3>
<p id="examples-NearRTRICRepository-getRics-description-404" class="marked"></p>
<script>
- var responseNearRTRICRepository404_description = `Policy type is not found`;
+ var responseNearRTRICRepository404_description = `Not Found`;
var responseNearRTRICRepository404_description_break = responseNearRTRICRepository404_description.indexOf('\n');
if (responseNearRTRICRepository404_description_break == -1) {
$("#examples-NearRTRICRepository-getRics-title-404").text("Status: 404 - " + responseNearRTRICRepository404_description);
@@ -11884,418 +11099,12 @@ The identity of a policy type. If given, all Near-RT RICs supporting the policy
<ul id="responses-detail-NearRTRICRepository-getRics-404" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-NearRTRICRepository-getRics-404-schema">Schema</a>
- </li>
-
-
</ul>
<div class="tab-content" id="responses-NearRTRICRepository-getRics-404-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-NearRTRICRepository-getRics-404-schema">
- <div id="responses-NearRTRICRepository-getRics-schema-404" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = {
- "description" : "Policy type is not found",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
-};
- 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-NearRTRICRepository-getRics-404-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-NearRTRICRepository-getRics-schema-404');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-NearRTRICRepository-getRics-404-schema-data' type='hidden' value=''></input>
- </div>
- </div>
- </article>
- </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"><&#63;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>
@@ -12307,12 +11116,12 @@ $(document).ready(function() {
<article id="api-ServiceRegistryAndSupervision-deleteService-0" data-group="User" data-name="deleteService" data-version="0">
<div class="pull-left">
<h1>deleteService</h1>
- <p>Unregister a service</p>
+ <p></p>
</div>
<div class="pull-right"></div>
<div class="clearfix"></div>
<p></p>
- <p class="marked"></p>
+ <p class="marked">Unregister a service</p>
<p></p>
<br />
<pre class="prettyprint language-html prettyprinted" data-type="delete"><code><span class="pln">/a1-policy/v2/services/{service_id}</span></code></pre>
@@ -12337,7 +11146,7 @@ $(document).ready(function() {
<div class="tab-content">
<div class="tab-pane active" id="examples-ServiceRegistryAndSupervision-deleteService-0-curl">
<pre class="prettyprint"><code class="language-bsh">curl -X DELETE \
- -H "Accept: */*" \
+ -H "Accept: */*,application/problem+json" \
"http://localhost/a1-policy/v2/services/{service_id}"
</code></pre>
</div>
@@ -12398,7 +11207,6 @@ public class ServiceRegistryAndSupervisionApiExample {
ServiceRegistryAndSupervisionApi *apiInstance = [[ServiceRegistryAndSupervisionApi alloc] init];
String *serviceId = serviceId_example; // (default to null)
-// Unregister a service
[apiInstance deleteServiceWith:serviceId
completionHandler: ^(Object output, NSError* error) {
if (output) {
@@ -12451,7 +11259,6 @@ namespace Example
var serviceId = serviceId_example; // String | (default to null)
try {
- // Unregister a service
Object result = apiInstance.deleteService(serviceId);
Debug.WriteLine(result);
} catch (Exception e) {
@@ -12510,7 +11317,6 @@ api_instance = openapi_client.ServiceRegistryAndSupervisionApi()
serviceId = serviceId_example # String | (default to null)
try:
- # Unregister a service
api_response = api_instance.delete_service(serviceId)
pprint(api_response)
except ApiException as e:
@@ -12572,76 +11378,10 @@ pub fn main() {
<h2>Responses</h2>
- <h3 id="examples-ServiceRegistryAndSupervision-deleteService-title-200"></h3>
- <p id="examples-ServiceRegistryAndSupervision-deleteService-description-200" class="marked"></p>
- <script>
- var responseServiceRegistryAndSupervision200_description = `Not used`;
- var responseServiceRegistryAndSupervision200_description_break = responseServiceRegistryAndSupervision200_description.indexOf('\n');
- if (responseServiceRegistryAndSupervision200_description_break == -1) {
- $("#examples-ServiceRegistryAndSupervision-deleteService-title-200").text("Status: 200 - " + responseServiceRegistryAndSupervision200_description);
- } else {
- $("#examples-ServiceRegistryAndSupervision-deleteService-title-200").text("Status: 200 - " + responseServiceRegistryAndSupervision200_description.substring(0, responseServiceRegistryAndSupervision200_description_break));
- $("#examples-ServiceRegistryAndSupervision-deleteService-description-200").html(responseServiceRegistryAndSupervision200_description.substring(responseServiceRegistryAndSupervision200_description_break));
- }
- </script>
-
-
- <ul id="responses-detail-ServiceRegistryAndSupervision-deleteService-200" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-ServiceRegistryAndSupervision-deleteService-200-schema">Schema</a>
- </li>
-
-
-
-
- </ul>
-
-
- <div class="tab-content" id="responses-ServiceRegistryAndSupervision-deleteService-200-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-ServiceRegistryAndSupervision-deleteService-200-schema">
- <div id="responses-ServiceRegistryAndSupervision-deleteService-schema-200" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = {
- "description" : "Not used",
- "content" : {
- "*/*" : {
- "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-ServiceRegistryAndSupervision-deleteService-200-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-ServiceRegistryAndSupervision-deleteService-schema-200');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-ServiceRegistryAndSupervision-deleteService-200-schema-data' type='hidden' value=''></input>
- </div>
- </div>
<h3 id="examples-ServiceRegistryAndSupervision-deleteService-title-204"></h3>
<p id="examples-ServiceRegistryAndSupervision-deleteService-description-204" class="marked"></p>
<script>
- var responseServiceRegistryAndSupervision204_description = `Service unregistered`;
+ var responseServiceRegistryAndSupervision204_description = `No Content - Service unregistered`;
var responseServiceRegistryAndSupervision204_description_break = responseServiceRegistryAndSupervision204_description.indexOf('\n');
if (responseServiceRegistryAndSupervision204_description_break == -1) {
$("#examples-ServiceRegistryAndSupervision-deleteService-title-204").text("Status: 204 - " + responseServiceRegistryAndSupervision204_description);
@@ -12668,22 +11408,18 @@ pub fn main() {
<div id="responses-ServiceRegistryAndSupervision-deleteService-schema-204" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "Service unregistered",
- "content" : {
- "*/*" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -12707,7 +11443,7 @@ pub fn main() {
<h3 id="examples-ServiceRegistryAndSupervision-deleteService-title-404"></h3>
<p id="examples-ServiceRegistryAndSupervision-deleteService-description-404" class="marked"></p>
<script>
- var responseServiceRegistryAndSupervision404_description = `Service not found`;
+ var responseServiceRegistryAndSupervision404_description = `Not Found`;
var responseServiceRegistryAndSupervision404_description_break = responseServiceRegistryAndSupervision404_description.indexOf('\n');
if (responseServiceRegistryAndSupervision404_description_break == -1) {
$("#examples-ServiceRegistryAndSupervision-deleteService-title-404").text("Status: 404 - " + responseServiceRegistryAndSupervision404_description);
@@ -12719,56 +11455,12 @@ pub fn main() {
<ul id="responses-detail-ServiceRegistryAndSupervision-deleteService-404" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-ServiceRegistryAndSupervision-deleteService-404-schema">Schema</a>
- </li>
-
-
</ul>
<div class="tab-content" id="responses-ServiceRegistryAndSupervision-deleteService-404-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-ServiceRegistryAndSupervision-deleteService-404-schema">
- <div id="responses-ServiceRegistryAndSupervision-deleteService-schema-404" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = {
- "description" : "Service not found",
- "content" : {
- "*/*" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
-};
- 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-ServiceRegistryAndSupervision-deleteService-404-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-ServiceRegistryAndSupervision-deleteService-schema-404');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-ServiceRegistryAndSupervision-deleteService-404-schema-data' type='hidden' value=''></input>
- </div>
</div>
</article>
</div>
@@ -12807,7 +11499,7 @@ pub fn main() {
<div class="tab-content">
<div class="tab-pane active" id="examples-ServiceRegistryAndSupervision-getServices-0-curl">
<pre class="prettyprint"><code class="language-bsh">curl -X GET \
- -H "Accept: application/json" \
+ -H "Accept: application/json,application/problem+json" \
"http://localhost/a1-policy/v2/services?service_id=serviceId_example"
</code></pre>
</div>
@@ -12828,7 +11520,7 @@ public class ServiceRegistryAndSupervisionApiExample {
String serviceId = serviceId_example; // String | The identity of the service
try {
- service_list_v2 result = apiInstance.getServices(serviceId);
+ service_status_list result = apiInstance.getServices(serviceId);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling ServiceRegistryAndSupervisionApi#getServices");
@@ -12848,7 +11540,7 @@ public class ServiceRegistryAndSupervisionApiExample {
String serviceId = serviceId_example; // String | The identity of the service
try {
- service_list_v2 result = apiInstance.getServices(serviceId);
+ service_status_list result = apiInstance.getServices(serviceId);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling ServiceRegistryAndSupervisionApi#getServices");
@@ -12870,7 +11562,7 @@ String *serviceId = serviceId_example; // The identity of the service (optional)
// Returns service information
[apiInstance getServicesWith:serviceId
- completionHandler: ^(service_list_v2 output, NSError* error) {
+ completionHandler: ^(service_status_list output, NSError* error) {
if (output) {
NSLog(@"%@", output);
}
@@ -12924,7 +11616,7 @@ namespace Example
try {
// Returns service information
- service_list_v2 result = apiInstance.getServices(serviceId);
+ service_status_list result = apiInstance.getServices(serviceId);
Debug.WriteLine(result);
} catch (Exception e) {
Debug.Print("Exception when calling ServiceRegistryAndSupervisionApi.getServices: " + e.Message );
@@ -13074,22 +11766,18 @@ The identity of the service
<div id="responses-ServiceRegistryAndSupervision-getServices-schema-200" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "OK",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/service_list_v2"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -13113,7 +11801,7 @@ The identity of the service
<h3 id="examples-ServiceRegistryAndSupervision-getServices-title-404"></h3>
<p id="examples-ServiceRegistryAndSupervision-getServices-description-404" class="marked"></p>
<script>
- var responseServiceRegistryAndSupervision404_description = `Service is not found`;
+ var responseServiceRegistryAndSupervision404_description = `Not Found`;
var responseServiceRegistryAndSupervision404_description_break = responseServiceRegistryAndSupervision404_description.indexOf('\n');
if (responseServiceRegistryAndSupervision404_description_break == -1) {
$("#examples-ServiceRegistryAndSupervision-getServices-title-404").text("Status: 404 - " + responseServiceRegistryAndSupervision404_description);
@@ -13125,56 +11813,12 @@ The identity of the service
<ul id="responses-detail-ServiceRegistryAndSupervision-getServices-404" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-ServiceRegistryAndSupervision-getServices-404-schema">Schema</a>
- </li>
-
-
</ul>
<div class="tab-content" id="responses-ServiceRegistryAndSupervision-getServices-404-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-ServiceRegistryAndSupervision-getServices-404-schema">
- <div id="responses-ServiceRegistryAndSupervision-getServices-schema-404" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = {
- "description" : "Service is not found",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
-};
- 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-ServiceRegistryAndSupervision-getServices-404-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-ServiceRegistryAndSupervision-getServices-schema-404');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-ServiceRegistryAndSupervision-getServices-404-schema-data' type='hidden' value=''></input>
- </div>
</div>
</article>
</div>
@@ -13213,7 +11857,7 @@ The identity of the service
<div class="tab-content">
<div class="tab-pane active" id="examples-ServiceRegistryAndSupervision-keepAliveService-0-curl">
<pre class="prettyprint"><code class="language-bsh">curl -X PUT \
- -H "Accept: */*" \
+ -H "Accept: */*,application/problem+json" \
"http://localhost/a1-policy/v2/services/{service_id}/keepalive"
</code></pre>
</div>
@@ -13451,7 +12095,7 @@ pub fn main() {
<h3 id="examples-ServiceRegistryAndSupervision-keepAliveService-title-200"></h3>
<p id="examples-ServiceRegistryAndSupervision-keepAliveService-description-200" class="marked"></p>
<script>
- var responseServiceRegistryAndSupervision200_description = `Service supervision timer refreshed, OK`;
+ var responseServiceRegistryAndSupervision200_description = `OK - Service supervision timer refreshed, OK`;
var responseServiceRegistryAndSupervision200_description_break = responseServiceRegistryAndSupervision200_description.indexOf('\n');
if (responseServiceRegistryAndSupervision200_description_break == -1) {
$("#examples-ServiceRegistryAndSupervision-keepAliveService-title-200").text("Status: 200 - " + responseServiceRegistryAndSupervision200_description);
@@ -13478,22 +12122,18 @@ pub fn main() {
<div id="responses-ServiceRegistryAndSupervision-keepAliveService-schema-200" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "Service supervision timer refreshed, OK",
- "content" : {
- "*/*" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -13517,7 +12157,7 @@ pub fn main() {
<h3 id="examples-ServiceRegistryAndSupervision-keepAliveService-title-404"></h3>
<p id="examples-ServiceRegistryAndSupervision-keepAliveService-description-404" class="marked"></p>
<script>
- var responseServiceRegistryAndSupervision404_description = `The service is not found, needs re-registration`;
+ var responseServiceRegistryAndSupervision404_description = `Not Found`;
var responseServiceRegistryAndSupervision404_description_break = responseServiceRegistryAndSupervision404_description.indexOf('\n');
if (responseServiceRegistryAndSupervision404_description_break == -1) {
$("#examples-ServiceRegistryAndSupervision-keepAliveService-title-404").text("Status: 404 - " + responseServiceRegistryAndSupervision404_description);
@@ -13529,56 +12169,12 @@ pub fn main() {
<ul id="responses-detail-ServiceRegistryAndSupervision-keepAliveService-404" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-ServiceRegistryAndSupervision-keepAliveService-404-schema">Schema</a>
- </li>
-
-
</ul>
<div class="tab-content" id="responses-ServiceRegistryAndSupervision-keepAliveService-404-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-ServiceRegistryAndSupervision-keepAliveService-404-schema">
- <div id="responses-ServiceRegistryAndSupervision-keepAliveService-schema-404" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = {
- "description" : "The service is not found, needs re-registration",
- "content" : {
- "*/*" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
-};
- 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-ServiceRegistryAndSupervision-keepAliveService-404-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-ServiceRegistryAndSupervision-keepAliveService-schema-404');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-ServiceRegistryAndSupervision-keepAliveService-404-schema-data' type='hidden' value=''></input>
- </div>
</div>
</article>
</div>
@@ -13617,7 +12213,7 @@ pub fn main() {
<div class="tab-content">
<div class="tab-pane active" id="examples-ServiceRegistryAndSupervision-putService-0-curl">
<pre class="prettyprint"><code class="language-bsh">curl -X PUT \
- -H "Accept: */*" \
+ -H "Accept: */*,application/problem+json" \
-H "Content-Type: application/json" \
"http://localhost/a1-policy/v2/services" \
-d ''
@@ -13637,10 +12233,10 @@ public class ServiceRegistryAndSupervisionApiExample {
// Create an instance of the API class
ServiceRegistryAndSupervisionApi apiInstance = new ServiceRegistryAndSupervisionApi();
- ServiceRegistrationInfoV2 serviceRegistrationInfoV2 = ; // ServiceRegistrationInfoV2 |
+ ServiceRegistrationInfo serviceRegistrationInfo = ; // ServiceRegistrationInfo |
try {
- Object result = apiInstance.putService(serviceRegistrationInfoV2);
+ Object result = apiInstance.putService(serviceRegistrationInfo);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling ServiceRegistryAndSupervisionApi#putService");
@@ -13657,10 +12253,10 @@ public class ServiceRegistryAndSupervisionApiExample {
public class ServiceRegistryAndSupervisionApiExample {
public static void main(String[] args) {
ServiceRegistryAndSupervisionApi apiInstance = new ServiceRegistryAndSupervisionApi();
- ServiceRegistrationInfoV2 serviceRegistrationInfoV2 = ; // ServiceRegistrationInfoV2 |
+ ServiceRegistrationInfo serviceRegistrationInfo = ; // ServiceRegistrationInfo |
try {
- Object result = apiInstance.putService(serviceRegistrationInfoV2);
+ Object result = apiInstance.putService(serviceRegistrationInfo);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling ServiceRegistryAndSupervisionApi#putService");
@@ -13678,10 +12274,10 @@ public class ServiceRegistryAndSupervisionApiExample {
// Create an instance of the API class
ServiceRegistryAndSupervisionApi *apiInstance = [[ServiceRegistryAndSupervisionApi alloc] init];
-ServiceRegistrationInfoV2 *serviceRegistrationInfoV2 = ; //
+ServiceRegistrationInfo *serviceRegistrationInfo = ; //
// Register a service
-[apiInstance putServiceWith:serviceRegistrationInfoV2
+[apiInstance putServiceWith:serviceRegistrationInfo
completionHandler: ^(Object output, NSError* error) {
if (output) {
NSLog(@"%@", output);
@@ -13698,7 +12294,7 @@ ServiceRegistrationInfoV2 *serviceRegistrationInfoV2 = ; //
// Create an instance of the API class
var api = new A1PolicyManagementService.ServiceRegistryAndSupervisionApi()
-var serviceRegistrationInfoV2 = ; // {ServiceRegistrationInfoV2}
+var serviceRegistrationInfo = ; // {ServiceRegistrationInfo}
var callback = function(error, data, response) {
if (error) {
@@ -13707,7 +12303,7 @@ var callback = function(error, data, response) {
console.log('API called successfully. Returned data: ' + data);
}
};
-api.putService(serviceRegistrationInfoV2, callback);
+api.putService(serviceRegistrationInfo, callback);
</code></pre>
</div>
@@ -13730,11 +12326,11 @@ namespace Example
// Create an instance of the API class
var apiInstance = new ServiceRegistryAndSupervisionApi();
- var serviceRegistrationInfoV2 = new ServiceRegistrationInfoV2(); // ServiceRegistrationInfoV2 |
+ var serviceRegistrationInfo = new ServiceRegistrationInfo(); // ServiceRegistrationInfo |
try {
// Register a service
- Object result = apiInstance.putService(serviceRegistrationInfoV2);
+ Object result = apiInstance.putService(serviceRegistrationInfo);
Debug.WriteLine(result);
} catch (Exception e) {
Debug.Print("Exception when calling ServiceRegistryAndSupervisionApi.putService: " + e.Message );
@@ -13751,10 +12347,10 @@ require_once(__DIR__ . '/vendor/autoload.php');
// Create an instance of the API class
$api_instance = new OpenAPITools\Client\Api\ServiceRegistryAndSupervisionApi();
-$serviceRegistrationInfoV2 = ; // ServiceRegistrationInfoV2 |
+$serviceRegistrationInfo = ; // ServiceRegistrationInfo |
try {
- $result = $api_instance->putService($serviceRegistrationInfoV2);
+ $result = $api_instance->putService($serviceRegistrationInfo);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling ServiceRegistryAndSupervisionApi->putService: ', $e->getMessage(), PHP_EOL;
@@ -13769,10 +12365,10 @@ use WWW::OPenAPIClient::ServiceRegistryAndSupervisionApi;
# Create an instance of the API class
my $api_instance = WWW::OPenAPIClient::ServiceRegistryAndSupervisionApi->new();
-my $serviceRegistrationInfoV2 = WWW::OPenAPIClient::Object::ServiceRegistrationInfoV2->new(); # ServiceRegistrationInfoV2 |
+my $serviceRegistrationInfo = WWW::OPenAPIClient::Object::ServiceRegistrationInfo->new(); # ServiceRegistrationInfo |
eval {
- my $result = $api_instance->putService(serviceRegistrationInfoV2 => $serviceRegistrationInfoV2);
+ my $result = $api_instance->putService(serviceRegistrationInfo => $serviceRegistrationInfo);
print Dumper($result);
};
if ($@) {
@@ -13789,11 +12385,11 @@ from pprint import pprint
# Create an instance of the API class
api_instance = openapi_client.ServiceRegistryAndSupervisionApi()
-serviceRegistrationInfoV2 = # ServiceRegistrationInfoV2 |
+serviceRegistrationInfo = # ServiceRegistrationInfo |
try:
# Register a service
- api_response = api_instance.put_service(serviceRegistrationInfoV2)
+ api_response = api_instance.put_service(serviceRegistrationInfo)
pprint(api_response)
except ApiException as e:
print("Exception when calling ServiceRegistryAndSupervisionApi->putService: %s\n" % e)</code></pre>
@@ -13803,10 +12399,10 @@ except ApiException as e:
<pre class="prettyprint"><code class="language-rust">extern crate ServiceRegistryAndSupervisionApi;
pub fn main() {
- let serviceRegistrationInfoV2 = ; // ServiceRegistrationInfoV2
+ let serviceRegistrationInfo = ; // ServiceRegistrationInfo
let mut context = ServiceRegistryAndSupervisionApi::Context::default();
- let result = client.putService(serviceRegistrationInfoV2, &context).wait();
+ let result = client.putService(serviceRegistrationInfo, &context).wait();
println!("{:?}", result);
}
@@ -13829,20 +12425,20 @@ pub fn main() {
<th width="150px">Name</th>
<th>Description</th>
</tr>
- <tr><td style="width:150px;">serviceRegistrationInfoV2 <span style="color:red;">*</span></td>
+ <tr><td style="width:150px;">serviceRegistrationInfo <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_registration_info_v2"
- }
- }
- },
- "required" : true
+ var schemaWrapper = {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/service_registration_info"
+ }
+ }
+ },
+ "required" : true
};
var schema = findNode('schema',schemaWrapper).schema;
@@ -13859,12 +12455,12 @@ $(document).ready(function() {
}
var view = new JSONSchemaView(schema,2,{isBodyParam: true});
- var result = $('#d2e199_putService_serviceRegistrationInfoV2');
+ var result = $('#d2e199_putService_serviceRegistrationInfo');
result.empty();
result.append(view.render());
});
</script>
-<div id="d2e199_putService_serviceRegistrationInfoV2"></div>
+<div id="d2e199_putService_serviceRegistrationInfo"></div>
</td>
</tr>
@@ -13876,7 +12472,7 @@ $(document).ready(function() {
<h3 id="examples-ServiceRegistryAndSupervision-putService-title-200"></h3>
<p id="examples-ServiceRegistryAndSupervision-putService-description-200" class="marked"></p>
<script>
- var responseServiceRegistryAndSupervision200_description = `Service updated`;
+ var responseServiceRegistryAndSupervision200_description = `OK - Service updated`;
var responseServiceRegistryAndSupervision200_description_break = responseServiceRegistryAndSupervision200_description.indexOf('\n');
if (responseServiceRegistryAndSupervision200_description_break == -1) {
$("#examples-ServiceRegistryAndSupervision-putService-title-200").text("Status: 200 - " + responseServiceRegistryAndSupervision200_description);
@@ -13903,22 +12499,18 @@ $(document).ready(function() {
<div id="responses-ServiceRegistryAndSupervision-putService-schema-200" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "Service updated",
- "content" : {
- "*/*" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -13942,7 +12534,7 @@ $(document).ready(function() {
<h3 id="examples-ServiceRegistryAndSupervision-putService-title-201"></h3>
<p id="examples-ServiceRegistryAndSupervision-putService-description-201" class="marked"></p>
<script>
- var responseServiceRegistryAndSupervision201_description = `Service created`;
+ var responseServiceRegistryAndSupervision201_description = `Created - Service created`;
var responseServiceRegistryAndSupervision201_description_break = responseServiceRegistryAndSupervision201_description.indexOf('\n');
if (responseServiceRegistryAndSupervision201_description_break == -1) {
$("#examples-ServiceRegistryAndSupervision-putService-title-201").text("Status: 201 - " + responseServiceRegistryAndSupervision201_description);
@@ -13969,22 +12561,18 @@ $(document).ready(function() {
<div id="responses-ServiceRegistryAndSupervision-putService-schema-201" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "Service created",
- "content" : {
- "*/*" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -14008,7 +12596,7 @@ $(document).ready(function() {
<h3 id="examples-ServiceRegistryAndSupervision-putService-title-400"></h3>
<p id="examples-ServiceRegistryAndSupervision-putService-description-400" class="marked"></p>
<script>
- var responseServiceRegistryAndSupervision400_description = `The ServiceRegistrationInfo is not accepted`;
+ var responseServiceRegistryAndSupervision400_description = `Bad Request`;
var responseServiceRegistryAndSupervision400_description_break = responseServiceRegistryAndSupervision400_description.indexOf('\n');
if (responseServiceRegistryAndSupervision400_description_break == -1) {
$("#examples-ServiceRegistryAndSupervision-putService-title-400").text("Status: 400 - " + responseServiceRegistryAndSupervision400_description);
@@ -14035,22 +12623,18 @@ $(document).ready(function() {
<div id="responses-ServiceRegistryAndSupervision-putService-schema-400" class="exampleStyle">
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "description" : "The ServiceRegistrationInfo is not accepted",
- "content" : {
- "*/*" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
-};
+ var schemaWrapper = ;
var schema = findNode('schema',schemaWrapper).schema;
if (!schema) {
schema = schemaWrapper.schema;
}
if (schema.$ref != null) {
schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+ }
+ });
} else if (schema.items != null && schema.items.$ref != null) {
schema.items = defsParser.$refs.get(schema.items.$ref);
} else {
@@ -14079,8 +12663,8 @@ $(document).ready(function() {
<div id="footer">
<div id="api-_footer">
<p>Suggestions, contact, support and error reporting;
- <div class="app-desc">Information URL: <a href="https://wiki.onap.org/display/DW/O-RAN+A1+Policies+in+ONAP">https://wiki.onap.org/display/DW/O-RAN+A1+Policies+in+ONAP</a></div>
- <div class="app-desc">Contact Info: <a href="team@openapitools.org">team@openapitools.org</a></div>
+ <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-url">http://www.apache.org/licenses/LICENSE-2.0</div>
diff --git a/a1-policy-management/config/application.yaml b/a1-policy-management/config/application.yaml
index 52b70d10..205c21a1 100644
--- a/a1-policy-management/config/application.yaml
+++ b/a1-policy-management/config/application.yaml
@@ -3,6 +3,7 @@
# ONAP : ccsdk oran
# ================================================================================
# Copyright (C) 2020-2023 Nordix Foundation. All rights reserved.
+# Copyright (C) 2024 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.
@@ -19,107 +20,129 @@
# SPDX-License-Identifier: Apache-2.0
# ============LICENSE_END=========================================================
#
-spring:
- application:
- name: a1-pms
- profiles:
- active: prod
- main:
- allow-bean-definition-overriding: true
- aop:
- auto: false
-management:
- otlp:
- metrics:
- export:
- enabled: false
- tracing:
- sampler:
- jaeger_remote:
- endpoint: ${ONAP_OTEL_SAMPLER_JAEGER_REMOTE_ENDPOINT:http://jaeger:14250}
- exporter:
- endpoint: ${ONAP_OTEL_EXPORTER_ENDPOINT:http://jaeger:4317}
- protocol: ${ONAP_OTEL_EXPORTER_PROTOCOL:grpc}
- enabled: ${ONAP_TRACING_ENABLED:false}
- propagation:
- produce: ${ONAP_PROPAGATOR_PRODUCE:[W3C]}
- sampling:
- probability: 1.0
- endpoints:
- web:
- exposure:
- # Enabling of springboot actuator features. See springboot documentation.
- include: "loggers,logfile,health,info,metrics,threaddump,heapdump,shutdown"
- endpoint:
- shutdown:
- enabled: true
-lifecycle:
- timeout-per-shutdown-phase: "20s"
-springdoc:
- show-actuator: true
-logging:
- # Configuration of logging
- level:
- ROOT: ERROR
- org.springframework: ERROR
- org.springframework.data: ERROR
- org.springframework.web.reactive.function.client.ExchangeFunctions: ERROR
- org.springframework.web.servlet.DispatcherServlet: ERROR
- org.onap.ccsdk.oran.a1policymanagementservice: INFO
- pattern:
- console: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] [%thread] %logger{20} - %msg%n"
- file: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] [%thread] %logger{20} - %msg%n"
- file:
- name: /var/log/policy-agent/application.log
-server:
- # Configuration of the HTTP/REST server. The parameters are defined and handeled by the springboot framework.
- # See springboot documentation.
- port : 8433
- http-port: 8081
- shutdown: "graceful"
- ssl:
- key-store-type: JKS
- key-store-password: policy_agent
- key-store: /opt/app/policy-agent/etc/cert/keystore.jks
- key-password: policy_agent
- key-alias: policy_agent
- # trust-store-password:
- # trust-store:
+
app:
- # Location of the component configuration file.
- filepath: /opt/app/policy-agent/data/application_configuration.json
- webclient:
- # Configuration of the trust store used for the HTTP client (outgoing requests)
- # The file location and the password for the truststore is only relevant if trust-store-used == true
- # Note that the same keystore as for the server is used.
- trust-store-used: false
- trust-store-password: policy_agent
- trust-store: /opt/app/policy-agent/etc/cert/truststore.jks
- # Configuration of usage of HTTP Proxy for the southbound accesses.
- # The HTTP proxy (if configured) will only be used for accessing NearRT RIC:s
- # proxy-type can be either HTTP, SOCKS4 or SOCKS5
- http.proxy-host:
- http.proxy-port: 0
- http.proxy-type: HTTP
- # path where the service can store data. This parameter is not relevant if S3 Object store is configured.
- vardata-directory: /var/policy-management-service
- # the config-file-schema-path referres to a location in the jar file. If this property is empty or missing,
- # no schema validation will be executed.
- config-file-schema-path: /application_configuration_schema.json
# A file containing an authorization token, which shall be inserted in each HTTP header (authorization).
# If the file name is empty, no authorization token is sent.
auth-token-file:
# A URL to authorization provider such as OPA. Each time an A1 Policy is accessed, a call to this
# authorization provider is done for access control. If this is empty, no fine grained access control is done.
authorization-provider:
+ # the config-file-schema-path referres to a location in the jar file. If this property is empty or missing,
+ # no schema validation will be executed.
+ config-file-schema-path: /application_configuration_schema.json
+ # Postgres database usage is enabled using the below parameter.
+ # If this is enabled, the application will use postgres database for storage.
+ # This overrides the s3(s3.bucket) or file store(vardata-directory) configuration if enabled.
+ database-enabled: false
+ # Location of the component configuration file.
+ filepath: /opt/app/policy-agent/data/application_configuration.json
# S3 object store usage is enabled by defining the bucket to use. This will override the vardata-directory parameter.
s3:
endpointOverride: http://localhost:9000
accessKeyId: minio
secretAccessKey: miniostorage
bucket:
+ webclient:
+ # Configuration of usage of HTTP Proxy for the southbound accesses.
+ # The HTTP proxy (if configured) will only be used for accessing NearRT RIC:s
+ # proxy-type can be either HTTP, SOCKS4 or SOCKS5
+ http.proxy-host:
+ http.proxy-port: 0
+ http.proxy-type: HTTP
+ # Configuration of the trust store used for the HTTP client (outgoing requests)
+ # The file location and the password for the truststore is only relevant if trust-store-used == true
+ # Note that the same keystore as for the server is used.
+ trust-store-used: false
+ trust-store-password: policy_agent
+ trust-store: /opt/app/policy-agent/etc/cert/truststore.jks
+ # path where the service can store data. This parameter is not relevant if S3 Object store is configured.
+ vardata-directory: /var/policy-management-service
+lifecycle:
+ timeout-per-shutdown-phase: "20s"
+logging:
+ # Configuration of logging
+ file:
+ name: /var/log/policy-agent/application.log
+ level:
+ ROOT: ERROR
+ org.onap.ccsdk.oran.a1policymanagementservice: INFO
+ org.springframework: ERROR
+ org.springframework.data: ERROR
+ org.springframework.web.reactive.function.client.ExchangeFunctions: ERROR
+ org.springframework.web.servlet.DispatcherServlet: ERROR
+ pattern:
+ console: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] [%thread] %logger{20} - %msg%n"
+ file: "%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] [%thread] %logger{20} - %msg%n"
+management:
+ endpoint:
+ shutdown:
+ enabled: true
+ endpoints:
+ web:
+ exposure:
+ # Enabling of springboot actuator features. See springboot documentation.
+ include: "loggers,logfile,health,info,metrics,threaddump,heapdump,shutdown"
+ tracing:
+ propagation:
+ produce: ${ONAP_PROPAGATOR_PRODUCE:[W3C]}
+ sampling:
+ probability: 1.0
otel:
exporter:
otlp:
traces:
- protocol: ${ONAP_OTEL_EXPORTER_OTLP_TRACES_PROTOCOL:grpc}
+ endpoint: ${ONAP_OTEL_EXPORTER_ENDPOINT:http://jaeger:4317}
+ protocol: ${ONAP_OTEL_EXPORTER_PROTOCOL:grpc}
+ logs:
+ exporter: none
+ metrics:
+ exporter: none
+ sdk:
+ disabled: ${ONAP_SDK_DISABLED:true}
+ south: ${ONAP_TRACING_SOUTHBOUND:true}
+ tracing:
+ sampler:
+ jaeger_remote:
+ endpoint: ${ONAP_OTEL_SAMPLER_JAEGER_REMOTE_ENDPOINT:http://jaeger:14250}
+server:
+ # Configuration of the HTTP/REST server. The parameters are defined and handeled by the springboot framework.
+ # See springboot documentation.
+ port : 8433
+ http-port: 8081
+ shutdown: "graceful"
+ ssl:
+ key-store-type: JKS
+ key-store-password: policy_agent
+ key-store: /opt/app/policy-agent/etc/cert/keystore.jks
+ key-password: policy_agent
+ key-alias: policy_agent
+ # trust-store-password:
+ # trust-store:
+spring:
+ aop:
+ auto: false
+ application:
+ name: a1-pms
+ flyway:
+ # Configuration of the postgres database to be used for database migration.
+ # This is where the flyway maintains the information about the sql files loaded.
+ # These values can be passed via configmap/secret/env variable based on the installation.
+ # By default, Flyway uses location classpath:db/migration to load the sql files.
+ # This can be overridden using "flyway.locations" to have a different location.
+ baseline-on-migrate: true
+ url: "jdbc:postgresql://127.0.0.1:5432/a1pms"
+ user: a1pms
+ password: mypwd
+ main:
+ allow-bean-definition-overriding: true
+ profiles:
+ active: prod
+ r2dbc:
+ # Configuration of the postgres database to be used by the application.
+ # These values can be passed via configmap/secret/env variable based on the installation.
+ url: "r2dbc:postgresql://127.0.0.1:5432/a1pms"
+ username: a1pms
+ password: mypwd
+springdoc:
+ show-actuator: true \ No newline at end of file
diff --git a/a1-policy-management/pom.xml b/a1-policy-management/pom.xml
index c383ba2f..87cc8977 100644
--- a/a1-policy-management/pom.xml
+++ b/a1-policy-management/pom.xml
@@ -24,30 +24,31 @@
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
- <artifactId>spring-boot-31-starter-parent</artifactId>
- <version>2.6.1</version>
+ <artifactId>spring-boot-33-starter-parent</artifactId>
+ <version>2.8.0-SNAPSHOT</version>
<relativePath/>
</parent>
<groupId>org.onap.ccsdk.oran</groupId>
<artifactId>a1-policy-management-service</artifactId>
- <version>1.7.0-SNAPSHOT</version>
+ <version>1.8.0-SNAPSHOT</version>
<name>ccsdk-oran :: ${project.artifactId}</name>
<properties>
<java.version.source>17</java.version.source>
<java.version.target>17</java.version.target>
<gson.version>2.10.1</gson.version>
- <json.version>20231013</json.version>
+ <json.version>20240303</json.version>
<formatter-maven-plugin.version>2.22.0</formatter-maven-plugin.version>
<spotless-maven-plugin.version>2.35.0</spotless-maven-plugin.version>
- <commons-io.version>2.14.0</commons-io.version>
- <guava.version>32.0.1-jre</guava.version>
+ <commons-io.version>2.16.1</commons-io.version>
+ <guava.version>33.3.0-jre</guava.version>
<springdoc.version>2.0.2</springdoc.version>
<docker-maven-plugin>0.30.0</docker-maven-plugin>
<surefire-maven-plugin.version>3.0.0-M8</surefire-maven-plugin.version>
<surefire-report-plugin.version>3.0.0-M8</surefire-report-plugin.version>
<jacoco-maven-plugin.version>0.8.8</jacoco-maven-plugin.version>
<ccsdk.project.version>${project.version}</ccsdk.project.version>
- <software.amazon.awssdk.version>2.20.12</software.amazon.awssdk.version>
+ <software.amazon.awssdk.version>2.27.8</software.amazon.awssdk.version>
+ <mapstruct.version>1.6.0</mapstruct.version>
<allowskiptests>false</allowskiptests>
</properties>
<dependencies>
@@ -69,13 +70,7 @@
<dependency>
<groupId>org.openapitools</groupId>
<artifactId>jackson-databind-nullable</artifactId>
- <version>0.2.4</version>
- </dependency>
- <dependency>
- <!-- Temporary until version 2 is included by the parent spring-boot-starter-parent -->
- <groupId>org.yaml</groupId>
- <artifactId>snakeyaml</artifactId>
- <version>2.0</version>
+ <version>0.2.6</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
@@ -94,10 +89,22 @@
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
- <!-- May be possible to remove this later when ccsdk parent bom stabilizes -->
- <groupId>javax.servlet</groupId>
- <artifactId>javax.servlet-api</artifactId>
- <version>3.1.0</version>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-data-r2dbc</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.postgresql</groupId>
+ <artifactId>postgresql</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.postgresql</groupId>
+ <artifactId>r2dbc-postgresql</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.flywaydb</groupId>
+ <artifactId>flyway-core</artifactId>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
@@ -130,12 +137,12 @@
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
- <version>1.5.5.Final</version>
+ <version>${mapstruct.version}</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
- <version>1.5.5.Final</version>
+ <version>${mapstruct.version}</version>
</dependency>
<!-- Actuator dependencies -->
<dependency>
@@ -213,7 +220,7 @@
<dependency>
<groupId>com.github.erosb</groupId>
<artifactId>everit-json-schema</artifactId>
- <version>1.14.0</version>
+ <version>1.14.4</version>
</dependency>
<!-- For Tracing -->
<dependency>
@@ -222,30 +229,20 @@
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
- <artifactId>opentelemetry-exporter-otlp</artifactId>
- </dependency>
- <dependency>
- <groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-sdk-extension-jaeger-remote-sampler</artifactId>
</dependency>
<dependency>
- <groupId>io.opentelemetry</groupId>
- <artifactId>opentelemetry-sdk-extension-autoconfigure</artifactId>
- </dependency>
- <dependency>
<groupId>io.opentelemetry.instrumentation</groupId>
<artifactId>opentelemetry-spring-webflux-5.3</artifactId>
</dependency>
<dependency>
- <groupId>io.micrometer</groupId>
- <artifactId>context-propagation</artifactId>
- <version>1.0.2</version>
+ <groupId>io.opentelemetry.instrumentation</groupId>
+ <artifactId>opentelemetry-spring-boot-starter</artifactId>
</dependency>
<!-- For ObservationRegistryCustomizer -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-actuator-autoconfigure</artifactId>
- <version>3.1.0</version>
</dependency>
</dependencies>
<dependencyManagement>
@@ -253,14 +250,14 @@
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-bom</artifactId>
- <version>1.38.0</version>
+ <version>1.41.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>io.opentelemetry.instrumentation</groupId>
<artifactId>opentelemetry-instrumentation-bom-alpha</artifactId>
- <version>2.4.0-alpha</version>
+ <version>2.7.0-alpha</version>
<type>pom</type>
<scope>import</scope>
</dependency>
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/Application.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/Application.java
index 6f458647..1791222f 100644
--- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/Application.java
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/Application.java
@@ -25,7 +25,6 @@ import java.lang.invoke.MethodHandles;
import org.onap.ccsdk.oran.a1policymanagementservice.tasks.RefreshConfigTask;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -36,8 +35,10 @@ import org.springframework.context.annotation.Bean;
@SpringBootApplication
public class Application {
- @Autowired
- private RefreshConfigTask configRefresh;
+ private final RefreshConfigTask configRefresh;
+ Application(RefreshConfigTask configRefresh) {
+ this.configRefresh = configRefresh;
+ }
private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/BeanFactory.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/BeanFactory.java
index 71eae06f..4d1fa331 100644
--- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/BeanFactory.java
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/BeanFactory.java
@@ -3,6 +3,7 @@
* ONAP : ccsdk oran
* ======================================================================
* Copyright (C) 2019-2020 Nordix Foundation. All rights reserved.
+ * Copyright (C) 2023-2024 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.
@@ -20,15 +21,11 @@
package org.onap.ccsdk.oran.a1policymanagementservice;
-
import org.apache.catalina.connector.Connector;
import org.onap.ccsdk.oran.a1policymanagementservice.clients.A1ClientFactory;
import org.onap.ccsdk.oran.a1policymanagementservice.clients.SecurityContext;
import org.onap.ccsdk.oran.a1policymanagementservice.configuration.ApplicationConfig;
-import org.onap.ccsdk.oran.a1policymanagementservice.repository.Policies;
-import org.onap.ccsdk.oran.a1policymanagementservice.repository.PolicyTypes;
import org.onap.ccsdk.oran.a1policymanagementservice.repository.Rics;
-import org.onap.ccsdk.oran.a1policymanagementservice.repository.Services;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.embedded.tomcat.TomcatReactiveWebServerFactory;
@@ -54,25 +51,6 @@ public class BeanFactory {
}
@Bean
- public Services getServices(@Autowired ApplicationConfig applicationConfig) {
- Services services = new Services(applicationConfig);
- services.restoreFromDatabase().subscribe();
- return services;
- }
-
- @Bean
- public PolicyTypes getPolicyTypes(@Autowired ApplicationConfig applicationConfig) {
- PolicyTypes types = new PolicyTypes(applicationConfig);
- types.restoreFromDatabase().blockLast();
- return types;
- }
-
- @Bean
- public Policies getPolicies(@Autowired ApplicationConfig applicationConfig) {
- return new Policies(applicationConfig);
- }
-
- @Bean
public A1ClientFactory getA1ClientFactory(@Autowired ApplicationConfig applicationConfig,
@Autowired SecurityContext securityContext) {
return new A1ClientFactory(applicationConfig, securityContext);
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/DatabaseIndependentBeanFactory.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/DatabaseIndependentBeanFactory.java
new file mode 100644
index 00000000..305499d0
--- /dev/null
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/DatabaseIndependentBeanFactory.java
@@ -0,0 +1,57 @@
+/*-
+ * ========================LICENSE_START=================================
+ * ONAP : ccsdk oran
+ * ======================================================================
+ * Copyright (C) 2024 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ========================LICENSE_END===================================
+ */
+
+package org.onap.ccsdk.oran.a1policymanagementservice;
+
+import org.onap.ccsdk.oran.a1policymanagementservice.configuration.ApplicationConfig;
+import org.onap.ccsdk.oran.a1policymanagementservice.repository.Policies;
+import org.onap.ccsdk.oran.a1policymanagementservice.repository.PolicyTypes;
+import org.onap.ccsdk.oran.a1policymanagementservice.repository.Services;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration;
+import org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+@ConditionalOnProperty(prefix = "app", name = "database-enabled", havingValue = "false")
+@EnableAutoConfiguration(exclude = { R2dbcAutoConfiguration.class, FlywayAutoConfiguration.class })
+public class DatabaseIndependentBeanFactory {
+ @Bean
+ public Services getServices(@Autowired ApplicationConfig applicationConfig) {
+ Services services = new Services(applicationConfig);
+ services.restoreFromDatabase().subscribe();
+ return services;
+ }
+
+ @Bean
+ public PolicyTypes getPolicyTypes(@Autowired ApplicationConfig applicationConfig) {
+ PolicyTypes types = new PolicyTypes(applicationConfig);
+ types.restoreFromDatabase().blockLast();
+ return types;
+ }
+
+ @Bean
+ public Policies getPolicies(@Autowired ApplicationConfig applicationConfig) {
+ return new Policies(applicationConfig);
+ }
+}
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/ApplicationContextProvider.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/SpringContextProvider.java
index a7130201..925e0c57 100644
--- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/ApplicationContextProvider.java
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/SpringContextProvider.java
@@ -17,23 +17,25 @@
* limitations under the License.
* ========================LICENSE_END===================================
*/
-package org.onap.ccsdk.oran.a1policymanagementservice.configuration;
+
+package org.onap.ccsdk.oran.a1policymanagementservice;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
-@Configuration
-public class ApplicationContextProvider implements ApplicationContextAware {
- private static ApplicationContext context;
+@Component
+public class SpringContextProvider implements ApplicationContextAware {
+ private static ApplicationContext localApplicationContext;
+ @SuppressWarnings("java:S2696")
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
- context = applicationContext;
+ localApplicationContext = applicationContext;
}
- public static ApplicationContext getApplicationContext() {
- return context;
+ public static ApplicationContext getSpringContext() {
+ return localApplicationContext;
}
-} \ No newline at end of file
+}
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/A1ClientFactory.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/A1ClientFactory.java
index b5c10bf6..01891e99 100644
--- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/A1ClientFactory.java
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/A1ClientFactory.java
@@ -43,12 +43,9 @@ public class A1ClientFactory {
private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
- private final ApplicationConfig appConfig;
-
private final AsyncRestClientFactory restClientFactory;
public A1ClientFactory(ApplicationConfig appConfig, SecurityContext securityContext) {
- this.appConfig = appConfig;
this.restClientFactory = new AsyncRestClientFactory(appConfig.getWebClientConfig(), securityContext);
}
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/AsyncRestClient.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/AsyncRestClient.java
index ddcfd068..476c1606 100644
--- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/AsyncRestClient.java
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/AsyncRestClient.java
@@ -25,22 +25,16 @@ import io.netty.channel.ChannelOption;
import io.netty.handler.ssl.SslContext;
import io.netty.handler.timeout.ReadTimeoutHandler;
import io.netty.handler.timeout.WriteTimeoutHandler;
-import io.opentelemetry.instrumentation.spring.webflux.v5_3.SpringWebfluxTelemetry;
import java.lang.invoke.MethodHandles;
-import java.util.concurrent.atomic.AtomicInteger;
-import org.onap.ccsdk.oran.a1policymanagementservice.configuration.ApplicationContextProvider;
-import org.onap.ccsdk.oran.a1policymanagementservice.configuration.OtelConfig;
import org.onap.ccsdk.oran.a1policymanagementservice.configuration.WebClientConfig.HttpProxyConfig;
+import org.onap.ccsdk.oran.a1policymanagementservice.configuration.WebClientUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
-import org.springframework.http.client.reactive.ReactorClientHttpConnector;
import org.springframework.lang.Nullable;
-import org.springframework.web.reactive.function.client.ExchangeFilterFunction;
-import org.springframework.web.reactive.function.client.ExchangeStrategies;
import org.springframework.web.reactive.function.client.WebClient;
import org.springframework.web.reactive.function.client.WebClient.RequestHeadersSpec;
import org.springframework.web.reactive.function.client.WebClientResponseException;
@@ -57,11 +51,9 @@ public class AsyncRestClient {
private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
private WebClient webClient = null;
private final String baseUrl;
- private static final AtomicInteger sequenceNumber = new AtomicInteger();
private final SslContext sslContext;
private final HttpProxyConfig httpProxyConfig;
private final SecurityContext securityContext;
- private OtelConfig otelConfig = ApplicationContextProvider.getApplicationContext().getBean(OtelConfig.class);
public AsyncRestClient(String baseUrl, @Nullable SslContext sslContext, @Nullable HttpProxyConfig httpProxyConfig,
SecurityContext securityContext) {
@@ -156,10 +148,6 @@ public class AsyncRestClient {
}
}
- private static Object createTraceTag() {
- return sequenceNumber.incrementAndGet();
- }
-
private String toBody(ResponseEntity<String> entity) {
if (entity.getBody() == null) {
return "";
@@ -193,36 +181,8 @@ public class AsyncRestClient {
}
public WebClient buildWebClient(String baseUrl) {
- Object traceTag = createTraceTag();
-
final HttpClient httpClient = buildHttpClient();
- ExchangeStrategies exchangeStrategies = ExchangeStrategies.builder() //
- .codecs(configurer -> configurer.defaultCodecs().maxInMemorySize(-1)) //
- .build();
-
- ExchangeFilterFunction reqLogger = ExchangeFilterFunction.ofRequestProcessor(req -> {
- logger.debug("{} {} uri = '{}''", traceTag, req.method(), req.url());
- return Mono.just(req);
- });
-
- ExchangeFilterFunction respLogger = ExchangeFilterFunction.ofResponseProcessor(resp -> {
- logger.debug("{} resp: {}", traceTag, resp.statusCode());
- return Mono.just(resp);
- });
-
- WebClient.Builder webClientBuilder = WebClient.builder()
- .clientConnector(new ReactorClientHttpConnector(httpClient))
- .baseUrl(baseUrl)
- .exchangeStrategies(exchangeStrategies)
- .filter(reqLogger)
- .filter(respLogger);
-
- if (otelConfig.isTracingEnabled()) {
- SpringWebfluxTelemetry webfluxTelemetry = ApplicationContextProvider.getApplicationContext().getBean(SpringWebfluxTelemetry.class);
- webClientBuilder.filters(webfluxTelemetry::addClientTracingFilter);
- }
-
- return webClientBuilder.build();
+ return WebClientUtil.buildWebClient(baseUrl, httpClient);
}
private WebClient getWebClient() {
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/ApplicationConfig.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/ApplicationConfig.java
index 3de674bd..d3b51461 100644
--- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/ApplicationConfig.java
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/ApplicationConfig.java
@@ -3,6 +3,7 @@
* ONAP : ccsdk oran
* ======================================================================
* Copyright (C) 2019-2020 Nordix Foundation. All rights reserved.
+ * Copyright (C) 2023-2024 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.
@@ -104,6 +105,11 @@ public class ApplicationConfig {
@Value("${app.authorization-provider:}")
private String authProviderUrl;
+ @Getter
+ @Setter
+ @Value("${app.database-enabled:}")
+ private boolean databaseEnabled;
+
private Map<String, RicConfig> ricConfigs = new HashMap<>();
private WebClientConfig webClientConfig = null;
@@ -188,4 +194,8 @@ public class ApplicationConfig {
public boolean isS3Enabled() {
return !(Strings.isNullOrEmpty(s3EndpointOverride) || Strings.isNullOrEmpty(s3Bucket));
}
+
+ public boolean isDatabaseEnabled() {
+ return databaseEnabled;
+ }
}
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/ApplicationConfigParser.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/ApplicationConfigParser.java
index 45305f84..f5f0f7e7 100644
--- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/ApplicationConfigParser.java
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/ApplicationConfigParser.java
@@ -84,7 +84,7 @@ public class ApplicationConfigParser {
Map<String, ControllerConfig> controllerConfigs = parseControllerConfigs(pmsConfigJson);
List<RicConfig> ricConfigs = parseRics(pmsConfigJson, controllerConfigs);
- checkConfigurationConsistency(ricConfigs, controllerConfigs);
+ checkConfigurationConsistency(ricConfigs);
return ConfigParserResult.builder() //
.ricConfigs(ricConfigs) //
@@ -123,8 +123,7 @@ public class ApplicationConfigParser {
return CharStreams.toString(new InputStreamReader(in, StandardCharsets.UTF_8));
}
- private void checkConfigurationConsistency(List<RicConfig> ricConfigs,
- Map<String, ControllerConfig> controllerConfigs) throws ServiceException {
+ private void checkConfigurationConsistency(List<RicConfig> ricConfigs) throws ServiceException {
Set<String> ricUrls = new HashSet<>();
Set<String> ricNames = new HashSet<>();
for (RicConfig ric : ricConfigs) {
@@ -218,8 +217,4 @@ public class ApplicationConfigParser {
private JsonArray getAsJsonArray(JsonObject obj, String memberName) throws ServiceException {
return get(obj, memberName).getAsJsonArray();
}
-
- private static String getAsString(JsonObject obj, String memberName) throws ServiceException {
- return get(obj, memberName).getAsString();
- }
}
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/OtelConfig.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/OtelConfig.java
index a66bc062..cac03208 100644
--- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/OtelConfig.java
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/OtelConfig.java
@@ -27,11 +27,8 @@ import io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporter;
import io.opentelemetry.instrumentation.spring.webflux.v5_3.SpringWebfluxTelemetry;
import io.opentelemetry.sdk.extension.trace.jaeger.sampler.JaegerRemoteSampler;
import io.opentelemetry.sdk.trace.samplers.Sampler;
-import lombok.Getter;
-import reactor.core.publisher.Hooks;
import java.time.Duration;
-
import javax.annotation.PostConstruct;
import org.slf4j.Logger;
@@ -57,40 +54,50 @@ public class OtelConfig {
@Value("${spring.application.name}")
private String serviceId;
- @Value("${management.tracing.exporter.endpoint}")
+ @Value("${otel.exporter.otlp.traces.endpoint}")
private String tracingExporterEndpointUrl;
- @Value("${management.tracing.sampler.jaeger-remote.endpoint}")
+ @Value("${otel.tracing.sampler.jaeger-remote.endpoint}")
private String jaegerRemoteSamplerUrl;
- @Value("${management.tracing.exporter.protocol}")
+ @Value("${otel.exporter.otlp.traces.protocol}")
private String tracingProtocol;
- @Getter
- @Value("${management.tracing.enabled}")
- private boolean tracingEnabled;
+ @Value("${otel.sdk.disabled}")
+ private boolean tracingDisabled;
+
+ @Value("${otel.sdk.south}")
+ private boolean southTracingEnabled;
@PostConstruct
public void checkTracingConfig() {
- logger.info("Application Yaml Tracing Enabled: " + tracingEnabled);
+ logger.info("Application Yaml Tracing Enabled: " + !tracingDisabled);
+ }
+
+ public boolean isTracingEnabled() {
+ return !tracingDisabled;
+ }
+
+ public boolean isSouthTracingEnabled() {
+ return isTracingEnabled() && southTracingEnabled;
}
@Bean
- @ConditionalOnProperty(prefix = "management.tracing", name = "enabled", havingValue = "true", matchIfMissing = false)
- @ConditionalOnExpression("'grpc'.equals('${management.tracing.exporter.protocol}')")
+ @ConditionalOnProperty(prefix = "otel.sdk", name = "disabled", havingValue = "false", matchIfMissing = false)
+ @ConditionalOnExpression("'grpc'.equals('${otel.exporter.otlp.traces.protocol}')")
public OtlpGrpcSpanExporter otlpExporterGrpc() {
return OtlpGrpcSpanExporter.builder().setEndpoint(tracingExporterEndpointUrl).build();
}
@Bean
- @ConditionalOnProperty(prefix = "management.tracing", name = "enabled", havingValue = "true", matchIfMissing = false)
- @ConditionalOnExpression("'http'.equals('${management.tracing.exporter.protocol}')")
+ @ConditionalOnProperty(prefix = "otel.sdk", name = "disabled", havingValue = "false", matchIfMissing = false)
+ @ConditionalOnExpression("'http'.equals('${otel.exporter.otlp.traces.protocol}')")
public OtlpHttpSpanExporter otlpExporterHttp() {
return OtlpHttpSpanExporter.builder().setEndpoint(tracingExporterEndpointUrl).build();
}
@Bean
- @ConditionalOnProperty(prefix = "management.tracing", name = "enabled", havingValue = "true", matchIfMissing = false)
+ @ConditionalOnProperty(prefix = "otel.sdk", name = "disabled", havingValue = "false", matchIfMissing = false)
public JaegerRemoteSampler jaegerRemoteSampler() {
return JaegerRemoteSampler.builder().setEndpoint(jaegerRemoteSamplerUrl)
.setPollingInterval(Duration.ofSeconds(JAEGER_REMOTE_SAMPLER_POLLING_INTERVAL_IN_SECOND))
@@ -98,15 +105,13 @@ public class OtelConfig {
}
@Bean
- @ConditionalOnProperty(prefix = "management.tracing", name = "enabled", havingValue = "true", matchIfMissing = false)
+ @ConditionalOnExpression("!${otel.sdk.disabled:true} and ${otel.sdk.south:true}")
public SpringWebfluxTelemetry webfluxTelemetry (OpenTelemetry openTelemetry) {
- //enables automatic context propagation to ThreadLocals used by FLUX and MONO operators
- Hooks.enableAutomaticContextPropagation();
return SpringWebfluxTelemetry.builder(openTelemetry).build();
}
@Bean
- @ConditionalOnProperty(prefix = "management.tracing", name = "enabled", havingValue = "true", matchIfMissing = false)
+ @ConditionalOnProperty(prefix = "otel.sdk", name = "disabled", havingValue = "false", matchIfMissing = false)
ObservationRegistryCustomizer<ObservationRegistry> skipActuatorEndpointsFromObservation() {
PathMatcher pathMatcher = new AntPathMatcher("/");
return registry ->
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/WebClientUtil.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/WebClientUtil.java
new file mode 100644
index 00000000..68d9ea71
--- /dev/null
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/WebClientUtil.java
@@ -0,0 +1,87 @@
+/*-
+ * ========================LICENSE_START=================================
+ * ONAP : ccsdk oran
+ * ======================================================================
+ * Copyright (C) 2024 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ========================LICENSE_END===================================
+ */
+package org.onap.ccsdk.oran.a1policymanagementservice.configuration;
+
+import io.opentelemetry.instrumentation.spring.webflux.v5_3.SpringWebfluxTelemetry;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.DependsOn;
+import org.springframework.http.client.reactive.ReactorClientHttpConnector;
+import org.springframework.stereotype.Service;
+import org.springframework.web.reactive.function.client.ExchangeFilterFunction;
+import org.springframework.web.reactive.function.client.ExchangeStrategies;
+import org.springframework.web.reactive.function.client.WebClient;
+
+import reactor.core.publisher.Mono;
+import reactor.netty.http.client.HttpClient;
+
+import java.lang.invoke.MethodHandles;
+import java.util.concurrent.atomic.AtomicInteger;
+
+@Service
+@DependsOn({"otelConfig"})
+public class WebClientUtil {
+
+ private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
+
+ private static OtelConfig otelConfig;
+
+ private static SpringWebfluxTelemetry springWebfluxTelemetry;
+
+ public WebClientUtil(OtelConfig otelConfig, @Autowired(required = false) SpringWebfluxTelemetry springWebfluxTelemetry) {
+ WebClientUtil.otelConfig = otelConfig;
+ if (otelConfig.isTracingEnabled()) {
+ WebClientUtil.springWebfluxTelemetry = springWebfluxTelemetry;
+ }
+ }
+
+ public static WebClient buildWebClient(String baseURL, final HttpClient httpClient) {
+
+ Object traceTag = new AtomicInteger().incrementAndGet();
+
+ ExchangeStrategies exchangeStrategies = ExchangeStrategies.builder() //
+ .codecs(configurer -> configurer.defaultCodecs().maxInMemorySize(-1)) //
+ .build();
+
+ ExchangeFilterFunction reqLogger = ExchangeFilterFunction.ofRequestProcessor(req -> {
+ logger.debug("{} {} uri = '{}''", traceTag, req.method(), req.url());
+ return Mono.just(req);
+ });
+
+ ExchangeFilterFunction respLogger = ExchangeFilterFunction.ofResponseProcessor(resp -> {
+ logger.debug("{} resp: {}", traceTag, resp.statusCode());
+ return Mono.just(resp);
+ });
+
+ WebClient.Builder webClientBuilder = WebClient.builder()
+ .clientConnector(new ReactorClientHttpConnector(httpClient))
+ .baseUrl(baseURL)
+ .exchangeStrategies(exchangeStrategies)
+ .filter(reqLogger)
+ .filter(respLogger);
+
+ if (otelConfig.isSouthTracingEnabled()) {
+ webClientBuilder.filters(springWebfluxTelemetry::addClientTracingFilter);
+ }
+
+ return webClientBuilder.build();
+ }
+}
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/authorization/AuthorizationCheck.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/authorization/AuthorizationCheck.java
index 5ad50688..0f376c06 100644
--- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/authorization/AuthorizationCheck.java
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/authorization/AuthorizationCheck.java
@@ -36,14 +36,12 @@ import org.onap.ccsdk.oran.a1policymanagementservice.repository.Policy;
import org.onap.ccsdk.oran.a1policymanagementservice.repository.PolicyType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.context.annotation.DependsOn;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
import reactor.core.publisher.Mono;
@Component
-@DependsOn("applicationContextProvider")
public class AuthorizationCheck {
private final ApplicationConfig applicationConfig;
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ConfigurationController.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ConfigurationController.java
index 4b0d6b58..51ac59bc 100644
--- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ConfigurationController.java
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ConfigurationController.java
@@ -39,7 +39,7 @@ import reactor.core.publisher.Mono;
import java.io.IOException;
import java.util.Optional;
-@RestController("ConfigurationControllerV2")
+@RestController("configurationControllerV2")
@Tag( //
name = ConfigurationController.API_NAME, //
description = ConfigurationController.API_DESCRIPTION //
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 21da2f77..42417d43 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 V3_API_ROOT = "/a1policymanagement/v1";
+ public static final String V3_API_ROOT = "/a1-policy-management/v1";
public static final String V2_API_SERVICE_CALLBACKS_NAME = "Service callbacks";
public static final String V2_API_SERVICE_CALLBACKS_DESCRIPTION = "";
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/PolicyController.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/PolicyController.java
index 53cf62a2..9299ffeb 100644
--- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/PolicyController.java
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/PolicyController.java
@@ -36,6 +36,7 @@ import java.util.List;
import lombok.Getter;
+import lombok.RequiredArgsConstructor;
import org.onap.ccsdk.oran.a1policymanagementservice.clients.A1ClientFactory;
import org.onap.ccsdk.oran.a1policymanagementservice.controllers.api.v2.A1PolicyManagementApi;
import org.onap.ccsdk.oran.a1policymanagementservice.controllers.authorization.AuthorizationCheck;
@@ -51,7 +52,6 @@ import org.onap.ccsdk.oran.a1policymanagementservice.models.v2.PolicyStatusInfo;
import org.onap.ccsdk.oran.a1policymanagementservice.repository.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RestController;
@@ -62,7 +62,8 @@ import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
-@RestController("PolicyControllerV2")
+@RestController("policyControllerV2")
+@RequiredArgsConstructor
@Tag(//
name = PolicyController.API_NAME, //
description = PolicyController.API_DESCRIPTION //
@@ -71,7 +72,6 @@ public class PolicyController implements A1PolicyManagementApi {
public static final String API_NAME = "A1 Policy Management";
public static final String API_DESCRIPTION = "";
-
public static class RejectionException extends Exception {
private static final long serialVersionUID = 1L;
@@ -84,24 +84,16 @@ public class PolicyController implements A1PolicyManagementApi {
}
}
- @Autowired
- private Rics rics;
- @Autowired
- private PolicyTypes policyTypes;
- @Autowired
- private Policies policies;
- @Autowired
- private A1ClientFactory a1ClientFactory;
- @Autowired
- private Services services;
- @Autowired
- private ObjectMapper objectMapper;
- @Autowired
- private AuthorizationCheck authorization;
+ private final Rics rics;
+ private final PolicyTypes policyTypes;
+ private final Policies policies;
+ private final A1ClientFactory a1ClientFactory;
+ private final Services services;
+ private final ObjectMapper objectMapper;
+ private final AuthorizationCheck authorization;
private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
- private static Gson gson = new GsonBuilder() //
- .create(); //
+ private static final Gson gson = new GsonBuilder().create();
@Override
public Mono<ResponseEntity<PolicyTypeDefinition>> getPolicyTypeDefinition(String policyTypeId, ServerWebExchange exchange)
@@ -126,7 +118,6 @@ public class PolicyController implements A1PolicyManagementApi {
return Mono.just(new ResponseEntity<>(toPolicyTypeIdsJson(types), HttpStatus.OK));
}
-
@Override
public Mono<ResponseEntity<PolicyInfo>> getPolicy(String policyId, final ServerWebExchange exchange)
throws EntityNotFoundException {
@@ -142,6 +133,7 @@ public class PolicyController implements A1PolicyManagementApi {
Policy policy = policies.getPolicy(policyId);
keepServiceAlive(policy.getOwnerServiceId());
+ logger.trace("Policy to be deleted: {}", policy.getId());
return authorization.doAccessControl(exchange.getRequest().getHeaders().toSingleValueMap(), policy, AccessType.WRITE)
.flatMap(x -> policy.getRic().getLock().lock(Lock.LockType.SHARED, "deletePolicy"))
.flatMap(grant -> deletePolicy(grant, policy))
@@ -162,13 +154,11 @@ public class PolicyController implements A1PolicyManagementApi {
public Mono<ResponseEntity<Object>> putPolicy(final Mono<PolicyInfo> policyInfo, final ServerWebExchange exchange) {
return policyInfo.flatMap(policyInfoValue -> {
- String jsonString = gson.toJson(policyInfoValue.getPolicyData());
- return Mono.zip(
- Mono.justOrEmpty(rics.get(policyInfoValue.getRicId()))
+ String jsonString = gson.toJson(policyInfoValue.getPolicyData());
+ return Mono.zip(Mono.justOrEmpty(rics.get(policyInfoValue.getRicId()))
.switchIfEmpty(Mono.error(new EntityNotFoundException("Near-RT RIC not found"))),
Mono.justOrEmpty(policyTypes.get(policyInfoValue.getPolicytypeId()))
- .switchIfEmpty(Mono.error(new EntityNotFoundException("policy type not found")))
- )
+ .switchIfEmpty(Mono.error(new EntityNotFoundException("policy type not found"))))
.flatMap(tuple -> {
Ric ric = tuple.getT1();
PolicyType type = tuple.getT2();
@@ -187,13 +177,10 @@ public class PolicyController implements A1PolicyManagementApi {
return authorization.doAccessControl(exchange.getRequest().getHeaders().toSingleValueMap(), policy, AccessType.WRITE)
.flatMap(x -> ric.getLock().lock(Lock.LockType.SHARED, "putPolicy"))
.flatMap(grant -> putPolicy(grant, policy));
- })
- .onErrorResume(this::handleException);
+ }).onErrorResume(this::handleException);
});
}
-
-
private Mono<ResponseEntity<Object>> putPolicy(Lock.Grant grant, Policy policy) {
final boolean isCreate = this.policies.get(policy.getId()) == null;
final Ric ric = policy.getRic();
@@ -328,32 +315,31 @@ public class PolicyController implements A1PolicyManagementApi {
}
private PolicyInfo toPolicyInfo(Policy policy) {
- try {
- PolicyInfo policyInfo = new PolicyInfo()
- .policyId(policy.getId())
- .policyData(objectMapper.readTree(policy.getJson()))
- .ricId(policy.getRic().id())
- .policytypeId(policy.getType().getId())
- .serviceId(policy.getOwnerServiceId())
- ._transient(policy.isTransient());
- if (!policy.getStatusNotificationUri().isEmpty()) {
- policyInfo.setStatusNotificationUri(policy.getStatusNotificationUri());
- }
- return policyInfo;
- } catch (JsonProcessingException ex) {
- throw new RuntimeException(ex);
- }
+ try {
+ PolicyInfo policyInfo = new PolicyInfo()
+ .policyId(policy.getId())
+ .policyData(objectMapper.readTree(policy.getJson()))
+ .ricId(policy.getRic().id())
+ .policytypeId(policy.getType().getId())
+ .serviceId(policy.getOwnerServiceId())
+ ._transient(policy.isTransient());
+ if (!policy.getStatusNotificationUri().isEmpty()) {
+ policyInfo.setStatusNotificationUri(policy.getStatusNotificationUri());
+ }
+ return policyInfo;
+ } catch (JsonProcessingException ex) {
+ throw new RuntimeException(ex);
+ }
}
private PolicyInfoList policiesToJson(Collection<Policy> policies) {
-
- List<PolicyInfo> policiesList = new ArrayList<>(policies.size());
- PolicyInfoList policyInfoList = new PolicyInfoList();
- for (Policy policy : policies) {
- policiesList.add(toPolicyInfo(policy));
- }
- policyInfoList.setPolicies(policiesList);
- return policyInfoList;
+ List<PolicyInfo> policiesList = new ArrayList<>(policies.size());
+ PolicyInfoList policyInfoList = new PolicyInfoList();
+ for (Policy policy : policies) {
+ policiesList.add(toPolicyInfo(policy));
+ }
+ policyInfoList.setPolicies(policiesList);
+ return policyInfoList;
}
private Object fromJson(String jsonStr) {
@@ -373,12 +359,12 @@ public class PolicyController implements A1PolicyManagementApi {
private PolicyIdList toPolicyIdsJson(Collection<Policy> policies) {
- List<String> policyIds = new ArrayList<>(policies.size());
- PolicyIdList idList = new PolicyIdList();
- for (Policy policy : policies) {
- policyIds.add(policy.getId());
- }
- idList.setPolicyIds(policyIds);
- return idList;
+ List<String> policyIds = new ArrayList<>(policies.size());
+ PolicyIdList idList = new PolicyIdList();
+ for (Policy policy : policies) {
+ policyIds.add(policy.getId());
+ }
+ idList.setPolicyIds(policyIds);
+ return idList;
}
}
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/RicRepositoryController.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/RicRepositoryController.java
index 8907774b..f7872a38 100644
--- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/RicRepositoryController.java
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/RicRepositoryController.java
@@ -24,6 +24,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
import org.onap.ccsdk.oran.a1policymanagementservice.controllers.api.v2.NearRtRicRepositoryApi;
import org.onap.ccsdk.oran.a1policymanagementservice.exceptions.EntityNotFoundException;
import org.onap.ccsdk.oran.a1policymanagementservice.exceptions.InvalidRequestException;
@@ -32,7 +33,6 @@ import org.onap.ccsdk.oran.a1policymanagementservice.models.v2.RicInfoList;
import org.onap.ccsdk.oran.a1policymanagementservice.repository.PolicyTypes;
import org.onap.ccsdk.oran.a1policymanagementservice.repository.Ric;
import org.onap.ccsdk.oran.a1policymanagementservice.repository.Rics;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RestController;
@@ -42,7 +42,8 @@ import reactor.core.publisher.Mono;
import java.util.ArrayList;
import java.util.List;
-@RestController("RicRepositoryControllerV2")
+@RestController("ricRepositoryControllerV2")
+@RequiredArgsConstructor
@Tag( //
name = RicRepositoryController.API_NAME, //
description = RicRepositoryController.API_DESCRIPTION //
@@ -52,17 +53,11 @@ public class RicRepositoryController implements NearRtRicRepositoryApi {
public static final String API_NAME = "NearRT-RIC Repository";
public static final String API_DESCRIPTION = "";
- @Autowired
- private Rics rics;
+ private final Rics rics;
+ final PolicyTypes types;
+ final ObjectMapper objectMapper;
- @Autowired
- PolicyTypes types;
-
- @Autowired
- ObjectMapper objectMapper;
-
- private static Gson gson = new GsonBuilder() //
- .create(); //
+ private static final Gson gson = new GsonBuilder().create();
private static final String GET_RIC_BRIEF = "Returns info for one Near-RT RIC";
private static final String GET_RIC_DETAILS =
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ServiceController.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ServiceController.java
index 5c92b543..4da11a9d 100644
--- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ServiceController.java
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ServiceController.java
@@ -20,10 +20,8 @@
package org.onap.ccsdk.oran.a1policymanagementservice.controllers.v2;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
import org.onap.ccsdk.oran.a1policymanagementservice.controllers.api.v2.ServiceRegistryAndSupervisionApi;
import org.onap.ccsdk.oran.a1policymanagementservice.exceptions.ServiceException;
import org.onap.ccsdk.oran.a1policymanagementservice.models.v2.ServiceRegistrationInfo;
@@ -33,13 +31,16 @@ import org.onap.ccsdk.oran.a1policymanagementservice.repository.Policies;
import org.onap.ccsdk.oran.a1policymanagementservice.repository.Policy;
import org.onap.ccsdk.oran.a1policymanagementservice.repository.Service;
import org.onap.ccsdk.oran.a1policymanagementservice.repository.Services;
-import org.springframework.beans.factory.annotation.Autowired;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.server.ServerWebExchange;
+
import reactor.core.publisher.Mono;
+import java.lang.invoke.MethodHandles;
import java.net.MalformedURLException;
import java.net.URL;
import java.time.Duration;
@@ -47,7 +48,8 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
-@RestController("ServiceControllerV2")
+@RestController("serviceControllerV2")
+@RequiredArgsConstructor
@Tag( //
name = ServiceController.API_NAME, //
description = ServiceController.API_DESCRIPTION //
@@ -61,15 +63,9 @@ public class ServiceController implements ServiceRegistryAndSupervisionApi {
private final Services services;
private final Policies policies;
- @Autowired
- private ObjectMapper objectMapper;
-
- private static Gson gson = new GsonBuilder().create();
+ private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
- ServiceController(Services services, Policies policies) {
- this.services = services;
- this.policies = policies;
- }
+ private final PolicyController policyController;
private static final String GET_SERVICE_DETAILS =
"Either information about a registered service with given identity or all registered services are returned.";
@@ -118,50 +114,66 @@ public class ServiceController implements ServiceRegistryAndSupervisionApi {
+ "Policies can be created even if the service is not registerred. This is a feature which it is optional to use.";
@Override
- public Mono<ResponseEntity<Object>> putService(
- final Mono<ServiceRegistrationInfo> registrationInfo, final ServerWebExchange exchange) {
- return registrationInfo.flatMap(info -> {
- try {
- validateRegistrationInfo(info);
- } catch(Exception e) {
- return ErrorResponse.createMono(e, HttpStatus.BAD_REQUEST);
- }
- final boolean isCreate = this.services.get(info.getServiceId()) == null;
- this.services.put(toService(info));
- return Mono.just(new ResponseEntity<>(isCreate ? HttpStatus.CREATED : HttpStatus.OK));
- }).onErrorResume(Exception.class, e -> ErrorResponse.createMono(e, HttpStatus.BAD_REQUEST));
+ public Mono<ResponseEntity<Object>> putService(final Mono<ServiceRegistrationInfo> registrationInfo, final ServerWebExchange exchange) {
+ return registrationInfo.flatMap(info -> {
+ try {
+ validateRegistrationInfo(info);
+ } catch (Exception e) {
+ return ErrorResponse.createMono(e, HttpStatus.BAD_REQUEST);
+ }
+ final boolean isCreate = this.services.get(info.getServiceId()) == null;
+ this.services.put(toService(info));
+ return Mono.just(new ResponseEntity<>(isCreate ? HttpStatus.CREATED : HttpStatus.OK));
+ }).onErrorResume(Exception.class, e -> ErrorResponse.createMono(e, HttpStatus.BAD_REQUEST));
}
@Override
public Mono<ResponseEntity<Object>> deleteService(final String serviceId, final ServerWebExchange exchange) {
try {
Service service = removeService(serviceId);
- // Remove the policies from the repo and let the consistency monitoring
- // do the rest.
- removePolicies(service);
+ removePolicies(service, exchange);
return Mono.just(new ResponseEntity<>(HttpStatus.NO_CONTENT));
} catch (ServiceException e) {
+ logger.warn("Exception caught during service deletion while deleting service {}: {}", serviceId,
+ e.getMessage());
return ErrorResponse.createMono(e, HttpStatus.NOT_FOUND);
}
}
@Override
public Mono<ResponseEntity<Object>> keepAliveService(final String serviceId, final ServerWebExchange exchange) throws ServiceException {
-
- services.getService(serviceId).keepAlive();
- return Mono.just(new ResponseEntity<>(HttpStatus.OK));
+ services.getService(serviceId).keepAlive();
+ return Mono.just(new ResponseEntity<>(HttpStatus.OK));
}
private Service removeService(String name) throws ServiceException {
Service service = this.services.getService(name); // Just to verify that it exists
+ logger.trace("Service name to be deleted: {}", service.getName());
this.services.remove(service.getName());
return service;
}
- private void removePolicies(Service service) {
+ private void removePolicies(Service service, ServerWebExchange exchange) {
Collection<Policy> policyList = this.policies.getForService(service.getName());
+ logger.trace("Policies to be deleted: {}", policyList);
for (Policy policy : policyList) {
- this.policies.remove(policy);
+ try {
+ policyController.deletePolicy(policy.getId(), exchange).doOnNext(resp -> {
+ if (resp.getStatusCode().is2xxSuccessful()) {
+ logger.trace("Deleting Policy '{}' when deleting Service '{}'", policy.getId(),
+ service.getName());
+ } else {
+ logger.warn("Possible problem deleting Policy '{}' when deleting Service '{}'. Continuing, "
+ + "but might trigger a re-sync with affected ric '{}'. Repsonse: \"{}\"",
+ policy.getId(), service.getName(), policy.getRic().getConfig().getRicId(),
+ resp.toString());
+ }
+ }).subscribe();
+ } catch (Exception e) {
+ logger.warn("Problem deleting Policy '{}' when deleting Service '{}'."
+ + " Continuing, but might trigger a re-sync with affected ric '{}'. Problem: \"{}\"",
+ policy.getId(), service.getName(), policy.getRic().getConfig().getRicId(), e.getMessage());
+ }
}
}
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/StatusController.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/StatusController.java
index 4ec3652d..b2cb69ce 100644
--- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/StatusController.java
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/StatusController.java
@@ -29,7 +29,7 @@ import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;
-@RestController("StatusControllerV2")
+@RestController("statusControllerV2")
@Tag( name = StatusController.API_NAME,
description = StatusController.API_DESCRIPTION
)
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/ConfigurationControllerV3.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/ConfigurationControllerV3.java
index d04254c0..40f84647 100644
--- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/ConfigurationControllerV3.java
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/ConfigurationControllerV3.java
@@ -19,28 +19,28 @@
package org.onap.ccsdk.oran.a1policymanagementservice.controllers.v3;
import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
import org.onap.ccsdk.oran.a1policymanagementservice.controllers.api.v3.ConfigurationApi;
import org.onap.ccsdk.oran.a1policymanagementservice.controllers.v2.ConfigurationController;
-import org.springframework.beans.factory.annotation.Autowired;
+import org.onap.ccsdk.oran.a1policymanagementservice.controllers.v2.Consts;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;
-@RestController("ConfigurationControllerV3")
+@RestController("configurationControllerV3")
+@RequiredArgsConstructor
@Tag( //
name = ConfigurationControllerV3.API_NAME, //
description = ConfigurationControllerV3.API_DESCRIPTION //
)
-@RequestMapping("/a1policymanagement/v1")
+@RequestMapping(Consts.V3_API_ROOT)
public class ConfigurationControllerV3 implements ConfigurationApi {
public static final String API_NAME = "Management of configuration";
public static final String API_DESCRIPTION = "API used to create or fetch the application configuration";
-
- @Autowired
- private ConfigurationController configurationController;
+ private final ConfigurationController configurationController;
@Override
public Mono<ResponseEntity<String>> getConfiguration(ServerWebExchange exchange) throws Exception {
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/PolicyControllerV3.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/PolicyControllerV3.java
index 4d9f3277..08aa7c7b 100644
--- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/PolicyControllerV3.java
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/PolicyControllerV3.java
@@ -21,6 +21,7 @@
package org.onap.ccsdk.oran.a1policymanagementservice.controllers.v3;
import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
import org.onap.ccsdk.oran.a1policymanagementservice.controllers.api.v3.A1PolicyManagementApi;
import org.onap.ccsdk.oran.a1policymanagementservice.controllers.v2.Consts;
import org.onap.ccsdk.oran.a1policymanagementservice.controllers.v2.PolicyController;
@@ -29,15 +30,14 @@ import org.onap.ccsdk.oran.a1policymanagementservice.models.v3.PolicyObjectInfor
import org.onap.ccsdk.oran.a1policymanagementservice.models.v3.PolicyTypeInformation;
import org.onap.ccsdk.oran.a1policymanagementservice.service.v3.ErrorHandlingService;
import org.onap.ccsdk.oran.a1policymanagementservice.service.v3.PolicyService;
-import org.onap.ccsdk.oran.a1policymanagementservice.util.v3.Helper;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
-@RestController("PolicyControllerV3")
+@RestController("policyControllerV3")
+@RequiredArgsConstructor
@Tag(//
name = PolicyController.API_NAME, //
description = PolicyController.API_DESCRIPTION //
@@ -46,54 +46,49 @@ import reactor.core.publisher.Mono;
public class PolicyControllerV3 implements A1PolicyManagementApi {
public static final String API_NAME = "A1 Policy Management";
public static final String API_DESCRIPTION = "API to create,update and get policies or policy definitions";
- @Autowired
- private PolicyService policyService;
- @Autowired
- private Helper helper;
-
- @Autowired
- private ErrorHandlingService errorHandlingService;
+ private final PolicyService policyService;
+ private final ErrorHandlingService errorHandlingService;
@Override
public Mono<ResponseEntity<PolicyObjectInformation>> createPolicy(Mono<PolicyObjectInformation> policyObjectInformation, ServerWebExchange exchange) {
return policyObjectInformation.flatMap(policyObjectInfo -> policyService.createPolicyService(policyObjectInfo, exchange)
- .doOnError(error -> errorHandlingService.handleError(error)));
+ .doOnError(errorHandlingService::handleError));
}
@Override
public Mono<ResponseEntity<Void>> deletePolicy(String policyId, String accept, ServerWebExchange exchange) throws Exception {
return policyService.deletePolicyService(policyId, exchange)
- .doOnError(error -> errorHandlingService.handleError(error));
+ .doOnError(errorHandlingService::handleError);
}
@Override
public Mono<ResponseEntity<Object>> getPolicy(String policyId, String accept, ServerWebExchange exchange) throws Exception {
return policyService.getPolicyService(policyId, exchange)
- .doOnError(error -> errorHandlingService.handleError(error));
+ .doOnError(errorHandlingService::handleError);
}
@Override
- public Mono<ResponseEntity<Flux<PolicyInformation>>> getPolicyIds(String policyTypeId, String nearRtRicId, String serviceId, String typeName, String accept, ServerWebExchange exchange) throws Exception {
+ public Mono<ResponseEntity<Flux<PolicyInformation>>> getAllPolicies(String policyTypeId, String nearRtRicId, String serviceId, String typeName, String accept, ServerWebExchange exchange) throws Exception {
return policyService.getPolicyIdsService(policyTypeId, nearRtRicId, serviceId, typeName, exchange)
- .doOnError(error -> errorHandlingService.handleError(error));
+ .doOnError(errorHandlingService::handleError);
}
@Override
public Mono<ResponseEntity<Object>> getPolicyTypeDefinition(String policyTypeId, String accept, ServerWebExchange exchange) throws Exception {
return policyService.getPolicyTypeDefinitionService(policyTypeId)
- .doOnError(error -> errorHandlingService.handleError(error));
+ .doOnError(errorHandlingService::handleError);
}
@Override
public Mono<ResponseEntity<Flux<PolicyTypeInformation>>> getPolicyTypes(String nearRtRicId, String typeName, String compatibleWithVersion, String accept, ServerWebExchange exchange) throws Exception {
return policyService.getPolicyTypesService(nearRtRicId, typeName, compatibleWithVersion, exchange)
- .doOnError(error -> errorHandlingService.handleError(error));
+ .doOnError(errorHandlingService::handleError);
}
@Override
public Mono<ResponseEntity<Object>> putPolicy(String policyId, Mono<Object> body, ServerWebExchange exchange) throws Exception {
return body.flatMap(payload -> policyService.putPolicyService(policyId, payload, exchange))
- .doOnError(error -> errorHandlingService.handleError(error));
+ .doOnError(errorHandlingService::handleError);
}
}
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/RicRepositoryControllerV3.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/RicRepositoryControllerV3.java
index 9160bad2..89d47d7f 100644
--- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/RicRepositoryControllerV3.java
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/RicRepositoryControllerV3.java
@@ -21,49 +21,49 @@
package org.onap.ccsdk.oran.a1policymanagementservice.controllers.v3;
import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
import org.onap.ccsdk.oran.a1policymanagementservice.controllers.api.v3.NearRtRicRepositoryApi;
+import org.onap.ccsdk.oran.a1policymanagementservice.controllers.v2.Consts;
import org.onap.ccsdk.oran.a1policymanagementservice.mappers.v3.RicRepositoryMapper;
import org.onap.ccsdk.oran.a1policymanagementservice.controllers.v2.RicRepositoryController;
import org.onap.ccsdk.oran.a1policymanagementservice.models.v3.RicInfo;
import org.onap.ccsdk.oran.a1policymanagementservice.models.v3.RicInfoList;
import org.onap.ccsdk.oran.a1policymanagementservice.service.v3.ErrorHandlingService;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;
-@RestController("RicRepositoryControllerV3")
+@RestController("ricRepositoryControllerV3")
+@RequiredArgsConstructor
@Tag(
name = RicRepositoryControllerV3.API_NAME,
description = RicRepositoryControllerV3.API_DESCRIPTION
)
-@RequestMapping("/a1policymanagement/v1")
+@RequestMapping(Consts.V3_API_ROOT)
public class RicRepositoryControllerV3 implements NearRtRicRepositoryApi {
public static final String API_NAME = "NearRT-RIC Repository V3";
public static final String API_DESCRIPTION = "API used to get the NearRT-RIC for the managed element";
- @Autowired
- private RicRepositoryController ricRepositoryController;
- @Autowired
- private RicRepositoryMapper ricRepositoryMapper;
+ private final RicRepositoryController ricRepositoryController;
- @Autowired
- ErrorHandlingService errorHandlingService;
+ private final RicRepositoryMapper ricRepositoryMapper;
+
+ private final ErrorHandlingService errorHandlingService;
@Override
public Mono<ResponseEntity<RicInfo>> getRic(String managedElementId, String ricId, String accept, ServerWebExchange exchange) throws Exception {
return ricRepositoryController.getRic(managedElementId, ricId, exchange)
.map(responseEntity -> new ResponseEntity<>(ricRepositoryMapper.toRicInfoV3(responseEntity.getBody()), responseEntity.getStatusCode()))
- .doOnError(error -> errorHandlingService.handleError(error));
+ .doOnError(errorHandlingService::handleError);
}
@Override
public Mono<ResponseEntity<RicInfoList>> getRics(String policyTypeId, String accept, ServerWebExchange exchange) throws Exception {
return ricRepositoryController.getRics(policyTypeId, exchange)
.map(responseEntity -> new ResponseEntity<>(ricRepositoryMapper.toRicInfoListV3(responseEntity.getBody()), responseEntity.getStatusCode()))
- .doOnError(error -> errorHandlingService.handleError(error));
+ .doOnError(errorHandlingService::handleError);
}
}
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/ServiceControllerV3.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/ServiceControllerV3.java
index 1d5461c3..d29e37a6 100644
--- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/ServiceControllerV3.java
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/ServiceControllerV3.java
@@ -21,38 +21,37 @@
package org.onap.ccsdk.oran.a1policymanagementservice.controllers.v3;
import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
import org.onap.ccsdk.oran.a1policymanagementservice.controllers.api.v3.ServiceRegistryAndSupervisionApi;
+import org.onap.ccsdk.oran.a1policymanagementservice.controllers.v2.Consts;
import org.onap.ccsdk.oran.a1policymanagementservice.controllers.v2.ServiceController;
import org.onap.ccsdk.oran.a1policymanagementservice.mappers.v3.ServiceControllerMapper;
import org.onap.ccsdk.oran.a1policymanagementservice.models.v3.ServiceRegistrationInfo;
import org.onap.ccsdk.oran.a1policymanagementservice.models.v3.ServiceStatusList;
import org.onap.ccsdk.oran.a1policymanagementservice.service.v3.ErrorHandlingService;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;
-@RestController("ServiceControllerV3")
+@RestController("serviceControllerV3")
+@RequiredArgsConstructor
@Tag( //
name = ServiceControllerV3.API_NAME, //
description = ServiceControllerV3.API_DESCRIPTION //
)
-@RequestMapping("/a1policymanagement/v1")
+@RequestMapping(Consts.V3_API_ROOT)
public class ServiceControllerV3 implements ServiceRegistryAndSupervisionApi {
public static final String API_NAME = "Service Registry and Supervision";
public static final String API_DESCRIPTION = "API used to keep the service Alive with in the timeout period";
- @Autowired
- private ServiceController serviceController;
+ private final ServiceController serviceController;
- @Autowired
- private ServiceControllerMapper serviceControllerMapper;
+ private final ServiceControllerMapper serviceControllerMapper;
- @Autowired
- ErrorHandlingService errorHandlingService;
+ private final ErrorHandlingService errorHandlingService;
@Override
public Mono<ResponseEntity<Object>> deleteService(String serviceId, String accept, ServerWebExchange exchange) throws Exception {
@@ -64,7 +63,7 @@ public class ServiceControllerV3 implements ServiceRegistryAndSupervisionApi {
return serviceController.getServices(serviceId, exchange)
.map(responseEntity -> new ResponseEntity<>(serviceControllerMapper.toServiceStatusListV3(
responseEntity.getBody()), responseEntity.getStatusCode()))
- .doOnError(error -> errorHandlingService.handleError(error));
+ .doOnError(errorHandlingService::handleError);
}
@Override
@@ -74,8 +73,7 @@ public class ServiceControllerV3 implements ServiceRegistryAndSupervisionApi {
@Override
public Mono<ResponseEntity<Object>> putService(Mono<ServiceRegistrationInfo> serviceRegistrationInfo, ServerWebExchange exchange) throws Exception {
- return serviceController.putService(serviceRegistrationInfo.map(serviceRegistrationInfoV2 ->
- serviceControllerMapper.toServiceRegistrationInfoV2(serviceRegistrationInfoV2)), exchange)
- .doOnError(error -> errorHandlingService.handleError(error));
+ return serviceController.putService(serviceRegistrationInfo.map(serviceControllerMapper::toServiceRegistrationInfoV2), exchange)
+ .doOnError(errorHandlingService::handleError);
}
}
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/StatusControllerV3.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/StatusControllerV3.java
index 4bed9fe8..5ef32901 100644
--- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/StatusControllerV3.java
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/StatusControllerV3.java
@@ -21,44 +21,43 @@
package org.onap.ccsdk.oran.a1policymanagementservice.controllers.v3;
import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
import org.onap.ccsdk.oran.a1policymanagementservice.controllers.api.v3.HealthCheckApi;
-import org.onap.ccsdk.oran.a1policymanagementservice.controllers.v2.RicRepositoryController;
+import org.onap.ccsdk.oran.a1policymanagementservice.controllers.v2.Consts;
import org.onap.ccsdk.oran.a1policymanagementservice.controllers.v2.StatusController;
import org.onap.ccsdk.oran.a1policymanagementservice.mappers.v3.StatusControllerMapper;
import org.onap.ccsdk.oran.a1policymanagementservice.models.v3.StatusInfo;
import org.onap.ccsdk.oran.a1policymanagementservice.service.v3.ErrorHandlingService;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;
-@RestController("StatusControllerV3")
+@RestController("statusControllerV3")
+@RequiredArgsConstructor
@Tag( //
name = StatusControllerV3.API_NAME, //
description = StatusControllerV3.API_DESCRIPTION //
)
-@RequestMapping("/a1policymanagement/v1")
+@RequestMapping(Consts.V3_API_ROOT)
public class StatusControllerV3 implements HealthCheckApi {
public static final String API_NAME = "Health Check";
public static final String API_DESCRIPTION = "API used to get the health status and statistics of this service";
- @Autowired
- private StatusController statusController;
- @Autowired
- private StatusControllerMapper statusControllerMapper;
+ private final StatusController statusController;
- @Autowired
- ErrorHandlingService errorHandlingService;
+ private final StatusControllerMapper statusControllerMapper;
+
+ private final ErrorHandlingService errorHandlingService;
@Override
public Mono<ResponseEntity<StatusInfo>> getStatus(ServerWebExchange exchange) throws Exception {
return statusController.getStatus(exchange)
.map(statusInfoResponseEntity -> new ResponseEntity<>(statusControllerMapper.toStatusInfoV3
(statusInfoResponseEntity.getBody()), statusInfoResponseEntity.getStatusCode()))
- .doOnError(error -> errorHandlingService.handleError(error));
+ .doOnError(errorHandlingService::handleError);
}
}
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/database/DatabaseDependentBeanFactory.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/database/DatabaseDependentBeanFactory.java
new file mode 100644
index 00000000..f463ecd0
--- /dev/null
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/database/DatabaseDependentBeanFactory.java
@@ -0,0 +1,57 @@
+/*-
+ * ========================LICENSE_START=================================
+ * ONAP : ccsdk oran
+ * ======================================================================
+ * Copyright (C) 2024 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ========================LICENSE_END===================================
+ */
+
+package org.onap.ccsdk.oran.a1policymanagementservice.database;
+
+import org.onap.ccsdk.oran.a1policymanagementservice.configuration.ApplicationConfig;
+import org.onap.ccsdk.oran.a1policymanagementservice.repository.Policies;
+import org.onap.ccsdk.oran.a1policymanagementservice.repository.PolicyTypes;
+import org.onap.ccsdk.oran.a1policymanagementservice.repository.Services;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.DependsOn;
+
+@Configuration
+@ConditionalOnProperty(prefix = "app", name = "database-enabled", havingValue = "true")
+public class DatabaseDependentBeanFactory {
+ @Bean
+ @DependsOn({ "springContextProvider", "flywayInitializer" })
+ public Services getServices(@Autowired ApplicationConfig applicationConfig) {
+ Services services = new Services(applicationConfig);
+ services.restoreFromDatabase().subscribe();
+ return services;
+ }
+
+ @Bean
+ @DependsOn({ "springContextProvider", "flywayInitializer" })
+ public PolicyTypes getPolicyTypes(@Autowired ApplicationConfig applicationConfig) {
+ PolicyTypes types = new PolicyTypes(applicationConfig);
+ types.restoreFromDatabase().blockLast();
+ return types;
+ }
+
+ @Bean
+ @DependsOn({ "springContextProvider", "flywayInitializer" })
+ public Policies getPolicies(@Autowired ApplicationConfig applicationConfig) {
+ return new Policies(applicationConfig);
+ }
+}
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/database/entities/BaseSchema.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/database/entities/BaseSchema.java
new file mode 100644
index 00000000..0713cdd3
--- /dev/null
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/database/entities/BaseSchema.java
@@ -0,0 +1,50 @@
+/*-
+ * ========================LICENSE_START=================================
+ * ONAP : ccsdk oran
+ * ======================================================================
+ * Copyright (C) 2024 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ========================LICENSE_END===================================
+ */
+
+package org.onap.ccsdk.oran.a1policymanagementservice.database.entities;
+
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
+import lombok.Setter;
+import org.springframework.data.annotation.Id;
+import org.springframework.data.annotation.Transient;
+import org.springframework.data.domain.Persistable;
+
+@RequiredArgsConstructor
+public class BaseSchema implements Persistable<String> {
+ @Id
+ final String id;
+ @Getter
+ final String payload;
+
+ @Transient
+ @Setter
+ boolean isNew = true;
+
+ @Override
+ public String getId() {
+ return id;
+ }
+
+ @Override
+ public boolean isNew() {
+ return isNew;
+ }
+}
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/database/entities/Policy.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/database/entities/Policy.java
new file mode 100644
index 00000000..e3e61d3b
--- /dev/null
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/database/entities/Policy.java
@@ -0,0 +1,30 @@
+/*-
+ * ========================LICENSE_START=================================
+ * ONAP : ccsdk oran
+ * ======================================================================
+ * Copyright (C) 2024 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ========================LICENSE_END===================================
+ */
+
+package org.onap.ccsdk.oran.a1policymanagementservice.database.entities;
+
+import org.springframework.data.relational.core.mapping.Table;
+
+@Table("policies")
+public class Policy extends BaseSchema {
+ public Policy(String id, String payload) {
+ super(id, payload);
+ }
+}
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/database/entities/PolicyType.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/database/entities/PolicyType.java
new file mode 100644
index 00000000..8dca3ce5
--- /dev/null
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/database/entities/PolicyType.java
@@ -0,0 +1,30 @@
+/*-
+ * ========================LICENSE_START=================================
+ * ONAP : ccsdk oran
+ * ======================================================================
+ * Copyright (C) 2024 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ========================LICENSE_END===================================
+ */
+
+package org.onap.ccsdk.oran.a1policymanagementservice.database.entities;
+
+import org.springframework.data.relational.core.mapping.Table;
+
+@Table("policy_types")
+public class PolicyType extends BaseSchema {
+ public PolicyType(String id, String payload) {
+ super(id, payload);
+ }
+}
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/database/entities/Service.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/database/entities/Service.java
new file mode 100644
index 00000000..cc402854
--- /dev/null
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/database/entities/Service.java
@@ -0,0 +1,30 @@
+/*-
+ * ========================LICENSE_START=================================
+ * ONAP : ccsdk oran
+ * ======================================================================
+ * Copyright (C) 2024 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ========================LICENSE_END===================================
+ */
+
+package org.onap.ccsdk.oran.a1policymanagementservice.database.entities;
+
+import org.springframework.data.relational.core.mapping.Table;
+
+@Table("services")
+public class Service extends BaseSchema {
+ public Service(String id, String payload) {
+ super(id, payload);
+ }
+}
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/database/repositories/PoliciesRepository.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/database/repositories/PoliciesRepository.java
new file mode 100644
index 00000000..0fb6c55e
--- /dev/null
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/database/repositories/PoliciesRepository.java
@@ -0,0 +1,29 @@
+/*-
+ * ========================LICENSE_START=================================
+ * ONAP : ccsdk oran
+ * ======================================================================
+ * Copyright (C) 2024 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ========================LICENSE_END===================================
+ */
+
+package org.onap.ccsdk.oran.a1policymanagementservice.database.repositories;
+
+import org.onap.ccsdk.oran.a1policymanagementservice.database.entities.Policy;
+import org.springframework.data.repository.reactive.ReactiveCrudRepository;
+import reactor.core.publisher.Flux;
+
+public interface PoliciesRepository extends ReactiveCrudRepository<Policy, String> {
+ Flux<Policy> findByIdStartingWith(String prefix);
+}
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/database/repositories/PolicyTypesRepository.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/database/repositories/PolicyTypesRepository.java
new file mode 100644
index 00000000..2083a9fc
--- /dev/null
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/database/repositories/PolicyTypesRepository.java
@@ -0,0 +1,27 @@
+/*-
+ * ========================LICENSE_START=================================
+ * ONAP : ccsdk oran
+ * ======================================================================
+ * Copyright (C) 2024 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ========================LICENSE_END===================================
+ */
+
+package org.onap.ccsdk.oran.a1policymanagementservice.database.repositories;
+
+import org.onap.ccsdk.oran.a1policymanagementservice.database.entities.PolicyType;
+import org.springframework.data.repository.reactive.ReactiveCrudRepository;
+
+public interface PolicyTypesRepository extends ReactiveCrudRepository<PolicyType, String> {
+}
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/database/repositories/ServicesRepository.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/database/repositories/ServicesRepository.java
new file mode 100644
index 00000000..97259694
--- /dev/null
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/database/repositories/ServicesRepository.java
@@ -0,0 +1,27 @@
+/*-
+ * ========================LICENSE_START=================================
+ * ONAP : ccsdk oran
+ * ======================================================================
+ * Copyright (C) 2024 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ========================LICENSE_END===================================
+ */
+
+package org.onap.ccsdk.oran.a1policymanagementservice.database.repositories;
+
+import org.onap.ccsdk.oran.a1policymanagementservice.database.entities.Service;
+import org.springframework.data.repository.reactive.ReactiveCrudRepository;
+
+public interface ServicesRepository extends ReactiveCrudRepository<Service, String> {
+}
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/datastore/DataStore.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/datastore/DataStore.java
index 51b57dee..4f0a98e2 100644
--- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/datastore/DataStore.java
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/datastore/DataStore.java
@@ -21,9 +21,7 @@
package org.onap.ccsdk.oran.a1policymanagementservice.datastore;
import com.google.common.base.Strings;
-
import org.onap.ccsdk.oran.a1policymanagementservice.configuration.ApplicationConfig;
-
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
@@ -42,7 +40,9 @@ public interface DataStore {
public Mono<String> deleteAllObjects();
public static DataStore create(ApplicationConfig appConfig, String location) {
- if (appConfig.isS3Enabled()) {
+ if (appConfig.isDatabaseEnabled()) {
+ return new DatabaseStore(location);
+ } else if (appConfig.isS3Enabled()) {
return new S3ObjectStore(appConfig, location);
} else if (!Strings.isNullOrEmpty(appConfig.getVardataDirectory())) {
return new FileStore(appConfig, location);
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/datastore/DatabaseStore.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/datastore/DatabaseStore.java
new file mode 100644
index 00000000..5c0d00da
--- /dev/null
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/datastore/DatabaseStore.java
@@ -0,0 +1,148 @@
+/*-
+ * ========================LICENSE_START=================================
+ * ONAP : ccsdk oran
+ * ======================================================================
+ * Copyright (C) 2024 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ========================LICENSE_END===================================
+ */
+
+package org.onap.ccsdk.oran.a1policymanagementservice.datastore;
+
+import java.lang.invoke.MethodHandles;
+import org.onap.ccsdk.oran.a1policymanagementservice.SpringContextProvider;
+import org.onap.ccsdk.oran.a1policymanagementservice.database.entities.BaseSchema;
+import org.onap.ccsdk.oran.a1policymanagementservice.database.entities.Policy;
+import org.onap.ccsdk.oran.a1policymanagementservice.database.entities.PolicyType;
+import org.onap.ccsdk.oran.a1policymanagementservice.database.entities.Service;
+import org.onap.ccsdk.oran.a1policymanagementservice.database.repositories.PoliciesRepository;
+import org.onap.ccsdk.oran.a1policymanagementservice.database.repositories.PolicyTypesRepository;
+import org.onap.ccsdk.oran.a1policymanagementservice.database.repositories.ServicesRepository;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+public class DatabaseStore implements DataStore {
+ private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
+ private static final String OK = "OK";
+
+ private final OperationTarget operationTarget;
+ private final PoliciesRepository policiesRepository;
+ private final ServicesRepository servicesRepository;
+ private final PolicyTypesRepository policyTypesRepository;
+
+ private enum OperationTarget {
+ POLICYTYPES,
+ SERVICES,
+ POLICIES
+ }
+
+ public DatabaseStore(String target) {
+ this.operationTarget = OperationTarget.valueOf(target.toUpperCase());
+ this.policiesRepository = SpringContextProvider.getSpringContext().getBean(PoliciesRepository.class);
+ this.servicesRepository = SpringContextProvider.getSpringContext().getBean(ServicesRepository.class);
+ this.policyTypesRepository = SpringContextProvider.getSpringContext().getBean(PolicyTypesRepository.class);
+ }
+
+ @Override
+ public Flux<String> listObjects(String prefix) {
+ logger.debug("Listing objects for prefix {} and target {}", prefix, operationTarget.name());
+ return Flux.just(operationTarget).flatMap(localOperationTarget -> {
+ if (localOperationTarget == OperationTarget.POLICIES) {
+ return policiesRepository.findByIdStartingWith(prefix).map(BaseSchema::getId);
+ } else if (localOperationTarget == OperationTarget.POLICYTYPES) {
+ return policyTypesRepository.findAll().map(BaseSchema::getId);
+ } else {
+ return servicesRepository.findAll().map(BaseSchema::getId);
+ }
+ });
+ }
+
+ @Override
+ public Mono<byte[]> readObject(String name) {
+ logger.debug("Reading object {} for target {}", name, operationTarget.name());
+ return Mono.just(operationTarget).flatMap(localOperationTarget -> {
+ if (localOperationTarget == OperationTarget.POLICIES) {
+ return policiesRepository.findById(name).map(policy -> policy.getPayload().getBytes());
+ } else if (localOperationTarget == OperationTarget.POLICYTYPES) {
+ return policyTypesRepository.findById(name).map(policyType -> policyType.getPayload().getBytes());
+ } else {
+ return servicesRepository.findById(name).map(service -> service.getPayload().getBytes());
+ }
+ });
+ }
+
+ @Override
+ public Mono<byte[]> writeObject(String name, byte[] fileData) {
+ logger.debug("Writing object {} for target {}", name, operationTarget.name());
+ return Mono.just(operationTarget).flatMap(localOperationTarget -> {
+ if (localOperationTarget == OperationTarget.POLICIES) {
+ return policiesRepository.findById(name).map(policy -> Boolean.FALSE).defaultIfEmpty(Boolean.TRUE)
+ .flatMap(isNewPolicy -> {
+ Policy policy = new Policy(name, new String(fileData));
+ policy.setNew(isNewPolicy);
+ return policiesRepository.save(policy).map(savedPolicy -> fileData);
+ });
+ } else if (localOperationTarget == OperationTarget.POLICYTYPES) {
+ return policyTypesRepository.findById(name).map(policyType -> Boolean.FALSE).defaultIfEmpty(Boolean.TRUE)
+ .flatMap(isNewPolicyType -> {
+ PolicyType policyType = new PolicyType(name, new String(fileData));
+ policyType.setNew(isNewPolicyType);
+ return policyTypesRepository.save(policyType).map(savedPolicyType -> fileData);
+ });
+ } else {
+ return servicesRepository.findById(name).map(service -> Boolean.FALSE).defaultIfEmpty(Boolean.TRUE)
+ .flatMap(isNewService -> {
+ Service service = new Service(name, new String(fileData));
+ service.setNew(isNewService);
+ return servicesRepository.save(service).map(savedService -> fileData);
+ });
+ }
+ });
+ }
+
+ @Override
+ public Mono<Boolean> deleteObject(String name) {
+ logger.debug("Deleting object {} for target {}", name, operationTarget.name());
+ return Mono.just(operationTarget).flatMap(localOperationTarget -> {
+ if (localOperationTarget == OperationTarget.POLICIES) {
+ return policiesRepository.deleteById(name).thenReturn(Boolean.TRUE);
+ } else if (localOperationTarget == OperationTarget.POLICYTYPES) {
+ return policyTypesRepository.deleteById(name).thenReturn(Boolean.TRUE);
+ } else {
+ return servicesRepository.deleteById(name).thenReturn(Boolean.TRUE);
+ }
+ });
+ }
+
+ @Override
+ public Mono<String> createDataStore() {
+ return Mono.just(OK);
+ }
+
+ @Override
+ public Mono<String> deleteAllObjects() {
+ logger.debug("Deleting All objects for target {}", operationTarget.name());
+ return Mono.just(operationTarget).flatMap(localOperationTarget -> {
+ if (localOperationTarget == OperationTarget.POLICIES) {
+ return policiesRepository.deleteAll().thenReturn(OK);
+ } else if (localOperationTarget == OperationTarget.POLICYTYPES) {
+ return policyTypesRepository.deleteAll().thenReturn(OK);
+ } else {
+ return servicesRepository.deleteAll().thenReturn(OK);
+ }
+ });
+ }
+}
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/service/v3/AuthorizationService.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/service/v3/AuthorizationService.java
index ac4320a1..af6f0abe 100644
--- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/service/v3/AuthorizationService.java
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/service/v3/AuthorizationService.java
@@ -21,19 +21,19 @@
package org.onap.ccsdk.oran.a1policymanagementservice.service.v3;
+import lombok.RequiredArgsConstructor;
import org.onap.ccsdk.oran.a1policymanagementservice.controllers.authorization.AuthorizationCheck;
import org.onap.ccsdk.oran.a1policymanagementservice.controllers.authorization.PolicyAuthorizationRequest.Input.AccessType;
import org.onap.ccsdk.oran.a1policymanagementservice.repository.Policy;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;
@Service
+@RequiredArgsConstructor
public class AuthorizationService {
- @Autowired
- private AuthorizationCheck authorization;
+ private final AuthorizationCheck authorization;
public Mono<Policy> authCheck (ServerWebExchange serverWebExchange, Policy policy, AccessType accessType){
return authorization.doAccessControl(serverWebExchange.getRequest().getHeaders().toSingleValueMap(),
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/service/v3/PolicyService.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/service/v3/PolicyService.java
index a892bfa3..868a336f 100644
--- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/service/v3/PolicyService.java
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/service/v3/PolicyService.java
@@ -21,6 +21,7 @@
package org.onap.ccsdk.oran.a1policymanagementservice.service.v3;
import com.google.gson.Gson;
+import lombok.RequiredArgsConstructor;
import org.onap.ccsdk.oran.a1policymanagementservice.clients.A1ClientFactory;
import org.onap.ccsdk.oran.a1policymanagementservice.controllers.authorization.PolicyAuthorizationRequest.Input.AccessType;
import org.onap.ccsdk.oran.a1policymanagementservice.controllers.v2.Consts;
@@ -33,7 +34,6 @@ import org.onap.ccsdk.oran.a1policymanagementservice.repository.*;
import org.onap.ccsdk.oran.a1policymanagementservice.util.v3.Helper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
@@ -47,32 +47,18 @@ import java.util.Collection;
import java.util.Map;
@Service
+@RequiredArgsConstructor
public class PolicyService {
private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
- @Autowired
- private Helper helper;
-
- @Autowired
- private Rics rics;
-
- @Autowired
- private PolicyTypes policyTypes;
-
- @Autowired
- private Policies policies;
-
- @Autowired
- private AuthorizationService authorizationService;
-
- @Autowired
- private A1ClientFactory a1ClientFactory;
-
- @Autowired
- private ErrorHandlingService errorHandlingService;
-
- @Autowired
- private Gson gson;
+ private final Helper helper;
+ private final Rics rics;
+ private final PolicyTypes policyTypes;
+ private final Policies policies;
+ private final AuthorizationService authorizationService;
+ private final A1ClientFactory a1ClientFactory;
+ private final ErrorHandlingService errorHandlingService;
+ private final Gson gson;
public Mono<ResponseEntity<PolicyObjectInformation>> createPolicyService
(PolicyObjectInformation policyObjectInfo, ServerWebExchange serverWebExchange) {
@@ -83,15 +69,15 @@ public class PolicyService {
PolicyType policyType = policyTypes.getType(policyObjectInfo.getPolicyTypeId());
Policy policy = helper.buildPolicy(policyObjectInfo, policyType, ric, helper.policyIdGeneration(policyObjectInfo));
return helper.isPolicyAlreadyCreated(policy,policies)
- .doOnError(error -> errorHandlingService.handleError(error))
+ .doOnError(errorHandlingService::handleError)
.flatMap(policyBuilt -> authorizationService.authCheck(serverWebExchange, policy, AccessType.WRITE)
- .doOnError(error -> errorHandlingService.handleError(error))
+ .doOnError(errorHandlingService::handleError)
.flatMap(policyNotUsed -> ric.getLock().lock(Lock.LockType.SHARED, "createPolicy"))
.flatMap(grant -> postPolicy(policy, grant))
.map(locationHeaderValue ->
new ResponseEntity<PolicyObjectInformation>(policyObjectInfo,helper.createHttpHeaders(
"location",helper.buildURI(policy.getId(), serverWebExchange)), HttpStatus.CREATED))
- .doOnError(error -> errorHandlingService.handleError(error)));
+ .doOnError(errorHandlingService::handleError));
} catch (Exception ex) {
return Mono.error(ex);
}
@@ -100,15 +86,15 @@ public class PolicyService {
private Mono<String> postPolicy(Policy policy, Lock.Grant grant) {
return helper.checkRicStateIdle(policy.getRic())
- .doOnError(error -> errorHandlingService.handleError(error))
+ .doOnError(errorHandlingService::handleError)
.flatMap(ric -> helper.checkSupportedType(ric, policy.getType()))
- .doOnError(error -> errorHandlingService.handleError(error))
- .flatMap(ric -> a1ClientFactory.createA1Client(ric))
+ .doOnError(errorHandlingService::handleError)
+ .flatMap(a1ClientFactory::createA1Client)
.flatMap(a1Client -> a1Client.putPolicy(policy))
- .doOnError(error -> errorHandlingService.handleError(error))
+ .doOnError(errorHandlingService::handleError)
.doOnNext(policyString -> policies.put(policy))
.doFinally(releaseLock -> grant.unlockBlocking())
- .doOnError(error -> errorHandlingService.handleError(error));
+ .doOnError(errorHandlingService::handleError);
}
public Mono<ResponseEntity<Object>> putPolicyService(String policyId, Object body, ServerWebExchange exchange) {
@@ -119,12 +105,12 @@ public class PolicyService {
Policy updatedPolicy = helper.buildPolicy(pos, existingPolicy.getType(), existingPolicy.getRic(), policyId);
Ric ric = existingPolicy.getRic();
return authorizationService.authCheck(exchange, updatedPolicy, AccessType.WRITE)
- .doOnError(error -> errorHandlingService.handleError(error))
+ .doOnError(errorHandlingService::handleError)
.flatMap(policy -> ric.getLock().lock(Lock.LockType.SHARED, "updatePolicy"))
- .doOnError(error -> errorHandlingService.handleError(error))
+ .doOnError(errorHandlingService::handleError)
.flatMap(grant -> postPolicy(updatedPolicy, grant))
.map(header -> new ResponseEntity<Object>(policies.get(updatedPolicy.getId()).getJson(), HttpStatus.OK))
- .doOnError(error -> errorHandlingService.handleError(error));
+ .doOnError(errorHandlingService::handleError);
} catch(Exception ex) {
return Mono.error(ex);
}
@@ -178,7 +164,7 @@ public class PolicyService {
Policy policy = policies.getPolicy(policyId);
return authorizationService.authCheck(serverWebExchange, policy, AccessType.READ)
.map(x -> new ResponseEntity<Object>(policy.getJson(), HttpStatus.OK))
- .doOnError(error -> errorHandlingService.handleError(error));
+ .doOnError(errorHandlingService::handleError);
}
public Mono<ResponseEntity<Object>> getPolicyTypeDefinitionService(String policyTypeId)
@@ -193,24 +179,24 @@ public class PolicyService {
throws EntityNotFoundException {
Policy singlePolicy = policies.getPolicy(policyId);
return authorizationService.authCheck(serverWebExchange, singlePolicy, AccessType.WRITE)
- .doOnError(error -> errorHandlingService.handleError(error))
+ .doOnError(errorHandlingService::handleError)
.flatMap(policy -> policy.getRic().getLock().lock(Lock.LockType.SHARED, "deletePolicy"))
.flatMap(grant -> deletePolicy(singlePolicy, grant))
- .doOnError(error -> errorHandlingService.handleError(error));
+ .doOnError(errorHandlingService::handleError);
}
private Mono<ResponseEntity<Void>> deletePolicy(Policy policy, Lock.Grant grant) {
return helper.checkRicStateIdle(policy.getRic())
- .doOnError(error -> errorHandlingService.handleError(error))
+ .doOnError(errorHandlingService::handleError)
.flatMap(ric -> helper.checkSupportedType(ric, policy.getType()))
- .doOnError(error -> errorHandlingService.handleError(error))
- .flatMap(ric -> a1ClientFactory.createA1Client(ric))
- .doOnError(error -> errorHandlingService.handleError(error))
+ .doOnError(errorHandlingService::handleError)
+ .flatMap(a1ClientFactory::createA1Client)
+ .doOnError(errorHandlingService::handleError)
.flatMap(a1Client -> a1Client.deletePolicy(policy))
- .doOnError(error -> errorHandlingService.handleError(error))
+ .doOnError(errorHandlingService::handleError)
.doOnNext(policyString -> policies.remove(policy))
.doFinally(releaseLock -> grant.unlockBlocking())
.map(successResponse -> new ResponseEntity<Void>(HttpStatus.NO_CONTENT))
- .doOnError(error -> errorHandlingService.handleError(error));
+ .doOnError(errorHandlingService::handleError);
}
}
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/tasks/RicSupervision.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/tasks/RicSupervision.java
index f11e30f3..ed6139ef 100644
--- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/tasks/RicSupervision.java
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/tasks/RicSupervision.java
@@ -166,6 +166,7 @@ public class RicSupervision {
}
private Mono<RicData> validateInstances(Collection<String> ricPolicies, RicData ric) {
+ logger.trace("Policies to be validated: {} , against: {} , in ric: {}", ricPolicies, ric.ric.getManagedElementIds(), ric.ric.id());
synchronized (this.policies) {
if (ricPolicies.size() != policies.getForRic(ric.ric.id()).size()) {
logger.debug("RicSupervision, starting ric: {} synchronization (noOfPolicices == {}, expected == {})",
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/util/v3/Helper.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/util/v3/Helper.java
index 638d9504..0cb91353 100644
--- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/util/v3/Helper.java
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/util/v3/Helper.java
@@ -22,6 +22,7 @@ package org.onap.ccsdk.oran.a1policymanagementservice.util.v3;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
+import lombok.RequiredArgsConstructor;
import org.onap.ccsdk.oran.a1policymanagementservice.exceptions.ServiceException;
import org.onap.ccsdk.oran.a1policymanagementservice.models.v3.PolicyInformation;
import org.onap.ccsdk.oran.a1policymanagementservice.models.v3.PolicyObjectInformation;
@@ -29,7 +30,6 @@ import org.onap.ccsdk.oran.a1policymanagementservice.models.v3.PolicyTypeInforma
import org.onap.ccsdk.oran.a1policymanagementservice.repository.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
@@ -45,14 +45,15 @@ import java.util.UUID;
import java.util.stream.Collectors;
@Component
+@RequiredArgsConstructor
public class Helper {
- @Autowired
- private Services services;
+ private final Services services;
private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
- private static Gson gson = new GsonBuilder().create();
+ private static final Gson gson = new GsonBuilder().create();
+
public void keepServiceAlive(String name) {
Service s = this.services.get(name);
if (s != null) {
diff --git a/a1-policy-management/src/main/resources/db/migration/V1__create_base_schema.sql b/a1-policy-management/src/main/resources/db/migration/V1__create_base_schema.sql
new file mode 100644
index 00000000..a6d49989
--- /dev/null
+++ b/a1-policy-management/src/main/resources/db/migration/V1__create_base_schema.sql
@@ -0,0 +1,35 @@
+-- ============LICENSE_START=======================================================
+-- Copyright (C) 2024 OpenInfra Foundation Europe
+-- ================================================================================
+-- Licensed under the Apache License, Version 2.0 (the "License");
+-- you may not use this file except in compliance with the License.
+-- You may obtain a copy of the License at
+--
+-- http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+-- SPDX-License-Identifier: Apache-2.0
+-- ============LICENSE_END=========================================================
+
+CREATE TABLE IF NOT EXISTS policies (
+ id varchar NOT NULL,
+ payload varchar NOT NULL,
+ CONSTRAINT policies_pk PRIMARY KEY (id)
+);
+
+CREATE TABLE IF NOT EXISTS policy_types (
+ id varchar NOT NULL,
+ payload varchar NOT NULL,
+ CONSTRAINT policy_types_pk PRIMARY KEY (id)
+);
+
+CREATE TABLE IF NOT EXISTS services (
+ id varchar NOT NULL,
+ payload varchar NOT NULL,
+ CONSTRAINT services_pk PRIMARY KEY (id)
+); \ No newline at end of file
diff --git a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/AsyncRestClientTest.java b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/AsyncRestClientTest.java
index ac9d1fba..555f4639 100644
--- a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/AsyncRestClientTest.java
+++ b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/clients/AsyncRestClientTest.java
@@ -29,6 +29,7 @@ import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.web.reactive.function.client.WebClientResponseException;
@@ -40,6 +41,7 @@ import reactor.util.Loggers;
import okhttp3.mockwebserver.MockResponse;
import okhttp3.mockwebserver.MockWebServer;
+@SpringBootTest
class AsyncRestClientTest {
private static final String BASE_URL = "BaseUrl";
private static final String REQUEST_URL = "/test";
diff --git a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/MetersTest.java b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/MetersTest.java
index 922d139d..c714268d 100644
--- a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/MetersTest.java
+++ b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/MetersTest.java
@@ -22,8 +22,8 @@ package org.onap.ccsdk.oran.a1policymanagementservice.configuration;
import static org.assertj.core.api.Assertions.assertThat;
-import io.micrometer.prometheus.PrometheusConfig;
-import io.micrometer.prometheus.PrometheusMeterRegistry;
+import io.micrometer.prometheusmetrics.PrometheusConfig;
+import io.micrometer.prometheusmetrics.PrometheusMeterRegistry;
import java.time.Instant;
import java.util.Arrays;
diff --git a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/OtelConfigTest.java b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/OtelConfigTest.java
index 7c04de20..bd011193 100644
--- a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/OtelConfigTest.java
+++ b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/configuration/OtelConfigTest.java
@@ -28,9 +28,7 @@ import static org.mockito.Mockito.when;
import io.micrometer.observation.Observation;
import io.micrometer.observation.ObservationRegistry;
-import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporter;
-import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;
import jakarta.servlet.http.HttpServletRequest;
import java.util.Objects;
import org.junit.jupiter.api.Test;
@@ -40,8 +38,8 @@ import org.springframework.boot.test.autoconfigure.actuate.observability.AutoCon
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Bean;
import org.springframework.http.server.observation.ServerRequestObservationContext;
+import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.TestPropertySource;
import org.springframework.util.AntPathMatcher;
@@ -54,12 +52,14 @@ import org.springframework.util.AntPathMatcher;
"app.filepath=",
"app.s3.bucket=",
"spring.application.name=a1-pms",
- "management.tracing.enabled=true",
- "management.tracing.exporter.protocol=grpc",
- "management.tracing.sampler.jaeger_remote.endpoint=http://127.0.0.1:14250",
+ "otel.sdk.disabled=false",
+ "otel.sdk.south=true",
+ "otel.exporter.otlp.traces.protocol=grpc",
+ "otel.tracing.sampler.jaeger-remote.endpoint=http://127.0.0.1:14250",
"management.tracing.propagator.type=W3C"
})
@AutoConfigureObservability
+@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS)
class OtelConfigTest {
@Autowired private ApplicationContext context;
@@ -68,11 +68,6 @@ class OtelConfigTest {
@Autowired ObservationRegistry observationRegistry;
- @Bean
- OpenTelemetry openTelemetry() {
- return AutoConfiguredOpenTelemetrySdk.initialize().getOpenTelemetrySdk();
- }
-
@Test
void otlpExporterGrpc() {
assertNotNull(otelConfig);
diff --git a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ApplicationTest.java b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ApplicationTest.java
index 4f3fa5f5..be6d43f8 100644
--- a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ApplicationTest.java
+++ b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ApplicationTest.java
@@ -28,8 +28,6 @@ import static org.mockito.Mockito.doReturn;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
import java.lang.invoke.MethodHandles;
import java.nio.charset.StandardCharsets;
@@ -104,7 +102,6 @@ import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.test.context.TestPropertySource;
import org.springframework.util.FileSystemUtils;
-import org.springframework.web.reactive.function.client.WebClientRequestException;
import org.springframework.web.reactive.function.client.WebClientResponseException;
import reactor.core.publisher.Mono;
@@ -163,8 +160,6 @@ class ApplicationTest {
@Autowired
OpenPolicyAgentSimulatorController openPolicyAgentSimulatorController;
- private static Gson gson = new GsonBuilder().create();
-
/**
* Overrides the BeanFactory.
*/
@@ -195,6 +190,11 @@ class ApplicationTest {
@BeforeEach
void init() {
this.applicationConfig.setAuthProviderUrl(baseUrl() + OpenPolicyAgentSimulatorController.ACCESS_CONTROL_URL);
+ rics.clear();
+ policies.clear();
+ policyTypes.clear();
+ services.clear();
+ a1ClientFactory.reset();
}
@AfterEach
@@ -230,7 +230,6 @@ class ApplicationTest {
}
@Test
- @SuppressWarnings("squid:S2925") // "Thread.sleep" should not be used in tests.
@DisplayName("test ZZ Actuator")
void testZZActuator() throws Exception {
// The test must be run last, hence the "ZZ" in the name. All succeeding tests
@@ -246,15 +245,9 @@ class ApplicationTest {
client.post("/actuator/loggers/org.springframework.boot.actuate", "{\"configuredLevel\":\"trace\"}").block();
// This will stop the web server and all coming tests will fail.
- client.post("/actuator/shutdown", "").block();
-
- Thread.sleep(1000);
-
- StepVerifier.create(restClient().get("/rics")) // Any call
- .expectSubscription() //
- .expectErrorMatches(t -> t instanceof WebClientRequestException) //
- .verify();
-
+ ResponseEntity<String> entity = client.postForEntity("/actuator/shutdown", "").block();
+ assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.OK);
+ assertThat(((String) entity.getBody())).contains("Shutting down");
}
@Test
@@ -951,6 +944,7 @@ class ApplicationTest {
assertThat(entity.getStatusCode()).isEqualTo(HttpStatus.OK);
// DELETE service
+ addPolicy("id1", "type1", serviceName);
assertThat(services.size()).isEqualTo(1);
url = "/services/" + serviceName;
restClient().delete(url).block();
@@ -972,6 +966,32 @@ class ApplicationTest {
}
@Test
+ @DisplayName("test delete Service with no authorization")
+ void testDeleteServiceWithNoAuth() throws Exception {
+ // PUT service
+ String serviceName = "ac.dc";
+ putService(serviceName, 0, HttpStatus.CREATED);
+
+ // No Authorization to Delete
+ this.applicationConfig
+ .setAuthProviderUrl(baseUrl() + OpenPolicyAgentSimulatorController.ACCESS_CONTROL_URL_REJECT);
+ addPolicy("id1", "type1", serviceName);
+ assertThat(services.size()).isEqualTo(1);
+ String url = "/services/" + serviceName;
+ restClient().delete(url).block();
+ assertThat(services.size()).isZero();
+ assertThat(policies.size()).isEqualTo(1);
+ testErrorCode(restClient().get("/policies/id1"), HttpStatus.UNAUTHORIZED);
+ }
+
+ @Test
+ @DisplayName("test delete Service with no service")
+ void testDeleteServiceWithNoService() {
+ String url = "/services/" + "NoService";
+ testErrorCode(restClient().delete(url), HttpStatus.NOT_FOUND);
+ }
+
+ @Test
@DisplayName("test Service Supervision")
void testServiceSupervision() throws Exception {
putService("service1", 2, HttpStatus.CREATED);
diff --git a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/ConfigurationControllerTestV3.java b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/ConfigurationControllerV3Test.java
index c634ecc5..40990f62 100644
--- a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/ConfigurationControllerTestV3.java
+++ b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/ConfigurationControllerV3Test.java
@@ -45,7 +45,6 @@ import java.util.Objects;
import static org.awaitility.Awaitility.await;
import static org.hamcrest.CoreMatchers.equalTo;
-@TestMethodOrder(MethodOrderer.MethodName.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@TestPropertySource(properties = { //
"server.ssl.key-store=./config/keystore.jks", //
@@ -53,7 +52,7 @@ import static org.hamcrest.CoreMatchers.equalTo;
"app.vardata-directory=./target", //
"app.config-file-schema-path=/application_configuration_schema.json" //
})
-class ConfigurationControllerTestV3 {
+class ConfigurationControllerV3Test {
@Autowired
ApplicationContext context;
diff --git a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/PolicyControllerTestV3.java b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/PolicyControllerV3Test.java
index a8c5fbae..211a9a39 100644
--- a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/PolicyControllerTestV3.java
+++ b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/PolicyControllerV3Test.java
@@ -65,7 +65,7 @@ import static org.mockito.Mockito.when;
"app.filepath=", //
"app.s3.bucket=" // If this is set, S3 will be used to store data.
})
-public class PolicyControllerTestV3 {
+class PolicyControllerV3Test {
private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
@Autowired
@@ -146,7 +146,7 @@ public class PolicyControllerTestV3 {
Mono<ResponseEntity<String>> responseMono = testHelper.restClientV3().postForEntity(url, policyBody);
testHelper.testSuccessResponse(responseMono, HttpStatus.CREATED, responseBody ->
responseBody.contains("{\"scope\":{\"ueId\":\"ue5100\",\"qosId\":\"qos5100\"},\"qosObjectives\":{\"priorityLevel\":5100.0}}"));
- testHelper.testSuccessHeader(responseMono, "location", headerValue -> headerValue.contains("https://localhost:" + port + "/a1policymanagement/v1/policies/"));
+ testHelper.testSuccessHeader(responseMono, "location", headerValue -> headerValue.contains("https://localhost:" + port + "/a1-policy-management/v1/policies/"));
}
@Test
@@ -158,11 +158,11 @@ public class PolicyControllerTestV3 {
testHelper.addPolicyType(policyTypeName, nonRtRicId);
String policyBody = testHelper.postPolicyBody(nonRtRicId, policyTypeName, "1");
Mono<ResponseEntity<String>> responseMono = testHelper.restClientV3().postForEntity(url, policyBody);
- testHelper.testSuccessHeader(responseMono, "location", headerValue -> headerValue.contains("https://localhost:" + port + "/a1policymanagement/v1/policies/1"));
+ testHelper.testSuccessHeader(responseMono, "location", headerValue -> headerValue.contains("https://localhost:" + port + "/a1-policy-management/v1/policies/1"));
}
@Test
- @DisplayName("test Create Policy with exisitng policy id")
+ @DisplayName("test Create Policy with existing policy id")
void testPostPolicyWithExistingPolicyID() throws Exception {
String nonRtRicId = "ric.1";
String policyTypeName = "type1_1.2.3";
@@ -234,7 +234,7 @@ public class PolicyControllerTestV3 {
String policyTypeName = "type1_1.2.3";
String nonRtRicId = "ricOne";
testHelper.addPolicyType(policyTypeName, nonRtRicId);
- Mono<ResponseEntity<String>> responseMono = testHelper.restClientV3().getForEntity("/policytypes" + "?nearRtRicId=\"noRic\"");
+ Mono<ResponseEntity<String>> responseMono = testHelper.restClientV3().getForEntity("/policy-types" + "?nearRtRicId=\"noRic\"");
testHelper.testErrorCode(responseMono, HttpStatus.NOT_FOUND, "Near-RT RIC not Found using ID:");
}
@@ -254,4 +254,63 @@ public class PolicyControllerTestV3 {
testHelper.testSuccessResponse(responseMonoGet, HttpStatus.OK, responseBody ->
responseBody.contains("{\"scope\":{\"ueId\":\"ue5100\",\"qosId\":\"qos5100\"},\"qosObjectives\":{\"priorityLevel\":5100.0}}"));
}
+
+ @Test
+ @DisplayName("test get all Policies")
+ void testGetAllPolicies() throws Exception {
+ String nonRtRicIdOne = "ric.11";
+ String nonRtRicIdTwo = "ric.22";
+ String policyTypeName = "type1_1.2.3";
+ String url = "/policies";
+ testHelper.addPolicyType(policyTypeName, nonRtRicIdOne);
+ String policyBodyOne = testHelper.postPolicyBody(nonRtRicIdOne, policyTypeName, "policyOne");
+ testHelper.addPolicyType(policyTypeName, nonRtRicIdTwo);
+ String policyBodyTwo = testHelper.postPolicyBody(nonRtRicIdTwo, policyTypeName, "policyTwo");
+ testHelper.restClientV3().postForEntity(url, policyBodyOne).block();
+ testHelper.restClientV3().postForEntity(url, policyBodyTwo).block();
+ Mono<ResponseEntity<String>> responseMonoGet = testHelper.restClientV3().getForEntity(url);
+ testHelper.testSuccessResponse(responseMonoGet, HttpStatus.OK, responseBody ->
+ responseBody.contains("[{\"policyId\":\"policyTwo\",\"nearRtRicId\":\"ric.22\"},{\"policyId\":\"policyOne\",\"nearRtRicId\":\"ric.11\"}]"));
}
+
+ @Test
+ @DisplayName("test get PolicyType")
+ void testGetPolicyType() throws Exception {
+ String nonRtRicId = "ric.1";
+ String policyTypeName = "type1_1.2.3";
+ String url = "/policy-types";
+ testHelper.addPolicyType(policyTypeName, nonRtRicId);
+ Mono<ResponseEntity<String>> responseMonoGet = testHelper.restClientV3().getForEntity(url+"/" +policyTypeName);
+ testHelper.testSuccessResponse(responseMonoGet, HttpStatus.OK, responseBody -> !(responseBody.isEmpty()));
+ }
+
+ @Test
+ @DisplayName("test get All PolicyTypes")
+ void testGetAllPolicyTypes() throws Exception {
+ String nonRtRicId = "ric.1";
+ String policyTypeName = "type1_1.2.3";
+ String url = "/policy-types";
+ testHelper.addPolicyType(policyTypeName, nonRtRicId);
+ Mono<ResponseEntity<String>> responseMonoGet = testHelper.restClientV3().getForEntity(url);
+ testHelper.testSuccessResponse(responseMonoGet, HttpStatus.OK, responseBody -> responseBody.contains(
+ "{\"policyTypeId\":\"type1_1.2.3\",\"nearRtRicId\":\"ric.1\"}]"
+ ));
+ }
+
+ @Test
+ @DisplayName("test update Policy")
+ void testUpdatePolicy() throws Exception {
+ String nonRtRicId = "ric.1";
+ String policyTypeName = "type1_1.2.3";
+ String url = "/policies";
+ testHelper.addPolicyType(policyTypeName, nonRtRicId);
+ String policyBodyForPost = testHelper.postPolicyBody(nonRtRicId, policyTypeName, "policyOne");
+ testHelper.restClientV3().postForEntity(url, policyBodyForPost).block();
+ String policyBodyForPut = testHelper.putPolicyBody(nonRtRicId, policyTypeName, "policyOne", "ue5200",
+ "qos5200", "5200.0");
+ testHelper.restClientV3().putForEntity(url+"/policyOne", policyBodyForPut).block();
+ Mono<ResponseEntity<String>> responseMonoGet = testHelper.restClientV3().getForEntity(url+"/policyOne");
+ testHelper.testSuccessResponse(responseMonoGet, HttpStatus.OK, responseBody ->
+ responseBody.contains("{\"scope\":{\"ueId\":\"ue5200\",\"qosId\":\"qos5200\"},\"qosObjectives\":{\"priorityLevel\":5200.0}"));
+ }
+} \ No newline at end of file
diff --git a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/RicRepositoryControllerTestV3.java b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/RicRepositoryControllerV3Test.java
index 576ae7f6..5f97df0e 100644
--- a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/RicRepositoryControllerTestV3.java
+++ b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/RicRepositoryControllerV3Test.java
@@ -52,10 +52,9 @@ import java.lang.invoke.MethodHandles;
"app.webclient.trust-store=./config/truststore.jks", //
"app.webclient.trust-store-used=true", //
"app.vardata-directory=/tmp/pmstestv3", //a
- "app.filepath=", //
"app.s3.bucket=" // If this is set, S3 will be used to store data.
})
-public class RicRepositoryControllerTestV3 {
+class RicRepositoryControllerV3Test {
private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
@@ -89,6 +88,7 @@ public class RicRepositoryControllerTestV3 {
@BeforeEach
void init() {
testHelper.port = port;
+ rics.clear();
this.applicationConfig.setAuthProviderUrl(testHelper.baseUrl() + OpenPolicyAgentSimulatorController.ACCESS_CONTROL_URL);
}
@@ -116,8 +116,9 @@ public class RicRepositoryControllerTestV3 {
testHelper.addPolicyType("2", "ricAddedTwo");
Mono<ResponseEntity<String>> responseEntityMono = testHelper.restClientV3().getForEntity("/rics");
testHelper.testSuccessResponse(responseEntityMono, HttpStatus.OK, responseBody -> responseBody
- .contains("{\"rics\":[{\"ricId\":\"ricAddedTwo\",\"managedElementIds\":[],\"state\":\"AVAILABLE\"," +
+ .contains("{\"ricId\":\"ricAddedTwo\",\"managedElementIds\":[],\"state\":\"AVAILABLE\"," +
"\"policyTypeIds\":[\"2\"]},{\"ricId\":\"ricAddedOne\",\"managedElementIds\":[]," +
- "\"state\":\"AVAILABLE\",\"policyTypeIds\":[\"1\"]}]}"));
+ "\"state\":\"AVAILABLE\",\"policyTypeIds\":[\"1\"]"));
}
}
+
diff --git a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/ServiceControllerTestV3.java b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/ServiceControllerV3Test.java
index 9eeaa3af..bfc0b683 100644
--- a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/ServiceControllerTestV3.java
+++ b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v3/ServiceControllerV3Test.java
@@ -58,7 +58,7 @@ import java.time.Duration;
"app.filepath=", //
"app.s3.bucket=" // If this is set, S3 will be used to store data.
})
-public class ServiceControllerTestV3 {
+class ServiceControllerV3Test {
private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
diff --git a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/datastore/DatabaseStoreTest.java b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/datastore/DatabaseStoreTest.java
new file mode 100644
index 00000000..31797c49
--- /dev/null
+++ b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/datastore/DatabaseStoreTest.java
@@ -0,0 +1,371 @@
+/*-
+ * ========================LICENSE_START=================================
+ * ONAP : ccsdk oran
+ * ======================================================================
+ * Copyright (C) 2024 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ========================LICENSE_END===================================
+ */
+package org.onap.ccsdk.oran.a1policymanagementservice.datastore;
+
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.argThat;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.EnumSource;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.onap.ccsdk.oran.a1policymanagementservice.SpringContextProvider;
+import org.onap.ccsdk.oran.a1policymanagementservice.database.entities.BaseSchema;
+import org.onap.ccsdk.oran.a1policymanagementservice.database.entities.Policy;
+import org.onap.ccsdk.oran.a1policymanagementservice.database.entities.PolicyType;
+import org.onap.ccsdk.oran.a1policymanagementservice.database.entities.Service;
+import org.onap.ccsdk.oran.a1policymanagementservice.database.repositories.PoliciesRepository;
+import org.onap.ccsdk.oran.a1policymanagementservice.database.repositories.PolicyTypesRepository;
+import org.onap.ccsdk.oran.a1policymanagementservice.database.repositories.ServicesRepository;
+import org.springframework.context.ApplicationContext;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+import reactor.test.StepVerifier;
+
+@ExtendWith(MockitoExtension.class)
+public class DatabaseStoreTest {
+
+ public static final String OK = "OK";
+ @Mock
+ PoliciesRepository policiesRepository;
+ @Mock
+ ServicesRepository servicesRepository;
+ @Mock
+ PolicyTypesRepository policyTypesRepository;
+ @Mock
+ ApplicationContext applicationContext;
+ @InjectMocks
+ SpringContextProvider springContextProvider;
+
+ private enum OperationTarget {
+ POLICYTYPES("policytypes"),
+ SERVICES("services"),
+ POLICIES("policies");
+
+ final String label;
+
+ OperationTarget(String label) {
+ this.label = label;
+ }
+ }
+
+ @BeforeEach
+ void initialize() {
+ when(applicationContext.getBean(PoliciesRepository.class)).thenReturn(policiesRepository);
+ when(applicationContext.getBean(PolicyTypesRepository.class)).thenReturn(policyTypesRepository);
+ when(applicationContext.getBean(ServicesRepository.class)).thenReturn(servicesRepository);
+ springContextProvider.setApplicationContext(applicationContext);
+ }
+
+ @Test
+ void testCreateDataStore() {
+ DatabaseStore databaseStore = new DatabaseStore(OperationTarget.POLICYTYPES.name());
+ StepVerifier.create(databaseStore.createDataStore()).expectNext(OK).verifyComplete();
+ }
+
+ @ParameterizedTest
+ @EnumSource(OperationTarget.class)
+ void testListObjectsSuccess(OperationTarget operationTarget) {
+ DatabaseStore databaseStore = new DatabaseStore(operationTarget.name());
+ if (operationTarget == OperationTarget.POLICIES) {
+ String prefix = "ric1";
+ Policy policy1 = new Policy(prefix + "/listpolicy1.json", "{}");
+ Policy policy2 = new Policy(prefix + "/listpolicy2.json", "{}");
+ when(policiesRepository.findByIdStartingWith(any())).thenReturn(Flux.just(policy1, policy2));
+ StepVerifier.create(databaseStore.listObjects(prefix)).expectNext(policy1.getId()).expectNext(policy2.getId())
+ .verifyComplete();
+ } else if (operationTarget == OperationTarget.POLICYTYPES) {
+ PolicyType policyType1 = new PolicyType("/listpolicytype1.json", "{}");
+ PolicyType policyType2 = new PolicyType("/listpolicytype2.json", "{}");
+ when(policyTypesRepository.findAll()).thenReturn(Flux.just(policyType1, policyType2));
+ StepVerifier.create(databaseStore.listObjects("")).expectNext(policyType1.getId())
+ .expectNext(policyType2.getId()).verifyComplete();
+ } else if (operationTarget == OperationTarget.SERVICES) {
+ Service service1 = new Service("/listservice1.json", "{}");
+ Service service2 = new Service("/listservice2.json", "{}");
+ when(servicesRepository.findAll()).thenReturn(Flux.just(service1, service2));
+ StepVerifier.create(databaseStore.listObjects("")).expectNext(service1.getId()).expectNext(service2.getId())
+ .verifyComplete();
+ }
+ }
+
+ @ParameterizedTest
+ @EnumSource(OperationTarget.class)
+ void testListObjectsFailure(OperationTarget operationTarget) {
+ DatabaseStore databaseStore = new DatabaseStore(operationTarget.name());
+ String errorMessage = "Unable to list the objects of type " + operationTarget.name();
+ if (operationTarget == OperationTarget.POLICIES) {
+ String prefix = "ric1";
+ when(policiesRepository.findByIdStartingWith(any())).thenReturn(Flux.error(new Throwable(errorMessage)));
+ StepVerifier.create(databaseStore.listObjects(prefix)).expectErrorMessage(errorMessage).verify();
+ } else if (operationTarget == OperationTarget.POLICYTYPES) {
+ when(policyTypesRepository.findAll()).thenReturn(Flux.error(new Throwable(errorMessage)));
+ StepVerifier.create(databaseStore.listObjects("")).expectErrorMessage(errorMessage).verify();
+ } else if (operationTarget == OperationTarget.SERVICES) {
+ when(servicesRepository.findAll()).thenReturn(Flux.error(new Throwable(errorMessage)));
+ StepVerifier.create(databaseStore.listObjects("")).expectErrorMessage(errorMessage).verify();
+ }
+ }
+
+ @ParameterizedTest
+ @EnumSource(OperationTarget.class)
+ void testReadObjectSuccess(OperationTarget operationTarget) {
+ DatabaseStore databaseStore = new DatabaseStore(operationTarget.name());
+ if (operationTarget == OperationTarget.POLICIES) {
+ String policyName = "ric1/readpolicy1.json";
+ String policyPayload = "{\"name\":\"readpolicy1\"}";
+ Policy policy1 = new Policy(policyName, policyPayload);
+ when(policiesRepository.findById(anyString())).thenReturn(Mono.just(policy1));
+ StepVerifier.create(databaseStore.readObject(policyName)).consumeNextWith(bytes -> {
+ assertArrayEquals(bytes, policyPayload.getBytes());
+ }).verifyComplete();
+ } else if (operationTarget == OperationTarget.POLICYTYPES) {
+ String policyTypeName = "readpolicytype1.json";
+ String policyTypePayload = "{\"name\":\"readpolicytype1\"}";
+ PolicyType policyType1 = new PolicyType(policyTypeName, policyTypePayload);
+ when(policyTypesRepository.findById(anyString())).thenReturn(Mono.just(policyType1));
+ StepVerifier.create(databaseStore.readObject(policyTypeName)).consumeNextWith(bytes -> {
+ assertArrayEquals(bytes, policyTypePayload.getBytes());
+ }).verifyComplete();
+ } else if (operationTarget == OperationTarget.SERVICES) {
+ String serviceName = "readservice1.json";
+ String servicePayload = "{\"name\":\"readservice1\"}";
+ Service service1 = new Service(serviceName, servicePayload);
+ when(servicesRepository.findById(anyString())).thenReturn(Mono.just(service1));
+ StepVerifier.create(databaseStore.readObject(serviceName)).consumeNextWith(bytes -> {
+ assertArrayEquals(bytes, servicePayload.getBytes());
+ }).verifyComplete();
+ }
+ }
+
+ @ParameterizedTest
+ @EnumSource(OperationTarget.class)
+ void testReadObjectFailure(OperationTarget operationTarget) {
+ DatabaseStore databaseStore = new DatabaseStore(operationTarget.name());
+ String errorMessage = "Unable to read the objects of type " + operationTarget.name();
+ if (operationTarget == OperationTarget.POLICIES) {
+ String policyName = "ric1/readpolicy1.json";
+ when(policiesRepository.findById(anyString())).thenReturn(Mono.error(new Throwable(errorMessage)));
+ StepVerifier.create(databaseStore.readObject(policyName)).expectErrorMessage(errorMessage).verify();
+ when(policiesRepository.findById(anyString())).thenReturn(Mono.empty());
+ StepVerifier.create(databaseStore.readObject(policyName)).verifyComplete();
+ } else if (operationTarget == OperationTarget.POLICYTYPES) {
+ String policyTypeName = "readpolicytype1.json";
+ when(policyTypesRepository.findById(anyString())).thenReturn(Mono.error(new Throwable(errorMessage)));
+ StepVerifier.create(databaseStore.readObject(policyTypeName)).expectErrorMessage(errorMessage).verify();
+ when(policyTypesRepository.findById(anyString())).thenReturn(Mono.empty());
+ StepVerifier.create(databaseStore.readObject(policyTypeName)).verifyComplete();
+ } else if (operationTarget == OperationTarget.SERVICES) {
+ String serviceName = "readservice1.json";
+ when(servicesRepository.findById(anyString())).thenReturn(Mono.error(new Throwable(errorMessage)));
+ StepVerifier.create(databaseStore.readObject(serviceName)).expectErrorMessage(errorMessage).verify();
+ when(servicesRepository.findById(anyString())).thenReturn(Mono.empty());
+ StepVerifier.create(databaseStore.readObject(serviceName)).verifyComplete();
+ }
+ }
+
+ @ParameterizedTest
+ @EnumSource(OperationTarget.class)
+ void testWriteObjectInsertSuccess(OperationTarget operationTarget) {
+ DatabaseStore databaseStore = new DatabaseStore(operationTarget.name());
+ if (operationTarget == OperationTarget.POLICIES) {
+ String policyName = "ric1/writeinserpolicy1.json";
+ String policyPayload = "{\"name\":\"writeinserpolicy1\"}";
+ Policy policy1 = new Policy(policyName, policyPayload);
+ when(policiesRepository.findById(anyString())).thenReturn(Mono.empty());
+ when(policiesRepository.save(any(Policy.class))).thenReturn(Mono.just(policy1));
+ StepVerifier.create(databaseStore.writeObject(policyName, policyPayload.getBytes())).consumeNextWith(bytes -> {
+ assertArrayEquals(bytes, policyPayload.getBytes());
+ verify(policiesRepository).save(argThat(BaseSchema::isNew));
+ }).verifyComplete();
+ } else if (operationTarget == OperationTarget.POLICYTYPES) {
+ String policyTypeName = "writeinsertpolicytype1.json";
+ String policyTypePayload = "{\"name\":\"writeinsertpolicytype1\"}";
+ PolicyType policyType1 = new PolicyType(policyTypeName, policyTypePayload);
+ when(policyTypesRepository.findById(anyString())).thenReturn(Mono.empty());
+ when(policyTypesRepository.save(any(PolicyType.class))).thenReturn(Mono.just(policyType1));
+ StepVerifier.create(databaseStore.writeObject(policyTypeName, policyTypePayload.getBytes()))
+ .consumeNextWith(bytes -> {
+ assertArrayEquals(bytes, policyTypePayload.getBytes());
+ verify(policyTypesRepository).save(argThat(BaseSchema::isNew));
+ }).verifyComplete();
+ } else if (operationTarget == OperationTarget.SERVICES) {
+ String serviceName = "writeinsertservice1.json";
+ String servicePayload = "{\"name\":\"writeinsertservice1\"}";
+ Service service1 = new Service(serviceName, servicePayload);
+ when(servicesRepository.findById(anyString())).thenReturn(Mono.empty());
+ when(servicesRepository.save(any(Service.class))).thenReturn(Mono.just(service1));
+ StepVerifier.create(databaseStore.writeObject(serviceName, servicePayload.getBytes()))
+ .consumeNextWith(bytes -> {
+ assertArrayEquals(bytes, servicePayload.getBytes());
+ verify(servicesRepository).save(argThat(BaseSchema::isNew));
+ }).verifyComplete();
+ }
+ }
+
+ @ParameterizedTest
+ @EnumSource(OperationTarget.class)
+ void testWriteObjectUpdateSuccess(OperationTarget operationTarget) {
+ DatabaseStore databaseStore = new DatabaseStore(operationTarget.name());
+ if (operationTarget == OperationTarget.POLICIES) {
+ String policyName = "ric1/writeupdatepolicy1.json";
+ String policyPayload = "{\"name\":\"writeupdatepolicy1\"}";
+ Policy policy1 = new Policy(policyName, policyPayload);
+ when(policiesRepository.findById(anyString())).thenReturn(Mono.just(policy1));
+ when(policiesRepository.save(any(Policy.class))).thenReturn(Mono.just(policy1));
+ StepVerifier.create(databaseStore.writeObject(policyName, policyPayload.getBytes())).consumeNextWith(bytes -> {
+ assertArrayEquals(bytes, policyPayload.getBytes());
+ verify(policiesRepository).save(argThat(policy -> !policy.isNew()));
+ }).verifyComplete();
+ } else if (operationTarget == OperationTarget.POLICYTYPES) {
+ String policyTypeName = "writeupdatepolicytype1.json";
+ String policyTypePayload = "{\"name\":\"writeupdatepolicytype1\"}";
+ PolicyType policyType1 = new PolicyType(policyTypeName, policyTypePayload);
+ when(policyTypesRepository.findById(anyString())).thenReturn(Mono.just(policyType1));
+ when(policyTypesRepository.save(any(PolicyType.class))).thenReturn(Mono.just(policyType1));
+ StepVerifier.create(databaseStore.writeObject(policyTypeName, policyTypePayload.getBytes()))
+ .consumeNextWith(bytes -> {
+ assertArrayEquals(bytes, policyTypePayload.getBytes());
+ verify(policyTypesRepository).save(argThat(policy -> !policy.isNew()));
+ }).verifyComplete();
+ } else if (operationTarget == OperationTarget.SERVICES) {
+ String serviceName = "writeupdateservice1.json";
+ String servicePayload = "{\"name\":\"writeupdateservice1\"}";
+ Service service1 = new Service(serviceName, servicePayload);
+ when(servicesRepository.findById(anyString())).thenReturn(Mono.just(service1));
+ when(servicesRepository.save(any(Service.class))).thenReturn(Mono.just(service1));
+ StepVerifier.create(databaseStore.writeObject(serviceName, servicePayload.getBytes()))
+ .consumeNextWith(bytes -> {
+ assertArrayEquals(bytes, servicePayload.getBytes());
+ verify(servicesRepository).save(argThat(policy -> !policy.isNew()));
+ }).verifyComplete();
+ }
+ }
+
+ @ParameterizedTest
+ @EnumSource(OperationTarget.class)
+ void testWriteObjectFailure(OperationTarget operationTarget) {
+ DatabaseStore databaseStore = new DatabaseStore(operationTarget.name());
+ String errorMessage = "Unable to write the objects of type " + operationTarget.name();
+ if (operationTarget == OperationTarget.POLICIES) {
+ String policyName = "ric1/writepolicy1.json";
+ String policyPayload = "{\"name\":\"writepolicy1\"}";
+ when(policiesRepository.findById(anyString())).thenReturn(Mono.empty());
+ when(policiesRepository.save(any(Policy.class))).thenReturn(Mono.error(new Throwable(errorMessage)));
+ StepVerifier.create(databaseStore.writeObject(policyName, policyPayload.getBytes()))
+ .expectErrorMessage(errorMessage).verify();
+ } else if (operationTarget == OperationTarget.POLICYTYPES) {
+ String policyTypeName = "writepolicytype1.json";
+ String policyTypePayload = "{\"name\":\"writepolicytype1\"}";
+ when(policyTypesRepository.findById(anyString())).thenReturn(Mono.empty());
+ when(policyTypesRepository.save(any(PolicyType.class))).thenReturn(Mono.error(new Throwable(errorMessage)));
+ StepVerifier.create(databaseStore.writeObject(policyTypeName, policyTypePayload.getBytes()))
+ .expectErrorMessage(errorMessage).verify();
+ } else if (operationTarget == OperationTarget.SERVICES) {
+ String serviceName = "writeservice1.json";
+ String servicePayload = "{\"name\":\"writeservice1\"}";
+ when(servicesRepository.findById(anyString())).thenReturn(Mono.empty());
+ when(servicesRepository.save(any(Service.class))).thenReturn(Mono.error(new Throwable(errorMessage)));
+ StepVerifier.create(databaseStore.writeObject(serviceName, servicePayload.getBytes()))
+ .expectErrorMessage(errorMessage).verify();
+ }
+ }
+
+ @ParameterizedTest
+ @EnumSource(OperationTarget.class)
+ void testDeleteObjectSuccess(OperationTarget operationTarget) {
+ DatabaseStore databaseStore = new DatabaseStore(operationTarget.name());
+ if (operationTarget == OperationTarget.POLICIES) {
+ String policyName = "ric1/deletepolicy1.json";
+ when(policiesRepository.deleteById(anyString())).thenReturn(Mono.just("").then());
+ StepVerifier.create(databaseStore.deleteObject(policyName)).expectNext(true).verifyComplete();
+ } else if (operationTarget == OperationTarget.POLICYTYPES) {
+ String policyTypeName = "deletepolicytype1.json";
+ when(policyTypesRepository.deleteById(anyString())).thenReturn(Mono.just("").then());
+ StepVerifier.create(databaseStore.deleteObject(policyTypeName)).expectNext(true).verifyComplete();
+ } else if (operationTarget == OperationTarget.SERVICES) {
+ String serviceName = "deleteservice1.json";
+ when(servicesRepository.deleteById(anyString())).thenReturn(Mono.just("").then());
+ StepVerifier.create(databaseStore.deleteObject(serviceName)).expectNext(true).verifyComplete();
+ }
+ }
+
+ @ParameterizedTest
+ @EnumSource(OperationTarget.class)
+ void testDeleteObjectFailure(OperationTarget operationTarget) {
+ DatabaseStore databaseStore = new DatabaseStore(operationTarget.name());
+ String errorMessage = "Unable to delete the objects of type " + operationTarget.name();
+ if (operationTarget == OperationTarget.POLICIES) {
+ String policyName = "ric1/deletepolicy1.json";
+ when(policiesRepository.deleteById(anyString())).thenReturn(Mono.error(new Throwable(errorMessage)));
+ StepVerifier.create(databaseStore.deleteObject(policyName)).expectErrorMessage(errorMessage).verify();
+ } else if (operationTarget == OperationTarget.POLICYTYPES) {
+ String policyTypeName = "deletepolicytype1.json";
+ when(policyTypesRepository.deleteById(anyString())).thenReturn(Mono.error(new Throwable(errorMessage)));
+ StepVerifier.create(databaseStore.deleteObject(policyTypeName)).expectErrorMessage(errorMessage).verify();
+ } else if (operationTarget == OperationTarget.SERVICES) {
+ String serviceName = "deleteservice1.json";
+ when(servicesRepository.deleteById(anyString())).thenReturn(Mono.error(new Throwable(errorMessage)));
+ StepVerifier.create(databaseStore.deleteObject(serviceName)).expectErrorMessage(errorMessage).verify();
+ }
+ }
+
+ @ParameterizedTest
+ @EnumSource(OperationTarget.class)
+ void testDeleteAllObjectSuccess(OperationTarget operationTarget) {
+ DatabaseStore databaseStore = new DatabaseStore(operationTarget.name());
+ if (operationTarget == OperationTarget.POLICIES) {
+ when(policiesRepository.deleteAll()).thenReturn(Mono.just("").then());
+ StepVerifier.create(databaseStore.deleteAllObjects()).expectNext(OK).verifyComplete();
+ } else if (operationTarget == OperationTarget.POLICYTYPES) {
+ when(policyTypesRepository.deleteAll()).thenReturn(Mono.just("").then());
+ StepVerifier.create(databaseStore.deleteAllObjects()).expectNext(OK).verifyComplete();
+ } else if (operationTarget == OperationTarget.SERVICES) {
+ when(servicesRepository.deleteAll()).thenReturn(Mono.just("").then());
+ StepVerifier.create(databaseStore.deleteAllObjects()).expectNext(OK).verifyComplete();
+ }
+ }
+
+ @ParameterizedTest
+ @EnumSource(OperationTarget.class)
+ void testDeleteAllObjectFailure(OperationTarget operationTarget) {
+ DatabaseStore databaseStore = new DatabaseStore(operationTarget.name());
+ String errorMessage = "Unable to delete all the objects of type " + operationTarget.name();
+ if (operationTarget == OperationTarget.POLICIES) {
+ when(policiesRepository.deleteAll()).thenReturn(Mono.error(new Throwable(errorMessage)));
+ StepVerifier.create(databaseStore.deleteAllObjects()).expectErrorMessage(errorMessage).verify();
+ } else if (operationTarget == OperationTarget.POLICYTYPES) {
+ when(policyTypesRepository.deleteAll()).thenReturn(Mono.error(new Throwable(errorMessage)));
+ StepVerifier.create(databaseStore.deleteAllObjects()).expectErrorMessage(errorMessage).verify();
+ } else if (operationTarget == OperationTarget.SERVICES) {
+ when(servicesRepository.deleteAll()).thenReturn(Mono.error(new Throwable(errorMessage)));
+ StepVerifier.create(databaseStore.deleteAllObjects()).expectErrorMessage(errorMessage).verify();
+ }
+ }
+
+} \ No newline at end of file
diff --git a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/utils/v3/TestHelper.java b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/utils/v3/TestHelper.java
index 5463b0a1..b0b5858a 100644
--- a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/utils/v3/TestHelper.java
+++ b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/utils/v3/TestHelper.java
@@ -170,10 +170,31 @@ public class TestHelper {
return gson.toJson(policyObjectInfo);
}
+ public String putPolicyBody(String nearRtRicId, String policyTypeName, String policyId, String ueId, String qosId,
+ String priorityLevel) {
+ PolicyObjectInformation policyObjectInfo = new PolicyObjectInformation(nearRtRicId, dummyPolicyObjectForPut(
+ ueId, qosId, priorityLevel), policyTypeName);
+ if (policyId != null && !policyId.isEmpty() && !policyId.isBlank())
+ policyObjectInfo.setPolicyId(policyId);
+ return gson.toJson(policyObjectInfo);
+ }
+
public PolicyObjectInformation policyObjectInfo(String nearRtRicId, String policyTypeName) {
return gson.fromJson(postPolicyBody(nearRtRicId, policyTypeName, ""), PolicyObjectInformation.class);
}
+ public JsonObject dummyPolicyObjectForPut(String... values) {
+ return JsonParser.parseString("{\n" +
+ " \"scope\": {\n" +
+ " \"ueId\": \"" + values[0] + "\",\n" +
+ " \"qosId\": \"" + values[1] + "\"\n" +
+ " },\n" +
+ " \"qosObjectives\": {\n" +
+ " \"priorityLevel\": " + values[2] + "\n" +
+ " }\n" +
+ " }").getAsJsonObject();
+ }
+
public JsonObject dummyPolicyObject() {
return JsonParser.parseString("{\n" +
" \"scope\": {\n" +
diff --git a/csit/scripts/healthcheck/.env b/csit/scripts/healthcheck/.env
index 727d9336..c9b3561d 100644
--- a/csit/scripts/healthcheck/.env
+++ b/csit/scripts/healthcheck/.env
@@ -1,5 +1,6 @@
# ============LICENSE_START===============================================
-# Copyright (C) 2021 Nordix Foundation. All rights reserved.
+# Copyright (C) 2021-2023 Nordix Foundation. All rights reserved.
+# Copyright (C) 2024 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.
@@ -17,11 +18,11 @@
#PMS
PMS_IMAGE_BASE="onap/ccsdk-oran-a1policymanagementservice"
-PMS_IMAGE_TAG="1.7.0-SNAPSHOT-latest"
+PMS_IMAGE_TAG="1.8.0-SNAPSHOT-latest"
#A1_SIM
A1_SIM_IMAGE_BASE="nexus3.o-ran-sc.org:10002/o-ran-sc/a1-simulator"
-A1_SIM_IMAGE_TAG="2.1.0"
+A1_SIM_IMAGE_TAG="2.7.0"
#DB
DB_IMAGE_BASE="mariadb"
@@ -29,4 +30,4 @@ DB_IMAGE_TAG="10.5"
#A1CONTROLLER
A1CONTROLLER_IMAGE_BASE="nexus3.onap.org:10002/onap/sdnc-image"
-A1CONTROLLER_IMAGE_TAG="2.3.0"
+A1CONTROLLER_IMAGE_TAG="2.6.1"
diff --git a/csit/scripts/healthcheck/test/pms_a1sim_sdnc.sh b/csit/scripts/healthcheck/test/pms_a1sim_sdnc.sh
index 6513f789..be2bc578 100755
--- a/csit/scripts/healthcheck/test/pms_a1sim_sdnc.sh
+++ b/csit/scripts/healthcheck/test/pms_a1sim_sdnc.sh
@@ -1,7 +1,8 @@
#!/bin/bash
# ============LICENSE_START===============================================
-# Copyright (C) 2021 Nordix Foundation. All rights reserved.
+# Copyright (C) 2021-2023 Nordix Foundation. All rights reserved.
+# Copyright (C) 2024 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.
@@ -45,6 +46,8 @@ checkStatus(){
fi
done
echo -e "$i sec: $4 is NOT alive!\n"
+ echo "Capturing docker logs (before exiting) ..."
+ docker-compose --env-file .env -f docker-compose.yml -f sdnc/docker-compose.yml logs
exit -1
}
@@ -71,7 +74,7 @@ curl -sSkw %{http_code} http://localhost:8081/actuator/loggers/org.onap.ccsdk.
# check SDNC status
echo "check SDNC status:"
-checkStatus 300 "curl -sS -o /dev/null -I -w %{http_code} http://localhost:8282/apidoc/explorer/ " "200" "SDNC"
+checkStatus 300 "curl -sS -o /dev/null -I -w %{http_code} http://localhost:8282/apidoc/explorer/index.html " "200" "SDNC"
cd ${SHELL_FOLDER}/../data
./preparePmsData.sh
diff --git a/docs/_static/logo_onap_2024.png b/docs/_static/logo_onap_2024.png
new file mode 100644
index 00000000..55d307fc
--- /dev/null
+++ b/docs/_static/logo_onap_2024.png
Binary files differ
diff --git a/docs/conf.py b/docs/conf.py
index 07f9c67c..460f86d1 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -33,7 +33,7 @@ html_theme = "sphinx_rtd_theme"
html_theme_options = {
"style_nav_header_background": "white",
"sticky_navigation": "False" }
-html_logo = "_static/logo_onap_2017.png"
+html_logo = "_static/logo_onap_2024.png"
html_favicon = "_static/favicon.ico"
html_static_path = ["_static"]
html_show_sphinx = False
diff --git a/docs/consumedapis/consumedapis.rst b/docs/consumedapis/consumedapis.rst
index 4f9fea4e..d5dcf4e7 100755..100644
--- a/docs/consumedapis/consumedapis.rst
+++ b/docs/consumedapis/consumedapis.rst
@@ -16,8 +16,8 @@ O-RAN A1 Interface for A1 Policies (A1-P)
Southbound, the ONAP A1 Policy functions communicate with *near-RT RIC* RAN functions using the **A1** interface, as defined by the `O-RAN Alliance <https://www.o-ran.org>`_
The *A1 Interface - Application Protocol Specification (A1-AP)* describes this interface. The specification can be viewed from the `O-RAN Alliance <https://www.o-ran.org>`_ website.
-The **Montreal** ONAP A1 Policy functions implement the *A1 Policy* (*A1-P*) parts of A1-AP, supporting versions *v1.1*, *v2.0* and *v3.0*.
+The **Oslo** ONAP A1 Policy functions implement the *A1 Policy* (*A1-P*) parts of A1-AP, supporting versions *v1.1*, *v2.0* and *v3.0*.
-An opensource implementation of a `near-RT RIC <https://wiki.o-ran-sc.org/pages/viewpage.action?pageId=1179659>`_ is available from the `O-RAN Software Community <https://o-ran-sc.org>`_. It supports a pre-spec version of the A1-AP. The ONAP A1 Policy functions described here also supports this A1 version (*A1-OSC*).
+An opensource implementation of a `near-RT RIC <https://lf-o-ran-sc.atlassian.net/wiki/spaces/RICP/overview>`_ is available from the `O-RAN Software Community <https://o-ran-sc.org>`_. It supports a pre-spec version of the A1-AP. The ONAP A1 Policy functions described here also supports this A1 version (*A1-OSC*).
-An opensource implementation of an `A1 Simulator <https://wiki.o-ran-sc.org/pages/viewpage.action?pageId=3604819>`_ is also available from the `O-RAN Software Community <https://o-ran-sc.org>`_. It supports all versions of A1-AP.
+An opensource implementation of an `A1 Simulator <https://lf-o-ran-sc.atlassian.net/wiki/spaces/RICNR/overview>`_ is also available from the `O-RAN Software Community <https://o-ran-sc.org>`_. It supports all versions of A1-AP.
diff --git a/docs/guide/developer-guide.rst b/docs/guide/developer-guide.rst
index bb737441..ef73af6b 100644
--- a/docs/guide/developer-guide.rst
+++ b/docs/guide/developer-guide.rst
@@ -10,7 +10,7 @@ Developer Guide
This document provides a quickstart for developers of the CCSDK functions for O-RAN A1 Policies.
-.. image:: ../media/ONAP-A1ControllerArchitecture-Montreal.png
+.. image:: ../media/ONAP-A1ControllerArchitecture-NewDelhi.png
:width: 500pt
Source tree
@@ -64,7 +64,7 @@ There are two configuration files for A1 Policy Management Service, *config/appl
The first (*config/application_configuration.json*) contains application-specific configuration needed by the application, such as which near-RT RICs, or controller to use.
The second (*config/application.yaml*) contains logging and security configurations.
-For more information about these configuration files can be found as comments in the sample files provided with the source code, or on the `ONAP wiki <https://wiki.onap.org/display/DW/O-RAN+A1+Policies+in+ONAP+London>`_
+For more information about these configuration files can be found as comments in the sample files provided with the source code, or on the `ONAP wiki <https://wiki.onap.org/display/DW/O-RAN+A1+Policies+in+ONAP>`_
Static configuration - Settings that cannot be changed at runtime (*application.yaml*)
--------------------------------------------------------------------------------------
diff --git a/docs/humaninterfaces/humaninterfaces.rst b/docs/humaninterfaces/humaninterfaces.rst
index a68962b8..fb8635e3 100644
--- a/docs/humaninterfaces/humaninterfaces.rst
+++ b/docs/humaninterfaces/humaninterfaces.rst
@@ -7,6 +7,6 @@ Human Interfaces
================
The NON-RT RIC Control Panel in O-RAN-SC can be used to interact with the Policy Management Service.
-See `NON-RT RIC Control Panel repo <https://gerrit.o-ran-sc.org/r/admin/repos/portal/nonrtric-controlpanel>`_ from the `O-RAN-SC NONRTRIC Project <https://wiki.o-ran-sc.org/display/RICNR>`_.
+See `NON-RT RIC Control Panel repo <https://gerrit.o-ran-sc.org/r/admin/repos/portal/nonrtric-controlpanel>`_ from the `O-RAN-SC NONRTRIC Project <https://lf-o-ran-sc.atlassian.net/wiki/spaces/RICNR/overview>`_.
Any "REST Client" application may be used (Postman, ...) to interact with the Policy Management Service application via the :ref:`pms_api`
diff --git a/docs/media/ONAP-A1ControllerArchitecture-NewDelhi.png b/docs/media/ONAP-A1ControllerArchitecture-NewDelhi.png
new file mode 100644
index 00000000..15580c87
--- /dev/null
+++ b/docs/media/ONAP-A1ControllerArchitecture-NewDelhi.png
Binary files differ
diff --git a/docs/offeredapis/openapitoolgen/offeredapis/pms-api/index.html b/docs/offeredapis/openapitoolgen/offeredapis/pms-api/index.html
index e0cbb20b..66934cda 100644
--- a/docs/offeredapis/openapitoolgen/offeredapis/pms-api/index.html
+++ b/docs/offeredapis/openapitoolgen/offeredapis/pms-api/index.html
@@ -846,307 +846,313 @@ ul.nav-tabs {
<script>
// Script section to load models into a JS Var
var defs = {}
- defs["authorization_result"] = {
- "required" : [ "result" ],
- "type" : "object",
- "properties" : {
- "result" : {
- "type" : "boolean",
- "description" : "If true, the access is granted"
- }
- },
- "description" : "Result of authorization",
- "example" : {
- "result" : true
- }
+ defs["authorization_result"] = {
+ "required" : [ "result" ],
+ "type" : "object",
+ "properties" : {
+ "result" : {
+ "type" : "boolean",
+ "description" : "If true, the access is granted"
+ }
+ },
+ "description" : "Result of authorization",
+ "example" : {
+ "result" : true
+ }
};
- defs["error_information"] = {
- "type" : "object",
- "properties" : {
- "detail" : {
- "type" : "string",
- "description" : " A human-readable explanation specific to this occurrence of the problem.",
- "example" : "Policy type not found"
- },
- "status" : {
- "type" : "integer",
- "description" : "The HTTP status code generated by the origin server for this occurrence of the problem. ",
- "format" : "int32",
- "example" : 404
- }
- },
- "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807"
+ defs["error_information"] = {
+ "type" : "object",
+ "properties" : {
+ "detail" : {
+ "type" : "string",
+ "description" : " A human-readable explanation specific to this occurrence of the problem.",
+ "example" : "Policy type not found"
+ },
+ "title" : {
+ "type" : "string",
+ "description" : "A specific error name",
+ "example" : "Not Found"
+ },
+ "status" : {
+ "type" : "integer",
+ "description" : "The HTTP status code generated by the origin server for this occurrence of the problem. ",
+ "format" : "int32",
+ "example" : 404
+ }
+ },
+ "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807"
};
- defs["input"] = {
- "required" : [ "access_type", "auth_token", "policy_type_id" ],
- "type" : "object",
- "properties" : {
- "access_type" : {
- "type" : "string",
- "description" : "Access type",
- "enum" : [ "READ", "WRITE", "DELETE" ]
- },
- "auth_token" : {
- "type" : "string",
- "description" : "Authorization token"
- },
- "policy_type_id" : {
- "type" : "string",
- "description" : "Policy type identifier"
- }
- },
- "description" : "input"
+ defs["input"] = {
+ "required" : [ "access_type", "auth_token", "policy_type_id" ],
+ "type" : "object",
+ "properties" : {
+ "access_type" : {
+ "type" : "string",
+ "description" : "Access type",
+ "enum" : [ "READ", "WRITE", "DELETE" ]
+ },
+ "auth_token" : {
+ "type" : "string",
+ "description" : "Authorization token"
+ },
+ "policy_type_id" : {
+ "type" : "string",
+ "description" : "Policy type identifier"
+ }
+ },
+ "description" : "input"
};
- defs["Link"] = {
- "type" : "object",
- "properties" : {
- "templated" : {
- "type" : "boolean"
- },
- "href" : {
- "type" : "string"
- }
- }
+ defs["Link"] = {
+ "type" : "object",
+ "properties" : {
+ "templated" : {
+ "type" : "boolean"
+ },
+ "href" : {
+ "type" : "string"
+ }
+ }
};
- defs["policy_authorization"] = {
- "required" : [ "input" ],
- "type" : "object",
- "properties" : {
- "input" : {
- "$ref" : "#/components/schemas/input"
- }
- },
- "description" : "Authorization request for A1 policy requests"
+ defs["policy_authorization"] = {
+ "required" : [ "input" ],
+ "type" : "object",
+ "properties" : {
+ "input" : {
+ "$ref" : "#/components/schemas/input"
+ }
+ },
+ "description" : "Authorization request for A1 policy requests"
};
- defs["policy_id_list"] = {
- "type" : "object",
- "properties" : {
- "policy_ids" : {
- "type" : "array",
- "description" : "Policy identities",
- "items" : {
- "type" : "string",
- "description" : "Policy identities"
- }
- }
- },
- "description" : "A list of policy identities",
- "example" : {
- "policy_ids" : [ "policy_ids", "policy_ids" ]
- }
+ defs["policy_id_list"] = {
+ "type" : "object",
+ "properties" : {
+ "policy_ids" : {
+ "type" : "array",
+ "description" : "Policy identities",
+ "items" : {
+ "type" : "string",
+ "description" : "Policy identities"
+ }
+ }
+ },
+ "description" : "A list of policy identities",
+ "example" : {
+ "policy_ids" : [ "policy_ids", "policy_ids" ]
+ }
};
- defs["policy_info"] = {
- "required" : [ "policy_data", "policy_id", "policytype_id", "ric_id", "service_id" ],
- "type" : "object",
- "properties" : {
- "ric_id" : {
- "type" : "string",
- "description" : "identity of the target Near-RT RIC"
- },
- "policy_id" : {
- "type" : "string",
- "description" : "identity of the policy"
- },
- "transient" : {
- "type" : "boolean",
- "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,
- "example" : false,
- "default" : false
- },
- "service_id" : {
- "type" : "string",
- "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."
- },
- "policy_data" : {
- "type" : "object",
- "description" : "the configuration of the policy"
- },
- "status_notification_uri" : {
- "type" : "string",
- "description" : "Callback URI for policy status updates"
- },
- "policytype_id" : {
- "type" : "string",
- "description" : "identity of the policy type"
- }
- },
- "description" : "Information for one A1-P Policy"
+ defs["policy_info"] = {
+ "required" : [ "policy_data", "policy_id", "policytype_id", "ric_id" ],
+ "type" : "object",
+ "properties" : {
+ "ric_id" : {
+ "type" : "string",
+ "description" : "identity of the target Near-RT RIC"
+ },
+ "policy_id" : {
+ "type" : "string",
+ "description" : "identity of the policy"
+ },
+ "transient" : {
+ "type" : "boolean",
+ "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,
+ "example" : false,
+ "default" : false
+ },
+ "service_id" : {
+ "type" : "string",
+ "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.",
+ "default" : ""
+ },
+ "policy_data" : {
+ "type" : "object",
+ "description" : "the configuration of the policy"
+ },
+ "status_notification_uri" : {
+ "type" : "string",
+ "description" : "Callback URI for policy status updates"
+ },
+ "policytype_id" : {
+ "type" : "string",
+ "description" : "identity of the policy type"
+ }
+ },
+ "description" : "Information for one A1-P Policy"
};
- defs["policy_info_list"] = {
- "type" : "object",
- "properties" : {
- "policies" : {
- "type" : "array",
- "description" : "List of policy information",
- "items" : {
- "$ref" : "#/components/schemas/policy_info"
- }
- }
- },
- "description" : "List of policy information"
+ defs["policy_info_list"] = {
+ "type" : "object",
+ "properties" : {
+ "policies" : {
+ "type" : "array",
+ "description" : "List of policy information",
+ "items" : {
+ "$ref" : "#/components/schemas/policy_info"
+ }
+ }
+ },
+ "description" : "List of policy information"
};
- defs["policy_status_info"] = {
- "type" : "object",
- "properties" : {
- "last_modified" : {
- "type" : "string",
- "description" : "timestamp, last modification time"
- },
- "status" : {
- "type" : "object",
- "description" : "the Policy status"
- }
- },
- "description" : "Status for one A1-P Policy"
+ defs["policy_status_info"] = {
+ "type" : "object",
+ "properties" : {
+ "last_modified" : {
+ "type" : "string",
+ "description" : "timestamp, last modification time"
+ },
+ "status" : {
+ "type" : "object",
+ "description" : "the Policy status"
+ }
+ },
+ "description" : "Status for one A1-P Policy"
};
- defs["policy_type_definition"] = {
- "type" : "object",
- "properties" : {
- "policy_schema" : {
- "type" : "object",
- "description" : "Policy type json schema. The schema is a json object following http://json-schema.org/draft-07/schema"
- }
- },
- "description" : "Contains policy type schema definition"
+ defs["policy_type_definition"] = {
+ "type" : "object",
+ "properties" : {
+ "policy_schema" : {
+ "type" : "object",
+ "description" : "Policy type json schema. The schema is a json object following http://json-schema.org/draft-07/schema"
+ }
+ },
+ "description" : "Contains policy type schema definition"
};
- defs["policy_type_id_list"] = {
- "type" : "object",
- "properties" : {
- "policytype_ids" : {
- "type" : "array",
- "description" : "Policy type identities",
- "items" : {
- "type" : "string",
- "description" : "Policy type identities"
- }
- }
- },
- "description" : "Information about policy types"
+ defs["policy_type_id_list"] = {
+ "type" : "object",
+ "properties" : {
+ "policytype_ids" : {
+ "type" : "array",
+ "description" : "Policy type identities",
+ "items" : {
+ "type" : "string",
+ "description" : "Policy type identities"
+ }
+ }
+ },
+ "description" : "Information about policy types"
};
- defs["ric_info"] = {
- "type" : "object",
- "properties" : {
- "ric_id" : {
- "type" : "string",
- "description" : "identity of the Near-RT RIC"
- },
- "managed_element_ids" : {
- "type" : "array",
- "description" : "O1 identities for managed entities",
- "items" : {
- "type" : "string",
- "description" : "O1 identities for managed entities"
- }
- },
- "state" : {
- "type" : "string",
- "description" : "Represents the states for a Near-RT RIC",
- "enum" : [ "UNAVAILABLE", "AVAILABLE", "SYNCHRONIZING", "CONSISTENCY_CHECK" ]
- },
- "policytype_ids" : {
- "type" : "array",
- "description" : "supported policy types",
- "items" : {
- "type" : "string",
- "description" : "supported policy types"
- }
- }
- },
- "description" : "Information for a Near-RT RIC"
+ defs["ric_info"] = {
+ "type" : "object",
+ "properties" : {
+ "ric_id" : {
+ "type" : "string",
+ "description" : "identity of the Near-RT RIC"
+ },
+ "managed_element_ids" : {
+ "type" : "array",
+ "description" : "O1 identities for managed entities",
+ "items" : {
+ "type" : "string",
+ "description" : "O1 identities for managed entities"
+ }
+ },
+ "state" : {
+ "type" : "string",
+ "description" : "Represents the states for a Near-RT RIC",
+ "enum" : [ "UNAVAILABLE", "AVAILABLE", "SYNCHRONIZING", "CONSISTENCY_CHECK" ]
+ },
+ "policytype_ids" : {
+ "type" : "array",
+ "description" : "supported policy types",
+ "items" : {
+ "type" : "string",
+ "description" : "supported policy types"
+ }
+ }
+ },
+ "description" : "Information for a Near-RT RIC"
};
- defs["ric_info_list"] = {
- "type" : "object",
- "properties" : {
- "rics" : {
- "type" : "array",
- "description" : "List of Near-RT RIC information",
- "items" : {
- "$ref" : "#/components/schemas/ric_info"
- }
- }
- },
- "description" : "List of Near-RT RIC information"
+ defs["ric_info_list"] = {
+ "type" : "object",
+ "properties" : {
+ "rics" : {
+ "type" : "array",
+ "description" : "List of Near-RT RIC information",
+ "items" : {
+ "$ref" : "#/components/schemas/ric_info"
+ }
+ }
+ },
+ "description" : "List of Near-RT RIC information"
};
- defs["service_callback_info_v2"] = {
- "required" : [ "event_type", "ric_id" ],
- "type" : "object",
- "properties" : {
- "ric_id" : {
- "type" : "string",
- "description" : "identity of a Near-RT RIC"
- },
- "event_type" : {
- "type" : "string",
- "description" : "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management",
- "enum" : [ "AVAILABLE" ]
- }
- },
- "description" : "Information transferred as in Service callbacks (callback_url)"
+ defs["service_callback_info_v2"] = {
+ "required" : [ "event_type", "ric_id" ],
+ "type" : "object",
+ "properties" : {
+ "ric_id" : {
+ "type" : "string",
+ "description" : "identity of a Near-RT RIC"
+ },
+ "event_type" : {
+ "type" : "string",
+ "description" : "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management",
+ "enum" : [ "AVAILABLE" ]
+ }
+ },
+ "description" : "Information transferred as in Service callbacks (callback_url)"
};
- defs["service_registration_info"] = {
- "required" : [ "service_id" ],
- "type" : "object",
- "properties" : {
- "callback_url" : {
- "type" : "string",
- "description" : "callback for notifying of Near-RT RIC state changes"
- },
- "service_id" : {
- "type" : "string",
- "description" : "identity of the service"
- },
- "keep_alive_interval_seconds" : {
- "type" : "integer",
- "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"
- }
- },
- "description" : "Information for one service"
+ defs["service_registration_info"] = {
+ "required" : [ "service_id" ],
+ "type" : "object",
+ "properties" : {
+ "callback_url" : {
+ "type" : "string",
+ "description" : "callback for notifying of Near-RT RIC state changes"
+ },
+ "service_id" : {
+ "type" : "string",
+ "description" : "identity of the service"
+ },
+ "keep_alive_interval_seconds" : {
+ "type" : "integer",
+ "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"
+ }
+ },
+ "description" : "Information for one service"
};
- defs["service_status"] = {
- "type" : "object",
- "properties" : {
- "callback_url" : {
- "type" : "string",
- "description" : "callback for notifying of RIC synchronization"
- },
- "service_id" : {
- "type" : "string",
- "description" : "identity of the service"
- },
- "keep_alive_interval_seconds" : {
- "type" : "integer",
- "description" : "policy keep alive timeout",
- "format" : "int64"
- },
- "time_since_last_activity_seconds" : {
- "type" : "integer",
- "description" : "time since last invocation by the service",
- "format" : "int64"
- }
- }
+ defs["service_status"] = {
+ "type" : "object",
+ "properties" : {
+ "callback_url" : {
+ "type" : "string",
+ "description" : "callback for notifying of RIC synchronization"
+ },
+ "service_id" : {
+ "type" : "string",
+ "description" : "identity of the service"
+ },
+ "keep_alive_interval_seconds" : {
+ "type" : "integer",
+ "description" : "policy keep alive timeout",
+ "format" : "int64"
+ },
+ "time_since_last_activity_seconds" : {
+ "type" : "integer",
+ "description" : "time since last invocation by the service",
+ "format" : "int64"
+ }
+ }
};
- defs["service_status_list"] = {
- "type" : "object",
- "properties" : {
- "service_list" : {
- "type" : "array",
- "description" : "List of service information",
- "items" : {
- "$ref" : "#/components/schemas/service_status"
- }
- }
- }
+ defs["service_status_list"] = {
+ "type" : "object",
+ "properties" : {
+ "service_list" : {
+ "type" : "array",
+ "description" : "List of service information",
+ "items" : {
+ "$ref" : "#/components/schemas/service_status"
+ }
+ }
+ }
};
- defs["status_info"] = {
- "type" : "object",
- "properties" : {
- "status" : {
- "type" : "string",
- "description" : "status text"
- }
- }
+ defs["status_info"] = {
+ "type" : "object",
+ "properties" : {
+ "status" : {
+ "type" : "string",
+ "description" : "status text"
+ }
+ }
};
var errs = {};
@@ -1282,10 +1288,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.2.0</div>
+ <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 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>
+ <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>
</div>
</div>
@@ -1302,7 +1308,7 @@ ul.nav-tabs {
<div class="pull-right"></div>
<div class="clearfix"></div>
<p></p>
- <p class="marked"></p>
+ <p class="marked">Deleting the policy using the Policy&#39;s Policy ID.</p>
<p></p>
<br />
<pre class="prettyprint language-html prettyprinted" data-type="delete"><code><span class="pln">/a1-policy/v2/policies/{policy_id}</span></code></pre>
@@ -1327,7 +1333,7 @@ ul.nav-tabs {
<div class="tab-content">
<div class="tab-pane active" id="examples-A1PolicyManagement-deletePolicy-0-curl">
<pre class="prettyprint"><code class="language-bsh">curl -X DELETE \
- -H "Accept: */*" \
+ -H "Accept: */*,application/problem+json" \
"http://localhost/a1-policy/v2/policies/{policy_id}"
</code></pre>
</div>
@@ -1565,7 +1571,7 @@ pub fn main() {
<h3 id="examples-A1PolicyManagement-deletePolicy-title-200"></h3>
<p id="examples-A1PolicyManagement-deletePolicy-description-200" class="marked"></p>
<script>
- var responseA1PolicyManagement200_description = `Not used`;
+ var responseA1PolicyManagement200_description = `OK - Policy deleted`;
var responseA1PolicyManagement200_description_break = responseA1PolicyManagement200_description.indexOf('\n');
if (responseA1PolicyManagement200_description_break == -1) {
$("#examples-A1PolicyManagement-deletePolicy-title-200").text("Status: 200 - " + responseA1PolicyManagement200_description);
@@ -1627,7 +1633,7 @@ pub fn main() {
<h3 id="examples-A1PolicyManagement-deletePolicy-title-423"></h3>
<p id="examples-A1PolicyManagement-deletePolicy-description-423" class="marked"></p>
<script>
- var responseA1PolicyManagement423_description = `Near-RT RIC is not operational`;
+ var responseA1PolicyManagement423_description = `Locked - HTTP Status code which can be used when the state is Locked`;
var responseA1PolicyManagement423_description_break = responseA1PolicyManagement423_description.indexOf('\n');
if (responseA1PolicyManagement423_description_break == -1) {
$("#examples-A1PolicyManagement-deletePolicy-title-423").text("Status: 423 - " + responseA1PolicyManagement423_description);
@@ -1686,130 +1692,6 @@ pub fn main() {
<input id='responses-A1PolicyManagement-deletePolicy-423-schema-data' type='hidden' value=''></input>
</div>
</div>
- <h3 id="examples-A1PolicyManagement-deletePolicy-title-204"></h3>
- <p id="examples-A1PolicyManagement-deletePolicy-description-204" class="marked"></p>
- <script>
- var responseA1PolicyManagement204_description = `Policy deleted`;
- var responseA1PolicyManagement204_description_break = responseA1PolicyManagement204_description.indexOf('\n');
- if (responseA1PolicyManagement204_description_break == -1) {
- $("#examples-A1PolicyManagement-deletePolicy-title-204").text("Status: 204 - " + responseA1PolicyManagement204_description);
- } else {
- $("#examples-A1PolicyManagement-deletePolicy-title-204").text("Status: 204 - " + responseA1PolicyManagement204_description.substring(0, responseA1PolicyManagement204_description_break));
- $("#examples-A1PolicyManagement-deletePolicy-description-204").html(responseA1PolicyManagement204_description.substring(responseA1PolicyManagement204_description_break));
- }
- </script>
-
-
- <ul id="responses-detail-A1PolicyManagement-deletePolicy-204" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-A1PolicyManagement-deletePolicy-204-schema">Schema</a>
- </li>
-
-
-
-
- </ul>
-
-
- <div class="tab-content" id="responses-A1PolicyManagement-deletePolicy-204-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-A1PolicyManagement-deletePolicy-204-schema">
- <div id="responses-A1PolicyManagement-deletePolicy-schema-204" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = ;
- var schema = findNode('schema',schemaWrapper).schema;
- if (!schema) {
- schema = schemaWrapper.schema;
- }
- if (schema.$ref != null) {
- schema = defsParser.$refs.get(schema.$ref);
- Object.keys(schema.properties).forEach( (item) => {
- if (schema.properties[item].$ref != null) {
- schema.properties[item] = defsParser.$refs.get(schema.properties[item].$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-A1PolicyManagement-deletePolicy-204-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-A1PolicyManagement-deletePolicy-schema-204');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-A1PolicyManagement-deletePolicy-204-schema-data' type='hidden' value=''></input>
- </div>
- </div>
- <h3 id="examples-A1PolicyManagement-deletePolicy-title-404"></h3>
- <p id="examples-A1PolicyManagement-deletePolicy-description-404" class="marked"></p>
- <script>
- var responseA1PolicyManagement404_description = `Policy is not found`;
- var responseA1PolicyManagement404_description_break = responseA1PolicyManagement404_description.indexOf('\n');
- if (responseA1PolicyManagement404_description_break == -1) {
- $("#examples-A1PolicyManagement-deletePolicy-title-404").text("Status: 404 - " + responseA1PolicyManagement404_description);
- } else {
- $("#examples-A1PolicyManagement-deletePolicy-title-404").text("Status: 404 - " + responseA1PolicyManagement404_description.substring(0, responseA1PolicyManagement404_description_break));
- $("#examples-A1PolicyManagement-deletePolicy-description-404").html(responseA1PolicyManagement404_description.substring(responseA1PolicyManagement404_description_break));
- }
- </script>
-
-
- <ul id="responses-detail-A1PolicyManagement-deletePolicy-404" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-A1PolicyManagement-deletePolicy-404-schema">Schema</a>
- </li>
-
-
-
-
- </ul>
-
-
- <div class="tab-content" id="responses-A1PolicyManagement-deletePolicy-404-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-A1PolicyManagement-deletePolicy-404-schema">
- <div id="responses-A1PolicyManagement-deletePolicy-schema-404" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = ;
- var schema = findNode('schema',schemaWrapper).schema;
- if (!schema) {
- schema = schemaWrapper.schema;
- }
- if (schema.$ref != null) {
- schema = defsParser.$refs.get(schema.$ref);
- Object.keys(schema.properties).forEach( (item) => {
- if (schema.properties[item].$ref != null) {
- schema.properties[item] = defsParser.$refs.get(schema.properties[item].$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-A1PolicyManagement-deletePolicy-404-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-A1PolicyManagement-deletePolicy-schema-404');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-A1PolicyManagement-deletePolicy-404-schema-data' type='hidden' value=''></input>
- </div>
- </div>
</article>
</div>
<hr>
@@ -1817,12 +1699,12 @@ pub fn main() {
<article id="api-A1PolicyManagement-getPolicy-0" data-group="User" data-name="getPolicy" data-version="0">
<div class="pull-left">
<h1>getPolicy</h1>
- <p>Returns a policy</p>
+ <p></p>
</div>
<div class="pull-right"></div>
<div class="clearfix"></div>
<p></p>
- <p class="marked"></p>
+ <p class="marked">Returns a policy</p>
<p></p>
<br />
<pre class="prettyprint language-html prettyprinted" data-type="get"><code><span class="pln">/a1-policy/v2/policies/{policy_id}</span></code></pre>
@@ -1847,7 +1729,7 @@ pub fn main() {
<div class="tab-content">
<div class="tab-pane active" id="examples-A1PolicyManagement-getPolicy-0-curl">
<pre class="prettyprint"><code class="language-bsh">curl -X GET \
- -H "Accept: application/json" \
+ -H "Accept: application/json,application/problem+json" \
"http://localhost/a1-policy/v2/policies/{policy_id}"
</code></pre>
</div>
@@ -1908,7 +1790,6 @@ public class A1PolicyManagementApiExample {
A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init];
String *policyId = policyId_example; // (default to null)
-// Returns a policy
[apiInstance getPolicyWith:policyId
completionHandler: ^(policy_info output, NSError* error) {
if (output) {
@@ -1961,7 +1842,6 @@ namespace Example
var policyId = policyId_example; // String | (default to null)
try {
- // Returns a policy
policy_info result = apiInstance.getPolicy(policyId);
Debug.WriteLine(result);
} catch (Exception e) {
@@ -2020,7 +1900,6 @@ api_instance = openapi_client.A1PolicyManagementApi()
policyId = policyId_example # String | (default to null)
try:
- # Returns a policy
api_response = api_instance.get_policy(policyId)
pprint(api_response)
except ApiException as e:
@@ -2085,7 +1964,7 @@ pub fn main() {
<h3 id="examples-A1PolicyManagement-getPolicy-title-200"></h3>
<p id="examples-A1PolicyManagement-getPolicy-description-200" class="marked"></p>
<script>
- var responseA1PolicyManagement200_description = `Policy found`;
+ var responseA1PolicyManagement200_description = `OK - Policy found`;
var responseA1PolicyManagement200_description_break = responseA1PolicyManagement200_description.indexOf('\n');
if (responseA1PolicyManagement200_description_break == -1) {
$("#examples-A1PolicyManagement-getPolicy-title-200").text("Status: 200 - " + responseA1PolicyManagement200_description);
@@ -2147,7 +2026,7 @@ pub fn main() {
<h3 id="examples-A1PolicyManagement-getPolicy-title-404"></h3>
<p id="examples-A1PolicyManagement-getPolicy-description-404" class="marked"></p>
<script>
- var responseA1PolicyManagement404_description = `Policy is not found`;
+ var responseA1PolicyManagement404_description = `Not Found`;
var responseA1PolicyManagement404_description_break = responseA1PolicyManagement404_description.indexOf('\n');
if (responseA1PolicyManagement404_description_break == -1) {
$("#examples-A1PolicyManagement-getPolicy-title-404").text("Status: 404 - " + responseA1PolicyManagement404_description);
@@ -2159,52 +2038,12 @@ pub fn main() {
<ul id="responses-detail-A1PolicyManagement-getPolicy-404" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-A1PolicyManagement-getPolicy-404-schema">Schema</a>
- </li>
-
-
</ul>
<div class="tab-content" id="responses-A1PolicyManagement-getPolicy-404-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-A1PolicyManagement-getPolicy-404-schema">
- <div id="responses-A1PolicyManagement-getPolicy-schema-404" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = ;
- var schema = findNode('schema',schemaWrapper).schema;
- if (!schema) {
- schema = schemaWrapper.schema;
- }
- if (schema.$ref != null) {
- schema = defsParser.$refs.get(schema.$ref);
- Object.keys(schema.properties).forEach( (item) => {
- if (schema.properties[item].$ref != null) {
- schema.properties[item] = defsParser.$refs.get(schema.properties[item].$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-A1PolicyManagement-getPolicy-404-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-A1PolicyManagement-getPolicy-schema-404');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-A1PolicyManagement-getPolicy-404-schema-data' type='hidden' value=''></input>
- </div>
</div>
</article>
</div>
@@ -2243,7 +2082,7 @@ pub fn main() {
<div class="tab-content">
<div class="tab-pane active" id="examples-A1PolicyManagement-getPolicyIds-0-curl">
<pre class="prettyprint"><code class="language-bsh">curl -X GET \
- -H "Accept: application/json" \
+ -H "Accept: application/json,application/problem+json" \
"http://localhost/a1-policy/v2/policies?policytype_id=policytypeId_example&ric_id=ricId_example&service_id=serviceId_example&type_name=typeName_example"
</code></pre>
</div>
@@ -2573,7 +2412,7 @@ Select policies of types with the given type name (type identity has the format
<h3 id="examples-A1PolicyManagement-getPolicyIds-title-200"></h3>
<p id="examples-A1PolicyManagement-getPolicyIds-description-200" class="marked"></p>
<script>
- var responseA1PolicyManagement200_description = `Policy identities`;
+ var responseA1PolicyManagement200_description = `OK - Policy identities`;
var responseA1PolicyManagement200_description_break = responseA1PolicyManagement200_description.indexOf('\n');
if (responseA1PolicyManagement200_description_break == -1) {
$("#examples-A1PolicyManagement-getPolicyIds-title-200").text("Status: 200 - " + responseA1PolicyManagement200_description);
@@ -2635,7 +2474,7 @@ Select policies of types with the given type name (type identity has the format
<h3 id="examples-A1PolicyManagement-getPolicyIds-title-404"></h3>
<p id="examples-A1PolicyManagement-getPolicyIds-description-404" class="marked"></p>
<script>
- var responseA1PolicyManagement404_description = `Near-RT RIC or type not found`;
+ var responseA1PolicyManagement404_description = `Not Found`;
var responseA1PolicyManagement404_description_break = responseA1PolicyManagement404_description.indexOf('\n');
if (responseA1PolicyManagement404_description_break == -1) {
$("#examples-A1PolicyManagement-getPolicyIds-title-404").text("Status: 404 - " + responseA1PolicyManagement404_description);
@@ -2647,52 +2486,12 @@ Select policies of types with the given type name (type identity has the format
<ul id="responses-detail-A1PolicyManagement-getPolicyIds-404" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-A1PolicyManagement-getPolicyIds-404-schema">Schema</a>
- </li>
-
-
</ul>
<div class="tab-content" id="responses-A1PolicyManagement-getPolicyIds-404-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-A1PolicyManagement-getPolicyIds-404-schema">
- <div id="responses-A1PolicyManagement-getPolicyIds-schema-404" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = ;
- var schema = findNode('schema',schemaWrapper).schema;
- if (!schema) {
- schema = schemaWrapper.schema;
- }
- if (schema.$ref != null) {
- schema = defsParser.$refs.get(schema.$ref);
- Object.keys(schema.properties).forEach( (item) => {
- if (schema.properties[item].$ref != null) {
- schema.properties[item] = defsParser.$refs.get(schema.properties[item].$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-A1PolicyManagement-getPolicyIds-404-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-A1PolicyManagement-getPolicyIds-schema-404');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-A1PolicyManagement-getPolicyIds-404-schema-data' type='hidden' value=''></input>
- </div>
</div>
</article>
</div>
@@ -3061,7 +2860,7 @@ Select policies of a given type name (type identity has the format &lt;typename_
<h3 id="examples-A1PolicyManagement-getPolicyInstances-title-200"></h3>
<p id="examples-A1PolicyManagement-getPolicyInstances-description-200" class="marked"></p>
<script>
- var responseA1PolicyManagement200_description = `Policies`;
+ var responseA1PolicyManagement200_description = `OK - Returns A1 Policies which matches the criteria`;
var responseA1PolicyManagement200_description_break = responseA1PolicyManagement200_description.indexOf('\n');
if (responseA1PolicyManagement200_description_break == -1) {
$("#examples-A1PolicyManagement-getPolicyInstances-title-200").text("Status: 200 - " + responseA1PolicyManagement200_description);
@@ -3123,7 +2922,7 @@ Select policies of a given type name (type identity has the format &lt;typename_
<h3 id="examples-A1PolicyManagement-getPolicyInstances-title-404"></h3>
<p id="examples-A1PolicyManagement-getPolicyInstances-description-404" class="marked"></p>
<script>
- var responseA1PolicyManagement404_description = `Near-RT RIC, policy type or service not found`;
+ var responseA1PolicyManagement404_description = `Not Found - Near-RT RIC, policy type or service not found`;
var responseA1PolicyManagement404_description_break = responseA1PolicyManagement404_description.indexOf('\n');
if (responseA1PolicyManagement404_description_break == -1) {
$("#examples-A1PolicyManagement-getPolicyInstances-title-404").text("Status: 404 - " + responseA1PolicyManagement404_description);
@@ -3189,12 +2988,12 @@ Select policies of a given type name (type identity has the format &lt;typename_
<article id="api-A1PolicyManagement-getPolicyStatus-0" data-group="User" data-name="getPolicyStatus" data-version="0">
<div class="pull-left">
<h1>getPolicyStatus</h1>
- <p>Returns a policy status</p>
+ <p></p>
</div>
<div class="pull-right"></div>
<div class="clearfix"></div>
<p></p>
- <p class="marked"></p>
+ <p class="marked">Returns a policy status</p>
<p></p>
<br />
<pre class="prettyprint language-html prettyprinted" data-type="get"><code><span class="pln">/a1-policy/v2/policies/{policy_id}/status</span></code></pre>
@@ -3219,7 +3018,7 @@ Select policies of a given type name (type identity has the format &lt;typename_
<div class="tab-content">
<div class="tab-pane active" id="examples-A1PolicyManagement-getPolicyStatus-0-curl">
<pre class="prettyprint"><code class="language-bsh">curl -X GET \
- -H "Accept: application/json" \
+ -H "Accept: application/json,application/problem+json" \
"http://localhost/a1-policy/v2/policies/{policy_id}/status"
</code></pre>
</div>
@@ -3280,7 +3079,6 @@ public class A1PolicyManagementApiExample {
A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init];
String *policyId = policyId_example; // (default to null)
-// Returns a policy status
[apiInstance getPolicyStatusWith:policyId
completionHandler: ^(policy_status_info output, NSError* error) {
if (output) {
@@ -3333,7 +3131,6 @@ namespace Example
var policyId = policyId_example; // String | (default to null)
try {
- // Returns a policy status
policy_status_info result = apiInstance.getPolicyStatus(policyId);
Debug.WriteLine(result);
} catch (Exception e) {
@@ -3392,7 +3189,6 @@ api_instance = openapi_client.A1PolicyManagementApi()
policyId = policyId_example # String | (default to null)
try:
- # Returns a policy status
api_response = api_instance.get_policy_status(policyId)
pprint(api_response)
except ApiException as e:
@@ -3457,7 +3253,7 @@ pub fn main() {
<h3 id="examples-A1PolicyManagement-getPolicyStatus-title-200"></h3>
<p id="examples-A1PolicyManagement-getPolicyStatus-description-200" class="marked"></p>
<script>
- var responseA1PolicyManagement200_description = `Policy status`;
+ var responseA1PolicyManagement200_description = `OK - Policy status`;
var responseA1PolicyManagement200_description_break = responseA1PolicyManagement200_description.indexOf('\n');
if (responseA1PolicyManagement200_description_break == -1) {
$("#examples-A1PolicyManagement-getPolicyStatus-title-200").text("Status: 200 - " + responseA1PolicyManagement200_description);
@@ -3519,7 +3315,7 @@ pub fn main() {
<h3 id="examples-A1PolicyManagement-getPolicyStatus-title-404"></h3>
<p id="examples-A1PolicyManagement-getPolicyStatus-description-404" class="marked"></p>
<script>
- var responseA1PolicyManagement404_description = `Policy is not found`;
+ var responseA1PolicyManagement404_description = `Not Found`;
var responseA1PolicyManagement404_description_break = responseA1PolicyManagement404_description.indexOf('\n');
if (responseA1PolicyManagement404_description_break == -1) {
$("#examples-A1PolicyManagement-getPolicyStatus-title-404").text("Status: 404 - " + responseA1PolicyManagement404_description);
@@ -3531,52 +3327,12 @@ pub fn main() {
<ul id="responses-detail-A1PolicyManagement-getPolicyStatus-404" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-A1PolicyManagement-getPolicyStatus-404-schema">Schema</a>
- </li>
-
-
</ul>
<div class="tab-content" id="responses-A1PolicyManagement-getPolicyStatus-404-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-A1PolicyManagement-getPolicyStatus-404-schema">
- <div id="responses-A1PolicyManagement-getPolicyStatus-schema-404" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = ;
- var schema = findNode('schema',schemaWrapper).schema;
- if (!schema) {
- schema = schemaWrapper.schema;
- }
- if (schema.$ref != null) {
- schema = defsParser.$refs.get(schema.$ref);
- Object.keys(schema.properties).forEach( (item) => {
- if (schema.properties[item].$ref != null) {
- schema.properties[item] = defsParser.$refs.get(schema.properties[item].$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-A1PolicyManagement-getPolicyStatus-404-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-A1PolicyManagement-getPolicyStatus-schema-404');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-A1PolicyManagement-getPolicyStatus-404-schema-data' type='hidden' value=''></input>
- </div>
</div>
</article>
</div>
@@ -3585,12 +3341,12 @@ pub fn main() {
<article id="api-A1PolicyManagement-getPolicyTypeDefinition-0" data-group="User" data-name="getPolicyTypeDefinition" data-version="0">
<div class="pull-left">
<h1>getPolicyTypeDefinition</h1>
- <p>Returns a policy type definition</p>
+ <p></p>
</div>
<div class="pull-right"></div>
<div class="clearfix"></div>
<p></p>
- <p class="marked"></p>
+ <p class="marked">Returns a policy type definition</p>
<p></p>
<br />
<pre class="prettyprint language-html prettyprinted" data-type="get"><code><span class="pln">/a1-policy/v2/policy-types/{policytype_id}</span></code></pre>
@@ -3615,7 +3371,7 @@ pub fn main() {
<div class="tab-content">
<div class="tab-pane active" id="examples-A1PolicyManagement-getPolicyTypeDefinition-0-curl">
<pre class="prettyprint"><code class="language-bsh">curl -X GET \
- -H "Accept: application/json" \
+ -H "Accept: application/json,application/problem+json" \
"http://localhost/a1-policy/v2/policy-types/{policytype_id}"
</code></pre>
</div>
@@ -3676,7 +3432,6 @@ public class A1PolicyManagementApiExample {
A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init];
String *policytypeId = policytypeId_example; // (default to null)
-// Returns a policy type definition
[apiInstance getPolicyTypeDefinitionWith:policytypeId
completionHandler: ^(policy_type_definition output, NSError* error) {
if (output) {
@@ -3729,7 +3484,6 @@ namespace Example
var policytypeId = policytypeId_example; // String | (default to null)
try {
- // Returns a policy type definition
policy_type_definition result = apiInstance.getPolicyTypeDefinition(policytypeId);
Debug.WriteLine(result);
} catch (Exception e) {
@@ -3788,7 +3542,6 @@ api_instance = openapi_client.A1PolicyManagementApi()
policytypeId = policytypeId_example # String | (default to null)
try:
- # Returns a policy type definition
api_response = api_instance.get_policy_type_definition(policytypeId)
pprint(api_response)
except ApiException as e:
@@ -3853,7 +3606,7 @@ pub fn main() {
<h3 id="examples-A1PolicyManagement-getPolicyTypeDefinition-title-200"></h3>
<p id="examples-A1PolicyManagement-getPolicyTypeDefinition-description-200" class="marked"></p>
<script>
- var responseA1PolicyManagement200_description = `schema of the given policy type`;
+ var responseA1PolicyManagement200_description = `OK - schema of the given policy type`;
var responseA1PolicyManagement200_description_break = responseA1PolicyManagement200_description.indexOf('\n');
if (responseA1PolicyManagement200_description_break == -1) {
$("#examples-A1PolicyManagement-getPolicyTypeDefinition-title-200").text("Status: 200 - " + responseA1PolicyManagement200_description);
@@ -3915,7 +3668,7 @@ pub fn main() {
<h3 id="examples-A1PolicyManagement-getPolicyTypeDefinition-title-404"></h3>
<p id="examples-A1PolicyManagement-getPolicyTypeDefinition-description-404" class="marked"></p>
<script>
- var responseA1PolicyManagement404_description = `Policy type is not found`;
+ var responseA1PolicyManagement404_description = `Not Found`;
var responseA1PolicyManagement404_description_break = responseA1PolicyManagement404_description.indexOf('\n');
if (responseA1PolicyManagement404_description_break == -1) {
$("#examples-A1PolicyManagement-getPolicyTypeDefinition-title-404").text("Status: 404 - " + responseA1PolicyManagement404_description);
@@ -3927,52 +3680,12 @@ pub fn main() {
<ul id="responses-detail-A1PolicyManagement-getPolicyTypeDefinition-404" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-A1PolicyManagement-getPolicyTypeDefinition-404-schema">Schema</a>
- </li>
-
-
</ul>
<div class="tab-content" id="responses-A1PolicyManagement-getPolicyTypeDefinition-404-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-A1PolicyManagement-getPolicyTypeDefinition-404-schema">
- <div id="responses-A1PolicyManagement-getPolicyTypeDefinition-schema-404" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = ;
- var schema = findNode('schema',schemaWrapper).schema;
- if (!schema) {
- schema = schemaWrapper.schema;
- }
- if (schema.$ref != null) {
- schema = defsParser.$refs.get(schema.$ref);
- Object.keys(schema.properties).forEach( (item) => {
- if (schema.properties[item].$ref != null) {
- schema.properties[item] = defsParser.$refs.get(schema.properties[item].$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-A1PolicyManagement-getPolicyTypeDefinition-404-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-A1PolicyManagement-getPolicyTypeDefinition-schema-404');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-A1PolicyManagement-getPolicyTypeDefinition-404-schema-data' type='hidden' value=''></input>
- </div>
</div>
</article>
</div>
@@ -3981,12 +3694,12 @@ pub fn main() {
<article id="api-A1PolicyManagement-getPolicyTypes-0" data-group="User" data-name="getPolicyTypes" data-version="0">
<div class="pull-left">
<h1>getPolicyTypes</h1>
- <p>Query policy type identities</p>
+ <p></p>
</div>
<div class="pull-right"></div>
<div class="clearfix"></div>
<p></p>
- <p class="marked"></p>
+ <p class="marked">Query policy type identities</p>
<p></p>
<br />
<pre class="prettyprint language-html prettyprinted" data-type="get"><code><span class="pln">/a1-policy/v2/policy-types</span></code></pre>
@@ -4011,7 +3724,7 @@ pub fn main() {
<div class="tab-content">
<div class="tab-pane active" id="examples-A1PolicyManagement-getPolicyTypes-0-curl">
<pre class="prettyprint"><code class="language-bsh">curl -X GET \
- -H "Accept: application/json" \
+ -H "Accept: application/json,application/problem+json" \
"http://localhost/a1-policy/v2/policy-types?ric_id=ricId_example&type_name=typeName_example&compatible_with_version=compatibleWithVersion_example"
</code></pre>
</div>
@@ -4078,7 +3791,6 @@ String *ricId = ricId_example; // Select types for the given Near-RT RIC identit
String *typeName = typeName_example; // Select types with the given type name (type identity has the format <typename_version>) (optional) (default to null)
String *compatibleWithVersion = compatibleWithVersion_example; // 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. (optional) (default to null)
-// Query policy type identities
[apiInstance getPolicyTypesWith:ricId
typeName:typeName
compatibleWithVersion:compatibleWithVersion
@@ -4139,7 +3851,6 @@ namespace Example
var compatibleWithVersion = compatibleWithVersion_example; // String | 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. (optional) (default to null)
try {
- // Query policy type identities
policy_type_id_list result = apiInstance.getPolicyTypes(ricId, typeName, compatibleWithVersion);
Debug.WriteLine(result);
} catch (Exception e) {
@@ -4204,7 +3915,6 @@ typeName = typeName_example # String | Select types with the given type name (ty
compatibleWithVersion = compatibleWithVersion_example # String | 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. (optional) (default to null)
try:
- # Query policy type identities
api_response = api_instance.get_policy_types(ricId=ricId, typeName=typeName, compatibleWithVersion=compatibleWithVersion)
pprint(api_response)
except ApiException as e:
@@ -4311,7 +4021,7 @@ Select types that are compatible with the given version. This parameter is only
<h3 id="examples-A1PolicyManagement-getPolicyTypes-title-200"></h3>
<p id="examples-A1PolicyManagement-getPolicyTypes-description-200" class="marked"></p>
<script>
- var responseA1PolicyManagement200_description = `Policy type IDs`;
+ var responseA1PolicyManagement200_description = `OK - Policy Type IDs Found`;
var responseA1PolicyManagement200_description_break = responseA1PolicyManagement200_description.indexOf('\n');
if (responseA1PolicyManagement200_description_break == -1) {
$("#examples-A1PolicyManagement-getPolicyTypes-title-200").text("Status: 200 - " + responseA1PolicyManagement200_description);
@@ -4373,7 +4083,7 @@ Select types that are compatible with the given version. This parameter is only
<h3 id="examples-A1PolicyManagement-getPolicyTypes-title-404"></h3>
<p id="examples-A1PolicyManagement-getPolicyTypes-description-404" class="marked"></p>
<script>
- var responseA1PolicyManagement404_description = `Near-RT RIC is not found`;
+ var responseA1PolicyManagement404_description = `Not Found`;
var responseA1PolicyManagement404_description_break = responseA1PolicyManagement404_description.indexOf('\n');
if (responseA1PolicyManagement404_description_break == -1) {
$("#examples-A1PolicyManagement-getPolicyTypes-title-404").text("Status: 404 - " + responseA1PolicyManagement404_description);
@@ -4385,52 +4095,12 @@ Select types that are compatible with the given version. This parameter is only
<ul id="responses-detail-A1PolicyManagement-getPolicyTypes-404" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-A1PolicyManagement-getPolicyTypes-404-schema">Schema</a>
- </li>
-
-
</ul>
<div class="tab-content" id="responses-A1PolicyManagement-getPolicyTypes-404-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-A1PolicyManagement-getPolicyTypes-404-schema">
- <div id="responses-A1PolicyManagement-getPolicyTypes-schema-404" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = ;
- var schema = findNode('schema',schemaWrapper).schema;
- if (!schema) {
- schema = schemaWrapper.schema;
- }
- if (schema.$ref != null) {
- schema = defsParser.$refs.get(schema.$ref);
- Object.keys(schema.properties).forEach( (item) => {
- if (schema.properties[item].$ref != null) {
- schema.properties[item] = defsParser.$refs.get(schema.properties[item].$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-A1PolicyManagement-getPolicyTypes-404-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-A1PolicyManagement-getPolicyTypes-schema-404');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-A1PolicyManagement-getPolicyTypes-404-schema-data' type='hidden' value=''></input>
- </div>
</div>
</article>
</div>
@@ -4439,12 +4109,12 @@ Select types that are compatible with the given version. This parameter is only
<article id="api-A1PolicyManagement-putPolicy-0" data-group="User" data-name="putPolicy" data-version="0">
<div class="pull-left">
<h1>putPolicy</h1>
- <p>Create or update a policy</p>
+ <p></p>
</div>
<div class="pull-right"></div>
<div class="clearfix"></div>
<p></p>
- <p class="marked"></p>
+ <p class="marked">Create or update a policy</p>
<p></p>
<br />
<pre class="prettyprint language-html prettyprinted" data-type="put"><code><span class="pln">/a1-policy/v2/policies</span></code></pre>
@@ -4469,7 +4139,7 @@ Select types that are compatible with the given version. This parameter is only
<div class="tab-content">
<div class="tab-pane active" id="examples-A1PolicyManagement-putPolicy-0-curl">
<pre class="prettyprint"><code class="language-bsh">curl -X PUT \
- -H "Accept: application/json" \
+ -H "Accept: application/json,application/problem+json" \
-H "Content-Type: application/json" \
"http://localhost/a1-policy/v2/policies" \
-d ''
@@ -4532,7 +4202,6 @@ public class A1PolicyManagementApiExample {
A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init];
PolicyInfo *policyInfo = ; //
-// Create or update a policy
[apiInstance putPolicyWith:policyInfo
completionHandler: ^(Object output, NSError* error) {
if (output) {
@@ -4585,7 +4254,6 @@ namespace Example
var policyInfo = new PolicyInfo(); // PolicyInfo |
try {
- // Create or update a policy
Object result = apiInstance.putPolicy(policyInfo);
Debug.WriteLine(result);
} catch (Exception e) {
@@ -4644,7 +4312,6 @@ api_instance = openapi_client.A1PolicyManagementApi()
policyInfo = # PolicyInfo |
try:
- # Create or update a policy
api_response = api_instance.put_policy(policyInfo)
pprint(api_response)
except ApiException as e:
@@ -4686,15 +4353,15 @@ pub fn main() {
<p class="marked"></p>
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_info"
- }
- }
- },
- "required" : true
+ var schemaWrapper = {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_info"
+ }
+ }
+ },
+ "required" : true
};
var schema = findNode('schema',schemaWrapper).schema;
@@ -4728,7 +4395,7 @@ $(document).ready(function() {
<h3 id="examples-A1PolicyManagement-putPolicy-title-200"></h3>
<p id="examples-A1PolicyManagement-putPolicy-description-200" class="marked"></p>
<script>
- var responseA1PolicyManagement200_description = `Policy updated`;
+ var responseA1PolicyManagement200_description = `OK - Policy updated`;
var responseA1PolicyManagement200_description_break = responseA1PolicyManagement200_description.indexOf('\n');
if (responseA1PolicyManagement200_description_break == -1) {
$("#examples-A1PolicyManagement-putPolicy-title-200").text("Status: 200 - " + responseA1PolicyManagement200_description);
@@ -4790,7 +4457,7 @@ $(document).ready(function() {
<h3 id="examples-A1PolicyManagement-putPolicy-title-201"></h3>
<p id="examples-A1PolicyManagement-putPolicy-description-201" class="marked"></p>
<script>
- var responseA1PolicyManagement201_description = `Policy created`;
+ var responseA1PolicyManagement201_description = `Created - Policy created`;
var responseA1PolicyManagement201_description_break = responseA1PolicyManagement201_description.indexOf('\n');
if (responseA1PolicyManagement201_description_break == -1) {
$("#examples-A1PolicyManagement-putPolicy-title-201").text("Status: 201 - " + responseA1PolicyManagement201_description);
@@ -4852,7 +4519,7 @@ $(document).ready(function() {
<h3 id="examples-A1PolicyManagement-putPolicy-title-423"></h3>
<p id="examples-A1PolicyManagement-putPolicy-description-423" class="marked"></p>
<script>
- var responseA1PolicyManagement423_description = `Near-RT RIC is not operational`;
+ var responseA1PolicyManagement423_description = `Locked - HTTP Status code which can be used when the state is Locked`;
var responseA1PolicyManagement423_description_break = responseA1PolicyManagement423_description.indexOf('\n');
if (responseA1PolicyManagement423_description_break == -1) {
$("#examples-A1PolicyManagement-putPolicy-title-423").text("Status: 423 - " + responseA1PolicyManagement423_description);
@@ -4911,68 +4578,6 @@ $(document).ready(function() {
<input id='responses-A1PolicyManagement-putPolicy-423-schema-data' type='hidden' value=''></input>
</div>
</div>
- <h3 id="examples-A1PolicyManagement-putPolicy-title-404"></h3>
- <p id="examples-A1PolicyManagement-putPolicy-description-404" class="marked"></p>
- <script>
- var responseA1PolicyManagement404_description = `Near-RT RIC or policy type is not found`;
- var responseA1PolicyManagement404_description_break = responseA1PolicyManagement404_description.indexOf('\n');
- if (responseA1PolicyManagement404_description_break == -1) {
- $("#examples-A1PolicyManagement-putPolicy-title-404").text("Status: 404 - " + responseA1PolicyManagement404_description);
- } else {
- $("#examples-A1PolicyManagement-putPolicy-title-404").text("Status: 404 - " + responseA1PolicyManagement404_description.substring(0, responseA1PolicyManagement404_description_break));
- $("#examples-A1PolicyManagement-putPolicy-description-404").html(responseA1PolicyManagement404_description.substring(responseA1PolicyManagement404_description_break));
- }
- </script>
-
-
- <ul id="responses-detail-A1PolicyManagement-putPolicy-404" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-A1PolicyManagement-putPolicy-404-schema">Schema</a>
- </li>
-
-
-
-
- </ul>
-
-
- <div class="tab-content" id="responses-A1PolicyManagement-putPolicy-404-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-A1PolicyManagement-putPolicy-404-schema">
- <div id="responses-A1PolicyManagement-putPolicy-schema-404" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = ;
- var schema = findNode('schema',schemaWrapper).schema;
- if (!schema) {
- schema = schemaWrapper.schema;
- }
- if (schema.$ref != null) {
- schema = defsParser.$refs.get(schema.$ref);
- Object.keys(schema.properties).forEach( (item) => {
- if (schema.properties[item].$ref != null) {
- schema.properties[item] = defsParser.$refs.get(schema.properties[item].$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-A1PolicyManagement-putPolicy-404-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-A1PolicyManagement-putPolicy-schema-404');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-A1PolicyManagement-putPolicy-404-schema-data' type='hidden' value=''></input>
- </div>
- </div>
</article>
</div>
<hr>
@@ -7682,15 +7287,15 @@ pub fn main() {
<p class="marked"></p>
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "content" : {
- "application/json" : {
- "schema" : {
- "type" : "string",
- "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", "OFF" ]
- }
- }
- }
+ var schemaWrapper = {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "type" : "string",
+ "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", "OFF" ]
+ }
+ }
+ }
};
var schema = findNode('schema',schemaWrapper).schema;
@@ -9048,7 +8653,7 @@ pub fn main() {
<div class="tab-content">
<div class="tab-pane active" id="examples-AuthorizationAPI-performAccessControl-0-curl">
<pre class="prettyprint"><code class="language-bsh">curl -X POST \
- -H "Accept: application/json" \
+ -H "Accept: application/json,application/problem+json" \
-H "Content-Type: application/json" \
"http://localhost/example-authz-check" \
-d ''
@@ -9265,15 +8870,15 @@ pub fn main() {
<p class="marked"></p>
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_authorization"
- }
- }
- },
- "required" : true
+ var schemaWrapper = {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_authorization"
+ }
+ }
+ },
+ "required" : true
};
var schema = findNode('schema',schemaWrapper).schema;
@@ -9366,6 +8971,68 @@ $(document).ready(function() {
<input id='responses-AuthorizationAPI-performAccessControl-200-schema-data' type='hidden' value=''></input>
</div>
</div>
+ <h3 id="examples-AuthorizationAPI-performAccessControl-title-403"></h3>
+ <p id="examples-AuthorizationAPI-performAccessControl-description-403" class="marked"></p>
+ <script>
+ var responseAuthorizationAPI403_description = `Forbidden`;
+ var responseAuthorizationAPI403_description_break = responseAuthorizationAPI403_description.indexOf('\n');
+ if (responseAuthorizationAPI403_description_break == -1) {
+ $("#examples-AuthorizationAPI-performAccessControl-title-403").text("Status: 403 - " + responseAuthorizationAPI403_description);
+ } else {
+ $("#examples-AuthorizationAPI-performAccessControl-title-403").text("Status: 403 - " + responseAuthorizationAPI403_description.substring(0, responseAuthorizationAPI403_description_break));
+ $("#examples-AuthorizationAPI-performAccessControl-description-403").html(responseAuthorizationAPI403_description.substring(responseAuthorizationAPI403_description_break));
+ }
+ </script>
+
+
+ <ul id="responses-detail-AuthorizationAPI-performAccessControl-403" class="nav nav-tabs nav-tabs-examples" >
+ <li class="active">
+ <a data-toggle="tab" href="#responses-AuthorizationAPI-performAccessControl-403-schema">Schema</a>
+ </li>
+
+
+
+
+ </ul>
+
+
+ <div class="tab-content" id="responses-AuthorizationAPI-performAccessControl-403-wrapper" style='margin-bottom: 10px;'>
+ <div class="tab-pane active" id="responses-AuthorizationAPI-performAccessControl-403-schema">
+ <div id="responses-AuthorizationAPI-performAccessControl-schema-403" class="exampleStyle">
+ <script>
+ $(document).ready(function() {
+ var schemaWrapper = ;
+ var schema = findNode('schema',schemaWrapper).schema;
+ if (!schema) {
+ schema = schemaWrapper.schema;
+ }
+ if (schema.$ref != null) {
+ schema = defsParser.$refs.get(schema.$ref);
+ Object.keys(schema.properties).forEach( (item) => {
+ if (schema.properties[item].$ref != null) {
+ schema.properties[item] = defsParser.$refs.get(schema.properties[item].$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-AuthorizationAPI-performAccessControl-403-schema-data').val(JSON.stringify(schema));
+ var result = $('#responses-AuthorizationAPI-performAccessControl-schema-403');
+ result.empty();
+ result.append(view.render());
+ });
+ </script>
+ </div>
+ <input id='responses-AuthorizationAPI-performAccessControl-403-schema-data' type='hidden' value=''></input>
+ </div>
+ </div>
</article>
</div>
<hr>
@@ -9376,12 +9043,12 @@ $(document).ready(function() {
<article id="api-Configuration-getConfiguration-0" data-group="User" data-name="getConfiguration" data-version="0">
<div class="pull-left">
<h1>getConfiguration</h1>
- <p>Returns the contents of the application configuration file</p>
+ <p></p>
</div>
<div class="pull-right"></div>
<div class="clearfix"></div>
<p></p>
- <p class="marked"></p>
+ <p class="marked">Returns the contents of the application configuration file</p>
<p></p>
<br />
<pre class="prettyprint language-html prettyprinted" data-type="get"><code><span class="pln">/a1-policy/v2/configuration</span></code></pre>
@@ -9406,7 +9073,7 @@ $(document).ready(function() {
<div class="tab-content">
<div class="tab-pane active" id="examples-Configuration-getConfiguration-0-curl">
<pre class="prettyprint"><code class="language-bsh">curl -X GET \
- -H "Accept: application/json" \
+ -H "Accept: application/json,application/problem+json" \
"http://localhost/a1-policy/v2/configuration"
</code></pre>
</div>
@@ -9464,7 +9131,6 @@ public class ConfigurationApiExample {
// Create an instance of the API class
ConfigurationApi *apiInstance = [[ConfigurationApi alloc] init];
-// Returns the contents of the application configuration file
[apiInstance getConfigurationWithCompletionHandler:
^('String' output, NSError* error) {
if (output) {
@@ -9514,7 +9180,6 @@ namespace Example
var apiInstance = new ConfigurationApi();
try {
- // Returns the contents of the application configuration file
'String' result = apiInstance.getConfiguration();
Debug.WriteLine(result);
} catch (Exception e) {
@@ -9570,7 +9235,6 @@ from pprint import pprint
api_instance = openapi_client.ConfigurationApi()
try:
- # Returns the contents of the application configuration file
api_response = api_instance.get_configuration()
pprint(api_response)
except ApiException as e:
@@ -9607,7 +9271,7 @@ pub fn main() {
<h3 id="examples-Configuration-getConfiguration-title-200"></h3>
<p id="examples-Configuration-getConfiguration-description-200" class="marked"></p>
<script>
- var responseConfiguration200_description = `Configuration`;
+ var responseConfiguration200_description = `OK - Configuration`;
var responseConfiguration200_description_break = responseConfiguration200_description.indexOf('\n');
if (responseConfiguration200_description_break == -1) {
$("#examples-Configuration-getConfiguration-title-200").text("Status: 200 - " + responseConfiguration200_description);
@@ -9669,7 +9333,7 @@ pub fn main() {
<h3 id="examples-Configuration-getConfiguration-title-404"></h3>
<p id="examples-Configuration-getConfiguration-description-404" class="marked"></p>
<script>
- var responseConfiguration404_description = `File is not found or readable`;
+ var responseConfiguration404_description = `Not Found`;
var responseConfiguration404_description_break = responseConfiguration404_description.indexOf('\n');
if (responseConfiguration404_description_break == -1) {
$("#examples-Configuration-getConfiguration-title-404").text("Status: 404 - " + responseConfiguration404_description);
@@ -9681,52 +9345,12 @@ pub fn main() {
<ul id="responses-detail-Configuration-getConfiguration-404" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-Configuration-getConfiguration-404-schema">Schema</a>
- </li>
-
-
</ul>
<div class="tab-content" id="responses-Configuration-getConfiguration-404-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-Configuration-getConfiguration-404-schema">
- <div id="responses-Configuration-getConfiguration-schema-404" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = ;
- var schema = findNode('schema',schemaWrapper).schema;
- if (!schema) {
- schema = schemaWrapper.schema;
- }
- if (schema.$ref != null) {
- schema = defsParser.$refs.get(schema.$ref);
- Object.keys(schema.properties).forEach( (item) => {
- if (schema.properties[item].$ref != null) {
- schema.properties[item] = defsParser.$refs.get(schema.properties[item].$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-Configuration-getConfiguration-404-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-Configuration-getConfiguration-schema-404');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-Configuration-getConfiguration-404-schema-data' type='hidden' value=''></input>
- </div>
</div>
</article>
</div>
@@ -9735,12 +9359,12 @@ pub fn main() {
<article id="api-Configuration-putConfiguration-0" data-group="User" data-name="putConfiguration" data-version="0">
<div class="pull-left">
<h1>putConfiguration</h1>
- <p>Replace the current configuration file with the given configuration</p>
+ <p></p>
</div>
<div class="pull-right"></div>
<div class="clearfix"></div>
<p></p>
- <p class="marked"></p>
+ <p class="marked">Replace the current configuration with the given configuration</p>
<p></p>
<br />
<pre class="prettyprint language-html prettyprinted" data-type="put"><code><span class="pln">/a1-policy/v2/configuration</span></code></pre>
@@ -9765,7 +9389,7 @@ pub fn main() {
<div class="tab-content">
<div class="tab-pane active" id="examples-Configuration-putConfiguration-0-curl">
<pre class="prettyprint"><code class="language-bsh">curl -X PUT \
- -H "Accept: */*" \
+ -H "Accept: */*,application/problem+json" \
-H "Content-Type: application/json" \
"http://localhost/a1-policy/v2/configuration" \
-d ''
@@ -9828,7 +9452,6 @@ public class ConfigurationApiExample {
ConfigurationApi *apiInstance = [[ConfigurationApi alloc] init];
Object *body = Object; //
-// Replace the current configuration file with the given configuration
[apiInstance putConfigurationWith:body
completionHandler: ^(Object output, NSError* error) {
if (output) {
@@ -9881,7 +9504,6 @@ namespace Example
var body = Object; // Object |
try {
- // Replace the current configuration file with the given configuration
Object result = apiInstance.putConfiguration(body);
Debug.WriteLine(result);
} catch (Exception e) {
@@ -9940,7 +9562,6 @@ api_instance = openapi_client.ConfigurationApi()
body = Object # Object |
try:
- # Replace the current configuration file with the given configuration
api_response = api_instance.put_configuration(body)
pprint(api_response)
except ApiException as e:
@@ -9982,15 +9603,15 @@ pub fn main() {
<p class="marked"></p>
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "content" : {
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- }
- },
- "required" : true
+ var schemaWrapper = {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ },
+ "required" : true
};
var schema = findNode('schema',schemaWrapper).schema;
@@ -10024,7 +9645,7 @@ $(document).ready(function() {
<h3 id="examples-Configuration-putConfiguration-title-200"></h3>
<p id="examples-Configuration-putConfiguration-description-200" class="marked"></p>
<script>
- var responseConfiguration200_description = `Configuration updated`;
+ var responseConfiguration200_description = `OK - Configuration updated`;
var responseConfiguration200_description_break = responseConfiguration200_description.indexOf('\n');
if (responseConfiguration200_description_break == -1) {
$("#examples-Configuration-putConfiguration-title-200").text("Status: 200 - " + responseConfiguration200_description);
@@ -10086,7 +9707,7 @@ $(document).ready(function() {
<h3 id="examples-Configuration-putConfiguration-title-400"></h3>
<p id="examples-Configuration-putConfiguration-description-400" class="marked"></p>
<script>
- var responseConfiguration400_description = `Invalid configuration provided`;
+ var responseConfiguration400_description = `Bad Request`;
var responseConfiguration400_description_break = responseConfiguration400_description.indexOf('\n');
if (responseConfiguration400_description_break == -1) {
$("#examples-Configuration-putConfiguration-title-400").text("Status: 400 - " + responseConfiguration400_description);
@@ -10145,68 +9766,6 @@ $(document).ready(function() {
<input id='responses-Configuration-putConfiguration-400-schema-data' type='hidden' value=''></input>
</div>
</div>
- <h3 id="examples-Configuration-putConfiguration-title-500"></h3>
- <p id="examples-Configuration-putConfiguration-description-500" class="marked"></p>
- <script>
- var responseConfiguration500_description = `Something went wrong when replacing the configuration. Try again.`;
- var responseConfiguration500_description_break = responseConfiguration500_description.indexOf('\n');
- if (responseConfiguration500_description_break == -1) {
- $("#examples-Configuration-putConfiguration-title-500").text("Status: 500 - " + responseConfiguration500_description);
- } else {
- $("#examples-Configuration-putConfiguration-title-500").text("Status: 500 - " + responseConfiguration500_description.substring(0, responseConfiguration500_description_break));
- $("#examples-Configuration-putConfiguration-description-500").html(responseConfiguration500_description.substring(responseConfiguration500_description_break));
- }
- </script>
-
-
- <ul id="responses-detail-Configuration-putConfiguration-500" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-Configuration-putConfiguration-500-schema">Schema</a>
- </li>
-
-
-
-
- </ul>
-
-
- <div class="tab-content" id="responses-Configuration-putConfiguration-500-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-Configuration-putConfiguration-500-schema">
- <div id="responses-Configuration-putConfiguration-schema-500" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = ;
- var schema = findNode('schema',schemaWrapper).schema;
- if (!schema) {
- schema = schemaWrapper.schema;
- }
- if (schema.$ref != null) {
- schema = defsParser.$refs.get(schema.$ref);
- Object.keys(schema.properties).forEach( (item) => {
- if (schema.properties[item].$ref != null) {
- schema.properties[item] = defsParser.$refs.get(schema.properties[item].$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-Configuration-putConfiguration-500-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-Configuration-putConfiguration-schema-500');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-Configuration-putConfiguration-500-schema-data' type='hidden' value=''></input>
- </div>
- </div>
</article>
</div>
<hr>
@@ -10217,12 +9776,12 @@ $(document).ready(function() {
<article id="api-HealthCheck-getStatus-0" data-group="User" data-name="getStatus" data-version="0">
<div class="pull-left">
<h1>getStatus</h1>
- <p>Returns status and statistics of this service</p>
+ <p></p>
</div>
<div class="pull-right"></div>
<div class="clearfix"></div>
<p></p>
- <p class="marked"></p>
+ <p class="marked">Returns status and statistics of this service</p>
<p></p>
<br />
<pre class="prettyprint language-html prettyprinted" data-type="get"><code><span class="pln">/a1-policy/v2/status</span></code></pre>
@@ -10305,7 +9864,6 @@ public class HealthCheckApiExample {
// Create an instance of the API class
HealthCheckApi *apiInstance = [[HealthCheckApi alloc] init];
-// Returns status and statistics of this service
[apiInstance getStatusWithCompletionHandler:
^(status_info output, NSError* error) {
if (output) {
@@ -10355,7 +9913,6 @@ namespace Example
var apiInstance = new HealthCheckApi();
try {
- // Returns status and statistics of this service
status_info result = apiInstance.getStatus();
Debug.WriteLine(result);
} catch (Exception e) {
@@ -10411,7 +9968,6 @@ from pprint import pprint
api_instance = openapi_client.HealthCheckApi()
try:
- # Returns status and statistics of this service
api_response = api_instance.get_status()
pprint(api_response)
except ApiException as e:
@@ -10448,7 +10004,7 @@ pub fn main() {
<h3 id="examples-HealthCheck-getStatus-title-200"></h3>
<p id="examples-HealthCheck-getStatus-description-200" class="marked"></p>
<script>
- var responseHealthCheck200_description = `Service is living`;
+ var responseHealthCheck200_description = `OK- Service is living Ok`;
var responseHealthCheck200_description_break = responseHealthCheck200_description.indexOf('\n');
if (responseHealthCheck200_description_break == -1) {
$("#examples-HealthCheck-getStatus-title-200").text("Status: 200 - " + responseHealthCheck200_description);
@@ -10514,12 +10070,12 @@ pub fn main() {
<article id="api-HealthCheck-getStatusV1-0" data-group="User" data-name="getStatusV1" data-version="0">
<div class="pull-left">
<h1>getStatusV1</h1>
- <p>Returns status and statistics of this service</p>
+ <p></p>
</div>
<div class="pull-right"></div>
<div class="clearfix"></div>
<p></p>
- <p class="marked"></p>
+ <p class="marked">Returns status and statistics of this service</p>
<p></p>
<br />
<pre class="prettyprint language-html prettyprinted" data-type="get"><code><span class="pln">/status</span></code></pre>
@@ -10602,7 +10158,6 @@ public class HealthCheckApiExample {
// Create an instance of the API class
HealthCheckApi *apiInstance = [[HealthCheckApi alloc] init];
-// Returns status and statistics of this service
[apiInstance getStatusV1WithCompletionHandler:
^('String' output, NSError* error) {
if (output) {
@@ -10652,7 +10207,6 @@ namespace Example
var apiInstance = new HealthCheckApi();
try {
- // Returns status and statistics of this service
'String' result = apiInstance.getStatusV1();
Debug.WriteLine(result);
} catch (Exception e) {
@@ -10708,7 +10262,6 @@ from pprint import pprint
api_instance = openapi_client.HealthCheckApi()
try:
- # Returns status and statistics of this service
api_response = api_instance.get_status_v1()
pprint(api_response)
except ApiException as e:
@@ -10745,7 +10298,7 @@ pub fn main() {
<h3 id="examples-HealthCheck-getStatusV1-title-200"></h3>
<p id="examples-HealthCheck-getStatusV1-description-200" class="marked"></p>
<script>
- var responseHealthCheck200_description = `Service is living`;
+ var responseHealthCheck200_description = `OK - Service is living`;
var responseHealthCheck200_description_break = responseHealthCheck200_description.indexOf('\n');
if (responseHealthCheck200_description_break == -1) {
$("#examples-HealthCheck-getStatusV1-title-200").text("Status: 200 - " + responseHealthCheck200_description);
@@ -10814,7 +10367,7 @@ pub fn main() {
<article id="api-NearRTRICRepository-getRic-0" data-group="User" data-name="getRic" data-version="0">
<div class="pull-left">
<h1>getRic</h1>
- <p>Returns info for one Near-RT RIC</p>
+ <p>Returns info of Near-RT RIC queried by the ric-id and managed-element-id</p>
</div>
<div class="pull-right"></div>
<div class="clearfix"></div>
@@ -10844,7 +10397,7 @@ pub fn main() {
<div class="tab-content">
<div class="tab-pane active" id="examples-NearRTRICRepository-getRic-0-curl">
<pre class="prettyprint"><code class="language-bsh">curl -X GET \
- -H "Accept: application/json" \
+ -H "Accept: application/json,application/problem+json" \
"http://localhost/a1-policy/v2/rics/ric?managed_element_id=managedElementId_example&ric_id=ricId_example"
</code></pre>
</div>
@@ -10908,7 +10461,7 @@ NearRTRICRepositoryApi *apiInstance = [[NearRTRICRepositoryApi alloc] init];
String *managedElementId = managedElementId_example; // The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned. (optional) (default to null)
String *ricId = ricId_example; // The identity of a Near-RT RIC to get information for. (optional) (default to null)
-// Returns info for one Near-RT RIC
+// Returns info of Near-RT RIC queried by the ric-id and managed-element-id
[apiInstance getRicWith:managedElementId
ricId:ricId
completionHandler: ^(ric_info output, NSError* error) {
@@ -10966,7 +10519,7 @@ namespace Example
var ricId = ricId_example; // String | The identity of a Near-RT RIC to get information for. (optional) (default to null)
try {
- // Returns info for one Near-RT RIC
+ // Returns info of Near-RT RIC queried by the ric-id and managed-element-id
ric_info result = apiInstance.getRic(managedElementId, ricId);
Debug.WriteLine(result);
} catch (Exception e) {
@@ -11028,7 +10581,7 @@ managedElementId = managedElementId_example # String | The identity of a Managed
ricId = ricId_example # String | The identity of a Near-RT RIC to get information for. (optional) (default to null)
try:
- # Returns info for one Near-RT RIC
+ # Returns info of Near-RT RIC queried by the ric-id and managed-element-id
api_response = api_instance.get_ric(managedElementId=managedElementId, ricId=ricId)
pprint(api_response)
except ApiException as e:
@@ -11114,7 +10667,7 @@ The identity of a Near-RT RIC to get information for.
<h3 id="examples-NearRTRICRepository-getRic-title-200"></h3>
<p id="examples-NearRTRICRepository-getRic-description-200" class="marked"></p>
<script>
- var responseNearRTRICRepository200_description = `Near-RT RIC is found`;
+ var responseNearRTRICRepository200_description = `OK - Near-RT RIC is found`;
var responseNearRTRICRepository200_description_break = responseNearRTRICRepository200_description.indexOf('\n');
if (responseNearRTRICRepository200_description_break == -1) {
$("#examples-NearRTRICRepository-getRic-title-200").text("Status: 200 - " + responseNearRTRICRepository200_description);
@@ -11176,7 +10729,7 @@ The identity of a Near-RT RIC to get information for.
<h3 id="examples-NearRTRICRepository-getRic-title-404"></h3>
<p id="examples-NearRTRICRepository-getRic-description-404" class="marked"></p>
<script>
- var responseNearRTRICRepository404_description = `Near-RT RIC is not found`;
+ var responseNearRTRICRepository404_description = `Not Found`;
var responseNearRTRICRepository404_description_break = responseNearRTRICRepository404_description.indexOf('\n');
if (responseNearRTRICRepository404_description_break == -1) {
$("#examples-NearRTRICRepository-getRic-title-404").text("Status: 404 - " + responseNearRTRICRepository404_description);
@@ -11188,52 +10741,12 @@ The identity of a Near-RT RIC to get information for.
<ul id="responses-detail-NearRTRICRepository-getRic-404" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-NearRTRICRepository-getRic-404-schema">Schema</a>
- </li>
-
-
</ul>
<div class="tab-content" id="responses-NearRTRICRepository-getRic-404-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-NearRTRICRepository-getRic-404-schema">
- <div id="responses-NearRTRICRepository-getRic-schema-404" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = ;
- var schema = findNode('schema',schemaWrapper).schema;
- if (!schema) {
- schema = schemaWrapper.schema;
- }
- if (schema.$ref != null) {
- schema = defsParser.$refs.get(schema.$ref);
- Object.keys(schema.properties).forEach( (item) => {
- if (schema.properties[item].$ref != null) {
- schema.properties[item] = defsParser.$refs.get(schema.properties[item].$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-NearRTRICRepository-getRic-404-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-NearRTRICRepository-getRic-schema-404');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-NearRTRICRepository-getRic-404-schema-data' type='hidden' value=''></input>
- </div>
</div>
</article>
</div>
@@ -11272,7 +10785,7 @@ The identity of a Near-RT RIC to get information for.
<div class="tab-content">
<div class="tab-pane active" id="examples-NearRTRICRepository-getRics-0-curl">
<pre class="prettyprint"><code class="language-bsh">curl -X GET \
- -H "Accept: application/json" \
+ -H "Accept: application/json,application/problem+json" \
"http://localhost/a1-policy/v2/rics?policytype_id=policytypeId_example"
</code></pre>
</div>
@@ -11574,7 +11087,7 @@ The identity of a policy type. If given, all Near-RT RICs supporting the policy
<h3 id="examples-NearRTRICRepository-getRics-title-404"></h3>
<p id="examples-NearRTRICRepository-getRics-description-404" class="marked"></p>
<script>
- var responseNearRTRICRepository404_description = `Policy type is not found`;
+ var responseNearRTRICRepository404_description = `Not Found`;
var responseNearRTRICRepository404_description_break = responseNearRTRICRepository404_description.indexOf('\n');
if (responseNearRTRICRepository404_description_break == -1) {
$("#examples-NearRTRICRepository-getRics-title-404").text("Status: 404 - " + responseNearRTRICRepository404_description);
@@ -11586,52 +11099,12 @@ The identity of a policy type. If given, all Near-RT RICs supporting the policy
<ul id="responses-detail-NearRTRICRepository-getRics-404" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-NearRTRICRepository-getRics-404-schema">Schema</a>
- </li>
-
-
</ul>
<div class="tab-content" id="responses-NearRTRICRepository-getRics-404-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-NearRTRICRepository-getRics-404-schema">
- <div id="responses-NearRTRICRepository-getRics-schema-404" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = ;
- var schema = findNode('schema',schemaWrapper).schema;
- if (!schema) {
- schema = schemaWrapper.schema;
- }
- if (schema.$ref != null) {
- schema = defsParser.$refs.get(schema.$ref);
- Object.keys(schema.properties).forEach( (item) => {
- if (schema.properties[item].$ref != null) {
- schema.properties[item] = defsParser.$refs.get(schema.properties[item].$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-NearRTRICRepository-getRics-404-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-NearRTRICRepository-getRics-schema-404');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-NearRTRICRepository-getRics-404-schema-data' type='hidden' value=''></input>
- </div>
</div>
</article>
</div>
@@ -11643,12 +11116,12 @@ The identity of a policy type. If given, all Near-RT RICs supporting the policy
<article id="api-ServiceRegistryAndSupervision-deleteService-0" data-group="User" data-name="deleteService" data-version="0">
<div class="pull-left">
<h1>deleteService</h1>
- <p>Unregister a service</p>
+ <p></p>
</div>
<div class="pull-right"></div>
<div class="clearfix"></div>
<p></p>
- <p class="marked"></p>
+ <p class="marked">Unregister a service</p>
<p></p>
<br />
<pre class="prettyprint language-html prettyprinted" data-type="delete"><code><span class="pln">/a1-policy/v2/services/{service_id}</span></code></pre>
@@ -11673,7 +11146,7 @@ The identity of a policy type. If given, all Near-RT RICs supporting the policy
<div class="tab-content">
<div class="tab-pane active" id="examples-ServiceRegistryAndSupervision-deleteService-0-curl">
<pre class="prettyprint"><code class="language-bsh">curl -X DELETE \
- -H "Accept: */*" \
+ -H "Accept: */*,application/problem+json" \
"http://localhost/a1-policy/v2/services/{service_id}"
</code></pre>
</div>
@@ -11734,7 +11207,6 @@ public class ServiceRegistryAndSupervisionApiExample {
ServiceRegistryAndSupervisionApi *apiInstance = [[ServiceRegistryAndSupervisionApi alloc] init];
String *serviceId = serviceId_example; // (default to null)
-// Unregister a service
[apiInstance deleteServiceWith:serviceId
completionHandler: ^(Object output, NSError* error) {
if (output) {
@@ -11787,7 +11259,6 @@ namespace Example
var serviceId = serviceId_example; // String | (default to null)
try {
- // Unregister a service
Object result = apiInstance.deleteService(serviceId);
Debug.WriteLine(result);
} catch (Exception e) {
@@ -11846,7 +11317,6 @@ api_instance = openapi_client.ServiceRegistryAndSupervisionApi()
serviceId = serviceId_example # String | (default to null)
try:
- # Unregister a service
api_response = api_instance.delete_service(serviceId)
pprint(api_response)
except ApiException as e:
@@ -11908,72 +11378,10 @@ pub fn main() {
<h2>Responses</h2>
- <h3 id="examples-ServiceRegistryAndSupervision-deleteService-title-200"></h3>
- <p id="examples-ServiceRegistryAndSupervision-deleteService-description-200" class="marked"></p>
- <script>
- var responseServiceRegistryAndSupervision200_description = `Not used`;
- var responseServiceRegistryAndSupervision200_description_break = responseServiceRegistryAndSupervision200_description.indexOf('\n');
- if (responseServiceRegistryAndSupervision200_description_break == -1) {
- $("#examples-ServiceRegistryAndSupervision-deleteService-title-200").text("Status: 200 - " + responseServiceRegistryAndSupervision200_description);
- } else {
- $("#examples-ServiceRegistryAndSupervision-deleteService-title-200").text("Status: 200 - " + responseServiceRegistryAndSupervision200_description.substring(0, responseServiceRegistryAndSupervision200_description_break));
- $("#examples-ServiceRegistryAndSupervision-deleteService-description-200").html(responseServiceRegistryAndSupervision200_description.substring(responseServiceRegistryAndSupervision200_description_break));
- }
- </script>
-
-
- <ul id="responses-detail-ServiceRegistryAndSupervision-deleteService-200" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-ServiceRegistryAndSupervision-deleteService-200-schema">Schema</a>
- </li>
-
-
-
-
- </ul>
-
-
- <div class="tab-content" id="responses-ServiceRegistryAndSupervision-deleteService-200-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-ServiceRegistryAndSupervision-deleteService-200-schema">
- <div id="responses-ServiceRegistryAndSupervision-deleteService-schema-200" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = ;
- var schema = findNode('schema',schemaWrapper).schema;
- if (!schema) {
- schema = schemaWrapper.schema;
- }
- if (schema.$ref != null) {
- schema = defsParser.$refs.get(schema.$ref);
- Object.keys(schema.properties).forEach( (item) => {
- if (schema.properties[item].$ref != null) {
- schema.properties[item] = defsParser.$refs.get(schema.properties[item].$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-ServiceRegistryAndSupervision-deleteService-200-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-ServiceRegistryAndSupervision-deleteService-schema-200');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-ServiceRegistryAndSupervision-deleteService-200-schema-data' type='hidden' value=''></input>
- </div>
- </div>
<h3 id="examples-ServiceRegistryAndSupervision-deleteService-title-204"></h3>
<p id="examples-ServiceRegistryAndSupervision-deleteService-description-204" class="marked"></p>
<script>
- var responseServiceRegistryAndSupervision204_description = `Service unregistered`;
+ var responseServiceRegistryAndSupervision204_description = `No Content - Service unregistered`;
var responseServiceRegistryAndSupervision204_description_break = responseServiceRegistryAndSupervision204_description.indexOf('\n');
if (responseServiceRegistryAndSupervision204_description_break == -1) {
$("#examples-ServiceRegistryAndSupervision-deleteService-title-204").text("Status: 204 - " + responseServiceRegistryAndSupervision204_description);
@@ -12035,7 +11443,7 @@ pub fn main() {
<h3 id="examples-ServiceRegistryAndSupervision-deleteService-title-404"></h3>
<p id="examples-ServiceRegistryAndSupervision-deleteService-description-404" class="marked"></p>
<script>
- var responseServiceRegistryAndSupervision404_description = `Service not found`;
+ var responseServiceRegistryAndSupervision404_description = `Not Found`;
var responseServiceRegistryAndSupervision404_description_break = responseServiceRegistryAndSupervision404_description.indexOf('\n');
if (responseServiceRegistryAndSupervision404_description_break == -1) {
$("#examples-ServiceRegistryAndSupervision-deleteService-title-404").text("Status: 404 - " + responseServiceRegistryAndSupervision404_description);
@@ -12047,52 +11455,12 @@ pub fn main() {
<ul id="responses-detail-ServiceRegistryAndSupervision-deleteService-404" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-ServiceRegistryAndSupervision-deleteService-404-schema">Schema</a>
- </li>
-
-
</ul>
<div class="tab-content" id="responses-ServiceRegistryAndSupervision-deleteService-404-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-ServiceRegistryAndSupervision-deleteService-404-schema">
- <div id="responses-ServiceRegistryAndSupervision-deleteService-schema-404" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = ;
- var schema = findNode('schema',schemaWrapper).schema;
- if (!schema) {
- schema = schemaWrapper.schema;
- }
- if (schema.$ref != null) {
- schema = defsParser.$refs.get(schema.$ref);
- Object.keys(schema.properties).forEach( (item) => {
- if (schema.properties[item].$ref != null) {
- schema.properties[item] = defsParser.$refs.get(schema.properties[item].$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-ServiceRegistryAndSupervision-deleteService-404-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-ServiceRegistryAndSupervision-deleteService-schema-404');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-ServiceRegistryAndSupervision-deleteService-404-schema-data' type='hidden' value=''></input>
- </div>
</div>
</article>
</div>
@@ -12131,7 +11499,7 @@ pub fn main() {
<div class="tab-content">
<div class="tab-pane active" id="examples-ServiceRegistryAndSupervision-getServices-0-curl">
<pre class="prettyprint"><code class="language-bsh">curl -X GET \
- -H "Accept: application/json" \
+ -H "Accept: application/json,application/problem+json" \
"http://localhost/a1-policy/v2/services?service_id=serviceId_example"
</code></pre>
</div>
@@ -12433,7 +11801,7 @@ The identity of the service
<h3 id="examples-ServiceRegistryAndSupervision-getServices-title-404"></h3>
<p id="examples-ServiceRegistryAndSupervision-getServices-description-404" class="marked"></p>
<script>
- var responseServiceRegistryAndSupervision404_description = `Service is not found`;
+ var responseServiceRegistryAndSupervision404_description = `Not Found`;
var responseServiceRegistryAndSupervision404_description_break = responseServiceRegistryAndSupervision404_description.indexOf('\n');
if (responseServiceRegistryAndSupervision404_description_break == -1) {
$("#examples-ServiceRegistryAndSupervision-getServices-title-404").text("Status: 404 - " + responseServiceRegistryAndSupervision404_description);
@@ -12445,52 +11813,12 @@ The identity of the service
<ul id="responses-detail-ServiceRegistryAndSupervision-getServices-404" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-ServiceRegistryAndSupervision-getServices-404-schema">Schema</a>
- </li>
-
-
</ul>
<div class="tab-content" id="responses-ServiceRegistryAndSupervision-getServices-404-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-ServiceRegistryAndSupervision-getServices-404-schema">
- <div id="responses-ServiceRegistryAndSupervision-getServices-schema-404" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = ;
- var schema = findNode('schema',schemaWrapper).schema;
- if (!schema) {
- schema = schemaWrapper.schema;
- }
- if (schema.$ref != null) {
- schema = defsParser.$refs.get(schema.$ref);
- Object.keys(schema.properties).forEach( (item) => {
- if (schema.properties[item].$ref != null) {
- schema.properties[item] = defsParser.$refs.get(schema.properties[item].$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-ServiceRegistryAndSupervision-getServices-404-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-ServiceRegistryAndSupervision-getServices-schema-404');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-ServiceRegistryAndSupervision-getServices-404-schema-data' type='hidden' value=''></input>
- </div>
</div>
</article>
</div>
@@ -12529,7 +11857,7 @@ The identity of the service
<div class="tab-content">
<div class="tab-pane active" id="examples-ServiceRegistryAndSupervision-keepAliveService-0-curl">
<pre class="prettyprint"><code class="language-bsh">curl -X PUT \
- -H "Accept: */*" \
+ -H "Accept: */*,application/problem+json" \
"http://localhost/a1-policy/v2/services/{service_id}/keepalive"
</code></pre>
</div>
@@ -12767,7 +12095,7 @@ pub fn main() {
<h3 id="examples-ServiceRegistryAndSupervision-keepAliveService-title-200"></h3>
<p id="examples-ServiceRegistryAndSupervision-keepAliveService-description-200" class="marked"></p>
<script>
- var responseServiceRegistryAndSupervision200_description = `Service supervision timer refreshed, OK`;
+ var responseServiceRegistryAndSupervision200_description = `OK - Service supervision timer refreshed, OK`;
var responseServiceRegistryAndSupervision200_description_break = responseServiceRegistryAndSupervision200_description.indexOf('\n');
if (responseServiceRegistryAndSupervision200_description_break == -1) {
$("#examples-ServiceRegistryAndSupervision-keepAliveService-title-200").text("Status: 200 - " + responseServiceRegistryAndSupervision200_description);
@@ -12829,7 +12157,7 @@ pub fn main() {
<h3 id="examples-ServiceRegistryAndSupervision-keepAliveService-title-404"></h3>
<p id="examples-ServiceRegistryAndSupervision-keepAliveService-description-404" class="marked"></p>
<script>
- var responseServiceRegistryAndSupervision404_description = `The service is not found, needs re-registration`;
+ var responseServiceRegistryAndSupervision404_description = `Not Found`;
var responseServiceRegistryAndSupervision404_description_break = responseServiceRegistryAndSupervision404_description.indexOf('\n');
if (responseServiceRegistryAndSupervision404_description_break == -1) {
$("#examples-ServiceRegistryAndSupervision-keepAliveService-title-404").text("Status: 404 - " + responseServiceRegistryAndSupervision404_description);
@@ -12841,52 +12169,12 @@ pub fn main() {
<ul id="responses-detail-ServiceRegistryAndSupervision-keepAliveService-404" class="nav nav-tabs nav-tabs-examples" >
- <li class="active">
- <a data-toggle="tab" href="#responses-ServiceRegistryAndSupervision-keepAliveService-404-schema">Schema</a>
- </li>
-
-
</ul>
<div class="tab-content" id="responses-ServiceRegistryAndSupervision-keepAliveService-404-wrapper" style='margin-bottom: 10px;'>
- <div class="tab-pane active" id="responses-ServiceRegistryAndSupervision-keepAliveService-404-schema">
- <div id="responses-ServiceRegistryAndSupervision-keepAliveService-schema-404" class="exampleStyle">
- <script>
- $(document).ready(function() {
- var schemaWrapper = ;
- var schema = findNode('schema',schemaWrapper).schema;
- if (!schema) {
- schema = schemaWrapper.schema;
- }
- if (schema.$ref != null) {
- schema = defsParser.$refs.get(schema.$ref);
- Object.keys(schema.properties).forEach( (item) => {
- if (schema.properties[item].$ref != null) {
- schema.properties[item] = defsParser.$refs.get(schema.properties[item].$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-ServiceRegistryAndSupervision-keepAliveService-404-schema-data').val(JSON.stringify(schema));
- var result = $('#responses-ServiceRegistryAndSupervision-keepAliveService-schema-404');
- result.empty();
- result.append(view.render());
- });
- </script>
- </div>
- <input id='responses-ServiceRegistryAndSupervision-keepAliveService-404-schema-data' type='hidden' value=''></input>
- </div>
</div>
</article>
</div>
@@ -12925,7 +12213,7 @@ pub fn main() {
<div class="tab-content">
<div class="tab-pane active" id="examples-ServiceRegistryAndSupervision-putService-0-curl">
<pre class="prettyprint"><code class="language-bsh">curl -X PUT \
- -H "Accept: */*" \
+ -H "Accept: */*,application/problem+json" \
-H "Content-Type: application/json" \
"http://localhost/a1-policy/v2/services" \
-d ''
@@ -13142,15 +12430,15 @@ pub fn main() {
<p class="marked"></p>
<script>
$(document).ready(function() {
- var schemaWrapper = {
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/service_registration_info"
- }
- }
- },
- "required" : true
+ var schemaWrapper = {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/service_registration_info"
+ }
+ }
+ },
+ "required" : true
};
var schema = findNode('schema',schemaWrapper).schema;
@@ -13184,7 +12472,7 @@ $(document).ready(function() {
<h3 id="examples-ServiceRegistryAndSupervision-putService-title-200"></h3>
<p id="examples-ServiceRegistryAndSupervision-putService-description-200" class="marked"></p>
<script>
- var responseServiceRegistryAndSupervision200_description = `Service updated`;
+ var responseServiceRegistryAndSupervision200_description = `OK - Service updated`;
var responseServiceRegistryAndSupervision200_description_break = responseServiceRegistryAndSupervision200_description.indexOf('\n');
if (responseServiceRegistryAndSupervision200_description_break == -1) {
$("#examples-ServiceRegistryAndSupervision-putService-title-200").text("Status: 200 - " + responseServiceRegistryAndSupervision200_description);
@@ -13246,7 +12534,7 @@ $(document).ready(function() {
<h3 id="examples-ServiceRegistryAndSupervision-putService-title-201"></h3>
<p id="examples-ServiceRegistryAndSupervision-putService-description-201" class="marked"></p>
<script>
- var responseServiceRegistryAndSupervision201_description = `Service created`;
+ var responseServiceRegistryAndSupervision201_description = `Created - Service created`;
var responseServiceRegistryAndSupervision201_description_break = responseServiceRegistryAndSupervision201_description.indexOf('\n');
if (responseServiceRegistryAndSupervision201_description_break == -1) {
$("#examples-ServiceRegistryAndSupervision-putService-title-201").text("Status: 201 - " + responseServiceRegistryAndSupervision201_description);
@@ -13308,7 +12596,7 @@ $(document).ready(function() {
<h3 id="examples-ServiceRegistryAndSupervision-putService-title-400"></h3>
<p id="examples-ServiceRegistryAndSupervision-putService-description-400" class="marked"></p>
<script>
- var responseServiceRegistryAndSupervision400_description = `The ServiceRegistrationInfo is not accepted`;
+ var responseServiceRegistryAndSupervision400_description = `Bad Request`;
var responseServiceRegistryAndSupervision400_description_break = responseServiceRegistryAndSupervision400_description.indexOf('\n');
if (responseServiceRegistryAndSupervision400_description_break == -1) {
$("#examples-ServiceRegistryAndSupervision-putService-title-400").text("Status: 400 - " + responseServiceRegistryAndSupervision400_description);
@@ -13375,10 +12663,10 @@ $(document).ready(function() {
<div id="footer">
<div id="api-_footer">
<p>Suggestions, contact, support and error reporting;
- <div class="app-desc">Information URL: <a href="https://wiki.onap.org/display/DW/O-RAN+A1+Policies+in+ONAP">https://wiki.onap.org/display/DW/O-RAN+A1+Policies+in+ONAP</a></div>
- <div class="app-desc">Contact Info: <a href="team@openapitools.org">team@openapitools.org</a></div>
+ <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, and Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved.</div>
+ <div class="license-info">Copyright (C) 2020-2023 Nordix Foundation. Licensed under the Apache License.</div>
<div class="license-url">http://www.apache.org/licenses/LICENSE-2.0</div>
</div>
</div>
diff --git a/docs/offeredapis/swagger/pms-api.json b/docs/offeredapis/swagger/pms-api.json
index d6d212f0..5dd8b493 100644
--- a/docs/offeredapis/swagger/pms-api.json
+++ b/docs/offeredapis/swagger/pms-api.json
@@ -1,1791 +1,1866 @@
-{
- "openapi" : "3.0.3",
- "info" : {
- "title" : "A1 Policy Management Service",
- "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>",
- "license" : {
- "name" : "Copyright (C) 2020-2023 Nordix Foundation. Licensed under the Apache License, and Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved.",
- "url" : "http://www.apache.org/licenses/LICENSE-2.0"
- },
- "version" : "1.2.0"
- },
- "servers" : [ {
- "url" : "/"
- } ],
- "tags" : [ {
- "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."
- }, {
- "name" : "Actuator",
- "description" : "Monitor and interact",
- "externalDocs" : {
- "description" : "Spring Boot Actuator Web API Documentation",
- "url" : "https://docs.spring.io/spring-boot/docs/current/actuator-api/html/"
- }
- } ],
- "paths" : {
- "/a1-policy/v2/policy-instances" : {
- "get" : {
- "tags" : [ "A1 Policy Management" ],
- "summary" : "Query for A1 policy instances",
- "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" : "getPolicyInstances",
- "parameters" : [ {
- "name" : "policytype_id",
- "in" : "query",
- "description" : "Select policies with a given type identity.",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- }, {
- "name" : "ric_id",
- "in" : "query",
- "description" : "Select policies for a given Near-RT RIC identity.",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- }, {
- "name" : "service_id",
- "in" : "query",
- "description" : "Select policies owned by a given service.",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- }, {
- "name" : "type_name",
- "in" : "query",
- "description" : "Select policies of a given type name (type identity has the format <typename_version>)",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "Policies",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_info_list"
- },
- "examples" : {
- "policy_info_list" : {
- "$ref" : "#/components/examples/policy_info_list"
- }
- }
- }
- }
- },
- "404" : {
- "description" : "Near-RT RIC, policy type or service not found",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
- }
- }
- }
- },
- "/example-authz-check" : {
- "post" : {
- "tags" : [ "Authorization API" ],
- "summary" : "Request for access authorization.",
- "description" : "The authorization function decides if access is granted.",
- "operationId" : "performAccessControl",
- "requestBody" : {
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_authorization"
- }
- }
- },
- "required" : true
- },
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/authorization_result"
- }
- }
- }
- }
- }
- }
- },
- "/actuator/threaddump" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'threaddump'",
- "operationId" : "threaddump",
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "text/plain;charset=UTF-8" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- }
- }
- },
- "/a1-policy/v2/status" : {
- "get" : {
- "tags" : [ "Health Check" ],
- "summary" : "Returns status and statistics of this service",
- "operationId" : "getStatus",
- "responses" : {
- "200" : {
- "description" : "Service is living",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/status_info"
- },
- "examples" : {
- "status_info" : {
- "$ref" : "#/components/examples/status_info"
- }
- }
- }
- }
- }
- }
- }
- },
- "/actuator/loggers" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'loggers'",
- "operationId" : "loggers",
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- }
- }
- },
- "/actuator/health/**" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'health-path'",
- "operationId" : "health-path",
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- }
- }
- },
- "/a1-policy/v2/rics/ric" : {
- "get" : {
- "tags" : [ "NearRT-RIC Repository" ],
- "summary" : "Returns info for one Near-RT RIC",
- "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" : [ {
- "name" : "managed_element_id",
- "in" : "query",
- "description" : "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- }, {
- "name" : "ric_id",
- "in" : "query",
- "description" : "The identity of a Near-RT RIC to get information for.",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "Near-RT RIC is found",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/ric_info"
- },
- "examples" : {
- "ric_info" : {
- "$ref" : "#/components/examples/ric_info"
- }
- }
- }
- }
- },
- "404" : {
- "description" : "Near-RT RIC is not found",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
- }
- }
- }
- },
- "/actuator/shutdown" : {
- "post" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'shutdown'",
- "operationId" : "shutdown",
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- }
- }
- },
- "/a1-policy/v2/policy-types" : {
- "get" : {
- "tags" : [ "A1 Policy Management" ],
- "summary" : "Query policy type identities",
- "operationId" : "getPolicyTypes",
- "parameters" : [ {
- "name" : "ric_id",
- "in" : "query",
- "description" : "Select types for the given Near-RT RIC identity.",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- }, {
- "name" : "type_name",
- "in" : "query",
- "description" : "Select types with the given type name (type identity has the format <typename_version>)",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- }, {
- "name" : "compatible_with_version",
- "in" : "query",
- "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.",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "Policy type IDs",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_type_id_list"
- },
- "examples" : {
- "policy_type_id_list" : {
- "$ref" : "#/components/examples/policy_type_id_list"
- }
- }
- }
- }
- },
- "404" : {
- "description" : "Near-RT RIC is not found",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
- }
- }
- }
- },
- "/a1-policy/v2/policies/{policy_id}" : {
- "get" : {
- "tags" : [ "A1 Policy Management" ],
- "summary" : "Returns a policy",
- "operationId" : "getPolicy",
- "parameters" : [ {
- "name" : "policy_id",
- "in" : "path",
- "required" : true,
- "style" : "simple",
- "explode" : false,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "Policy found",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_info"
- },
- "examples" : {
- "policy_info" : {
- "$ref" : "#/components/examples/policy_info"
- }
- }
- }
- }
- },
- "404" : {
- "description" : "Policy is not found",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
- }
- }
- },
- "delete" : {
- "tags" : [ "A1 Policy Management" ],
- "summary" : "Delete a policy",
- "operationId" : "deletePolicy",
- "parameters" : [ {
- "name" : "policy_id",
- "in" : "path",
- "required" : true,
- "style" : "simple",
- "explode" : false,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "Not used",
- "content" : {
- "*/*" : {
- "schema" : {
- "$ref" : "#/components/schemas/void"
- }
- }
- }
- },
- "423" : {
- "description" : "Near-RT RIC is not operational",
- "content" : {
- "*/*" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
- },
- "204" : {
- "description" : "Policy deleted",
- "content" : {
- "*/*" : {
- "schema" : {
- "$ref" : "#/components/schemas/void"
- }
- }
- }
- },
- "404" : {
- "description" : "Policy is not found",
- "content" : {
- "*/*" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
- }
- }
- }
- },
- "/actuator/metrics/{requiredMetricName}" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'metrics-requiredMetricName'",
- "operationId" : "metrics-requiredMetricName",
- "parameters" : [ {
- "name" : "requiredMetricName",
- "in" : "path",
- "required" : true,
- "style" : "simple",
- "explode" : false,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- }
- }
- },
- "/a1-policy/v2/configuration" : {
- "get" : {
- "tags" : [ "configuration" ],
- "summary" : "Returns the contents of the application configuration file",
- "operationId" : "getConfiguration",
- "responses" : {
- "200" : {
- "description" : "Configuration",
- "content" : {
- "application/json" : {
- "schema" : {
- "type" : "string"
- }
- }
- }
- },
- "404" : {
- "description" : "File is not found or readable",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
- }
- }
- },
- "put" : {
- "tags" : [ "configuration" ],
- "summary" : "Replace the current configuration file with the given configuration",
- "operationId" : "putConfiguration",
- "requestBody" : {
- "content" : {
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- }
- },
- "required" : true
- },
- "responses" : {
- "200" : {
- "description" : "Configuration updated",
- "content" : {
- "*/*" : {
- "schema" : {
- "$ref" : "#/components/schemas/void"
- }
- }
- }
- },
- "400" : {
- "description" : "Invalid configuration provided",
- "content" : {
- "*/*" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
- },
- "500" : {
- "description" : "Something went wrong when replacing the configuration. Try again.",
- "content" : {
- "*/*" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
- }
- }
- }
- },
- "/actuator" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator root web endpoint",
- "operationId" : "links",
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object",
- "additionalProperties" : {
- "type" : "object",
- "additionalProperties" : {
- "$ref" : "#/components/schemas/Link"
- }
- }
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object",
- "additionalProperties" : {
- "type" : "object",
- "additionalProperties" : {
- "$ref" : "#/components/schemas/Link"
- }
- }
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object",
- "additionalProperties" : {
- "type" : "object",
- "additionalProperties" : {
- "$ref" : "#/components/schemas/Link"
- }
- }
- }
- }
- }
- }
- }
- }
- },
- "/actuator/loggers/{name}" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'loggers-name'",
- "operationId" : "loggers-name",
- "parameters" : [ {
- "name" : "name",
- "in" : "path",
- "required" : true,
- "style" : "simple",
- "explode" : false,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- }
- },
- "post" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'loggers-name'",
- "operationId" : "loggers-name_2",
- "parameters" : [ {
- "name" : "name",
- "in" : "path",
- "required" : true,
- "style" : "simple",
- "explode" : false,
- "schema" : {
- "type" : "string"
- }
- } ],
- "requestBody" : {
- "content" : {
- "application/json" : {
- "schema" : {
- "type" : "string",
- "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", "OFF" ]
- }
- }
- }
- },
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "*/*" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- }
- }
- },
- "/a1-policy/v2/services/{service_id}/keepalive" : {
- "put" : {
- "tags" : [ "Service Registry and Supervision" ],
- "summary" : "Heartbeat indicates that the service is running",
- "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" : [ {
- "name" : "service_id",
- "in" : "path",
- "required" : true,
- "style" : "simple",
- "explode" : false,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "Service supervision timer refreshed, OK",
- "content" : {
- "*/*" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- },
- "404" : {
- "description" : "The service is not found, needs re-registration",
- "content" : {
- "*/*" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
- }
- }
- }
- },
- "/actuator/metrics" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'metrics'",
- "operationId" : "metrics",
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- }
- }
- },
- "/a1-policy/v2/rics" : {
- "get" : {
- "tags" : [ "NearRT-RIC Repository" ],
- "summary" : "Query Near-RT RIC information",
- "description" : "The call returns all Near-RT RICs that supports a given policy type identity",
- "operationId" : "getRics",
- "parameters" : [ {
- "name" : "policytype_id",
- "in" : "query",
- "description" : "The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/ric_info_list"
- },
- "examples" : {
- "ric_info_list" : {
- "$ref" : "#/components/examples/ric_info_list"
- }
- }
- }
- }
- },
- "404" : {
- "description" : "Policy type is not found",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
- }
- }
- }
- },
- "/a1-policy/v2/services" : {
- "get" : {
- "tags" : [ "Service Registry and Supervision" ],
- "summary" : "Returns service information",
- "description" : "Either information about a registered service with given identity or all registered services are returned.",
- "operationId" : "getServices",
- "parameters" : [ {
- "name" : "service_id",
- "in" : "query",
- "description" : "The identity of the service",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/service_status_list"
- },
- "examples" : {
- "service_status_list" : {
- "$ref" : "#/components/examples/service_status_list"
- }
- }
- }
- }
- },
- "404" : {
- "description" : "Service is not found",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
- }
- }
- },
- "put" : {
- "tags" : [ "Service Registry and Supervision" ],
- "summary" : "Register a service",
- "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/service_registration_info"
- }
- }
- },
- "required" : true
- },
- "responses" : {
- "200" : {
- "description" : "Service updated",
- "content" : {
- "*/*" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- },
- "201" : {
- "description" : "Service created",
- "content" : {
- "*/*" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- },
- "400" : {
- "description" : "The ServiceRegistrationInfo is not accepted",
- "content" : {
- "*/*" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
- }
- },
- "callbacks" : {
- "RICStatus" : {
- "{$request.body#/callback_url}" : {
- "post" : {
- "tags" : [ "Service callbacks" ],
- "summary" : "Callback for Near-RT RIC status",
- "description" : "The URL to this call is registered at Service registration.",
- "operationId" : "serviceCallback",
- "requestBody" : {
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/service_callback_info_v2"
- }
- }
- },
- "required" : true
- },
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/void"
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- },
- "/actuator/info" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'info'",
- "operationId" : "info",
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- }
- }
- },
- "/status" : {
- "get" : {
- "tags" : [ "Health Check" ],
- "summary" : "Returns status and statistics of this service",
- "operationId" : "getStatusV1",
- "responses" : {
- "200" : {
- "description" : "Service is living",
- "content" : {
- "*/*" : {
- "schema" : {
- "type" : "string"
- }
- }
- }
- }
- }
- }
- },
- "/a1-policy/v2/policy-types/{policytype_id}" : {
- "get" : {
- "tags" : [ "A1 Policy Management" ],
- "summary" : "Returns a policy type definition",
- "operationId" : "getPolicyTypeDefinition",
- "parameters" : [ {
- "name" : "policytype_id",
- "in" : "path",
- "required" : true,
- "style" : "simple",
- "explode" : false,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "schema of the given policy type",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_type_definition"
- },
- "examples" : {
- "policy_type_definition" : {
- "$ref" : "#/components/examples/policy_type_definition"
- }
- }
- }
- }
- },
- "404" : {
- "description" : "Policy type is not found",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
- }
- }
- }
- },
- "/actuator/logfile" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'logfile'",
- "operationId" : "logfile",
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "text/plain;charset=UTF-8" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- }
- }
- },
- "/actuator/health" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'health'",
- "operationId" : "health",
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- }
- }
- },
- "/a1-policy/v2/policies" : {
- "get" : {
- "tags" : [ "A1 Policy Management" ],
- "summary" : "Query policy identities",
- "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" : "getPolicyIds",
- "parameters" : [ {
- "name" : "policytype_id",
- "in" : "query",
- "description" : "Select policies of a given policy type identity.",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- }, {
- "name" : "ric_id",
- "in" : "query",
- "description" : "Select policies of a given Near-RT RIC identity.",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- }, {
- "name" : "service_id",
- "in" : "query",
- "description" : "Select policies owned by a given service.",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- }, {
- "name" : "type_name",
- "in" : "query",
- "description" : "Select policies of types with the given type name (type identity has the format <typename_version>)",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "Policy identities",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_id_list"
- },
- "examples" : {
- "policy_id_list" : {
- "$ref" : "#/components/examples/policy_id_list"
- }
- }
- }
- }
- },
- "404" : {
- "description" : "Near-RT RIC or type not found",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
- }
- }
- },
- "put" : {
- "tags" : [ "A1 Policy Management" ],
- "summary" : "Create or update a policy",
- "operationId" : "putPolicy",
- "requestBody" : {
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_info"
- }
- }
- },
- "required" : true
- },
- "responses" : {
- "200" : {
- "description" : "Policy updated",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/void"
- }
- }
- }
- },
- "201" : {
- "description" : "Policy created",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/void"
- }
- }
- }
- },
- "423" : {
- "description" : "Near-RT RIC is not operational",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
- },
- "404" : {
- "description" : "Near-RT RIC or policy type is not found",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
- }
- }
- }
- },
- "/a1-policy/v2/services/{service_id}" : {
- "delete" : {
- "tags" : [ "Service Registry and Supervision" ],
- "summary" : "Unregister a service",
- "operationId" : "deleteService",
- "parameters" : [ {
- "name" : "service_id",
- "in" : "path",
- "required" : true,
- "style" : "simple",
- "explode" : false,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "Not used",
- "content" : {
- "*/*" : {
- "schema" : {
- "$ref" : "#/components/schemas/void"
- }
- }
- }
- },
- "204" : {
- "description" : "Service unregistered",
- "content" : {
- "*/*" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- },
- "404" : {
- "description" : "Service not found",
- "content" : {
- "*/*" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
- }
- }
- }
- },
- "/actuator/heapdump" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'heapdump'",
- "operationId" : "heapdump",
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/octet-stream" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- }
- }
- },
- "/a1-policy/v2/policies/{policy_id}/status" : {
- "get" : {
- "tags" : [ "A1 Policy Management" ],
- "summary" : "Returns a policy status",
- "operationId" : "getPolicyStatus",
- "parameters" : [ {
- "name" : "policy_id",
- "in" : "path",
- "required" : true,
- "style" : "simple",
- "explode" : false,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "Policy status",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_status_info"
- },
- "examples" : {
- "policy_status_info" : {
- "$ref" : "#/components/examples/policy_status_info"
- }
- }
- }
- }
- },
- "404" : {
- "description" : "Policy is not found",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
- }
- }
- }
- }
- },
- "components" : {
- "schemas" : {
- "policy_type_definition" : {
- "type" : "object",
- "properties" : {
- "policy_schema" : {
- "type" : "object",
- "description" : "Policy type json schema. The schema is a json object following http://json-schema.org/draft-07/schema"
- }
- },
- "description" : "Contains policy type schema definition"
- },
- "error_information" : {
- "type" : "object",
- "properties" : {
- "detail" : {
- "type" : "string",
- "description" : " A human-readable explanation specific to this occurrence of the problem.",
- "example" : "Policy type not found"
- },
- "status" : {
- "type" : "integer",
- "description" : "The HTTP status code generated by the origin server for this occurrence of the problem. ",
- "format" : "int32",
- "example" : 404
- }
- },
- "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807"
- },
- "void" : {
- "type" : "object",
- "description" : "Void/empty"
- },
- "status_info" : {
- "type" : "object",
- "properties" : {
- "status" : {
- "type" : "string",
- "description" : "status text"
- }
- }
- },
- "authorization_result" : {
- "required" : [ "result" ],
- "type" : "object",
- "properties" : {
- "result" : {
- "type" : "boolean",
- "description" : "If true, the access is granted"
- }
- },
- "description" : "Result of authorization",
- "example" : {
- "result" : true
- }
- },
- "ric_info" : {
- "type" : "object",
- "properties" : {
- "ric_id" : {
- "type" : "string",
- "description" : "identity of the Near-RT RIC"
- },
- "managed_element_ids" : {
- "type" : "array",
- "description" : "O1 identities for managed entities",
- "items" : {
- "type" : "string",
- "description" : "O1 identities for managed entities"
- }
- },
- "state" : {
- "type" : "string",
- "description" : "Represents the states for a Near-RT RIC",
- "enum" : [ "UNAVAILABLE", "AVAILABLE", "SYNCHRONIZING", "CONSISTENCY_CHECK" ]
- },
- "policytype_ids" : {
- "type" : "array",
- "description" : "supported policy types",
- "items" : {
- "type" : "string",
- "description" : "supported policy types"
- }
- }
- },
- "description" : "Information for a Near-RT RIC"
- },
- "service_registration_info" : {
- "required" : [ "service_id" ],
- "type" : "object",
- "properties" : {
- "callback_url" : {
- "type" : "string",
- "description" : "callback for notifying of Near-RT RIC state changes"
- },
- "service_id" : {
- "type" : "string",
- "description" : "identity of the service"
- },
- "keep_alive_interval_seconds" : {
- "type" : "integer",
- "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"
- }
- },
- "description" : "Information for one service"
- },
- "policy_info_list" : {
- "type" : "object",
- "properties" : {
- "policies" : {
- "type" : "array",
- "description" : "List of policy information",
- "items" : {
- "$ref" : "#/components/schemas/policy_info"
- }
- }
- },
- "description" : "List of policy information"
- },
- "policy_status_info" : {
- "type" : "object",
- "properties" : {
- "last_modified" : {
- "type" : "string",
- "description" : "timestamp, last modification time"
- },
- "status" : {
- "type" : "object",
- "description" : "the Policy status"
- }
- },
- "description" : "Status for one A1-P Policy"
- },
- "service_status" : {
- "type" : "object",
- "properties" : {
- "callback_url" : {
- "type" : "string",
- "description" : "callback for notifying of RIC synchronization"
- },
- "service_id" : {
- "type" : "string",
- "description" : "identity of the service"
- },
- "keep_alive_interval_seconds" : {
- "type" : "integer",
- "description" : "policy keep alive timeout",
- "format" : "int64"
- },
- "time_since_last_activity_seconds" : {
- "type" : "integer",
- "description" : "time since last invocation by the service",
- "format" : "int64"
- }
- }
- },
- "ric_info_list" : {
- "type" : "object",
- "properties" : {
- "rics" : {
- "type" : "array",
- "description" : "List of Near-RT RIC information",
- "items" : {
- "$ref" : "#/components/schemas/ric_info"
- }
- }
- },
- "description" : "List of Near-RT RIC information"
- },
- "input" : {
- "required" : [ "access_type", "auth_token", "policy_type_id" ],
- "type" : "object",
- "properties" : {
- "access_type" : {
- "type" : "string",
- "description" : "Access type",
- "enum" : [ "READ", "WRITE", "DELETE" ]
- },
- "auth_token" : {
- "type" : "string",
- "description" : "Authorization token"
- },
- "policy_type_id" : {
- "type" : "string",
- "description" : "Policy type identifier"
- }
- },
- "description" : "input"
- },
- "policy_authorization" : {
- "required" : [ "input" ],
- "type" : "object",
- "properties" : {
- "input" : {
- "$ref" : "#/components/schemas/input"
- }
- },
- "description" : "Authorization request for A1 policy requests"
- },
- "policy_type_id_list" : {
- "type" : "object",
- "properties" : {
- "policytype_ids" : {
- "type" : "array",
- "description" : "Policy type identities",
- "items" : {
- "type" : "string",
- "description" : "Policy type identities"
- }
- }
- },
- "description" : "Information about policy types"
- },
- "policy_info" : {
- "required" : [ "policy_data", "policy_id", "policytype_id", "ric_id", "service_id" ],
- "type" : "object",
- "properties" : {
- "ric_id" : {
- "type" : "string",
- "description" : "identity of the target Near-RT RIC"
- },
- "policy_id" : {
- "type" : "string",
- "description" : "identity of the policy"
- },
- "transient" : {
- "type" : "boolean",
- "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,
- "example" : false,
- "default" : false
- },
- "service_id" : {
- "type" : "string",
- "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."
- },
- "policy_data" : {
- "type" : "object",
- "description" : "the configuration of the policy"
- },
- "status_notification_uri" : {
- "type" : "string",
- "description" : "Callback URI for policy status updates"
- },
- "policytype_id" : {
- "type" : "string",
- "description" : "identity of the policy type"
- }
- },
- "description" : "Information for one A1-P Policy"
- },
- "policy_id_list" : {
- "type" : "object",
- "properties" : {
- "policy_ids" : {
- "type" : "array",
- "description" : "Policy identities",
- "items" : {
- "type" : "string",
- "description" : "Policy identities"
- }
- }
- },
- "description" : "A list of policy identities",
- "example" : {
- "policy_ids" : [ "policy_ids", "policy_ids" ]
- }
- },
- "service_status_list" : {
- "type" : "object",
- "properties" : {
- "service_list" : {
- "type" : "array",
- "description" : "List of service information",
- "items" : {
- "$ref" : "#/components/schemas/service_status"
- }
- }
- }
- },
- "service_callback_info_v2" : {
- "required" : [ "event_type", "ric_id" ],
- "type" : "object",
- "properties" : {
- "ric_id" : {
- "type" : "string",
- "description" : "identity of a Near-RT RIC"
- },
- "event_type" : {
- "type" : "string",
- "description" : "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management",
- "enum" : [ "AVAILABLE" ]
- }
- },
- "description" : "Information transferred as in Service callbacks (callback_url)"
- },
- "Link" : {
- "type" : "object",
- "properties" : {
- "templated" : {
- "type" : "boolean"
- },
- "href" : {
- "type" : "string"
- }
- }
- }
- },
- "examples" : {
- "service_status" : {
- "description" : "List of service information",
- "value" : {
- "callback_url" : "callback_url",
- "service_id" : "service_id",
- "keep_alive_interval_seconds" : 0,
- "time_since_last_activity_seconds" : 6
- }
- },
- "service_status_list" : {
- "description" : "List of service information",
- "value" : {
- "service_list" : [ {
- "callback_url" : "callback_url",
- "service_id" : "service_id",
- "keep_alive_interval_seconds" : 0,
- "time_since_last_activity_seconds" : 6
- }, {
- "callback_url" : "callback_url",
- "service_id" : "service_id",
- "keep_alive_interval_seconds" : 0,
- "time_since_last_activity_seconds" : 6
- } ]
- }
- },
- "policy_type_definition" : {
- "description" : "Schema of the given Policy type",
- "value" : {
- "policy_schema" : "{}"
- }
- },
- "policy_type_id_list" : {
- "description" : "Array of policy type id's",
- "value" : {
- "policy_type_id_list" : [ "policytype_id", "policytype_id" ]
- }
- },
- "policy_info" : {
- "description" : "Policy information of one A1-P policy",
- "value" : {
- "ric_id" : "ric_id",
- "policy_id" : "policy_id",
- "transient" : false,
- "service_id" : "service_id",
- "policy_data" : "{}",
- "status_notification_uri" : "status_notification_uri",
- "policytype_id" : "policytype_id"
- }
- },
- "policy_info_list" : {
- "description" : "List of policy information",
- "value" : {
- "policies" : [ {
- "ric_id" : "ric_id",
- "policy_id" : "policy_id",
- "transient" : false,
- "service_id" : "service_id",
- "policy_data" : "{}",
- "status_notification_uri" : "status_notification_uri",
- "policytype_id" : "policytype_id"
- }, {
- "ric_id" : "ric_id",
- "policy_id" : "policy_id",
- "transient" : false,
- "service_id" : "service_id",
- "policy_data" : "{}",
- "status_notification_uri" : "status_notification_uri",
- "policytype_id" : "policytype_id"
- } ]
- }
- },
- "policy_id_list" : {
- "description" : "A list of policy identities",
- "value" : {
- "policy_ids" : [ "policy_ids", "policy_ids" ]
- }
- },
- "policy_status_info" : {
- "description" : "Status for one A1-P Policy",
- "value" : {
- "last_modified" : "last_modified",
- "status" : "{}"
- }
- },
- "status_info" : {
- "value" : {
- "status" : "status"
- }
- },
- "ric_info" : {
- "value" : {
- "ric_id" : "ric_id",
- "managed_element_ids" : [ "managed_element_ids", "managed_element_ids" ],
- "state" : "UNAVAILABLE",
- "policytype_ids" : [ "policytype_ids", "policytype_ids" ]
- }
- },
- "ric_info_list" : {
- "value" : {
- "rics" : [ {
- "ric_id" : "ric_id",
- "managed_element_ids" : [ "managed_element_ids", "managed_element_ids" ],
- "state" : "UNAVAILABLE",
- "policytype_ids" : [ "policytype_ids", "policytype_ids" ]
- }, {
- "ric_id" : "ric_id",
- "managed_element_ids" : [ "managed_element_ids", "managed_element_ids" ],
- "state" : "UNAVAILABLE",
- "policytype_ids" : [ "policytype_ids", "policytype_ids" ]
- } ]
- }
- }
- }
- }
+{
+ "openapi" : "3.0.3",
+ "info" : {
+ "title" : "A1 Policy Management Service",
+ "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>",
+ "contact" : {
+ "url" : "https://www.onap.org/",
+ "email" : "discuss-list@onap.com"
+ },
+ "license" : {
+ "name" : "Copyright (C) 2020-2023 Nordix Foundation. Licensed under the Apache License.",
+ "url" : "http://www.apache.org/licenses/LICENSE-2.0"
+ },
+ "version" : "1.3.0",
+ "x-api-id" : "a31c510b-20e6-4a08-af16-368c44d7fba8",
+ "x-audience" : "external-public"
+ },
+ "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" : "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" : "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."
+ }, {
+ "name" : "Configuration",
+ "description" : "API used to create or fetch the application configuration."
+ }, {
+ "name" : "Actuator",
+ "description" : "Monitor and interact",
+ "externalDocs" : {
+ "description" : "Spring Boot Actuator Web API Documentation",
+ "url" : "https://docs.spring.io/spring-boot/docs/current/actuator-api/html/"
+ }
+ } ],
+ "paths" : {
+ "/a1-policy/v2/policy-instances" : {
+ "get" : {
+ "tags" : [ "A1 Policy Management" ],
+ "summary" : "Query for A1 policy instances",
+ "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" : "getPolicyInstances",
+ "parameters" : [ {
+ "name" : "policytype_id",
+ "in" : "query",
+ "description" : "Select policies with a given type identity.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "ric_id",
+ "in" : "query",
+ "description" : "Select policies for a given Near-RT RIC identity.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "service_id",
+ "in" : "query",
+ "description" : "Select policies owned by a given service.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "type_name",
+ "in" : "query",
+ "description" : "Select policies of a given type name (type identity has the format <typename_version>)",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK - Returns A1 Policies which matches the criteria",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_info_list"
+ },
+ "examples" : {
+ "policy_info_list" : {
+ "$ref" : "#/components/examples/policy_info_list"
+ }
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found - Near-RT RIC, policy type or service not found",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/example-authz-check" : {
+ "post" : {
+ "tags" : [ "Authorization API" ],
+ "summary" : "Request for access authorization.",
+ "description" : "The authorization function decides if access is granted.",
+ "operationId" : "performAccessControl",
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_authorization"
+ }
+ }
+ },
+ "required" : true
+ },
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/authorization_result"
+ }
+ }
+ }
+ },
+ "403" : {
+ "description" : "Forbidden",
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ },
+ "example" : {
+ "status" : 403,
+ "title" : "Forbidden",
+ "detail" : "Your role does not allow to perform this action. Contact System Administrator to change your access rights."
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/threaddump" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'threaddump'",
+ "operationId" : "threaddump",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "text/plain;charset=UTF-8" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/a1-policy/v2/status" : {
+ "get" : {
+ "tags" : [ "Health Check" ],
+ "description" : "Returns status and statistics of this service",
+ "operationId" : "getStatus",
+ "responses" : {
+ "200" : {
+ "description" : "OK- Service is living Ok",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/status_info"
+ },
+ "examples" : {
+ "status_info" : {
+ "$ref" : "#/components/examples/status_info"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/loggers" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'loggers'",
+ "operationId" : "loggers",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/actuator/health/**" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'health-path'",
+ "operationId" : "health-path",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/a1-policy/v2/rics/ric" : {
+ "get" : {
+ "tags" : [ "NearRT-RIC Repository" ],
+ "summary" : "Returns info of Near-RT RIC queried by the ric-id and managed-element-id",
+ "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" : [ {
+ "name" : "managed_element_id",
+ "in" : "query",
+ "description" : "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "ric_id",
+ "in" : "query",
+ "description" : "The identity of a Near-RT RIC to get information for.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK - Near-RT RIC is found",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ric_info"
+ },
+ "examples" : {
+ "ric_info" : {
+ "$ref" : "#/components/examples/ric_info"
+ }
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/shutdown" : {
+ "post" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'shutdown'",
+ "operationId" : "shutdown",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/a1-policy/v2/policy-types" : {
+ "get" : {
+ "tags" : [ "A1 Policy Management" ],
+ "description" : "Query policy type identities",
+ "operationId" : "getPolicyTypes",
+ "parameters" : [ {
+ "name" : "ric_id",
+ "in" : "query",
+ "description" : "Select types for the given Near-RT RIC identity.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "type_name",
+ "in" : "query",
+ "description" : "Select types with the given type name (type identity has the format <typename_version>)",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "compatible_with_version",
+ "in" : "query",
+ "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.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK - Policy Type IDs Found",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_type_id_list"
+ },
+ "examples" : {
+ "policy_type_id_list" : {
+ "$ref" : "#/components/examples/policy_type_id_list"
+ }
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "/a1-policy/v2/policies/{policy_id}" : {
+ "get" : {
+ "tags" : [ "A1 Policy Management" ],
+ "description" : "Returns a policy",
+ "operationId" : "getPolicy",
+ "parameters" : [ {
+ "name" : "policy_id",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK - Policy found",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_info"
+ },
+ "examples" : {
+ "policy_info" : {
+ "$ref" : "#/components/examples/policy_info"
+ }
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ },
+ "delete" : {
+ "tags" : [ "A1 Policy Management" ],
+ "summary" : "Delete a policy",
+ "description" : "Deleting the policy using the Policy's Policy ID.",
+ "operationId" : "deletePolicy",
+ "parameters" : [ {
+ "name" : "policy_id",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK - Policy deleted",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/void"
+ }
+ }
+ }
+ },
+ "423" : {
+ "description" : "Locked - HTTP Status code which can be used when the state is Locked",
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ },
+ "example" : {
+ "status" : 423,
+ "title" : "Locked",
+ "detail" : "Requested resource is in a locked state."
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/metrics/{requiredMetricName}" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'metrics-requiredMetricName'",
+ "operationId" : "metrics-requiredMetricName",
+ "parameters" : [ {
+ "name" : "requiredMetricName",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/a1-policy/v2/configuration" : {
+ "get" : {
+ "tags" : [ "Configuration" ],
+ "description" : "Returns the contents of the application configuration file",
+ "operationId" : "getConfiguration",
+ "responses" : {
+ "200" : {
+ "description" : "OK - Configuration",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "type" : "string"
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ },
+ "put" : {
+ "tags" : [ "Configuration" ],
+ "description" : "Replace the current configuration with the given configuration",
+ "operationId" : "putConfiguration",
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ },
+ "required" : true
+ },
+ "responses" : {
+ "200" : {
+ "description" : "OK - Configuration updated",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/void"
+ }
+ }
+ }
+ },
+ "400" : {
+ "description" : "Bad Request",
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ },
+ "example" : {
+ "status" : 400,
+ "title" : "Bad Request",
+ "detail" : "The provided request is not valid."
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/actuator" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator root web endpoint",
+ "operationId" : "links",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "$ref" : "#/components/schemas/Link"
+ }
+ }
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "$ref" : "#/components/schemas/Link"
+ }
+ }
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "$ref" : "#/components/schemas/Link"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/actuator/loggers/{name}" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'loggers-name'",
+ "operationId" : "loggers-name",
+ "parameters" : [ {
+ "name" : "name",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ },
+ "post" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'loggers-name'",
+ "operationId" : "loggers-name_2",
+ "parameters" : [ {
+ "name" : "name",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "type" : "string",
+ "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", "OFF" ]
+ }
+ }
+ }
+ },
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/a1-policy/v2/services/{service_id}/keepalive" : {
+ "put" : {
+ "tags" : [ "Service Registry and Supervision" ],
+ "summary" : "Heartbeat indicates that the service is running",
+ "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" : [ {
+ "name" : "service_id",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK - Service supervision timer refreshed, OK",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/metrics" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'metrics'",
+ "operationId" : "metrics",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/a1-policy/v2/rics" : {
+ "get" : {
+ "tags" : [ "NearRT-RIC Repository" ],
+ "summary" : "Query Near-RT RIC information",
+ "description" : "The call returns all Near-RT RICs that supports a given policy type identity",
+ "operationId" : "getRics",
+ "parameters" : [ {
+ "name" : "policytype_id",
+ "in" : "query",
+ "description" : "The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ric_info_list"
+ },
+ "examples" : {
+ "ric_info_list" : {
+ "$ref" : "#/components/examples/ric_info_list"
+ }
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "/a1-policy/v2/services" : {
+ "get" : {
+ "tags" : [ "Service Registry and Supervision" ],
+ "summary" : "Returns service information",
+ "description" : "Either information about a registered service with given identity or all registered services are returned.",
+ "operationId" : "getServices",
+ "parameters" : [ {
+ "name" : "service_id",
+ "in" : "query",
+ "description" : "The identity of the service",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/service_status_list"
+ },
+ "examples" : {
+ "service_status_list" : {
+ "$ref" : "#/components/examples/service_status_list"
+ }
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ },
+ "put" : {
+ "tags" : [ "Service Registry and Supervision" ],
+ "summary" : "Register a service",
+ "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/service_registration_info"
+ }
+ }
+ },
+ "required" : true
+ },
+ "responses" : {
+ "200" : {
+ "description" : "OK - Service updated",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ },
+ "201" : {
+ "description" : "Created - Service created",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ },
+ "400" : {
+ "description" : "Bad Request",
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ },
+ "example" : {
+ "status" : 400,
+ "title" : "Bad Request",
+ "detail" : "The provided request is not valid."
+ }
+ }
+ }
+ }
+ },
+ "callbacks" : {
+ "RICStatus" : {
+ "{$request.body#/callback_url}" : {
+ "post" : {
+ "tags" : [ "Service callbacks" ],
+ "summary" : "Callback for Near-RT RIC status",
+ "description" : "The URL to this call is registered at Service registration.",
+ "operationId" : "serviceCallback",
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/service_callback_info_v2"
+ }
+ }
+ },
+ "required" : true
+ },
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/void"
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/info" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'info'",
+ "operationId" : "info",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/status" : {
+ "get" : {
+ "tags" : [ "Health Check" ],
+ "description" : "Returns status and statistics of this service",
+ "operationId" : "getStatusV1",
+ "responses" : {
+ "200" : {
+ "description" : "OK - Service is living",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/a1-policy/v2/policy-types/{policytype_id}" : {
+ "get" : {
+ "tags" : [ "A1 Policy Management" ],
+ "description" : "Returns a policy type definition",
+ "operationId" : "getPolicyTypeDefinition",
+ "parameters" : [ {
+ "name" : "policytype_id",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK - schema of the given policy type",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_type_definition"
+ },
+ "examples" : {
+ "policy_type_definition" : {
+ "$ref" : "#/components/examples/policy_type_definition"
+ }
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/logfile" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'logfile'",
+ "operationId" : "logfile",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "text/plain;charset=UTF-8" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/actuator/health" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'health'",
+ "operationId" : "health",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/a1-policy/v2/policies" : {
+ "get" : {
+ "tags" : [ "A1 Policy Management" ],
+ "summary" : "Query policy identities",
+ "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" : "getPolicyIds",
+ "parameters" : [ {
+ "name" : "policytype_id",
+ "in" : "query",
+ "description" : "Select policies of a given policy type identity.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "ric_id",
+ "in" : "query",
+ "description" : "Select policies of a given Near-RT RIC identity.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "service_id",
+ "in" : "query",
+ "description" : "Select policies owned by a given service.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "type_name",
+ "in" : "query",
+ "description" : "Select policies of types with the given type name (type identity has the format <typename_version>)",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK - Policy identities",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_id_list"
+ },
+ "examples" : {
+ "policy_id_list" : {
+ "$ref" : "#/components/examples/policy_id_list"
+ }
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ },
+ "put" : {
+ "tags" : [ "A1 Policy Management" ],
+ "description" : "Create or update a policy",
+ "operationId" : "putPolicy",
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_info"
+ }
+ }
+ },
+ "required" : true
+ },
+ "responses" : {
+ "200" : {
+ "description" : "OK - Policy updated",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/void"
+ }
+ }
+ }
+ },
+ "201" : {
+ "description" : "Created - Policy created",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/void"
+ }
+ }
+ }
+ },
+ "423" : {
+ "description" : "Locked - HTTP Status code which can be used when the state is Locked",
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ },
+ "example" : {
+ "status" : 423,
+ "title" : "Locked",
+ "detail" : "Requested resource is in a locked state."
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/a1-policy/v2/services/{service_id}" : {
+ "delete" : {
+ "tags" : [ "Service Registry and Supervision" ],
+ "description" : "Unregister a service",
+ "operationId" : "deleteService",
+ "parameters" : [ {
+ "name" : "service_id",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "204" : {
+ "description" : "No Content - Service unregistered",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/heapdump" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'heapdump'",
+ "operationId" : "heapdump",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/octet-stream" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/a1-policy/v2/policies/{policy_id}/status" : {
+ "get" : {
+ "tags" : [ "A1 Policy Management" ],
+ "description" : "Returns a policy status",
+ "operationId" : "getPolicyStatus",
+ "parameters" : [ {
+ "name" : "policy_id",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK - Policy status",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_status_info"
+ },
+ "examples" : {
+ "policy_status_info" : {
+ "$ref" : "#/components/examples/policy_status_info"
+ }
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "components" : {
+ "schemas" : {
+ "policy_type_definition" : {
+ "type" : "object",
+ "properties" : {
+ "policy_schema" : {
+ "type" : "object",
+ "description" : "Policy type json schema. The schema is a json object following http://json-schema.org/draft-07/schema"
+ }
+ },
+ "description" : "Contains policy type schema definition"
+ },
+ "error_information" : {
+ "type" : "object",
+ "properties" : {
+ "detail" : {
+ "type" : "string",
+ "description" : " A human-readable explanation specific to this occurrence of the problem.",
+ "example" : "Policy type not found"
+ },
+ "title" : {
+ "type" : "string",
+ "description" : "A specific error name",
+ "example" : "Not Found"
+ },
+ "status" : {
+ "type" : "integer",
+ "description" : "The HTTP status code generated by the origin server for this occurrence of the problem. ",
+ "format" : "int32",
+ "example" : 404
+ }
+ },
+ "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807"
+ },
+ "void" : {
+ "type" : "object",
+ "description" : "Void/empty"
+ },
+ "status_info" : {
+ "type" : "object",
+ "properties" : {
+ "status" : {
+ "type" : "string",
+ "description" : "status text"
+ }
+ }
+ },
+ "authorization_result" : {
+ "required" : [ "result" ],
+ "type" : "object",
+ "properties" : {
+ "result" : {
+ "type" : "boolean",
+ "description" : "If true, the access is granted"
+ }
+ },
+ "description" : "Result of authorization",
+ "example" : {
+ "result" : true
+ }
+ },
+ "ric_info" : {
+ "type" : "object",
+ "properties" : {
+ "ric_id" : {
+ "type" : "string",
+ "description" : "identity of the Near-RT RIC"
+ },
+ "managed_element_ids" : {
+ "type" : "array",
+ "description" : "O1 identities for managed entities",
+ "items" : {
+ "type" : "string",
+ "description" : "O1 identities for managed entities"
+ }
+ },
+ "state" : {
+ "type" : "string",
+ "description" : "Represents the states for a Near-RT RIC",
+ "enum" : [ "UNAVAILABLE", "AVAILABLE", "SYNCHRONIZING", "CONSISTENCY_CHECK" ]
+ },
+ "policytype_ids" : {
+ "type" : "array",
+ "description" : "supported policy types",
+ "items" : {
+ "type" : "string",
+ "description" : "supported policy types"
+ }
+ }
+ },
+ "description" : "Information for a Near-RT RIC"
+ },
+ "service_registration_info" : {
+ "required" : [ "service_id" ],
+ "type" : "object",
+ "properties" : {
+ "callback_url" : {
+ "type" : "string",
+ "description" : "callback for notifying of Near-RT RIC state changes"
+ },
+ "service_id" : {
+ "type" : "string",
+ "description" : "identity of the service"
+ },
+ "keep_alive_interval_seconds" : {
+ "type" : "integer",
+ "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"
+ }
+ },
+ "description" : "Information for one service"
+ },
+ "policy_info_list" : {
+ "type" : "object",
+ "properties" : {
+ "policies" : {
+ "type" : "array",
+ "description" : "List of policy information",
+ "items" : {
+ "$ref" : "#/components/schemas/policy_info"
+ }
+ }
+ },
+ "description" : "List of policy information"
+ },
+ "policy_status_info" : {
+ "type" : "object",
+ "properties" : {
+ "last_modified" : {
+ "type" : "string",
+ "description" : "timestamp, last modification time"
+ },
+ "status" : {
+ "type" : "object",
+ "description" : "the Policy status"
+ }
+ },
+ "description" : "Status for one A1-P Policy"
+ },
+ "service_status" : {
+ "type" : "object",
+ "properties" : {
+ "callback_url" : {
+ "type" : "string",
+ "description" : "callback for notifying of RIC synchronization"
+ },
+ "service_id" : {
+ "type" : "string",
+ "description" : "identity of the service"
+ },
+ "keep_alive_interval_seconds" : {
+ "type" : "integer",
+ "description" : "policy keep alive timeout",
+ "format" : "int64"
+ },
+ "time_since_last_activity_seconds" : {
+ "type" : "integer",
+ "description" : "time since last invocation by the service",
+ "format" : "int64"
+ }
+ }
+ },
+ "ric_info_list" : {
+ "type" : "object",
+ "properties" : {
+ "rics" : {
+ "type" : "array",
+ "description" : "List of Near-RT RIC information",
+ "items" : {
+ "$ref" : "#/components/schemas/ric_info"
+ }
+ }
+ },
+ "description" : "List of Near-RT RIC information"
+ },
+ "input" : {
+ "required" : [ "access_type", "auth_token", "policy_type_id" ],
+ "type" : "object",
+ "properties" : {
+ "access_type" : {
+ "type" : "string",
+ "description" : "Access type",
+ "enum" : [ "READ", "WRITE", "DELETE" ]
+ },
+ "auth_token" : {
+ "type" : "string",
+ "description" : "Authorization token"
+ },
+ "policy_type_id" : {
+ "type" : "string",
+ "description" : "Policy type identifier"
+ }
+ },
+ "description" : "input"
+ },
+ "policy_authorization" : {
+ "required" : [ "input" ],
+ "type" : "object",
+ "properties" : {
+ "input" : {
+ "$ref" : "#/components/schemas/input"
+ }
+ },
+ "description" : "Authorization request for A1 policy requests"
+ },
+ "policy_type_id_list" : {
+ "type" : "object",
+ "properties" : {
+ "policytype_ids" : {
+ "type" : "array",
+ "description" : "Policy type identities",
+ "items" : {
+ "type" : "string",
+ "description" : "Policy type identities"
+ }
+ }
+ },
+ "description" : "Information about policy types"
+ },
+ "policy_info" : {
+ "required" : [ "policy_data", "policy_id", "policytype_id", "ric_id" ],
+ "type" : "object",
+ "properties" : {
+ "ric_id" : {
+ "type" : "string",
+ "description" : "identity of the target Near-RT RIC"
+ },
+ "policy_id" : {
+ "type" : "string",
+ "description" : "identity of the policy"
+ },
+ "transient" : {
+ "type" : "boolean",
+ "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,
+ "example" : false,
+ "default" : false
+ },
+ "service_id" : {
+ "type" : "string",
+ "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.",
+ "default" : ""
+ },
+ "policy_data" : {
+ "type" : "object",
+ "description" : "the configuration of the policy"
+ },
+ "status_notification_uri" : {
+ "type" : "string",
+ "description" : "Callback URI for policy status updates"
+ },
+ "policytype_id" : {
+ "type" : "string",
+ "description" : "identity of the policy type"
+ }
+ },
+ "description" : "Information for one A1-P Policy"
+ },
+ "policy_id_list" : {
+ "type" : "object",
+ "properties" : {
+ "policy_ids" : {
+ "type" : "array",
+ "description" : "Policy identities",
+ "items" : {
+ "type" : "string",
+ "description" : "Policy identities"
+ }
+ }
+ },
+ "description" : "A list of policy identities",
+ "example" : {
+ "policy_ids" : [ "policy_ids", "policy_ids" ]
+ }
+ },
+ "service_status_list" : {
+ "type" : "object",
+ "properties" : {
+ "service_list" : {
+ "type" : "array",
+ "description" : "List of service information",
+ "items" : {
+ "$ref" : "#/components/schemas/service_status"
+ }
+ }
+ }
+ },
+ "service_callback_info_v2" : {
+ "required" : [ "event_type", "ric_id" ],
+ "type" : "object",
+ "properties" : {
+ "ric_id" : {
+ "type" : "string",
+ "description" : "identity of a Near-RT RIC"
+ },
+ "event_type" : {
+ "type" : "string",
+ "description" : "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management",
+ "enum" : [ "AVAILABLE" ]
+ }
+ },
+ "description" : "Information transferred as in Service callbacks (callback_url)"
+ },
+ "Link" : {
+ "type" : "object",
+ "properties" : {
+ "templated" : {
+ "type" : "boolean"
+ },
+ "href" : {
+ "type" : "string"
+ }
+ }
+ }
+ },
+ "responses" : {
+ "Locked" : {
+ "description" : "Locked - HTTP Status code which can be used when the state is Locked",
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ },
+ "example" : {
+ "status" : 423,
+ "title" : "Locked",
+ "detail" : "Requested resource is in a locked state."
+ }
+ }
+ }
+ },
+ "BadRequest" : {
+ "description" : "Bad Request",
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ },
+ "example" : {
+ "status" : 400,
+ "title" : "Bad Request",
+ "detail" : "The provided request is not valid."
+ }
+ }
+ }
+ },
+ "Forbidden" : {
+ "description" : "Forbidden",
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ },
+ "example" : {
+ "status" : 403,
+ "title" : "Forbidden",
+ "detail" : "Your role does not allow to perform this action. Contact System Administrator to change your access rights."
+ }
+ }
+ }
+ },
+ "NotFound" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ },
+ "examples" : {
+ "service_status" : {
+ "description" : "List of service information",
+ "value" : {
+ "callback_url" : "callback_url",
+ "service_id" : "service_id",
+ "keep_alive_interval_seconds" : 0,
+ "time_since_last_activity_seconds" : 6
+ }
+ },
+ "service_status_list" : {
+ "description" : "List of service information",
+ "value" : {
+ "service_list" : [ {
+ "callback_url" : "callback_url",
+ "service_id" : "service_id",
+ "keep_alive_interval_seconds" : 0,
+ "time_since_last_activity_seconds" : 6
+ }, {
+ "callback_url" : "callback_url",
+ "service_id" : "service_id",
+ "keep_alive_interval_seconds" : 0,
+ "time_since_last_activity_seconds" : 6
+ } ]
+ }
+ },
+ "policy_type_definition" : {
+ "description" : "Schema of the given Policy type",
+ "value" : {
+ "policy_schema" : "{}"
+ }
+ },
+ "policy_type_id_list" : {
+ "description" : "Array of policy type id's",
+ "value" : {
+ "policy_type_id_list" : [ "policytype_id", "policytype_id" ]
+ }
+ },
+ "policy_info" : {
+ "description" : "Policy information of one A1-P policy",
+ "value" : {
+ "ric_id" : "ric_id",
+ "policy_id" : "policy_id",
+ "transient" : false,
+ "service_id" : "service_id",
+ "policy_data" : "{}",
+ "status_notification_uri" : "status_notification_uri",
+ "policytype_id" : "policytype_id"
+ }
+ },
+ "policy_info_list" : {
+ "description" : "List of policy information",
+ "value" : {
+ "policies" : [ {
+ "ric_id" : "ric_id",
+ "policy_id" : "policy_id",
+ "transient" : false,
+ "service_id" : "service_id",
+ "policy_data" : "{}",
+ "status_notification_uri" : "status_notification_uri",
+ "policytype_id" : "policytype_id"
+ }, {
+ "ric_id" : "ric_id",
+ "policy_id" : "policy_id",
+ "transient" : false,
+ "service_id" : "service_id",
+ "policy_data" : "{}",
+ "status_notification_uri" : "status_notification_uri",
+ "policytype_id" : "policytype_id"
+ } ]
+ }
+ },
+ "policy_id_list" : {
+ "description" : "A list of policy identities",
+ "value" : {
+ "policy_ids" : [ "some_policy_id", "some_policy_id" ]
+ }
+ },
+ "policy_status_info" : {
+ "description" : "Status for one A1-P Policy",
+ "value" : {
+ "last_modified" : "last_modified",
+ "status" : {
+ "value" : {
+ "status" : "status"
+ }
+ }
+ }
+ },
+ "status_info" : {
+ "value" : {
+ "status" : "status"
+ }
+ },
+ "ric_info" : {
+ "value" : {
+ "ric_id" : "ric_id",
+ "managed_element_ids" : [ "some_managed_element_id", "some_managed_element_id" ],
+ "state" : "UNAVAILABLE",
+ "policytype_ids" : [ "some_policytype_id", "some_policytype_id" ]
+ }
+ },
+ "ric_info_list" : {
+ "value" : {
+ "rics" : [ {
+ "ric_id" : "ric_id",
+ "managed_element_ids" : [ "some_managed_element_id", "some_managed_element_id" ],
+ "state" : "UNAVAILABLE",
+ "policytype_ids" : [ "policytype_id", "policytype_id" ]
+ }, {
+ "ric_id" : "ric_id",
+ "managed_element_ids" : [ "managed_element_ids", "managed_element_ids" ],
+ "state" : "UNAVAILABLE",
+ "policytype_ids" : [ "policytype_ids", "policytype_ids" ]
+ } ]
+ }
+ }
+ }
+ }
} \ No newline at end of file
diff --git a/docs/offeredapis/swagger/pms-api.yaml b/docs/offeredapis/swagger/pms-api.yaml
index 0895f50d..1c25e051 100644
--- a/docs/offeredapis/swagger/pms-api.yaml
+++ b/docs/offeredapis/swagger/pms-api.yaml
@@ -1,6 +1,6 @@
# ============LICENSE_START=======================================================
# Copyright (C) 2020-2023 Nordix Foundation
-# Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved.
+# Copyright (C) 2023-2024 OpenInfra Foundation Europe. All rights reserved.
# Modifications Copyright (C) 2021 Pantheon.tech
# Modifications Copyright (C) 2021 Bell Canada
# ================================================================================
@@ -21,8 +21,10 @@
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\
- \ provides a REST API for management of A1 policies. <br/>The main tasks of the\
+ \ 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\
@@ -48,23 +50,37 @@ 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, and
- Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved.
+ 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.2.0
+ version: 1.3.0
+ contact:
+ url: https://www.onap.org/
+ email: discuss-list@onap.com
servers:
- url: /
tags:
- - description: "API used for authorization of information A1 policy access (this is
+ - 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: 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: 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."
- name: Authorization API
- - description: Monitor and interact
+ - name: Configuration
+ description: "API used to create or fetch the application configuration."
+ - name: Actuator
+ description: Monitor and interact
externalDocs:
description: Spring Boot Actuator Web API Documentation
url: https://docs.spring.io/spring-boot/docs/current/actuator-api/html/
- name: Actuator
paths:
/a1-policy/v2/policy-instances:
get:
@@ -115,13 +131,13 @@ paths:
$ref: '#/components/examples/policy_info_list'
schema:
$ref: '#/components/schemas/policy_info_list'
- description: Policies
+ description: OK - Returns A1 Policies which matches the criteria
"404":
content:
application/json:
schema:
$ref: '#/components/schemas/error_information'
- description: "Near-RT RIC, policy type or service not found"
+ description: "Not Found - Near-RT RIC, policy type or service not found"
summary: Query for A1 policy instances
tags:
- A1 Policy Management
@@ -142,11 +158,14 @@ paths:
schema:
$ref: '#/components/schemas/authorization_result'
description: OK
+ "403":
+ $ref: '#/components/responses/Forbidden'
summary: Request for access authorization.
tags:
- Authorization API
/actuator/threaddump:
get:
+ x-internal: true
operationId: threaddump
responses:
"200":
@@ -179,12 +198,13 @@ paths:
examples:
status_info:
$ref: '#/components/examples/status_info'
- description: Service is living
- summary: Returns status and statistics of this service
+ description: OK- Service is living Ok
+ description: Returns status and statistics of this service
tags:
- Health Check
/actuator/loggers:
get:
+ x-internal: true
operationId: loggers
responses:
"200":
@@ -204,6 +224,7 @@ paths:
- Actuator
/actuator/health/**:
get:
+ x-internal: true
operationId: health-path
responses:
"200":
@@ -254,18 +275,16 @@ paths:
examples:
ric_info:
$ref: '#/components/examples/ric_info'
- description: Near-RT RIC is found
+ description: OK - Near-RT RIC is found
"404":
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/error_information'
- description: Near-RT RIC is not found
- summary: Returns info for one Near-RT RIC
+ $ref: '#/components/responses/NotFound'
+ description: NotFound - Requested NearRT-RIC Not Found
+ summary: Returns info of Near-RT RIC queried by the ric-id and managed-element-id
tags:
- NearRT-RIC Repository
/actuator/shutdown:
post:
+ x-internal: true
operationId: shutdown
responses:
"200":
@@ -324,18 +343,16 @@ paths:
$ref: '#/components/examples/policy_type_id_list'
schema:
$ref: '#/components/schemas/policy_type_id_list'
- description: Policy type IDs
+ description: OK - Policy Type IDs Found
"404":
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/error_information'
- description: Near-RT RIC is not found
- summary: Query policy type identities
+ $ref: '#/components/responses/NotFound'
+ description: 'Not Found - Requested Policy Type IDs Not Found'
+ description: Query policy type identities
tags:
- A1 Policy Management
/a1-policy/v2/policies/{policy_id}:
delete:
+ description: Deleting the policy using the Policy's Policy ID.
operationId: deletePolicy
parameters:
- explode: false
@@ -351,25 +368,10 @@ paths:
'*/*':
schema:
$ref: '#/components/schemas/void'
- description: Not used
+ description: OK - Policy deleted
"423":
- content:
- '*/*':
- schema:
- $ref: '#/components/schemas/error_information'
- description: Near-RT RIC is not operational
- "204":
- content:
- '*/*':
- schema:
- $ref: '#/components/schemas/void'
- description: Policy deleted
- "404":
- content:
- '*/*':
- schema:
- $ref: '#/components/schemas/error_information'
- description: Policy is not found
+ $ref: '#/components/responses/Locked'
+ description: 'The requested policy using policy_id is Locked'
summary: Delete a policy
tags:
- A1 Policy Management
@@ -392,18 +394,16 @@ paths:
examples:
policy_info:
$ref: '#/components/examples/policy_info'
- description: Policy found
+ description: OK - Policy found
"404":
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/error_information'
- description: Policy is not found
- summary: Returns a policy
+ $ref: '#/components/responses/NotFound'
+ description: 'Not Found - Requested Policy using policy_id is not found'
+ description: Returns a policy
tags:
- A1 Policy Management
/actuator/metrics/{requiredMetricName}:
get:
+ x-internal: true
operationId: metrics-requiredMetricName
parameters:
- explode: false
@@ -431,6 +431,7 @@ paths:
- Actuator
/a1-policy/v2/configuration:
get:
+ x-internal: true
operationId: getConfiguration
responses:
"200":
@@ -438,17 +439,15 @@ paths:
application/json:
schema:
type: string
- description: Configuration
+ description: OK - Configuration
"404":
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/error_information'
- description: File is not found or readable
- summary: Returns the contents of the application configuration file
+ $ref: '#/components/responses/NotFound'
+ description: Not Found - Configuration is not found or readable
+ description: Returns the contents of the application configuration file
tags:
- - configuration
+ - Configuration
put:
+ x-internal: true
operationId: putConfiguration
requestBody:
content:
@@ -462,25 +461,15 @@ paths:
'*/*':
schema:
$ref: '#/components/schemas/void'
- description: Configuration updated
+ description: OK - Configuration updated
"400":
- content:
- '*/*':
- schema:
- $ref: '#/components/schemas/error_information'
- description: Invalid configuration provided
- "500":
- content:
- '*/*':
- schema:
- $ref: '#/components/schemas/error_information'
- description: Something went wrong when replacing the configuration. Try
- again.
- summary: Replace the current configuration file with the given configuration
+ $ref: '#/components/responses/BadRequest'
+ description: Replace the current configuration with the given configuration
tags:
- - configuration
+ - Configuration
/actuator:
get:
+ x-internal: true
operationId: links
responses:
"200":
@@ -512,6 +501,7 @@ paths:
- Actuator
/actuator/loggers/{name}:
get:
+ x-internal: true
operationId: loggers-name
parameters:
- explode: false
@@ -538,6 +528,7 @@ paths:
tags:
- Actuator
post:
+ x-internal: true
operationId: loggers-name_2
parameters:
- explode: false
@@ -592,18 +583,15 @@ paths:
'*/*':
schema:
type: object
- description: "Service supervision timer refreshed, OK"
+ description: "OK - Service supervision timer refreshed, OK"
"404":
- content:
- '*/*':
- schema:
- $ref: '#/components/schemas/error_information'
- description: "The service is not found, needs re-registration"
+ $ref: '#/components/responses/NotFound'
summary: Heartbeat indicates that the service is running
tags:
- Service Registry and Supervision
/actuator/metrics:
get:
+ x-internal: true
operationId: metrics
responses:
"200":
@@ -647,11 +635,7 @@ paths:
$ref: '#/components/examples/ric_info_list'
description: OK
"404":
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/error_information'
- description: Policy type is not found
+ $ref: '#/components/responses/NotFound'
summary: Query Near-RT RIC information
tags:
- NearRT-RIC Repository
@@ -680,11 +664,7 @@ paths:
$ref: '#/components/examples/service_status_list'
description: OK
"404":
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/error_information'
- description: Service is not found
+ $ref: '#/components/responses/NotFound'
summary: Returns service information
tags:
- Service Registry and Supervision
@@ -707,46 +687,45 @@ paths:
'*/*':
schema:
type: object
- description: Service updated
+ description: OK - Service updated
"201":
content:
'*/*':
schema:
type: object
- description: Service created
+ description: Created - Service created
"400":
- content:
- '*/*':
- schema:
- $ref: '#/components/schemas/error_information'
- description: The ServiceRegistrationInfo is not accepted
+ $ref: '#/components/responses/BadRequest'
summary: Register a service
tags:
- Service Registry and Supervision
callbacks:
RICStatus:
"{$request.body#/callback_url}":
- post:
- description: The URL to this call is registered at Service registration.
- operationId: serviceCallback
- requestBody:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/service_callback_info_v2'
- required: true
- responses:
- "200":
+ post:
+ description: The URL to this call is registered at Service registration.
+ operationId: serviceCallback
+ requestBody:
content:
application/json:
schema:
- $ref: '#/components/schemas/void'
- description: OK
- summary: Callback for Near-RT RIC status
- tags:
- - Service callbacks
+ $ref: '#/components/schemas/service_callback_info_v2'
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/void'
+ description: OK
+ "404":
+ $ref: '#/components/responses/NotFound'
+ summary: Callback for Near-RT RIC status
+ tags:
+ - Service callbacks
/actuator/info:
get:
+ x-internal: true
operationId: info
responses:
"200":
@@ -773,8 +752,8 @@ paths:
'*/*':
schema:
type: string
- description: Service is living
- summary: Returns status and statistics of this service
+ description: OK - Service is living
+ description: Returns status and statistics of this service
tags:
- Health Check
/a1-policy/v2/policy-types/{policytype_id}:
@@ -797,18 +776,15 @@ paths:
examples:
policy_type_definition:
$ref: '#/components/examples/policy_type_definition'
- description: schema of the given policy type
+ description: OK - schema of the given policy type
"404":
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/error_information'
- description: Policy type is not found
- summary: Returns a policy type definition
+ $ref: '#/components/responses/NotFound'
+ description: Returns a policy type definition
tags:
- A1 Policy Management
/actuator/logfile:
get:
+ x-internal: true
operationId: logfile
responses:
"200":
@@ -822,6 +798,7 @@ paths:
- Actuator
/actuator/health:
get:
+ x-internal: true
operationId: health
responses:
"200":
@@ -888,13 +865,9 @@ paths:
$ref: '#/components/examples/policy_id_list'
schema:
$ref: '#/components/schemas/policy_id_list'
- description: Policy identities
+ description: OK - Policy identities
"404":
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/error_information'
- description: Near-RT RIC or type not found
+ $ref: '#/components/responses/NotFound'
summary: Query policy identities
tags:
- A1 Policy Management
@@ -912,26 +885,16 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/void'
- description: Policy updated
+ description: OK - Policy updated
"201":
content:
application/json:
schema:
$ref: '#/components/schemas/void'
- description: Policy created
+ description: Created - Policy created
"423":
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/error_information'
- description: Near-RT RIC is not operational
- "404":
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/error_information'
- description: Near-RT RIC or policy type is not found
- summary: Create or update a policy
+ $ref: '#/components/responses/Locked'
+ description: Create or update a policy
tags:
- A1 Policy Management
/a1-policy/v2/services/{service_id}:
@@ -946,29 +909,20 @@ paths:
type: string
style: simple
responses:
- "200":
- content:
- '*/*':
- schema:
- $ref: '#/components/schemas/void'
- description: Not used
"204":
content:
'*/*':
schema:
type: object
- description: Service unregistered
+ description: No Content - Service unregistered
"404":
- content:
- '*/*':
- schema:
- $ref: '#/components/schemas/error_information'
- description: Service not found
- summary: Unregister a service
+ $ref: '#/components/responses/NotFound'
+ description: Unregister a service
tags:
- Service Registry and Supervision
/actuator/heapdump:
get:
+ x-internal: true
operationId: heapdump
responses:
"200":
@@ -995,22 +949,56 @@ paths:
"200":
content:
application/json:
+ schema:
+ $ref: '#/components/schemas/policy_status_info'
examples:
policy_status_info:
$ref: '#/components/examples/policy_status_info'
- schema:
- $ref: '#/components/schemas/policy_status_info'
- description: Policy status
+ description: OK - Policy status
"404":
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/error_information'
- description: Policy is not found
- summary: Returns a policy status
+ $ref: '#/components/responses/NotFound'
+ description: Returns a policy status
tags:
- A1 Policy Management
components:
+ responses:
+ Locked:
+ description: "Locked - HTTP Status code which can be used when the state is Locked"
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/error_information'
+ example:
+ status: 423
+ title: Locked
+ detail: Requested resource is in a locked state.
+ BadRequest:
+ description: Bad Request
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/error_information'
+ example:
+ status: 400
+ title: Bad Request
+ detail: The provided request is not valid.
+ Forbidden:
+ description: Forbidden
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/error_information'
+ example:
+ status: 403
+ title: Forbidden
+ detail: Your role does not allow to perform this action. Contact System Administrator to change your access rights.
+ NotFound:
+ description: Not Found
+ content:
+ application/problem+json:
+ example:
+ [ ]
+
examples:
service_status:
description: List of service information
@@ -1019,6 +1007,7 @@ components:
service_id: service_id
keep_alive_interval_seconds: 0
time_since_last_activity_seconds: 6
+
service_status_list:
description: List of service information
value:
@@ -1073,13 +1062,15 @@ components:
description: A list of policy identities
value:
policy_ids:
- - policy_ids
- - policy_ids
+ - some_policy_id
+ - some_policy_id
policy_status_info:
description: Status for one A1-P Policy
value:
last_modified: last_modified
- status: "{}"
+ status:
+ value:
+ status: status
status_info:
value:
status: status
@@ -1087,23 +1078,23 @@ components:
value:
ric_id: ric_id
managed_element_ids:
- - managed_element_ids
- - managed_element_ids
+ - some_managed_element_id
+ - some_managed_element_id
state: UNAVAILABLE
policytype_ids:
- - policytype_ids
- - policytype_ids
+ - some_policytype_id
+ - some_policytype_id
ric_info_list:
value:
rics:
- ric_id: ric_id
managed_element_ids:
- - managed_element_ids
- - managed_element_ids
+ - some_managed_element_id
+ - some_managed_element_id
state: UNAVAILABLE
policytype_ids:
- - policytype_ids
- - policytype_ids
+ - policytype_id
+ - policytype_id
- ric_id: ric_id
managed_element_ids:
- managed_element_ids
@@ -1112,6 +1103,7 @@ components:
policytype_ids:
- policytype_ids
- policytype_ids
+
schemas:
policy_type_definition:
description: Contains policy type schema definition
@@ -1129,6 +1121,10 @@ components:
of the problem.'
example: Policy type not found
type: string
+ title:
+ description: 'A specific error name'
+ type: string
+ example: Not Found
status:
description: 'The HTTP status code generated by the origin server for this
occurrence of the problem. '
@@ -1311,6 +1307,7 @@ components:
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.
type: string
+ default: ""
policy_data:
description: the configuration of the policy
type: object
@@ -1323,7 +1320,6 @@ components:
required:
- ric_id
- policy_id
- - service_id
- policy_data
- policytype_id
type: object
@@ -1371,4 +1367,4 @@ components:
type: boolean
href:
type: string
- type: object
+ type: object \ No newline at end of file
diff --git a/docs/releasenotes/release-notes.rst b/docs/releasenotes/release-notes.rst
index 0690800c..c362278c 100644
--- a/docs/releasenotes/release-notes.rst
+++ b/docs/releasenotes/release-notes.rst
@@ -99,6 +99,9 @@ Version history A1 Policy Management Service
| 2023-11-27 | 1.6.1 | Dan Timoney | Release version, |
| | | | Montreal Release |
+------------+----------+-------------+-------------------+
+| 2024-06-20 | 1.7.0 | John Keeney | Release version, |
+| | | | New Delhi Release |
++------------+----------+-------------+-------------------+
Version history A1 Adapter
==========================
@@ -182,6 +185,9 @@ Version history A1 Adapter
| 2023-11-27 | 1.6.1 | Dan Timoney | Release version, |
| | | | Montreal Release |
+------------+----------+-------------+-------------------+
+| 2024-06-20 | 1.7.0 | John Keeney | Release version, |
+| | | | New Delhi Release |
++------------+----------+-------------+-------------------+
Release Data
============
@@ -662,3 +668,23 @@ Montreal, Release 1.6.1
| **Purpose of the delivery** | Improvements, Montreal Release, 1.6.1 version |
| | |
+-----------------------------+-----------------------------------------------------+
+
+
+New Delhi, Release 1.7.0
+------------------------
++-----------------------------+-----------------------------------------------------+
+| **Project** | CCSDK ORAN |
+| | |
++-----------------------------+-----------------------------------------------------+
+| **Repo/commit-ID** | ccsdk-oran/ad800650d7958985a34ac30d77407a9ce7c2de1a |
+| | |
++-----------------------------+-----------------------------------------------------+
+| **Release designation** | New Delhi |
+| | |
++-----------------------------+-----------------------------------------------------+
+| **Release date** | 2024-06-25 |
+| | |
++-----------------------------+-----------------------------------------------------+
+| **Purpose of the delivery** | Improvements, New Delhi Release, 1.7.0 version |
+| | |
++-----------------------------+-----------------------------------------------------+
diff --git a/pom.xml b/pom.xml
index f9b56dd4..c2cd2235 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,8 @@
~ ============LICENSE_START=======================================================
~ ONAP : ccsdk oran
~ ================================================================================
- ~ Copyright (C) 2020 Nordix Foundation. All rights reserved.
+ ~ Copyright (C) 2020-2023 Nordix Foundation. All rights reserved.
+ ~ Copyright (C) 2024 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.
@@ -31,7 +32,7 @@
<groupId>org.onap.ccsdk.oran</groupId>
<artifactId>ccsdk-oran</artifactId>
- <version>1.7.0-SNAPSHOT</version>
+ <version>1.8.0-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
diff --git a/releases/1.7.0-container.yaml b/releases/1.7.0-container.yaml
new file mode 100644
index 00000000..c4b89947
--- /dev/null
+++ b/releases/1.7.0-container.yaml
@@ -0,0 +1,9 @@
+---
+distribution_type: 'container'
+container_release_tag: '1.7.0'
+project: 'ccsdk-oran'
+log_dir: 'ccsdk-oran-maven-docker-stage-master/1256/'
+ref: ad800650d7958985a34ac30d77407a9ce7c2de1a
+containers:
+ - name: 'ccsdk-oran-a1policymanagementservice'
+ version: '1.7.0-STAGING-latest'
diff --git a/releases/1.7.0.yaml b/releases/1.7.0.yaml
new file mode 100644
index 00000000..bf724fbb
--- /dev/null
+++ b/releases/1.7.0.yaml
@@ -0,0 +1,5 @@
+---
+distribution_type: 'maven'
+version: '1.7.0'
+project: 'ccsdk-oran'
+log_dir: 'ccsdk-oran-maven-stage-master/208/'
diff --git a/version.properties b/version.properties
index 6b980ff5..553bda22 100644
--- a/version.properties
+++ b/version.properties
@@ -5,7 +5,7 @@
release_name=1
-sprint_number=7
+sprint_number=8
feature_revision=0
base_version=${release_name}.${sprint_number}.${feature_revision}