diff options
-rw-r--r-- | a1-policy-management/pom.xml | 121 | ||||
-rw-r--r-- | a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/aspect/LogAspectTest.java | 6 | ||||
-rw-r--r-- | docs/offeredapis/swagger/pms-api.json | 18 | ||||
-rw-r--r-- | docs/offeredapis/swagger/pms-api.yaml | 1061 |
4 files changed, 642 insertions, 564 deletions
diff --git a/a1-policy-management/pom.xml b/a1-policy-management/pom.xml index 81a3b5cb..495b882d 100644 --- a/a1-policy-management/pom.xml +++ b/a1-policy-management/pom.xml @@ -39,21 +39,16 @@ <properties> <java.version.source>11</java.version.source> <java.version.target>11</java.version.target> - <springfox.version>2.9.2</springfox.version> - <immutable.version>2.8.2</immutable.version> + <springfox.version>2.9.2</springfox.version><!-- Do not change to version 3.0.0! Will break the generated json. --> + <immutable.version>2.8.8</immutable.version> <sdk.version>1.1.6</sdk.version> - <swagger.version>2.0.0</swagger.version> - <json.version>20190722</json.version> - <commons-net.version>3.6</commons-net.version> + <json.version>20200518</json.version> + <formatter-maven-plugin.version>2.13.0</formatter-maven-plugin.version> + <spotless-maven-plugin.version>2.5.0</spotless-maven-plugin.version> <commons-io.version>2.5</commons-io.version> - <maven.compile.plugin.version>3.8.0</maven.compile.plugin.version> - <formatter-maven-plugin.version>2.8.1</formatter-maven-plugin.version> - <spotless-maven-plugin.version>1.18.0</spotless-maven-plugin.version> <docker-maven-plugin>0.30.0</docker-maven-plugin> - <version.dmaap>1.1.11</version.dmaap> - <javax.ws.rs-api.version>2.1.1</javax.ws.rs-api.version> - <surefire-maven-plugin.version>2.22.2</surefire-maven-plugin.version><!-- Version must be this for tests to be run. Do not remove! --> - <jacoco-maven-plugin.version>0.8.5</jacoco-maven-plugin.version> + <surefire-maven-plugin.version>3.0.0-M5</surefire-maven-plugin.version><!-- Version must be higher than version 2.19.1 that is defined in the parent pom for JUnit 5 tests to be run. Do not remove! --> + <jacoco-maven-plugin.version>0.8.6</jacoco-maven-plugin.version> <exec.skip>true</exec.skip> <ccsdk.project.version>${project.version}</ccsdk.project.version> </properties> @@ -61,42 +56,71 @@ <dependencies> <dependency> <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-web</artifactId> + <artifactId>spring-boot</artifactId> </dependency> <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-thymeleaf</artifactId> + <groupId>org.springframework</groupId> + <artifactId>spring-beans</artifactId> </dependency> <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-webflux</artifactId> + <groupId>org.springframework</groupId> + <artifactId>spring-context</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-aop</artifactId> + <artifactId>spring-boot-autoconfigure</artifactId> </dependency> <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-devtools</artifactId> - <optional>true</optional> + <groupId>org.springframework</groupId> + <artifactId>spring-web</artifactId> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-webmvc</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webflux</artifactId> </dependency> <dependency> - <groupId>io.swagger.core.v3</groupId> - <artifactId>swagger-jaxrs2</artifactId> - <version>${swagger.version}</version> + <groupId>io.springfox</groupId> + <artifactId>springfox-spring-web</artifactId> + <version>${springfox.version}</version> + </dependency> + <dependency> + <groupId>io.springfox</groupId> + <artifactId>springfox-spi</artifactId> + <version>${springfox.version}</version> + </dependency> + <dependency> + <groupId>io.springfox</groupId> + <artifactId>springfox-core</artifactId> + <version>${springfox.version}</version> + </dependency> + <dependency> + <groupId>org.aspectj</groupId> + <artifactId>aspectjweaver</artifactId> + </dependency> + <dependency> + <groupId>com.fasterxml.jackson.core</groupId> + <artifactId>jackson-databind</artifactId> + </dependency> + <dependency> + <groupId>org.apache.tomcat.embed</groupId> + <artifactId>tomcat-embed-core</artifactId> + </dependency> + <dependency> + <groupId>org.onap.dcaegen2.services.sdk.rest.services</groupId> + <artifactId>cbs-client</artifactId> + <version>${sdk.version}</version> </dependency> <dependency> - <groupId>io.swagger.core.v3</groupId> - <artifactId>swagger-jaxrs2-servlet-initializer</artifactId> - <version>${swagger.version}</version> + <groupId>javax.validation</groupId> + <artifactId>validation-api</artifactId> </dependency> <dependency> - <groupId>javax.xml.bind</groupId> - <artifactId>jaxb-api</artifactId> + <groupId>com.google.guava</groupId> + <artifactId>guava</artifactId> </dependency> <dependency> <groupId>org.immutables</groupId> @@ -115,33 +139,15 @@ <version>${json.version}</version> </dependency> <dependency> - <groupId>commons-net</groupId> - <artifactId>commons-net</artifactId> - <version>${commons-net.version}</version> - </dependency> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-configuration-processor</artifactId> - <optional>true</optional> - </dependency> - <dependency> - <groupId>org.onap.dcaegen2.services.sdk.rest.services</groupId> - <artifactId>cbs-client</artifactId> - <version>${sdk.version}</version> - </dependency> - <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <scope>provided</scope> </dependency> - <dependency> - <groupId>javax.ws.rs</groupId> - <artifactId>javax.ws.rs-api</artifactId> - </dependency> <!-- Actuator dependencies --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> + <scope>runtime</scope> </dependency> <!--REQUIRED TO GENERATE DOCUMENTATION --> <dependency> @@ -153,10 +159,29 @@ <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>${springfox.version}</version> + <scope>runtime</scope> + </dependency> + <!-- For development help --> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-devtools</artifactId> + <optional>true</optional> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-configuration-processor</artifactId> + <optional>true</optional> + <scope>runtime</scope> </dependency> <!-- TEST --> <dependency> <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-test</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> diff --git a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/aspect/LogAspectTest.java b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/aspect/LogAspectTest.java index 339a8252..65dc8b5a 100644 --- a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/aspect/LogAspectTest.java +++ b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/aspect/LogAspectTest.java @@ -32,20 +32,14 @@ import ch.qos.logback.core.read.ListAppender; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.reflect.MethodSignature; -import org.junit.Rule; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; import org.mockito.junit.jupiter.MockitoExtension; import org.onap.ccsdk.oran.a1policymanagementservice.utils.LoggingUtils; @ExtendWith(MockitoExtension.class) class LogAspectTest { - @Rule - MockitoRule mockitoRule = MockitoJUnit.rule(); - @Mock private ProceedingJoinPoint proceedingJoinPoint; diff --git a/docs/offeredapis/swagger/pms-api.json b/docs/offeredapis/swagger/pms-api.json index f5cc0165..5e9e5f06 100644 --- a/docs/offeredapis/swagger/pms-api.json +++ b/docs/offeredapis/swagger/pms-api.json @@ -79,7 +79,7 @@ "summary": "Returns service information", "deprecated": false, "produces": ["*/*"], - "operationId": "getServicesUsingGET", + "operationId": "getServicesUsingGET_1", "responses": { "200": { "schema": { @@ -109,7 +109,7 @@ "summary": "Delete a service", "deprecated": false, "produces": ["*/*"], - "operationId": "deleteServiceUsingDELETE", + "operationId": "deleteServiceUsingDELETE_1", "responses": { "200": { "schema": {"type": "string"}, @@ -141,7 +141,7 @@ "summary": "Unregister a service", "deprecated": false, "produces": ["*/*"], - "operationId": "deleteServiceUsingDELETE_1", + "operationId": "deleteServiceUsingDELETE", "responses": { "200": {"description": "Not used"}, "401": {"description": "Unauthorized"}, @@ -694,7 +694,7 @@ "deprecated": false, "produces": ["application/json"], "description": "Either information about a registered service with given identity or all registered services are returned.", - "operationId": "getServicesUsingGET_1", + "operationId": "getServicesUsingGET", "responses": { "200": { "schema": {"$ref": "#/definitions/service_list_v2"}, @@ -722,7 +722,7 @@ "deprecated": false, "produces": ["*/*"], "description": "Registering a service is needed to:<ul><li>Get callbacks.<\/li><li>Activate supervision of the service. If a service is inactive, its policies will be deleted.<\/li><\/ul>", - "operationId": "putServiceUsingPUT_1", + "operationId": "putServiceUsingPUT", "responses": { "200": { "schema": {"type": "object"}, @@ -782,7 +782,7 @@ "summary": "Heartbeat from a service", "deprecated": false, "produces": ["*/*"], - "operationId": "keepAliveServiceUsingPUT", + "operationId": "keepAliveServiceUsingPUT_1", "responses": { "200": { "schema": {"type": "string"}, @@ -808,7 +808,7 @@ "summary": "Heartbeat indicates that the service is running", "deprecated": false, "produces": ["*/*"], - "operationId": "keepAliveServiceUsingPUT_1", + "operationId": "keepAliveServiceUsingPUT", "responses": { "200": { "schema": {"type": "object"}, @@ -939,7 +939,7 @@ "summary": "Register a service", "deprecated": false, "produces": ["*/*"], - "operationId": "putServiceUsingPUT", + "operationId": "putServiceUsingPUT_1", "responses": { "200": { "schema": {"type": "string"}, @@ -1045,7 +1045,7 @@ } } }, - "host": "localhost:49657", + "host": "localhost:43299", "definitions": { "error_information": { "description": "Problem as defined in https://tools.ietf.org/html/rfc7807", diff --git a/docs/offeredapis/swagger/pms-api.yaml b/docs/offeredapis/swagger/pms-api.yaml index 245e52c2..024a28af 100644 --- a/docs/offeredapis/swagger/pms-api.yaml +++ b/docs/offeredapis/swagger/pms-api.yaml @@ -31,18 +31,38 @@ paths: required: false tags: - A1 Policy Management Version 1.0 - /v2/policy: + /v2/status: get: - summary: Returns a policy configuration + summary: Returns status and statistics of this service deprecated: false produces: - application/json - operationId: getPolicyUsingGET + operationId: getStatusUsingGET responses: '200': schema: - $ref: '#/definitions/json_object' - description: Policy found + $ref: '#/definitions/status_info_v2' + description: Service is living + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + tags: + - A1 Policy Management Version 2.0 (in progress) + /v2/policy-types: + get: + summary: Query policy type identities + deprecated: false + produces: + - application/json + operationId: getPolicyTypesUsingGET + responses: + '200': + schema: + $ref: '#/definitions/policytype_id_list_v2' + description: Policy type IDs '401': description: Unauthorized '403': @@ -50,22 +70,142 @@ paths: '404': schema: $ref: '#/definitions/error_information' + description: Near-RT RIC is not found + parameters: + - in: query + allowEmptyValue: false + name: ric_id + description: The identity of the Near-RT RIC to get types for. + type: string + required: false + tags: + - A1 Policy Management Version 2.0 (in progress) + /services: + get: + summary: Returns service information + deprecated: false + produces: + - '*/*' + operationId: getServicesUsingGET + responses: + '200': + schema: + type: array + items: + $ref: '#/definitions/service_status_v1' + description: OK + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + schema: + type: string + description: Service is not found + parameters: + - in: query + allowEmptyValue: false + name: name + description: The name of the service + type: string + required: false + tags: + - A1 Policy Management Version 1.0 + delete: + summary: Delete a service + deprecated: false + produces: + - '*/*' + operationId: deleteServiceUsingDELETE + responses: + '200': + schema: + type: string + description: OK + '204': + schema: + type: string + description: Service deleted + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + schema: + type: string + description: Service not found + parameters: + - in: query + allowEmptyValue: false + name: name + description: The name of the service + type: string + required: true + tags: + - A1 Policy Management Version 1.0 + '/v2/services/{service_id}': + delete: + summary: Unregister a service + deprecated: false + produces: + - '*/*' + operationId: deleteServiceUsingDELETE_1 + responses: + '200': + description: Not used + '204': + schema: + type: object + description: Service unregistered + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + schema: + $ref: '#/definitions/error_information' + description: Service not found + parameters: + - in: path + name: service_id + description: service_id + type: string + required: true + tags: + - A1 Policy Management Version 2.0 (in progress) + /policy: + get: + summary: Returns a policy configuration + deprecated: false + produces: + - '*/*' + operationId: getPolicyUsingGET_1 + responses: + '200': + schema: + type: object + description: Policy found + '401': + description: Unauthorized + '403': + description: Forbidden + '404': description: Policy is not found parameters: - in: query allowEmptyValue: false - name: policy_id + name: id description: The identity of the policy instance. type: string required: true tags: - - A1 Policy Management Version 2.0 (in progress) + - A1 Policy Management Version 1.0 delete: summary: Delete a policy deprecated: false produces: - '*/*' - operationId: deletePolicyUsingDELETE + operationId: deletePolicyUsingDELETE_1 responses: '200': description: Not used @@ -77,27 +217,27 @@ paths: description: Forbidden '404': schema: - $ref: '#/definitions/error_information' + type: string description: Policy is not found '423': schema: - $ref: '#/definitions/error_information' + type: string description: Near-RT RIC is not operational parameters: - in: query allowEmptyValue: false - name: policy_id + name: id description: The identity of the policy instance. type: string required: true tags: - - A1 Policy Management Version 2.0 (in progress) + - A1 Policy Management Version 1.0 put: - summary: Create or update a policy + summary: Put a policy deprecated: false produces: - - application/json - operationId: putPolicyUsingPUT + - '*/*' + operationId: putPolicyUsingPUT_1 responses: '200': description: Policy updated @@ -109,13 +249,19 @@ paths: description: Forbidden '404': schema: - $ref: '#/definitions/error_information' + type: string description: Near-RT RIC or policy type is not found '423': schema: - $ref: '#/definitions/error_information' + type: string description: Near-RT RIC is not operational parameters: + - in: query + allowEmptyValue: false + name: id + description: The identity of the policy instance. + type: string + required: true - schema: type: object in: body @@ -124,26 +270,14 @@ paths: required: true - in: query allowEmptyValue: false - name: policy_id - description: The identity of the policy instance. - type: string - required: true - - in: query - allowEmptyValue: false - name: policytype_id - description: The identity of the policy type. - type: string - required: false - - in: query - allowEmptyValue: false - name: ric_id - description: The identity of the Near-RT RIC where the policy will be created. + name: ric + description: The name of the Near-RT RIC where the policy will be created. type: string required: true - in: query allowEmptyValue: false - name: service_id - description: The identity of the service creating the policy. + name: service + description: The name of the service creating the policy. type: string required: true - default: false @@ -151,47 +285,33 @@ paths: allowEmptyValue: false name: transient x-example: false - description: If the policy is transient or not (boolean defaulted to false). A policy is transient if it will not be recreated in the Near-RT RIC when it has been lost (for instance due to a restart) + description: If the policy is transient or not (boolean defaulted to false). A policy is transient if it will be forgotten when the service needs to reconnect to the Near-RT RIC. type: boolean required: false + - in: query + allowEmptyValue: false + name: type + description: The name of the policy type. + type: string + required: false tags: - - A1 Policy Management Version 2.0 (in progress) + - A1 Policy Management Version 1.0 consumes: - application/json - /v2/status: - get: - summary: Returns status and statistics of this service - deprecated: false - produces: - - application/json - operationId: getStatusUsingGET_1 - responses: - '200': - schema: - $ref: '#/definitions/status_info_v2' - description: Service is living - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - A1 Policy Management Version 2.0 (in progress) - /policy_ids: + /policies: get: - summary: 'Query policies, only policy identities returned' + summary: Query policies deprecated: false produces: - '*/*' - operationId: getPolicyIdsUsingGET_1 + operationId: getPoliciesUsingGET responses: '200': schema: type: array items: - type: string - description: Policy identitiess + $ref: '#/definitions/policy_info_v1' + description: Policies '401': description: Unauthorized '403': @@ -221,49 +341,45 @@ paths: required: false tags: - A1 Policy Management Version 1.0 - /policy_schemas: + '/v2/policies/{policy_id}': get: - summary: Returns policy type schema definitions + summary: Returns a policy deprecated: false produces: - - '*/*' - operationId: getPolicySchemasUsingGET_1 + - application/json + operationId: getPolicyUsingGET responses: '200': schema: - type: array - items: - type: object - description: Policy schemas + $ref: '#/definitions/policy_info_v2' + description: Policy found '401': description: Unauthorized '403': description: Forbidden '404': schema: - type: string - description: Near-RT RIC is not found + $ref: '#/definitions/error_information' + description: Policy is not found parameters: - - in: query - allowEmptyValue: false - name: ric - description: The name of the Near-RT RIC to get the definitions for. + - in: path + name: policy_id + description: policy_id type: string - required: false + required: true tags: - - A1 Policy Management Version 1.0 - /v2/policy-types: - get: - summary: Query policy type identities + - A1 Policy Management Version 2.0 (in progress) + delete: + summary: Delete a policy deprecated: false produces: - - application/json - operationId: getPolicyTypesUsingGET + - '*/*' + operationId: deletePolicyUsingDELETE responses: '200': - schema: - $ref: '#/definitions/policy_type_id_list_v2' - description: Policy type IDs + description: Not used + '204': + description: Policy deleted '401': description: Unauthorized '403': @@ -271,281 +387,290 @@ paths: '404': schema: $ref: '#/definitions/error_information' - description: Near-RT RIC is not found + description: Policy is not found + '423': + schema: + $ref: '#/definitions/error_information' + description: Near-RT RIC is not operational parameters: - - in: query - allowEmptyValue: false - name: ric_id - description: The identity of the Near-RT RIC to get types for. + - in: path + name: policy_id + description: policy_id type: string - required: false + required: true tags: - A1 Policy Management Version 2.0 (in progress) - /v2/services: + /policy_schema: get: - summary: Returns service information + summary: Returns one policy type schema definition deprecated: false produces: - - application/json - description: Either information about a registered service with given identity or all registered services are returned. - operationId: getServicesUsingGET + - '*/*' + operationId: getPolicySchemaUsingGET responses: '200': schema: - $ref: '#/definitions/service_list_v2' - description: OK + type: object + description: Policy schema '401': description: Unauthorized '403': description: Forbidden '404': schema: - $ref: '#/definitions/error_information' - description: Service is not found + type: string + description: The policy type is not found parameters: - in: query allowEmptyValue: false - name: service_id - description: The identity of the service + name: id + description: The identity of the policy type to get the definition for. type: string - required: false + required: true tags: - - A1 Policy Management Version 2.0 (in progress) - delete: - summary: Unregister a service + - A1 Policy Management Version 1.0 + /rics: + get: + summary: Query Near-RT RIC information deprecated: false produces: - '*/*' - operationId: deleteServiceUsingDELETE + operationId: getRicsUsingGET responses: '200': - description: Not used - '204': schema: - type: object - description: Service unregistered + type: array + items: + $ref: '#/definitions/ric_info_v1' + description: OK '401': description: Unauthorized '403': description: Forbidden '404': schema: - $ref: '#/definitions/error_information' - description: Service not found + type: string + description: Policy type is not found parameters: - in: query allowEmptyValue: false - name: service_id - description: The idenitity of the service + name: policyType + description: The name of the policy type type: string - required: true + required: false tags: - - A1 Policy Management Version 2.0 (in progress) - put: - summary: Register a service + - A1 Policy Management Version 1.0 + /policy_status: + get: + summary: Returns a policy status deprecated: false produces: - '*/*' - description: 'Registering a service is needed to:<ul><li>Get callbacks.</li><li>Activate supervision of the service. If a service is inactive, its policies will be deleted.</li></ul>' - operationId: putServiceUsingPUT + operationId: getPolicyStatusUsingGET_1 responses: '200': schema: type: object - description: Service updated - '201': - schema: - type: object - description: Service created - '400': - schema: - $ref: '#/definitions/error_information' - description: The ServiceRegistrationInfo is not accepted + description: Policy status '401': description: Unauthorized '403': description: Forbidden '404': - description: Not Found + schema: + type: string + description: Policy is not found parameters: - - schema: - $ref: '#/definitions/service_registration_info_v2' - in: body - name: registrationInfo - description: registrationInfo + - in: query + allowEmptyValue: false + name: id + description: The identity of the policy. + type: string required: true tags: - - A1 Policy Management Version 2.0 (in progress) - consumes: - - application/json - /services: + - A1 Policy Management Version 1.0 + '/v2/policies/{policy_id}/status': get: - summary: Returns service information + summary: Returns a policy status deprecated: false produces: - - '*/*' - operationId: getServicesUsingGET_1 + - application/json + operationId: getPolicyStatusUsingGET responses: '200': schema: - type: array - items: - $ref: '#/definitions/service_status_v1' - description: OK + $ref: '#/definitions/policy_status_info_v2' + description: Policy status '401': description: Unauthorized '403': description: Forbidden '404': schema: - type: string - description: Service is not found + $ref: '#/definitions/error_information' + description: Policy is not found parameters: - - in: query - allowEmptyValue: false - name: name - description: The name of the service + - in: path + name: policy_id + description: policy_id type: string - required: false + required: true tags: - - A1 Policy Management Version 1.0 - delete: - summary: Delete a service + - A1 Policy Management Version 2.0 (in progress) + /v2/rics: + get: + summary: Query Near-RT RIC information deprecated: false produces: - - '*/*' - operationId: deleteServiceUsingDELETE_1 + - application/json + description: The call returns all Near-RT RICs that supports a given policy type identity + operationId: getRicsUsingGET_1 responses: '200': schema: - type: string + $ref: '#/definitions/ric_info_list_v2' description: OK - '204': - schema: - type: string - description: Service deleted '401': description: Unauthorized '403': description: Forbidden '404': schema: - type: string - description: Service not found + $ref: '#/definitions/error_information' + description: Policy type is not found parameters: - in: query allowEmptyValue: false - name: name - description: The name of the service + name: policytype_id + description: 'The identity of a policy type. If given, all Near-RT RICs supporteing the policy type are returned' type: string - required: true + required: false tags: - - A1 Policy Management Version 1.0 - /ric: - get: - summary: Returns the name of a RIC managing one Mananged Element + - A1 Policy Management Version 2.0 (in progress) + /v2/configuration: + put: + summary: Replace the current configuration with the given configuration deprecated: false produces: - '*/*' - operationId: getRicUsingGET + operationId: putConfigurationUsingPUT responses: '200': + description: Configuration updated + '201': + description: Created + '400': schema: - type: string - description: Near-RT RIC is found + $ref: '#/definitions/error_information' + description: Invalid configuration provided '401': description: Unauthorized '403': description: Forbidden '404': + description: Not Found + '500': schema: - type: string - description: Near-RT RIC is not found + $ref: '#/definitions/error_information' + description: Something went wrong when replacing the configuration. Try again. parameters: - - in: query - allowEmptyValue: false - name: managedElementId - description: The identity of the Managed Element - type: string + - schema: + type: string + in: body + name: configuration + description: configuration required: true tags: - - A1 Policy Management Version 1.0 - /services/keepalive: - put: - summary: Heartbeat from a service + - A1 Policy Management Configuration + consumes: + - application/json + /policy_ids: + get: + summary: 'Query policies, only policy identities returned' deprecated: false produces: - '*/*' - operationId: keepAliveServiceUsingPUT_1 + operationId: getPolicyIdsUsingGET_1 responses: '200': schema: - type: string - description: 'Service supervision timer refreshed, OK' - '201': - description: Created + type: array + items: + type: string + description: Policy identitiess '401': description: Unauthorized '403': description: Forbidden '404': - description: 'The service is not found, needs re-registration' + schema: + type: string + description: Near-RT RIC or type not found parameters: - in: query allowEmptyValue: false - name: name - description: The name of the service + name: ric + description: The name of the Near-RT RIC to get policies for. type: string - required: true + required: false + - in: query + allowEmptyValue: false + name: service + description: The name of the service to get policies for. + type: string + required: false + - in: query + allowEmptyValue: false + name: type + description: The name of the policy type to get policies for. + type: string + required: false tags: - A1 Policy Management Version 1.0 - consumes: - - application/json - /v2/services/keepalive: - put: - summary: Heartbeat indicates that the service is running + /policy_schemas: + get: + summary: Returns policy type schema definitions deprecated: false produces: - '*/*' - operationId: keepAliveServiceUsingPUT + operationId: getPolicySchemasUsingGET responses: '200': schema: - type: object - description: 'Service supervision timer refreshed, OK' - '201': - description: Created + type: array + items: + type: object + description: Policy schemas '401': description: Unauthorized '403': description: Forbidden '404': schema: - $ref: '#/definitions/error_information' - description: 'The service is not found, needs re-registration' + type: string + description: Near-RT RIC is not found parameters: - in: query allowEmptyValue: false - name: service_id - description: The identity of the service + name: ric + description: The name of the Near-RT RIC to get the definitions for. type: string - required: true + required: false tags: - - A1 Policy Management Version 2.0 (in progress) - consumes: - - application/json - /v2/policy-schemas: + - A1 Policy Management Version 1.0 + /v2/policy-instances: get: - summary: Returns policy type schema definitions + summary: Query for A1 policy instances deprecated: false produces: - application/json - operationId: getPolicySchemasUsingGET + 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: getPolicyInstancesUsingGET responses: '200': schema: - $ref: '#/definitions/policy_schema_list_v2' - description: Policy schemas + $ref: '#/definitions/policy_info_list_v2' + description: Policies '401': description: Unauthorized '403': @@ -553,35 +678,41 @@ paths: '404': schema: $ref: '#/definitions/error_information' - description: Near-RT RIC is not found + description: 'Near-RT RIC, policy type or service not found' parameters: - in: query allowEmptyValue: false name: policytype_id - description: 'The identity of the policy type to get the definition for. When this parameter is given, max one schema will be returned' + description: The identity of the policy type to get policies for. type: string - required: true + required: false - in: query allowEmptyValue: false name: ric_id - description: The identity of the Near-RT RIC to get the definitions for. + description: The identity of the Near-RT RIC to get policies for. + type: string + required: false + - in: query + allowEmptyValue: false + name: service_id + description: The identity of the service to get policies for. type: string required: false tags: - A1 Policy Management Version 2.0 (in progress) - /v2/ric: + /v2/services: get: - summary: Returns info for a Near-RT RIC + summary: Returns service information deprecated: false produces: - application/json - description: Either a Near-RT RIC identity or a Mananged Element identity can be specified.<br>The intention with Mananged Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU). - operationId: getRicUsingGET_1 + description: Either information about a registered service with given identity or all registered services are returned. + operationId: getServicesUsingGET_1 responses: '200': schema: - $ref: '#/definitions/ric_info_v2' - description: Near-RT RIC is found + $ref: '#/definitions/service_list_v2' + description: OK '401': description: Unauthorized '403': @@ -589,60 +720,65 @@ paths: '404': schema: $ref: '#/definitions/error_information' - description: Near-RT RIC is not found + description: Service is not found parameters: - in: query allowEmptyValue: false - name: managed_element_id - description: 'The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.' - type: string - required: false - - in: query - allowEmptyValue: false - name: ric_id - description: The identity of a Near-RT RIC to get information for. + name: service_id + description: The identity of the service type: string required: false tags: - A1 Policy Management Version 2.0 (in progress) - /policy: - get: - summary: Returns a policy configuration + put: + summary: Register a service deprecated: false produces: - '*/*' - operationId: getPolicyUsingGET_1 + description: 'Registering a service is needed to:<ul><li>Get callbacks.</li><li>Activate supervision of the service. If a service is inactive, its policies will be deleted.</li></ul>' + operationId: putServiceUsingPUT_1 responses: '200': schema: type: object - description: Policy found + description: Service updated + '201': + schema: + type: object + description: Service created + '400': + schema: + $ref: '#/definitions/error_information' + description: The ServiceRegistrationInfo is not accepted '401': description: Unauthorized '403': description: Forbidden '404': - description: Policy is not found + description: Not Found parameters: - - in: query - allowEmptyValue: false - name: id - description: The identity of the policy instance. - type: string + - schema: + $ref: '#/definitions/service_registration_info_v2' + in: body + name: registrationInfo + description: registrationInfo required: true tags: - - A1 Policy Management Version 1.0 - delete: - summary: Delete a policy + - A1 Policy Management Version 2.0 (in progress) + consumes: + - application/json + /ric: + get: + summary: Returns the name of a RIC managing one Mananged Element deprecated: false produces: - '*/*' - operationId: deletePolicyUsingDELETE_1 + operationId: getRicUsingGET responses: '200': - description: Not used - '204': - description: Policy deleted + schema: + type: string + description: Near-RT RIC is found '401': description: Unauthorized '403': @@ -650,119 +786,61 @@ paths: '404': schema: type: string - description: Policy is not found - '423': - schema: - type: string - description: Near-RT RIC is not operational + description: Near-RT RIC is not found parameters: - in: query allowEmptyValue: false - name: id - description: The identity of the policy instance. + name: managedElementId + description: The identity of the Managed Element type: string required: true tags: - A1 Policy Management Version 1.0 + /services/keepalive: put: - summary: Put a policy + summary: Heartbeat from a service deprecated: false produces: - '*/*' - operationId: putPolicyUsingPUT_1 + operationId: keepAliveServiceUsingPUT responses: '200': - description: Policy updated + schema: + type: string + description: 'Service supervision timer refreshed, OK' '201': - description: Policy created + description: Created '401': description: Unauthorized '403': description: Forbidden '404': - schema: - type: string - description: Near-RT RIC or policy type is not found - '423': - schema: - type: string - description: Near-RT RIC is not operational + description: 'The service is not found, needs re-registration' parameters: - in: query allowEmptyValue: false - name: id - description: The identity of the policy instance. - type: string - required: true - - schema: - type: object - in: body - name: jsonBody - description: jsonBody - required: true - - in: query - allowEmptyValue: false - name: ric - description: The name of the Near-RT RIC where the policy will be created. - type: string - required: true - - in: query - allowEmptyValue: false - name: service - description: The name of the service creating the policy. + name: name + description: The name of the service type: string required: true - - default: false - in: query - allowEmptyValue: false - name: transient - x-example: false - description: If the policy is transient or not (boolean defaulted to false). A policy is transient if it will be forgotten when the service needs to reconnect to the Near-RT RIC. - type: boolean - required: false - - in: query - allowEmptyValue: false - name: type - description: The name of the policy type. - type: string - required: false tags: - A1 Policy Management Version 1.0 consumes: - application/json - /status: - get: - summary: Returns status and statistics of this service + '/v2/services/{service_id}/keepalive': + put: + summary: Heartbeat indicates that the service is running deprecated: false produces: - '*/*' - operationId: getStatusUsingGET - responses: - '200': - schema: - type: string - description: Service is living - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - description: Not Found - tags: - - A1 Policy Management Version 1.0 - /v2/policy-ids: - get: - summary: 'Query policies, only policy identities are returned' - deprecated: false - produces: - - application/json - description: 'Returns a list of A1 policies matching given search criteria. <br>If several query parameters are defined, the policies matching all conditions are returned.' - operationId: getPolicyIdsUsingGET + operationId: keepAliveServiceUsingPUT_1 responses: '200': schema: - $ref: '#/definitions/policy_id_list_v2' - description: Policy identities + type: object + description: 'Service supervision timer refreshed, OK' + '201': + description: Created '401': description: Unauthorized '403': @@ -770,83 +848,50 @@ paths: '404': schema: $ref: '#/definitions/error_information' - description: Near-RT RIC or type not found + description: 'The service is not found, needs re-registration' parameters: - - in: query - allowEmptyValue: false - name: policytype_id - description: The identity of the policy type to get policies for. - type: string - required: false - - in: query - allowEmptyValue: false - name: ric_id - description: The identity of the Near-RT RIC to get policies for. - type: string - required: false - - in: query - allowEmptyValue: false + - in: path name: service_id - description: The identity of the service to get policies for. + description: service_id type: string - required: false + required: true tags: - A1 Policy Management Version 2.0 (in progress) - /policies: + consumes: + - application/json + /status: get: - summary: Query policies + summary: Returns status and statistics of this service deprecated: false produces: - '*/*' - operationId: getPoliciesUsingGET_1 + operationId: getStatusUsingGET_1 responses: '200': schema: - type: array - items: - $ref: '#/definitions/policy_info_v1' - description: Policies + type: string + description: Service is living '401': description: Unauthorized '403': description: Forbidden '404': - schema: - type: string - description: Near-RT RIC or type not found - parameters: - - in: query - allowEmptyValue: false - name: ric - description: The name of the Near-RT RIC to get policies for. - type: string - required: false - - in: query - allowEmptyValue: false - name: service - description: The name of the service to get policies for. - type: string - required: false - - in: query - allowEmptyValue: false - name: type - description: The name of the policy type to get policies for. - type: string - required: false + description: Not Found tags: - A1 Policy Management Version 1.0 - /v2/policy-status: + /v2/rics/ric: get: - summary: Returns a policy status + summary: Returns info for one Near-RT RIC deprecated: false produces: - application/json - operationId: getPolicyStatusUsingGET + description: Either a Near-RT RIC identity or a Mananged Element identity can be specified.<br>The intention with Mananged Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU). + operationId: getRicUsingGET_1 responses: '200': schema: - $ref: '#/definitions/json_object' - description: Policy status + $ref: '#/definitions/ric_info_v2' + description: Near-RT RIC is found '401': description: Unauthorized '403': @@ -854,83 +899,87 @@ paths: '404': schema: $ref: '#/definitions/error_information' - description: Policy is not found + description: Near-RT RIC is not found parameters: - in: query allowEmptyValue: false - name: policy_id - description: The identity of the policy. + name: managed_element_id + description: 'The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.' type: string - required: true + required: false + - in: query + allowEmptyValue: false + name: ric_id + description: The identity of a Near-RT RIC to get information for. + type: string + required: false tags: - A1 Policy Management Version 2.0 (in progress) - /policy_schema: - get: - summary: Returns one policy type schema definition + /r-app/pms-callback: + post: + summary: Callback for Near-RT RIC status deprecated: false produces: - - '*/*' - operationId: getPolicySchemaUsingGET + - application/json + description: The URL to this call is registerred at Service registration. + operationId: jobStatusCallbackUsingPOST responses: '200': - schema: - type: object - description: Policy schema + description: OK + '201': + description: Created '401': description: Unauthorized '403': description: Forbidden '404': - schema: - type: string - description: The policy type is not found + description: Not Found parameters: - - in: query - allowEmptyValue: false - name: id - description: The identity of the policy type to get the definition for. - type: string + - schema: + $ref: '#/definitions/service_callback_info_v2' + in: body + name: body + description: body required: true tags: - - A1 Policy Management Version 1.0 - /rics: + - R-App Callbacks + consumes: + - application/json + '/v2/policy-types/{policytype_id}': get: - summary: Query Near-RT RIC information + summary: Returns a policy type definition deprecated: false produces: - - '*/*' - operationId: getRicsUsingGET + - application/json + operationId: getPolicyTypeUsingGET responses: '200': schema: - type: array - items: - $ref: '#/definitions/ric_info_v1' - description: OK + $ref: '#/definitions/policytype_v2' + description: Policy type '401': description: Unauthorized '403': description: Forbidden '404': schema: - type: string + $ref: '#/definitions/error_information' description: Policy type is not found parameters: - - in: query - allowEmptyValue: false - name: policyType - description: The name of the policy type + - in: path + name: policytype_id + description: policytype_id type: string - required: false + required: true tags: - - A1 Policy Management Version 1.0 + - A1 Policy Management Version 2.0 (in progress) /service: put: summary: Register a service deprecated: false produces: - '*/*' - operationId: putServiceUsingPUT_1 + operationId: putServiceUsingPUT responses: '200': schema: @@ -963,17 +1012,17 @@ paths: - application/json /v2/policies: get: - summary: Query for existing A1 policies + summary: Query policy identities deprecated: false produces: - application/json description: 'Returns a list of A1 policies matching given search criteria. <br>If several query parameters are defined, the policies matching all conditions are returned.' - operationId: getPoliciesUsingGET + operationId: getPolicyIdsUsingGET responses: '200': schema: - $ref: '#/definitions/policy_info_list_v2' - description: Policies + $ref: '#/definitions/policy_id_list_v2' + description: Policy identities '401': description: Unauthorized '403': @@ -981,7 +1030,7 @@ paths: '404': schema: $ref: '#/definitions/error_information' - description: 'Near-RT RIC, policy type or service not found' + description: Near-RT RIC or type not found parameters: - in: query allowEmptyValue: false @@ -1003,48 +1052,17 @@ paths: required: false tags: - A1 Policy Management Version 2.0 (in progress) - /policy_status: - get: - summary: Returns a policy status - deprecated: false - produces: - - '*/*' - operationId: getPolicyStatusUsingGET_1 - responses: - '200': - schema: - type: object - description: Policy status - '401': - description: Unauthorized - '403': - description: Forbidden - '404': - schema: - type: string - description: Policy is not found - parameters: - - in: query - allowEmptyValue: false - name: id - description: The identity of the policy. - type: string - required: true - tags: - - A1 Policy Management Version 1.0 - /v2/rics: - get: - summary: Query Near-RT RIC information + put: + summary: Create or update a policy deprecated: false produces: - application/json - description: The call returns all Near-RT RICs that supports a given policy type identity - operationId: getRicsUsingGET_1 + operationId: putPolicyUsingPUT responses: '200': - schema: - $ref: '#/definitions/ric_info_list_v2' - description: OK + description: Policy updated + '201': + description: Policy created '401': description: Unauthorized '403': @@ -1052,17 +1070,23 @@ paths: '404': schema: $ref: '#/definitions/error_information' - description: Policy type is not found + description: Near-RT RIC or policy type is not found + '423': + schema: + $ref: '#/definitions/error_information' + description: Near-RT RIC is not operational parameters: - - in: query - allowEmptyValue: false - name: policytype_id - description: 'The identity of a policy type. If given, all Near-RT RICs supporteing the policy type are returned' - type: string - required: false + - schema: + $ref: '#/definitions/policy_info_v2' + in: body + name: policyInfo + description: policyInfo + required: true tags: - A1 Policy Management Version 2.0 (in progress) -host: 'localhost:41437' + consumes: + - application/json +host: 'localhost:35345' definitions: error_information: description: 'Problem as defined in https://tools.ietf.org/html/rfc7807' @@ -1111,16 +1135,6 @@ definitions: ric: description: identity of the target Near-RT RIC type: string - policy_schema_list_v2: - description: Policy type json schemas - type: object - title: policy_schema_list_v2 - properties: - policy_schemas: - description: 'Policy type json schemas. The schema is a json object following http://json-schema.org/draft-07/schema' - type: array - items: - type: object Mono«ResponseEntity«object»»: type: object title: Mono«ResponseEntity«object»» @@ -1150,7 +1164,7 @@ definitions: - AVAILABLE - SYNCHRONIZING - CONSISTENCY_CHECK - policy_type_ids: + policytype_ids: description: supported policy types type: array items: @@ -1186,7 +1200,7 @@ definitions: - service_id properties: callback_url: - description: callback for notifying of RIC synchronization + description: callback for notifying of Near-RT RIC state changes type: string service_id: description: identity of the service @@ -1215,16 +1229,17 @@ definitions: ricName: description: identity of the Near-RT RIC type: string - policy_type_id_list_v2: - description: Information about policy types + policy_status_info_v2: + description: Status for one A1-P Policy type: object - title: policy_type_id_list_v2 + title: policy_status_info_v2 properties: - policy_type_ids: - description: Policy type identities - type: array - items: - type: string + last_modified: + description: 'timestamp, last modification time' + type: string + status: + description: the Policy status + type: object service_status_v1: type: object title: service_status_v1 @@ -1261,6 +1276,14 @@ definitions: format: int64 description: time since last invocation by the service type: integer + policytype_v2: + description: Policy type + type: object + title: policytype_v2 + properties: + policy_schema: + description: 'Policy type json scema. The schema is a json object following http://json-schema.org/draft-07/schema' + type: object ric_info_list_v2: description: List of Near-RT RIC information type: object @@ -1271,6 +1294,16 @@ definitions: type: array items: $ref: '#/definitions/ric_info_v2' + policytype_id_list_v2: + description: Information about policy types + type: object + title: policytype_id_list_v2 + properties: + policytype_ids: + description: Policy type identities + type: array + items: + type: string policy_id_list_v2: description: A list of policy identities type: object @@ -1285,6 +1318,12 @@ definitions: description: Information for one A1-P Policy type: object title: policy_info_v2 + required: + - policy_data + - policy_id + - policytype_id + - ric_id + - service_id properties: ric_id: description: identity of the target Near-RT RIC @@ -1292,22 +1331,21 @@ definitions: policy_id: description: identity of the policy type: string + transient: + 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 service_id: description: the name of the service owning the policy type: string policy_data: description: the configuration of the policy type: object - last_modified: - description: 'timestamp, last modification time' + status_notification_uri: + description: Callback URI for policy status updates type: string - policy_type_id: - description: name of the policy type + policytype_id: + description: identity of the policy type type: string - json_object: - description: A JSON object defining the configuration of the policy. The schema is defined by the Policy Type. - type: object - title: json_object service_list_v2: description: List of service information type: object @@ -1318,6 +1356,24 @@ definitions: type: array items: $ref: '#/definitions/service_status_v2' + service_callback_info_v2: + description: Information transferred as in Service callbacks (callback_url) + type: object + title: service_callback_info_v2 + required: + - event_type + - ric_id + properties: + ric_id: + description: identity of a Near-RT RIC + type: string + event_type: + description: |- + values: + AVAILABLE: the Near-RT RIC has become available for A1 Policy management + type: string + enum: + - AVAILABLE Mono«ResponseEntity«string»»: type: object title: Mono«ResponseEntity«string»» @@ -1334,8 +1390,11 @@ info: title: A1 Policy management service version: 1.1.0 tags: + - name: A1 Policy Management Configuration + description: Configuration Controller - name: A1 Policy Management Version 1.0 description: Policy Controller - name: A1 Policy Management Version 2.0 (in progress) description: Policy Controller - + - name: R-App Callbacks + description: Rapp Simulator Controller |