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'
summary: Query Near-RT RIC information
tags:
- NearRT-RIC Repository
- /policytypes:
+ /policy-types:
get:
operationId: getPolicyTypes
parameters:
description: Query policy type identities
tags:
- A1 Policy Management
- /policytypes/{policyTypeId}:
+ /policy-types/{policyTypeId}:
get:
operationId: getPolicyTypeDefinition
parameters:
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
'rApp ID'
policyObject:
$ref: '#/components/schemas/PolicyObject'
- statusNotificationUri:
- description: Callback URI for policy status updates
- type: string
policyTypeId:
description: identity of the policy type
type: string
"description" : "Information about policy types"
},
"policy_info" : {
- "required" : [ "policy_data", "policy_id", "policytype_id", "ric_id", "service_id" ],
+ "required" : [ "policy_data", "policy_id", "policytype_id", "ric_id" ],
"type" : "object",
"properties" : {
"ric_id" : {
},
"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."
+ "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",
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
required:
- ric_id
- policy_id
- - service_id
- policy_data
- policytype_id
type: object
}
};
defs["policy_info"] = {
- "required" : [ "policy_data", "policy_id", "policytype_id", "ric_id", "service_id" ],
+ "required" : [ "policy_data", "policy_id", "policytype_id", "ric_id" ],
"type" : "object",
"properties" : {
"ric_id" : {
},
"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."
+ "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",
# 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.
# 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:
- tracing:
- 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
+ # 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:
+ 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}
sampler:
jaeger_remote:
endpoint: ${ONAP_OTEL_SAMPLER_JAEGER_REMOTE_ENDPOINT:http://jaeger:14250}
- exporter:
- otlp:
- traces:
- protocol: ${ONAP_OTEL_EXPORTER_PROTOCOL:grpc}
- endpoint: ${ONAP_OTEL_EXPORTER_ENDPOINT:http://jaeger:4317}
- metrics:
- exporter: none
- logs:
- exporter: none
+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
+ main:
+ allow-bean-definition-overriding: true
+ profiles:
+ active: prod
+springdoc:
+ show-actuator: true
\ No newline at end of file
"description" : "Information about policy types"
},
"policy_info" : {
- "required" : [ "policy_data", "policy_id", "policytype_id", "ric_id", "service_id" ],
+ "required" : [ "policy_data", "policy_id", "policytype_id", "ric_id" ],
"type" : "object",
"properties" : {
"ric_id" : {
},
"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."
+ "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",
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
required:
- ric_id
- policy_id
- - service_id
- policy_data
- policytype_id
type: object
-Subproject commit ad800650d7958985a34ac30d77407a9ce7c2de1a
+Subproject commit a52529e792b91d937a4bc5d565636a05fa41a1f7
* ========================LICENSE_END===================================
-->
<project
- xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
- <version>3.2.5</version>
- <relativePath />
+ <version>3.3.2</version>
+ <relativePath/>
</parent>
<groupId>org.o-ran-sc.nonrtric.plt</groupId>
<artifactId>a1policymanagementservice</artifactId>
</repositories>
<properties>
<java.version>17</java.version>
- <software.amazon.awssdk.version>2.20.12</software.amazon.awssdk.version>
- <json.version>20231013</json.version>
- <commons-io.version>2.14.0</commons-io.version>
- <guava.version>32.0.1-jre</guava.version>
+ <software.amazon.awssdk.version>2.27.8</software.amazon.awssdk.version>
+ <json.version>20240303</json.version>
+ <commons-io.version>2.16.1</commons-io.version>
+ <guava.version>33.3.0-jre</guava.version>
<surefire-maven-plugin.version>3.0.0-M8</surefire-maven-plugin.version>
<surefire-report-plugin.version>3.0.0-M8</surefire-report-plugin.version>
<maven-compiler-plugin.version>3.10.0</maven-compiler-plugin.version>
<sonar-maven-plugin.version>3.7.0.1746</sonar-maven-plugin.version>
<jacoco-maven-plugin.version>0.8.8</jacoco-maven-plugin.version>
<exec-maven-plugin.version>3.1.0</exec-maven-plugin.version>
+ <localstack.version>1.20.1</localstack.version>
+ <junit.jupiter.version>1.20.1</junit.jupiter.version>
+ <gson.version>2.10.1</gson.version>
+ <javax.annotation-api.version>1.3.2</javax.annotation-api.version>
+ <everit-json-schema.version>1.14.4</everit-json-schema.version>
+ <jackson-databind-nullable.version>0.2.6</jackson-databind-nullable.version>
+ <validation-api.version>2.0.1.Final</validation-api.version>
+ <swagger-annotations.version>2.2.15</swagger-annotations.version>
+ <spring-boot-actuator-autoconfigure.version>3.3.2</spring-boot-actuator-autoconfigure.version>
+ <formatter-maven-plugin.version>2.22.0</formatter-maven-plugin.version>
+ <spotless-maven-plugin.version>2.35.0</spotless-maven-plugin.version>
+ <springdoc.version>2.0.2</springdoc.version>
+ <docker-maven-plugin>0.30.0</docker-maven-plugin>
+ <ccsdk.project.version>${project.version}</ccsdk.project.version>
+ <mapstruct.version>1.6.0</mapstruct.version>
+ <allowskiptests>false</allowskiptests>
</properties>
<dependencies>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
- <version>2.0.1.Final</version>
+ <version>${validation-api.version}</version>
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
- <version>1.3.2</version>
+ <version>${javax.annotation-api.version}</version>
</dependency>
<dependency>
<groupId>io.swagger.core.v3</groupId>
<artifactId>swagger-annotations</artifactId>
- <version>2.2.15</version>
+ <version>${swagger-annotations.version}</version>
</dependency>
<dependency>
<groupId>org.openapitools</groupId>
<artifactId>jackson-databind-nullable</artifactId>
- <version>0.2.4</version>
+ <version>${jackson-databind-nullable.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<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>
<optional>true</optional>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>org.testcontainers</groupId>
+ <artifactId>junit-jupiter</artifactId>
+ <version>${junit.jupiter.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.testcontainers</groupId>
+ <artifactId>localstack</artifactId>
+ <version>${localstack.version}</version>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<dependency>
<groupId>com.github.erosb</groupId>
<artifactId>everit-json-schema</artifactId>
- <version>1.14.0</version>
+ <version>${everit-json-schema.version}</version>
</dependency>
- <!-- For Tracing -->
+ <!-- For Tracing -->
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-tracing-bridge-otel</artifactId>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-actuator-autoconfigure</artifactId>
+ <version>3.3.0</version>
</dependency>
</dependencies>
<dependencyManagement>
<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>
<artifactId>maven-surefire-plugin</artifactId>
<version>${surefire-maven-plugin.version}</version>
<configuration>
- <skipTests>false</skipTests>
+ <skipTests>${allowskiptests}</skipTests>
</configuration>
</plugin>
<plugin>
</execution>
<execution>
<id>generate-openapi-policy-api</id>
- <phase>generate-sources</phase>
+ <phase>generate-sources </phase>
<goals>
<goal>generate</goal>
</goals>
</configOptions>
</configuration>
</execution>
- </executions>
+ </executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>