From 39889fc88d65daf8202b19f6f84735276ccb0369 Mon Sep 17 00:00:00 2001 From: "saul.gill" Date: Fri, 11 Apr 2025 12:55:30 +0100 Subject: [PATCH] Uplift dependencies and test build Updated versions in pom Updated base images in Dockerfile Update submodule to latest master Added script to alter OAS info section Issue-ID: NONRTRIC-1067 Change-Id: If721baf70fce79fffe232adfbf9ebae5f4860a7f Signed-off-by: saul.gill --- Dockerfile | 9 +- api/a1pms-api-v3.json | 1051 +++-- api/pms-api-v3.json | 1051 +++-- api/pms-api-v3.yaml | 2418 +++++++---- api/pms-api.json | 2035 ++++----- api/pms-api.yaml | 2141 +++++----- api/pms-api/index.html | 610 ++- api/pms-api/v3/custom/index.html | 3994 +++++++++++++----- api/pms-api/v3/index.html | 4435 ++++++++++++++------ config/README | 44 + config/application.yaml | 14 +- config/application_configuration.json | 16 +- .../openapitoolgen/offeredapis/pms-api/index.html | 610 ++- .../offeredapis/pms-api/v3/custom/index.html | 3994 +++++++++++++----- .../offeredapis/pms-api/v3/index.html | 4435 ++++++++++++++------ docs/offeredapis/swagger/a1pms-api-v3.json | 1051 +++-- docs/offeredapis/swagger/pms-api-v3.json | 1051 +++-- docs/offeredapis/swagger/pms-api-v3.yaml | 2418 +++++++---- docs/offeredapis/swagger/pms-api.json | 2035 ++++----- docs/offeredapis/swagger/pms-api.yaml | 2141 +++++----- inject-info.py | 54 + oas-info.yaml | 36 + onap/oran | 2 +- pom.xml | 121 +- 24 files changed, 23061 insertions(+), 12705 deletions(-) create mode 100644 config/README create mode 100644 inject-info.py create mode 100644 oas-info.yaml diff --git a/Dockerfile b/Dockerfile index 6405ae2..652fa83 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,8 +18,9 @@ # SPDX-License-Identifier: Apache-2.0 # ============LICENSE_END========================================================= # -FROM openjdk:17-jdk as jre-build +FROM amazoncorretto:17-alpine as jre-build +RUN apk add binutils RUN $JAVA_HOME/bin/jlink \ --verbose \ --add-modules ALL-MODULE-PATH \ @@ -30,7 +31,7 @@ RUN $JAVA_HOME/bin/jlink \ --output /customjre # Use debian base image (same as openjdk uses) -FROM debian:11-slim +FROM amazoncorretto:17-alpine ENV JAVA_HOME=/jre ENV PATH="${JAVA_HOME}/bin:${PATH}" @@ -59,8 +60,8 @@ ARG userid=120957 ARG group=nonrtric ARG groupid=120957 -RUN groupadd -g $groupid $group && \ - useradd -m -u $userid -g $group $user +RUN addgroup --gid $groupid $group && \ + adduser -u $userid -G $group -D -g "" $user RUN chown -R $user:$group /opt/app/policy-agent RUN chown -R $user:$group /var/log/policy-agent RUN chown -R $user:$group /var/policy-management-service diff --git a/api/a1pms-api-v3.json b/api/a1pms-api-v3.json index c844073..38f3c62 100644 --- a/api/a1pms-api-v3.json +++ b/api/a1pms-api-v3.json @@ -2,44 +2,46 @@ "openapi" : "3.0.3", "info" : { "contact" : { - "email" : "discuss-list@onap.com", - "url" : "https://www.onap.org/" + "email" : "discuss@lists.o-ran-sc.org", + "url" : "https://o-ran-sc.org//" }, - "description" : "

General

The O-RAN Non-RT RIC Policy Management Service provides a REST API for managemecnt of A1 policies.
The main tasks of the service are:

APIs provided or defined by the service

A1 Policy Management

This is an API for management of A1 Policies.

Management of configuration

API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.

Service callbacks

These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.

NearRT-RIC Repository

This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.

Health Check

API used for supervision of the PMS component.

Service Registry and Supervision

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.

Authorization API

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.

", + "description" : "

General

The ORAN SC A1 Policy Management Service provides a REST API for managing A1 policies.
This document describes the latest API set to perform tasks for:

APIs provided or defined by the service

Note: parts of this API are strongly based on extracts of the O-RAN Alliance R1 Interface specification for A1 Policy Management, and those parts should be considered '© O-RAN ALLIANCE - All rights reserved.'

A1 Policy Management

This is the latest API for managing A1 Policies. This API is partially compliant with O-RAN Alliance R1 Interface specifications for A1 Policy Management:

Management of configuration

API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.

Service Callbacks

These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.

NearRT-RIC Repository (Older version)

This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted towards one Near-RT RIC.

Health Check

API used for supervision of the A1 Policy Management Service.

Service Registry and Supervision

API used for registering services/clients/rApps. Each A1 Policy can be tagged with an owner. If the owner service is registered, then the service can be optionally monitored by a heart-beat supervision mechanism, and if the registered service becomes unavailable, then it is removed and all its A1 Policies are deleted. Note that services do not need to be registered to create A1 Policies, but unregistered services are not supervised. This is a feature that is optional to use.

", "license" : { - "name" : "Copyright (C) 2024 OpenInfra Foundation Europe. Licensed under the Apache License.", + "name" : "Copyright (C) 2024 - 2025 OpenInfra Foundation Europe. Licensed under the Apache 2 License.", "url" : "http://www.apache.org/licenses/LICENSE-2.0" }, - "title" : "A1 policy management API", + "title" : "OSC - A1 Policy Management API", "version" : "1.0.0", - "x-api-id" : "a31c510b-20e6-4a08-af16-368c44d7fba8", + "x-api-id" : "e9776a07-0813-4fca-9801-6f892f0a7c13", "x-audience" : "external-public" }, + "externalDocs" : { + "description" : "Based on parts of O-RAN ALLIANCE specification: O-RAN.WG2.R1AP-v07.00", + "url" : "https://www.o-ran.org/specifications" + }, "servers" : [ { "url" : "{apiRoot}/a1-policy-management/v1", "variables" : { "apiRoot" : { "default" : "https://example.com", - "description" : "This is the Host:Port or Address where the A1-Policy Management Service can be accessed" + "description" : "This is the Host:Port or Address where the A1-Policy Management Service can be accessed. Note: This URL path format aligns with the O-RAN Alliance R1-AP specifications for A1 Policy Management" } } } ], "tags" : [ { - "description" : "API used to create polices, Policy Instances and get them as individual using an ID or get all policies/Instances.", + "description" : "API used to get, create, update and delete A1 Policy Instances. Also used to query A1 Policy Types.\n", "name" : "A1 Policy Management" }, { - "description" : "API used to get the NearRT-RIC for the managed element.", + "description" : "API used to get information about registered Near-RT RICs.\n", "name" : "NearRT-RIC Repository" }, { - "description" : "API used to keep the service Alive with in the timeout period", + "description" : "API used to manage registered services, and control their keep-alive status via heart-beat messages.\n", "name" : "Service Registry and Supervision" }, { - "description" : "API used to get the health status and statistics of this service", + "description" : "API used to get the health status and statistics of this service.\n", "name" : "Health Check" }, { - "name" : "Service callbacks" - }, { - "description" : "API used to create or fetch the application configuration.", + "description" : "API used to create or fetch the application configuration.\n", "name" : "Configuration" } ], "paths" : { @@ -62,35 +64,37 @@ } }, "description" : "OK- Service is living Ok" + }, + "404" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Not Found" } }, + "summary" : "Get Status (getStatus)", "tags" : [ "Health Check" ] } }, - "/rics/ric" : { + "/rics/{ricId}" : { "get" : { - "description" : "Either a Near-RT RIC identity or a Managed Element identity can be specified.
The intention with Managed Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU).", + "description" : "Get information about a Near-RT RIC", "operationId" : "getRic", "parameters" : [ { - "description" : "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.", - "explode" : true, - "in" : "query", - "name" : "managedElementId", - "required" : false, - "schema" : { - "type" : "string" - }, - "style" : "form" - }, { "description" : "The identity of a Near-RT RIC to get information for.", "explode" : true, - "in" : "query", + "in" : "path", "name" : "ricId", - "required" : false, + "required" : true, "schema" : { + "nullable" : false, "type" : "string" }, - "style" : "form" + "style" : "simple" }, { "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.", "explode" : false, @@ -130,16 +134,16 @@ "description" : "Not Found" } }, - "summary" : "Returns info for one Near-RT RIC", + "summary" : "Get a Near-RT RIC (getRic)", "tags" : [ "NearRT-RIC Repository" ] } }, "/rics" : { "get" : { - "description" : "The call returns all Near-RT RICs that supports a given policy type identity", + "description" : "Get all Near-RT RICs that supports a given A1 Policy Type ID", "operationId" : "getRics", "parameters" : [ { - "description" : "The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned", + "description" : "The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned.\n", "explode" : true, "in" : "query", "name" : "policyTypeId", @@ -187,13 +191,13 @@ "description" : "Not Found" } }, - "summary" : "Query Near-RT RIC information", + "summary" : "Get Near-RT RICs for A1 Policy Type (getRics)", "tags" : [ "NearRT-RIC Repository" ] } }, "/policy-types" : { "get" : { - "description" : "Query policy type identities", + "description" : "Query A1 Policy Type identities using query parameters", "operationId" : "getPolicyTypes", "parameters" : [ { "description" : "Select types for the given Near-RT RIC identity.", @@ -206,7 +210,7 @@ }, "style" : "form" }, { - "description" : "Select types with the given type name (type identity has the format )", + "description" : "Select types compatible with the given type name (type identity has the format 'typename_version')", "explode" : true, "in" : "query", "name" : "typeName", @@ -216,7 +220,7 @@ }, "style" : "form" }, { - "description" : "Select types that are compatible with the given version. This parameter is only applicable in conjunction with type_name. As an example version 1.9.1 is compatible with 1.0.0 but not the other way around. Matching types will be returned sorted in ascending order.", + "description" : "Select types that are compatible with the given version. This parameter is only applicable in conjunction with typeName. 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.\n", "explode" : true, "in" : "query", "name" : "compatibleWithVersion", @@ -241,6 +245,11 @@ "200" : { "content" : { "application/json" : { + "examples" : { + "PolicyTypeInformation" : { + "$ref" : "#/components/examples/PolicyTypeInformation" + } + }, "schema" : { "items" : { "$ref" : "#/components/schemas/PolicyTypeInformation" @@ -309,7 +318,7 @@ } } }, - "description" : "Too Many Request" + "description" : "Too Many Requests" }, "500" : { "content" : { @@ -342,12 +351,13 @@ "description" : "Service Unavailable" } }, + "summary" : "Get A1 Policy Types (getPolicyTypes)", "tags" : [ "A1 Policy Management" ] } }, "/policy-types/{policyTypeId}" : { "get" : { - "description" : "Returns a policy type definition", + "description" : "Get an A1 Policy Type definition using its policy type ID", "operationId" : "getPolicyTypeDefinition", "parameters" : [ { "explode" : false, @@ -375,16 +385,16 @@ "content" : { "application/json" : { "examples" : { - "policyObject" : { - "$ref" : "#/components/examples/PolicyObject" + "PolicyTypeObject" : { + "$ref" : "#/components/examples/PolicyTypeObject" } }, "schema" : { - "$ref" : "#/components/schemas/PolicyObject" + "$ref" : "#/components/schemas/PolicyTypeObject" } } }, - "description" : "OK - schema of the given policy type" + "description" : "OK - details and schema of the requested A1 Policy Type" }, "400" : { "content" : { @@ -444,7 +454,7 @@ } } }, - "description" : "Too Many Request" + "description" : "Too Many Requests" }, "500" : { "content" : { @@ -477,12 +487,13 @@ "description" : "Service Unavailable" } }, + "summary" : "Get an A1 Policy Type definition (getPolicyTypeDefinition)", "tags" : [ "A1 Policy Management" ] } }, "/policies/{policyId}" : { "delete" : { - "description" : "Deleting the policy using policyId.", + "description" : "Delete an existing A1 Policy instance using its policy ID.", "operationId" : "deletePolicy", "parameters" : [ { "explode" : false, @@ -507,7 +518,7 @@ } ], "responses" : { "204" : { - "description" : "The created A1 policy was deleted" + "description" : "No Content" }, "400" : { "content" : { @@ -549,13 +560,33 @@ }, "description" : "Not Found" }, + "405" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Method Not Allowed" + }, + "406" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Not Acceptable" + }, "423" : { "content" : { "application/problem+json" : { "example" : { "status" : 423, "title" : "Locked", - "detail" : "State is Locked in the provided request." + "detail" : "State is Locked in the provided request." }, "schema" : { "$ref" : "#/components/schemas/ErrorInformation" @@ -572,7 +603,7 @@ } } }, - "description" : "Too Many Request" + "description" : "Too Many Requests" }, "500" : { "content" : { @@ -605,11 +636,11 @@ "description" : "Service Unavailable" } }, - "summary" : "Delete a policy", + "summary" : "Delete an A1 Policy instance (deletePolicy)", "tags" : [ "A1 Policy Management" ] }, "get" : { - "description" : "Returns a policy", + "description" : "Get an A1 Policy instance's policy data using its policy ID", "operationId" : "getPolicy", "parameters" : [ { "explode" : false, @@ -706,7 +737,7 @@ } } }, - "description" : "Too Many Request" + "description" : "Too Many Requests" }, "500" : { "content" : { @@ -739,11 +770,12 @@ "description" : "Service Unavailable" } }, + "summary" : "Get an A1 Policy's policy data (getPolicy)", "tags" : [ "A1 Policy Management" ] }, "put" : { - "description" : "update a policy", - "operationId" : "putPolicy", + "description" : "Update an existing A1 Policy instance's policy data using its policy ID.", + "operationId" : "updatePolicy", "parameters" : [ { "explode" : false, "in" : "path", @@ -866,7 +898,7 @@ "example" : { "status" : 423, "title" : "Locked", - "detail" : "State is Locked in the provided request." + "detail" : "State is Locked in the provided request." }, "schema" : { "$ref" : "#/components/schemas/ErrorInformation" @@ -883,7 +915,138 @@ } } }, - "description" : "Too Many Request" + "description" : "Too Many Requests" + }, + "500" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Internal Server Error" + }, + "502" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Bad Gateway" + }, + "503" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Service Unavailable" + } + }, + "summary" : "Update an A1 Policy's policy data (updatePolicy)", + "tags" : [ "A1 Policy Management" ] + } + }, + "/policies/{policyId}/status" : { + "get" : { + "description" : "Retrieve the status information for an A1 Policy Instance using its policy ID.", + "operationId" : "getPolicyStatus", + "parameters" : [ { + "explode" : false, + "in" : "path", + "name" : "policyId", + "required" : true, + "schema" : { + "type" : "string" + }, + "style" : "simple" + }, { + "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.", + "explode" : false, + "in" : "header", + "name" : "Accept", + "required" : false, + "schema" : { + "example" : "application/json", + "type" : "string" + }, + "style" : "simple" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PolicyStatusObject" + } + } + }, + "description" : "OK" + }, + "400" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Bad Request" + }, + "401" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Unauthorized" + }, + "403" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Forbidden" + }, + "404" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Not Found" + }, + "406" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Not Acceptable" + }, + "429" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Too Many Requests" }, "500" : { "content" : { @@ -916,15 +1079,16 @@ "description" : "Service Unavailable" } }, + "summary" : "Get an A1 Policy Instance's status (getPolicyStatus)", "tags" : [ "A1 Policy Management" ] } }, "/policies" : { "get" : { - "description" : "Returns a list of A1 policies matching given search criteria.
If several query parameters are defined, the policies matching all conditions are returned.", - "operationId" : "getAllPolicies", + "description" : "Returns a collection of A1 Policy Instance IDs for policies that match given search criteria. If several query parameters are defined, the policies matching all conditions are returned.\n", + "operationId" : "getPolicyIds", "parameters" : [ { - "description" : "Select policies of a given policy type identity.", + "description" : "Select policies with a given A1 Policy Type ID.", "explode" : true, "in" : "query", "name" : "policyTypeId", @@ -934,7 +1098,7 @@ }, "style" : "form" }, { - "description" : "Select policies of a given Near-RT RIC identity.", + "description" : "Select policies for a given Near-RT RIC identity.", "explode" : true, "in" : "query", "name" : "nearRtRicId", @@ -944,7 +1108,7 @@ }, "style" : "form" }, { - "description" : "Select policies owned by a given service.", + "description" : "Select policies owned by a given service (registered or unregistered).", "explode" : true, "in" : "query", "name" : "serviceId", @@ -954,7 +1118,7 @@ }, "style" : "form" }, { - "description" : "Select policies of types with the given type name (type identity has the format )", + "description" : "Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').", "explode" : true, "in" : "query", "name" : "typeName", @@ -1047,7 +1211,7 @@ } } }, - "description" : "Too Many Request" + "description" : "Too Many Requests" }, "500" : { "content" : { @@ -1080,11 +1244,11 @@ "description" : "Service Unavailable" } }, - "summary" : "Query policy identities", + "summary" : "Query for A1 Policy instances (getPolicyIds)", "tags" : [ "A1 Policy Management" ] }, "post" : { - "description" : "To create A1 policies", + "description" : "Create an A1 Policy Instance", "operationId" : "createPolicy", "requestBody" : { "content" : { @@ -1105,16 +1269,25 @@ } } }, - "description" : "Success case 201 created", + "description" : "Created", "headers" : { "Location" : { - "description" : "Contains the URI of the newly created resource", + "description" : "Contains the URI of the newly created A1 Policy Instances. This URI includes the A1 Policy Instance ID for the newly created policy instance.\n", "explode" : false, "required" : true, "schema" : { "type" : "string" }, "style" : "simple" + }, + "Content-Type" : { + "description" : "Media Type of the response", + "explode" : false, + "schema" : { + "example" : "application/json", + "type" : "string" + }, + "style" : "simple" } } }, @@ -1158,6 +1331,16 @@ }, "description" : "Not Found" }, + "405" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Method Not Allowed" + }, "406" : { "content" : { "application/problem+json" : { @@ -1168,13 +1351,43 @@ }, "description" : "Not Acceptable" }, + "409" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Conflict" + }, + "413" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Payload Too Large" + }, + "415" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Unsupported Media Type" + }, "423" : { "content" : { "application/problem+json" : { "example" : { "status" : 423, "title" : "Locked", - "detail" : "State is Locked in the provided request." + "detail" : "State is Locked in the provided request." }, "schema" : { "$ref" : "#/components/schemas/ErrorInformation" @@ -1191,7 +1404,7 @@ } } }, - "description" : "Too Many Request" + "description" : "Too Many Requests" }, "500" : { "content" : { @@ -1224,12 +1437,13 @@ "description" : "Service Unavailable" } }, + "summary" : "Create an A1 Policy Instance (createPolicy)", "tags" : [ "A1 Policy Management" ] } }, "/configuration" : { "get" : { - "description" : "Returns the contents of the application configuration", + "description" : "Returns the entire contents of the Application Configuration.", "operationId" : "getConfiguration", "responses" : { "200" : { @@ -1253,10 +1467,11 @@ "description" : "Not Found" } }, + "summary" : "Get the Application Configuration (getConfiguration)", "tags" : [ "Configuration" ] }, "put" : { - "description" : "Replace the current configuration file with the given configuration", + "description" : "Replace the current Application Configuration with a new configuration. The new configuration, if accepted, will take effect after a short delay. The new configuration must comply with the Application Configuration schema, which can be found from the the Application Documentation (Developer Guide)\n", "operationId" : "putConfiguration", "requestBody" : { "content" : { @@ -1271,7 +1486,7 @@ "responses" : { "200" : { "content" : { - "*/*" : { + "application/json" : { "schema" : { "$ref" : "#/components/schemas/void" } @@ -1290,12 +1505,13 @@ "description" : "Bad Request" } }, + "summary" : "Set/Replace the Application Configuration (putConfiguration)", "tags" : [ "Configuration" ] } }, "/services/{serviceId}/keepalive" : { "put" : { - "description" : "A registered service should invoke this operation regularly to indicate that it is still alive. If a registered service fails to invoke this operation before the end of a timeout period the service will be deregistered and all its A1 policies wil be removed. (This timeout can be set or disabled when each service is initially registered)", + "description" : "A registered service should invoke this operation regularly to indicate that it is still alive. If a registered service fails to invoke some operation, or this operation, before the end of a timeout period the service will be deregistered and all its A1 policies wil be removed and the service is deleted. This operation is only intended for registered services. (This timeout can be set or disabled when each service is initially registered). Unregistered services do not need to invoke this operation, since the optional keep-alive monitoring feature can only be enabled for registered services.", "operationId" : "keepAliveService", "parameters" : [ { "explode" : false, @@ -1318,20 +1534,10 @@ }, "style" : "simple" } ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "type" : "string" - } - } - }, - "required" : false - }, "responses" : { "200" : { "content" : { - "*/*" : { + "application/json" : { "schema" : { "type" : "object" } @@ -1350,16 +1556,16 @@ "description" : "Not Found" } }, - "summary" : "Heartbeat indicates that the service is running", + "summary" : "Heartbeat message from a service (keepAliveService)", "tags" : [ "Service Registry and Supervision" ] } }, "/services" : { "get" : { - "description" : "Either information about a registered service with given identity or all registered services are returned.", + "description" : "Get information about all registered services, or a single registered service. If the service ID of a registered service is included in the query, information about that service is returned. Otherwise Information about all registered is returned. This operation does not retrieve information about unregistered services.\n", "operationId" : "getServices", "parameters" : [ { - "description" : "The identity of the service", + "description" : "The identity of the registered service", "explode" : true, "in" : "query", "name" : "serviceId", @@ -1407,7 +1613,7 @@ "description" : "Not Found" } }, - "summary" : "Returns service information", + "summary" : "Get Services (getServices)", "tags" : [ "Service Registry and Supervision" ] }, "put" : { @@ -1415,7 +1621,7 @@ "RICStatus" : { "{$request.body#/callback_url}" : { "post" : { - "description" : "The URL to this call is registered at Service registration.", + "description" : "Callouts to indicate Near-RT RIC status changes relevant for Services. \nThe URL invoked by this callback is provided at Service registration.\n", "operationId" : "serviceCallback", "requestBody" : { "content" : { @@ -1449,13 +1655,14 @@ "description" : "Not Found" } }, - "summary" : "Callback for Near-RT RIC status", - "tags" : [ "Service callbacks" ] + "summary" : "Callback for Near-RT RIC status (serviceCallback)", + "tags" : [ "Service Registry and Supervision" ], + "x-callback-request" : true } } } }, - "description" : "Registering a service is needed to:
  • Get callbacks about available NearRT RICs.
  • Activate supervision of the service. If a service is inactive, its policies will automatically be deleted.
Policies can be created even if the service is not registerred. This is a feature which it is optional to use.", + "description" : "Register a single service, or update a previous registration. Service registration is required to get callbacks about available NearRT RICs and to enable supervision of the service's active status. If a registered service becomes inactive, its policies can be automatically deleted. A1 Policy instances can also be created for unregistered services. If an unregistered service is later registered, the service's policies are retained when the service becomes registered. This feature is optional to use.\n", "operationId" : "putService", "requestBody" : { "content" : { @@ -1470,7 +1677,7 @@ "responses" : { "200" : { "content" : { - "*/*" : { + "application/json" : { "schema" : { "type" : "object" } @@ -1480,7 +1687,7 @@ }, "201" : { "content" : { - "*/*" : { + "application/json" : { "schema" : { "type" : "object" } @@ -1499,13 +1706,13 @@ "description" : "Bad Request" } }, - "summary" : "Register a service", + "summary" : "Register or update a Service (putService)", "tags" : [ "Service Registry and Supervision" ] } }, "/services/{serviceId}" : { "delete" : { - "description" : "Unregister a service", + "description" : "Unregister a registered Service using its service ID. Only registered services can be unregistered. All A1 Policy Instances for the previously registered service will be removed.\n", "operationId" : "deleteService", "parameters" : [ { "explode" : false, @@ -1531,7 +1738,7 @@ "responses" : { "204" : { "content" : { - "*/*" : { + "application/json" : { "schema" : { "type" : "object" } @@ -1550,67 +1757,91 @@ "description" : "Not Found" } }, + "summary" : "Unregister a Service (deleteService)", "tags" : [ "Service Registry and Supervision" ] } } }, "components" : { "examples" : { - "ServiceStatusList" : { - "description" : "List of service information", - "value" : { - "serviceList" : [ { - "callbackUrl" : "callbackUrl", - "serviceId" : "serviceId", - "keepAliveIntervalSeconds" : 0, - "timeSinceLastActivitySeconds" : 6 - }, { - "callbackUrl" : "callbackUrl", - "serviceId" : "serviceId", - "keepAliveIntervalSeconds" : 0, - "timeSinceLastActivitySeconds" : 6 - } ] - } - }, - "PolicyStatusInfo" : { - "description" : "Status for one A1-P Policy", - "value" : { - "lastModified" : "last_modified", - "status" : { - "value" : { - "status" : "status" - } - } - } - }, "StatusInfo" : { "value" : { - "status" : "status" + "status" : "success" } }, "RicInfo" : { "value" : { - "ricId" : "ricId", - "managedElementIds" : [ "managedElementId", "managedElementId" ], + "ricId" : "ricId1", + "managedElementIds" : [ "Note #1", "Athlone small cells", "Some optional string" ], "state" : "UNAVAILABLE", - "policyTypeIds" : [ "policyTypeId", "policyTypeId" ] + "policyTypeIds" : [ "policyTypeId1", "policyTypeId2" ] } }, "RicInfoList" : { "value" : { "rics" : [ { - "ricId" : "ricId", - "managedElementIds" : [ "managedElementId", "managedElementId" ], + "ricId" : "ricId1", + "managedElementIds" : [ "Note #1", "Athlone small cells", "Fake Cells" ], "state" : "UNAVAILABLE", - "policyTypeIds" : [ "policyTypeId", "policyTypeId" ] + "policyTypeIds" : [ "policyTypeId1", "policyTypeId2" ] }, { - "ricId" : "ricId", - "managedElementIds" : [ "managedElementId", "managedElementId" ], + "ricId" : "ricId2", + "managedElementIds" : [ "My test element", "Another test element" ], "state" : "UNAVAILABLE", - "policyTypeIds" : [ "policyTypeId", "policyTypeId" ] + "policyTypeIds" : [ "policyTypeId3", "policyTypeId4" ] } ] } }, + "PolicyTypeInformation" : { + "value" : [ { + "policyTypeId" : "STD_QOS2_0.1.0", + "nearRtRicId" : "ric_g3_2" + }, { + "policyTypeId" : "STD_QOS_0_2_0", + "nearRtRicId" : "ric_g3_2" + }, { + "policyTypeId" : "STD_QOS2_0.1.0", + "nearRtRicId" : "ric_g3_1" + }, { + "policyTypeId" : "STD_QOS_0_2_0", + "nearRtRicId" : "ric_g3_1" + } ] + }, + "PolicyTypeObject" : { + "value" : { + "policySchema" : { + "$schema" : "http://json-schema.org/draft-07/schema#", + "title" : "STD_QOS_0_2_0", + "description" : "STD QOS2 policy type", + "type" : "object", + "properties" : { + "scope" : { + "type" : "object", + "properties" : { + "ueId" : { + "type" : "string" + }, + "qosId" : { + "type" : "string" + } + }, + "additionalProperties" : false, + "required" : [ "ueId", "qosId" ] + }, + "qosObjectives" : { + "type" : "object", + "properties" : { + "priorityLevel" : { + "type" : "number" + } + }, + "additionalProperties" : false, + "required" : [ "priorityLevel" ] + } + } + } + } + }, "PolicyObject" : { "value" : { "scope" : { @@ -1652,10 +1883,26 @@ "pdb" : 50 } } + }, + "ServiceStatusList" : { + "description" : "List of service information", + "value" : { + "serviceList" : [ { + "callbackUrl" : "http://callback.url", + "serviceId" : "serviceId1", + "keepAliveIntervalSeconds" : 0, + "timeSinceLastActivitySeconds" : 6 + }, { + "callbackUrl" : "http://callback.url", + "serviceId" : "serviceId2", + "keepAliveIntervalSeconds" : 500, + "timeSinceLastActivitySeconds" : 401 + } ] + } } }, "responses" : { - "400" : { + "404" : { "content" : { "application/problem+json" : { "schema" : { @@ -1663,9 +1910,9 @@ } } }, - "description" : "Bad Request" + "description" : "Not Found" }, - "401" : { + "400" : { "content" : { "application/problem+json" : { "schema" : { @@ -1673,9 +1920,9 @@ } } }, - "description" : "Unauthorized" + "description" : "Bad Request" }, - "403" : { + "401" : { "content" : { "application/problem+json" : { "schema" : { @@ -1683,9 +1930,9 @@ } } }, - "description" : "Forbidden" + "description" : "Unauthorized" }, - "404" : { + "403" : { "content" : { "application/problem+json" : { "schema" : { @@ -1693,9 +1940,9 @@ } } }, - "description" : "Not Found" + "description" : "Forbidden" }, - "405" : { + "406" : { "content" : { "application/problem+json" : { "schema" : { @@ -1703,9 +1950,9 @@ } } }, - "description" : "Method Not Allowed" + "description" : "Not Acceptable" }, - "406" : { + "429" : { "content" : { "application/problem+json" : { "schema" : { @@ -1713,9 +1960,9 @@ } } }, - "description" : "Not Acceptable" + "description" : "Too Many Requests" }, - "409" : { + "500" : { "content" : { "application/problem+json" : { "schema" : { @@ -1723,9 +1970,9 @@ } } }, - "description" : "Conflict" + "description" : "Internal Server Error" }, - "411" : { + "502" : { "content" : { "application/problem+json" : { "schema" : { @@ -1733,9 +1980,9 @@ } } }, - "description" : "Length Required" + "description" : "Bad Gateway" }, - "413" : { + "503" : { "content" : { "application/problem+json" : { "schema" : { @@ -1743,9 +1990,9 @@ } } }, - "description" : "Payload Too Large" + "description" : "Service Unavailable" }, - "415" : { + "411" : { "content" : { "application/problem+json" : { "schema" : { @@ -1753,9 +2000,9 @@ } } }, - "description" : "Unsupported Media Type" + "description" : "Length Required" }, - "429" : { + "413" : { "content" : { "application/problem+json" : { "schema" : { @@ -1763,9 +2010,9 @@ } } }, - "description" : "Too Many Request" + "description" : "Payload Too Large" }, - "500" : { + "415" : { "content" : { "application/problem+json" : { "schema" : { @@ -1773,19 +2020,24 @@ } } }, - "description" : "Internal Server Error" + "description" : "Unsupported Media Type" }, - "502" : { + "Locked" : { "content" : { "application/problem+json" : { + "example" : { + "status" : 423, + "title" : "Locked", + "detail" : "State is Locked in the provided request." + }, "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" + "$ref" : "#/components/schemas/ErrorInformation" } } }, - "description" : "Bad Gateway" + "description" : "Locked - HTTP Status code which can be used when the state is Locked" }, - "503" : { + "405" : { "content" : { "application/problem+json" : { "schema" : { @@ -1793,152 +2045,88 @@ } } }, - "description" : "Service Unavailable" + "description" : "Method Not Allowed" }, - "Locked" : { + "409" : { "content" : { "application/problem+json" : { - "example" : { - "status" : 423, - "title" : "Locked", - "detail" : "State is Locked in the provided request." - }, "schema" : { - "$ref" : "#/components/schemas/ErrorInformation" + "$ref" : "#/components/schemas/ProblemDetails" } } }, - "description" : "Locked - HTTP Status code which can be used when the state is Locked" + "description" : "Conflict" } }, "schemas" : { - "PolicyTypeInformation" : { - "description" : "Available policy types and for each policy type identifier the Near-RT RIC identifiers of those Near-RT RICs that support the related A1 policy type", + "StatusInfo" : { + "example" : { + "status" : "status" + }, "properties" : { - "policyTypeId" : { - "description" : "Identity of the policy type", + "status" : { + "description" : "Status text", "type" : "string" - }, - "nearRtRicId" : { - "$ref" : "#/components/schemas/NearRtRicId" } }, - "required" : [ "nearRtRicId", "policyTypeId" ], "type" : "object" }, - "PolicyObjectInformation" : { - "description" : "Information related to the creation of the policy", + "ProblemDetails" : { + "description" : "Object to carry details about a problem in an HTTP response according to IETF RFC 7807", "properties" : { - "nearRtRicId" : { - "description" : "identity of the target Near-RT RIC", - "example" : "Near-RT-Ric-ID", - "type" : "string" - }, - "transient" : { - "default" : false, - "description" : "if true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.", - "nullable" : false, - "type" : "boolean" - }, - "policyId" : { - "description" : "identity of the Policy", - "example" : "POLICY-ID", + "type" : { + "description" : "URI reference according to IETF RFC 3986 that identifies the problem type", "type" : "string" }, - "serviceId" : { - "description" : "the identity of the service owning the policy. This can be used to group the policies (it is possible to get all policies associated to a service). Note that the service does not need to be registered.", - "example" : "rApp ID", + "title" : { + "description" : "Human-readable summary of the problem type", "type" : "string" }, - "policyObject" : { - "$ref" : "#/components/schemas/PolicyObject" + "status" : { + "description" : "HTTP status code", + "type" : "number" }, - "policyTypeId" : { - "description" : "identity of the policy type", - "example" : "ORAN_QOS_1.0.0(typeName_SemVersion)", - "type" : "string" - } - }, - "required" : [ "nearRtRicId", "policyObject", "policyTypeId" ], - "type" : "object" - }, - "ErrorInformation" : { - "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807", - "properties" : { "detail" : { - "description" : " A human-readable explanation specific to this occurrence of the problem.", - "example" : "Policy type not found", + "description" : "Human-readable explanation", "type" : "string" }, - "title" : { - "description" : "A specific error name", - "example" : "Not Found", - "type" : "string" - }, - "status" : { - "description" : "The HTTP status code generated by the origin server for this occurrence of the problem. ", - "example" : 404, - "format" : "int32", - "type" : "integer" - } - }, - "type" : "object" - }, - "PolicyObject" : { - "description" : "Policy Object is a JSON representation of an A1 policy", - "type" : "object" - }, - "void" : { - "description" : "Void/empty", - "type" : "object" - }, - "StatusInfo" : { - "properties" : { - "status" : { - "description" : "status text", + "instance" : { + "description" : "URI reference that identifies the specific occurrence of the problem", "type" : "string" } }, "type" : "object" }, - "AuthorizationResult" : { - "description" : "Result of authorization", - "example" : { - "result" : true - }, - "properties" : { - "result" : { - "description" : "If true, the access is granted", - "type" : "boolean" - } - }, - "required" : [ "result" ], - "type" : "object" - }, "RicInfo" : { "description" : "Information for a Near-RT RIC", + "example" : { + "ricId" : "ricId", + "policyTypeIds" : [ "policyTypeIds", "policyTypeIds" ], + "managedElementIds" : [ "managedElementIds", "managedElementIds" ], + "state" : "UNAVAILABLE" + }, "properties" : { "ricId" : { - "description" : "identity of the Near-RT RIC", + "description" : "Identity of the Near-RT RIC", "type" : "string" }, "managedElementIds" : { - "description" : "O1 identities for managed entities", + "description" : "Identities for managed entities", "items" : { - "description" : "O1 identities for managed entities", + "description" : "Identity for a managed entity", "type" : "string" }, "type" : "array" }, "state" : { - "description" : "Represents the states for a Near-RT RIC", + "description" : "Represents the state of a Near-RT RIC", "enum" : [ "UNAVAILABLE", "AVAILABLE", "SYNCHRONIZING", "CONSISTENCY_CHECK" ], "type" : "string" }, "policyTypeIds" : { - "description" : "supported policy types", + "description" : "Supported A1 Policy Types", "items" : { - "description" : "supported policy types", + "description" : "Supported A1 Policy Type ID", "type" : "string" }, "type" : "array" @@ -1946,128 +2134,243 @@ }, "type" : "object" }, - "ServiceRegistrationInfo" : { - "description" : "Information for one service", + "RicInfoList" : { + "description" : "Collection of Near-RT RIC information objects", + "example" : { + "rics" : [ { + "ricId" : "ricId", + "policyTypeIds" : [ "policyTypeIds", "policyTypeIds" ], + "managedElementIds" : [ "managedElementIds", "managedElementIds" ], + "state" : "UNAVAILABLE" + }, { + "ricId" : "ricId", + "policyTypeIds" : [ "policyTypeIds", "policyTypeIds" ], + "managedElementIds" : [ "managedElementIds", "managedElementIds" ], + "state" : "UNAVAILABLE" + } ] + }, "properties" : { - "callbackUrl" : { - "description" : "callback for notifying of Near-RT RIC state changes", + "rics" : { + "description" : "List of Near-RT RIC information objects", + "items" : { + "$ref" : "#/components/schemas/RicInfo" + }, + "type" : "array" + } + }, + "type" : "object" + }, + "PolicyTypeInformation" : { + "description" : "A data tuple to indicate that an identified A1 Policy Type is supported at an identified Near-RT RIC.", + "example" : { + "policyTypeId" : "STD_QOS2_0.1.0", + "nearRtRicId" : "ric_g3_2" + }, + "properties" : { + "policyTypeId" : { + "description" : "A1 Policy Type identifier", "type" : "string" }, - "serviceId" : { - "description" : "identity of the service", + "nearRtRicId" : { + "description" : "Identity of the Near-RT RIC", "type" : "string" - }, - "keepAliveIntervalSeconds" : { - "description" : "keep alive interval for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled.", - "format" : "int64", - "type" : "integer" } }, - "required" : [ "serviceId" ], + "required" : [ "nearRtRicId", "policyTypeId" ], "type" : "object" }, - "PolicyStatusInfo" : { - "description" : "Status for one A1-P Policy", + "NearRtRicId" : { + "description" : "Identity of the Near-RT RIC", + "type" : "string" + }, + "PolicyTypeObject" : { + "description" : "An A1 Policy Type, as defined in O-RAN Alliance A1TD", + "example" : { + "policySchema" : { + "$schema" : "http://json-schema.org/draft-07/schema#", + "title" : "STD_QOS_0_2_0", + "description" : "Policy data schema for STD_QOS_0.2.0 A1 Policy Instances.", + "type" : "object", + "properties" : { + "scope" : { + "type" : "object", + "properties" : { + "ueId" : { + "type" : "string" + }, + "qosId" : { + "type" : "string" + } + }, + "additionalProperties" : false, + "required" : [ "ueId", "qosId" ] + }, + "qosObjectives" : { + "type" : "object", + "properties" : { + "priorityLevel" : { + "type" : "number" + } + }, + "additionalProperties" : false, + "required" : [ "priorityLevel" ] + } + } + }, + "statusSchema" : { + "$schema" : "http://json-schema.org/draft-07/schema#", + "title" : "STD_QOS_0.2.0", + "description" : "Status schema for STD_QOS_0.2.0 A1 Policy Instances.", + "type" : "object", + "properties" : { + "enforceStatus" : { + "type" : "string" + }, + "enforceReason" : { + "type" : "string" + }, + "additionalProperties" : false, + "required" : [ "enforceStatus" ] + } + } + }, "properties" : { - "lastModified" : { - "description" : "timestamp, last modification time", - "type" : "string" + "policySchema" : { + "description" : "A schema to define the policy data contents of A1 Policy Instances. Policy data schemas are Policy Type specific. All A1 Policy Instances of an A1 Policy Type should comply with the type's policy data schema.\n", + "type" : "object" }, - "status" : { - "description" : "the Policy status", + "statusSchema" : { + "description" : "A schema to define the contents of the status information for A1 Policy Instances. Status schemas are Policy Type specific. All status information for all A1 Policy Instances of an A1 Policy Type should comply with the type's status schema.\n", "type" : "object" } }, + "required" : [ "policySchema" ], "type" : "object" }, - "ServiceStatus" : { + "PolicySchema" : { + "description" : "A schema to define the policy data contents of A1 Policy Instances. Policy data schemas are Policy Type specific. All A1 Policy Instances of an A1 Policy Type should comply with the type's policy data schema.\n", + "type" : "object" + }, + "StatusSchema" : { + "description" : "A schema to define the contents of the status information for A1 Policy Instances. Status schemas are Policy Type specific. All status information for all A1 Policy Instances of an A1 Policy Type should comply with the type's status schema.\n", + "type" : "object" + }, + "PolicyObject" : { + "description" : "Policy Object is a JSON representation policy data for an A1 Policy Instance. The schema for this policy data is defined in the corresponding A1 Policy Type.\n", + "type" : "object" + }, + "ErrorInformation" : { + "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807", "properties" : { - "callbackUrl" : { - "description" : "callback for notifying of RIC synchronization", + "detail" : { + "description" : "A human-readable explanation specific to this occurrence of the problem.", + "example" : "Policy type not found", "type" : "string" }, - "serviceId" : { - "description" : "identity of the service", + "title" : { + "description" : "A specific error name", + "example" : "Not Found", "type" : "string" }, - "keepAliveIntervalSeconds" : { - "description" : "policy keep alive timeout", - "format" : "int64", - "type" : "integer" - }, - "timeSinceLastActivitySeconds" : { - "description" : "time since last invocation by the service", - "format" : "int64", + "status" : { + "description" : "The HTTP status code generated by the origin server for this occurrence of the problem.\n", + "example" : 404, + "format" : "int32", "type" : "integer" } }, "type" : "object" }, - "RicInfoList" : { - "description" : "List of Near-RT RIC information", - "properties" : { - "rics" : { - "description" : "List of Near-RT RIC information", - "items" : { - "$ref" : "#/components/schemas/RicInfo" - }, - "type" : "array" - } - }, + "PolicyStatusObject" : { + "description" : "A generic policy status object that can be used to transport any policy status. Additionally, a schema for policy status can be defined in the corresponding A1 Policy Type.\n", "type" : "object" }, - "input" : { - "description" : "input", + "PolicyInformation" : { + "description" : "Information tuple for a single A1 Policy Instance. Contains the A1 Policy Instance ID, and the ID of the Near-RT RIC where the policy is created.\n", + "example" : { + "policyId" : "policyId", + "nearRtRicId" : "nearRtRicId" + }, "properties" : { - "accessType" : { - "description" : "Access type", - "enum" : [ "READ", "WRITE", "DELETE" ], - "type" : "string" - }, - "authToken" : { - "description" : "Authorization token", + "policyId" : { + "description" : "Identity of the A1 Policy Instance", "type" : "string" }, - "policyTypeId" : { - "description" : "Policy type identifier", + "nearRtRicId" : { + "description" : "Identity of the Near-RT RIC", "type" : "string" } }, - "required" : [ "accessType", "authToken", "policyTypeId" ], + "required" : [ "nearRtRicId", "policyId" ], "type" : "object" }, - "PolicyAuthorization" : { - "description" : "Authorization request for A1 policy requests", - "properties" : { - "input" : { - "$ref" : "#/components/schemas/input" - } + "PolicyObjectInformation" : { + "description" : "Information to create an A1 Policy Instance", + "example" : { + "policyId" : "POLICY-ID1", + "nearRtRicId" : "Near-RT-Ric-ID1", + "transient" : false, + "policyObject" : "{}", + "serviceId" : "rApp 1", + "policyTypeId" : "ORAN_QOS_1.0.0 '(typeName_SemVersion)'" }, - "required" : [ "input" ], - "type" : "object" - }, - "NearRtRicId" : { - "description" : "Identity of the policy", - "type" : "string" - }, - "PolicyInformation" : { - "description" : "Near-RT RIC identifiers where A1 policies exist and for each Near-RT RIC identifier the policy identifiers of those policies that exist in that Near-RT RIC", "properties" : { + "nearRtRicId" : { + "description" : "Identity of the target Near-RT RIC", + "example" : "Near-RT-Ric-ID1", + "type" : "string" + }, + "transient" : { + "default" : false, + "description" : "If true, the policy is automatically deleted if the targeted Near-RT RIC restarts or recovers. If false, the A1 Policy Instance remains, and is re-pushed to the targeted Near-RT RIC after a restart or recovery. If false, the A1 Policy Instance is maintained and must be deleted separately in the event of Near-RT RIC restart or recovery. Default is false.\n", + "nullable" : false, + "type" : "boolean" + }, "policyId" : { - "description" : "Identity of the policy", + "description" : "An optional identity to be used for the new A1 Policy Instance. If this value is present, it must be unique. If not present the new A1 Policy Instance will be assigned a newly generated unique ID, and the new ID can be extracted from the 'Location' header in the response.\n", + "example" : "POLICY-ID1", "type" : "string" }, - "nearRtRicId" : { - "$ref" : "#/components/schemas/NearRtRicId" + "serviceId" : { + "default" : "", + "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. If the service is registered, the newly created A1 Policy Instance will be subject to the same supervision rules as the the service's other policies.", + "example" : "rApp 1", + "type" : "string" + }, + "policyObject" : { + "description" : "Policy Object is a JSON representation policy data for an A1 Policy Instance. The schema for this policy data is defined in the corresponding A1 Policy Type.\n", + "type" : "object" + }, + "policyTypeId" : { + "description" : "A1 Policy Type identity", + "example" : "ORAN_QOS_1.0.0 '(typeName_SemVersion)'", + "type" : "string" } }, - "required" : [ "nearRtRicId", "policyId" ], + "required" : [ "nearRtRicId", "policyObject", "policyTypeId" ], + "type" : "object" + }, + "void" : { + "description" : "Void/empty", "type" : "object" }, "ServiceStatusList" : { + "example" : { + "serviceList" : [ { + "keepAliveIntervalSeconds" : 0, + "callbackUrl" : "callbackUrl", + "timeSinceLastActivitySeconds" : 6, + "serviceId" : "serviceId" + }, { + "keepAliveIntervalSeconds" : 0, + "callbackUrl" : "callbackUrl", + "timeSinceLastActivitySeconds" : 6, + "serviceId" : "serviceId" + } ] + }, "properties" : { "serviceList" : { - "description" : "List of service information", + "description" : "List of Service Status objects, describing a collection of registered services.", "items" : { "$ref" : "#/components/schemas/ServiceStatus" }, @@ -2076,57 +2379,79 @@ }, "type" : "object" }, - "ServiceCallbackInfo" : { - "description" : "Information transferred as in Service callbacks (callback_url)", + "ServiceStatus" : { + "description" : "Information about a previously registered service", + "example" : { + "keepAliveIntervalSeconds" : 0, + "callbackUrl" : "callbackUrl", + "timeSinceLastActivitySeconds" : 6, + "serviceId" : "serviceId" + }, "properties" : { - "ricId" : { - "description" : "identity of a Near-RT RIC", + "callbackUrl" : { + "description" : "Callback URL for notifying of Near-RT RIC state changes", "type" : "string" }, - "eventType" : { - "description" : "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management", - "enum" : [ "AVAILABLE" ], + "serviceId" : { + "description" : "Identity of the service", "type" : "string" + }, + "keepAliveIntervalSeconds" : { + "description" : "Keep alive interval (seconds) 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.\n", + "format" : "int64", + "type" : "integer" + }, + "timeSinceLastActivitySeconds" : { + "description" : "Time (seconds) since last recorded operation by the service", + "format" : "int64", + "type" : "integer" } }, - "required" : [ "eventType", "ricId" ], "type" : "object" }, - "Link" : { + "ServiceRegistrationInfo" : { + "description" : "Information for a service to be registered", + "example" : { + "keepAliveIntervalSeconds" : 0, + "callbackUrl" : "callbackUrl", + "serviceId" : "serviceId" + }, "properties" : { - "templated" : { - "type" : "boolean" + "callbackUrl" : { + "description" : "Callback URL for notifying of Near-RT RIC state changes", + "type" : "string" }, - "href" : { + "serviceId" : { + "description" : "Identity of the service", "type" : "string" + }, + "keepAliveIntervalSeconds" : { + "description" : "Keep alive interval for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled.\n", + "format" : "int64", + "type" : "integer" } }, + "required" : [ "serviceId" ], "type" : "object" }, - "ProblemDetails" : { - "description" : "A problem detail to carry details in an HTTP response according to RFC 7807", + "ServiceCallbackInfo" : { + "description" : "Information transferred in Service callbacks, \nif a callback URL was provided for a registered service\n", + "example" : { + "ricId" : "ricId", + "eventType" : "AVAILABLE" + }, "properties" : { - "type" : { - "description" : "a URI reference according to IETF RFC 3986 that identifies the problem type", - "type" : "string" - }, - "title" : { - "description" : "human-readable summary of the problem type", - "type" : "string" - }, - "status" : { - "description" : "the HTTP status code", - "type" : "number" - }, - "detail" : { - "description" : "human-readable explanation ", + "ricId" : { + "description" : "Identity of a Near-RT RIC", "type" : "string" }, - "instance" : { - "description" : "URI reference that identifies the specific occurrence of the problem", + "eventType" : { + "description" : "values: \n AVAILABLE: the Near-RT RIC has become available for A1 Policy management\n", + "enum" : [ "AVAILABLE" ], "type" : "string" } }, + "required" : [ "eventType", "ricId" ], "type" : "object" } } diff --git a/api/pms-api-v3.json b/api/pms-api-v3.json index c844073..38f3c62 100644 --- a/api/pms-api-v3.json +++ b/api/pms-api-v3.json @@ -2,44 +2,46 @@ "openapi" : "3.0.3", "info" : { "contact" : { - "email" : "discuss-list@onap.com", - "url" : "https://www.onap.org/" + "email" : "discuss@lists.o-ran-sc.org", + "url" : "https://o-ran-sc.org//" }, - "description" : "

General

The O-RAN Non-RT RIC Policy Management Service provides a REST API for managemecnt of A1 policies.
The main tasks of the service are:

  • A1 Policy creation, modification and deletion.
  • Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs
  • Maintaining a view of supported Near-RT RIC policy types
  • Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.

APIs provided or defined by the service

A1 Policy Management

This is an API for management of A1 Policies.

  • A1 Policy retrieval, creation, modification and deletion.
  • Retrieval of supported A1 Policy types for a Near-RT RIC
  • Retrieval of status for existing A1 policies

Management of configuration

API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.

Service callbacks

These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.

NearRT-RIC Repository

This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.

Health Check

API used for supervision of the PMS component.

Service Registry and Supervision

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.

Authorization API

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.

", + "description" : "

General

The ORAN SC A1 Policy Management Service provides a REST API for managing A1 policies.
This document describes the latest API set to perform tasks for:

  • A1 Policy creation, modification and deletion.
  • Monitoring and maintaining consistency of the SMO view of A1 Policies and the Near-RT RICs
  • Maintaining a view of each Near-RT RIC's supported A1 Policy Types
  • Supervision of registered services (rApps). When a registered service is unavailable, its policies are removed.

APIs provided or defined by the service

Note: parts of this API are strongly based on extracts of the O-RAN Alliance R1 Interface specification for A1 Policy Management, and those parts should be considered '© O-RAN ALLIANCE - All rights reserved.'

A1 Policy Management

This is the latest API for managing A1 Policies. This API is partially compliant with O-RAN Alliance R1 Interface specifications for A1 Policy Management:

  • A1 Policy retrieval, creation, modification and deletion.
  • Retrieval of supported A1 Policy Types for a Near-RT RIC
  • Retrieval of status for existing A1 policies

Management of configuration

API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.

Service Callbacks

These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.

NearRT-RIC Repository (Older version)

This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted towards one Near-RT RIC.

Health Check

API used for supervision of the A1 Policy Management Service.

Service Registry and Supervision

API used for registering services/clients/rApps. Each A1 Policy can be tagged with an owner. If the owner service is registered, then the service can be optionally monitored by a heart-beat supervision mechanism, and if the registered service becomes unavailable, then it is removed and all its A1 Policies are deleted. Note that services do not need to be registered to create A1 Policies, but unregistered services are not supervised. This is a feature that is optional to use.

", "license" : { - "name" : "Copyright (C) 2024 OpenInfra Foundation Europe. Licensed under the Apache License.", + "name" : "Copyright (C) 2024 - 2025 OpenInfra Foundation Europe. Licensed under the Apache 2 License.", "url" : "http://www.apache.org/licenses/LICENSE-2.0" }, - "title" : "A1 policy management API", + "title" : "OSC - A1 Policy Management API", "version" : "1.0.0", - "x-api-id" : "a31c510b-20e6-4a08-af16-368c44d7fba8", + "x-api-id" : "e9776a07-0813-4fca-9801-6f892f0a7c13", "x-audience" : "external-public" }, + "externalDocs" : { + "description" : "Based on parts of O-RAN ALLIANCE specification: O-RAN.WG2.R1AP-v07.00", + "url" : "https://www.o-ran.org/specifications" + }, "servers" : [ { "url" : "{apiRoot}/a1-policy-management/v1", "variables" : { "apiRoot" : { "default" : "https://example.com", - "description" : "This is the Host:Port or Address where the A1-Policy Management Service can be accessed" + "description" : "This is the Host:Port or Address where the A1-Policy Management Service can be accessed. Note: This URL path format aligns with the O-RAN Alliance R1-AP specifications for A1 Policy Management" } } } ], "tags" : [ { - "description" : "API used to create polices, Policy Instances and get them as individual using an ID or get all policies/Instances.", + "description" : "API used to get, create, update and delete A1 Policy Instances. Also used to query A1 Policy Types.\n", "name" : "A1 Policy Management" }, { - "description" : "API used to get the NearRT-RIC for the managed element.", + "description" : "API used to get information about registered Near-RT RICs.\n", "name" : "NearRT-RIC Repository" }, { - "description" : "API used to keep the service Alive with in the timeout period", + "description" : "API used to manage registered services, and control their keep-alive status via heart-beat messages.\n", "name" : "Service Registry and Supervision" }, { - "description" : "API used to get the health status and statistics of this service", + "description" : "API used to get the health status and statistics of this service.\n", "name" : "Health Check" }, { - "name" : "Service callbacks" - }, { - "description" : "API used to create or fetch the application configuration.", + "description" : "API used to create or fetch the application configuration.\n", "name" : "Configuration" } ], "paths" : { @@ -62,35 +64,37 @@ } }, "description" : "OK- Service is living Ok" + }, + "404" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Not Found" } }, + "summary" : "Get Status (getStatus)", "tags" : [ "Health Check" ] } }, - "/rics/ric" : { + "/rics/{ricId}" : { "get" : { - "description" : "Either a Near-RT RIC identity or a Managed Element identity can be specified.
The intention with Managed Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU).", + "description" : "Get information about a Near-RT RIC", "operationId" : "getRic", "parameters" : [ { - "description" : "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.", - "explode" : true, - "in" : "query", - "name" : "managedElementId", - "required" : false, - "schema" : { - "type" : "string" - }, - "style" : "form" - }, { "description" : "The identity of a Near-RT RIC to get information for.", "explode" : true, - "in" : "query", + "in" : "path", "name" : "ricId", - "required" : false, + "required" : true, "schema" : { + "nullable" : false, "type" : "string" }, - "style" : "form" + "style" : "simple" }, { "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.", "explode" : false, @@ -130,16 +134,16 @@ "description" : "Not Found" } }, - "summary" : "Returns info for one Near-RT RIC", + "summary" : "Get a Near-RT RIC (getRic)", "tags" : [ "NearRT-RIC Repository" ] } }, "/rics" : { "get" : { - "description" : "The call returns all Near-RT RICs that supports a given policy type identity", + "description" : "Get all Near-RT RICs that supports a given A1 Policy Type ID", "operationId" : "getRics", "parameters" : [ { - "description" : "The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned", + "description" : "The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned.\n", "explode" : true, "in" : "query", "name" : "policyTypeId", @@ -187,13 +191,13 @@ "description" : "Not Found" } }, - "summary" : "Query Near-RT RIC information", + "summary" : "Get Near-RT RICs for A1 Policy Type (getRics)", "tags" : [ "NearRT-RIC Repository" ] } }, "/policy-types" : { "get" : { - "description" : "Query policy type identities", + "description" : "Query A1 Policy Type identities using query parameters", "operationId" : "getPolicyTypes", "parameters" : [ { "description" : "Select types for the given Near-RT RIC identity.", @@ -206,7 +210,7 @@ }, "style" : "form" }, { - "description" : "Select types with the given type name (type identity has the format )", + "description" : "Select types compatible with the given type name (type identity has the format 'typename_version')", "explode" : true, "in" : "query", "name" : "typeName", @@ -216,7 +220,7 @@ }, "style" : "form" }, { - "description" : "Select types that are compatible with the given version. This parameter is only applicable in conjunction with type_name. As an example version 1.9.1 is compatible with 1.0.0 but not the other way around. Matching types will be returned sorted in ascending order.", + "description" : "Select types that are compatible with the given version. This parameter is only applicable in conjunction with typeName. 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.\n", "explode" : true, "in" : "query", "name" : "compatibleWithVersion", @@ -241,6 +245,11 @@ "200" : { "content" : { "application/json" : { + "examples" : { + "PolicyTypeInformation" : { + "$ref" : "#/components/examples/PolicyTypeInformation" + } + }, "schema" : { "items" : { "$ref" : "#/components/schemas/PolicyTypeInformation" @@ -309,7 +318,7 @@ } } }, - "description" : "Too Many Request" + "description" : "Too Many Requests" }, "500" : { "content" : { @@ -342,12 +351,13 @@ "description" : "Service Unavailable" } }, + "summary" : "Get A1 Policy Types (getPolicyTypes)", "tags" : [ "A1 Policy Management" ] } }, "/policy-types/{policyTypeId}" : { "get" : { - "description" : "Returns a policy type definition", + "description" : "Get an A1 Policy Type definition using its policy type ID", "operationId" : "getPolicyTypeDefinition", "parameters" : [ { "explode" : false, @@ -375,16 +385,16 @@ "content" : { "application/json" : { "examples" : { - "policyObject" : { - "$ref" : "#/components/examples/PolicyObject" + "PolicyTypeObject" : { + "$ref" : "#/components/examples/PolicyTypeObject" } }, "schema" : { - "$ref" : "#/components/schemas/PolicyObject" + "$ref" : "#/components/schemas/PolicyTypeObject" } } }, - "description" : "OK - schema of the given policy type" + "description" : "OK - details and schema of the requested A1 Policy Type" }, "400" : { "content" : { @@ -444,7 +454,7 @@ } } }, - "description" : "Too Many Request" + "description" : "Too Many Requests" }, "500" : { "content" : { @@ -477,12 +487,13 @@ "description" : "Service Unavailable" } }, + "summary" : "Get an A1 Policy Type definition (getPolicyTypeDefinition)", "tags" : [ "A1 Policy Management" ] } }, "/policies/{policyId}" : { "delete" : { - "description" : "Deleting the policy using policyId.", + "description" : "Delete an existing A1 Policy instance using its policy ID.", "operationId" : "deletePolicy", "parameters" : [ { "explode" : false, @@ -507,7 +518,7 @@ } ], "responses" : { "204" : { - "description" : "The created A1 policy was deleted" + "description" : "No Content" }, "400" : { "content" : { @@ -549,13 +560,33 @@ }, "description" : "Not Found" }, + "405" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Method Not Allowed" + }, + "406" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Not Acceptable" + }, "423" : { "content" : { "application/problem+json" : { "example" : { "status" : 423, "title" : "Locked", - "detail" : "State is Locked in the provided request." + "detail" : "State is Locked in the provided request." }, "schema" : { "$ref" : "#/components/schemas/ErrorInformation" @@ -572,7 +603,7 @@ } } }, - "description" : "Too Many Request" + "description" : "Too Many Requests" }, "500" : { "content" : { @@ -605,11 +636,11 @@ "description" : "Service Unavailable" } }, - "summary" : "Delete a policy", + "summary" : "Delete an A1 Policy instance (deletePolicy)", "tags" : [ "A1 Policy Management" ] }, "get" : { - "description" : "Returns a policy", + "description" : "Get an A1 Policy instance's policy data using its policy ID", "operationId" : "getPolicy", "parameters" : [ { "explode" : false, @@ -706,7 +737,7 @@ } } }, - "description" : "Too Many Request" + "description" : "Too Many Requests" }, "500" : { "content" : { @@ -739,11 +770,12 @@ "description" : "Service Unavailable" } }, + "summary" : "Get an A1 Policy's policy data (getPolicy)", "tags" : [ "A1 Policy Management" ] }, "put" : { - "description" : "update a policy", - "operationId" : "putPolicy", + "description" : "Update an existing A1 Policy instance's policy data using its policy ID.", + "operationId" : "updatePolicy", "parameters" : [ { "explode" : false, "in" : "path", @@ -866,7 +898,7 @@ "example" : { "status" : 423, "title" : "Locked", - "detail" : "State is Locked in the provided request." + "detail" : "State is Locked in the provided request." }, "schema" : { "$ref" : "#/components/schemas/ErrorInformation" @@ -883,7 +915,138 @@ } } }, - "description" : "Too Many Request" + "description" : "Too Many Requests" + }, + "500" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Internal Server Error" + }, + "502" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Bad Gateway" + }, + "503" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Service Unavailable" + } + }, + "summary" : "Update an A1 Policy's policy data (updatePolicy)", + "tags" : [ "A1 Policy Management" ] + } + }, + "/policies/{policyId}/status" : { + "get" : { + "description" : "Retrieve the status information for an A1 Policy Instance using its policy ID.", + "operationId" : "getPolicyStatus", + "parameters" : [ { + "explode" : false, + "in" : "path", + "name" : "policyId", + "required" : true, + "schema" : { + "type" : "string" + }, + "style" : "simple" + }, { + "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.", + "explode" : false, + "in" : "header", + "name" : "Accept", + "required" : false, + "schema" : { + "example" : "application/json", + "type" : "string" + }, + "style" : "simple" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PolicyStatusObject" + } + } + }, + "description" : "OK" + }, + "400" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Bad Request" + }, + "401" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Unauthorized" + }, + "403" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Forbidden" + }, + "404" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Not Found" + }, + "406" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Not Acceptable" + }, + "429" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Too Many Requests" }, "500" : { "content" : { @@ -916,15 +1079,16 @@ "description" : "Service Unavailable" } }, + "summary" : "Get an A1 Policy Instance's status (getPolicyStatus)", "tags" : [ "A1 Policy Management" ] } }, "/policies" : { "get" : { - "description" : "Returns a list of A1 policies matching given search criteria.
If several query parameters are defined, the policies matching all conditions are returned.", - "operationId" : "getAllPolicies", + "description" : "Returns a collection of A1 Policy Instance IDs for policies that match given search criteria. If several query parameters are defined, the policies matching all conditions are returned.\n", + "operationId" : "getPolicyIds", "parameters" : [ { - "description" : "Select policies of a given policy type identity.", + "description" : "Select policies with a given A1 Policy Type ID.", "explode" : true, "in" : "query", "name" : "policyTypeId", @@ -934,7 +1098,7 @@ }, "style" : "form" }, { - "description" : "Select policies of a given Near-RT RIC identity.", + "description" : "Select policies for a given Near-RT RIC identity.", "explode" : true, "in" : "query", "name" : "nearRtRicId", @@ -944,7 +1108,7 @@ }, "style" : "form" }, { - "description" : "Select policies owned by a given service.", + "description" : "Select policies owned by a given service (registered or unregistered).", "explode" : true, "in" : "query", "name" : "serviceId", @@ -954,7 +1118,7 @@ }, "style" : "form" }, { - "description" : "Select policies of types with the given type name (type identity has the format )", + "description" : "Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').", "explode" : true, "in" : "query", "name" : "typeName", @@ -1047,7 +1211,7 @@ } } }, - "description" : "Too Many Request" + "description" : "Too Many Requests" }, "500" : { "content" : { @@ -1080,11 +1244,11 @@ "description" : "Service Unavailable" } }, - "summary" : "Query policy identities", + "summary" : "Query for A1 Policy instances (getPolicyIds)", "tags" : [ "A1 Policy Management" ] }, "post" : { - "description" : "To create A1 policies", + "description" : "Create an A1 Policy Instance", "operationId" : "createPolicy", "requestBody" : { "content" : { @@ -1105,16 +1269,25 @@ } } }, - "description" : "Success case 201 created", + "description" : "Created", "headers" : { "Location" : { - "description" : "Contains the URI of the newly created resource", + "description" : "Contains the URI of the newly created A1 Policy Instances. This URI includes the A1 Policy Instance ID for the newly created policy instance.\n", "explode" : false, "required" : true, "schema" : { "type" : "string" }, "style" : "simple" + }, + "Content-Type" : { + "description" : "Media Type of the response", + "explode" : false, + "schema" : { + "example" : "application/json", + "type" : "string" + }, + "style" : "simple" } } }, @@ -1158,6 +1331,16 @@ }, "description" : "Not Found" }, + "405" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Method Not Allowed" + }, "406" : { "content" : { "application/problem+json" : { @@ -1168,13 +1351,43 @@ }, "description" : "Not Acceptable" }, + "409" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Conflict" + }, + "413" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Payload Too Large" + }, + "415" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Unsupported Media Type" + }, "423" : { "content" : { "application/problem+json" : { "example" : { "status" : 423, "title" : "Locked", - "detail" : "State is Locked in the provided request." + "detail" : "State is Locked in the provided request." }, "schema" : { "$ref" : "#/components/schemas/ErrorInformation" @@ -1191,7 +1404,7 @@ } } }, - "description" : "Too Many Request" + "description" : "Too Many Requests" }, "500" : { "content" : { @@ -1224,12 +1437,13 @@ "description" : "Service Unavailable" } }, + "summary" : "Create an A1 Policy Instance (createPolicy)", "tags" : [ "A1 Policy Management" ] } }, "/configuration" : { "get" : { - "description" : "Returns the contents of the application configuration", + "description" : "Returns the entire contents of the Application Configuration.", "operationId" : "getConfiguration", "responses" : { "200" : { @@ -1253,10 +1467,11 @@ "description" : "Not Found" } }, + "summary" : "Get the Application Configuration (getConfiguration)", "tags" : [ "Configuration" ] }, "put" : { - "description" : "Replace the current configuration file with the given configuration", + "description" : "Replace the current Application Configuration with a new configuration. The new configuration, if accepted, will take effect after a short delay. The new configuration must comply with the Application Configuration schema, which can be found from the the Application Documentation (Developer Guide)\n", "operationId" : "putConfiguration", "requestBody" : { "content" : { @@ -1271,7 +1486,7 @@ "responses" : { "200" : { "content" : { - "*/*" : { + "application/json" : { "schema" : { "$ref" : "#/components/schemas/void" } @@ -1290,12 +1505,13 @@ "description" : "Bad Request" } }, + "summary" : "Set/Replace the Application Configuration (putConfiguration)", "tags" : [ "Configuration" ] } }, "/services/{serviceId}/keepalive" : { "put" : { - "description" : "A registered service should invoke this operation regularly to indicate that it is still alive. If a registered service fails to invoke this operation before the end of a timeout period the service will be deregistered and all its A1 policies wil be removed. (This timeout can be set or disabled when each service is initially registered)", + "description" : "A registered service should invoke this operation regularly to indicate that it is still alive. If a registered service fails to invoke some operation, or this operation, before the end of a timeout period the service will be deregistered and all its A1 policies wil be removed and the service is deleted. This operation is only intended for registered services. (This timeout can be set or disabled when each service is initially registered). Unregistered services do not need to invoke this operation, since the optional keep-alive monitoring feature can only be enabled for registered services.", "operationId" : "keepAliveService", "parameters" : [ { "explode" : false, @@ -1318,20 +1534,10 @@ }, "style" : "simple" } ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "type" : "string" - } - } - }, - "required" : false - }, "responses" : { "200" : { "content" : { - "*/*" : { + "application/json" : { "schema" : { "type" : "object" } @@ -1350,16 +1556,16 @@ "description" : "Not Found" } }, - "summary" : "Heartbeat indicates that the service is running", + "summary" : "Heartbeat message from a service (keepAliveService)", "tags" : [ "Service Registry and Supervision" ] } }, "/services" : { "get" : { - "description" : "Either information about a registered service with given identity or all registered services are returned.", + "description" : "Get information about all registered services, or a single registered service. If the service ID of a registered service is included in the query, information about that service is returned. Otherwise Information about all registered is returned. This operation does not retrieve information about unregistered services.\n", "operationId" : "getServices", "parameters" : [ { - "description" : "The identity of the service", + "description" : "The identity of the registered service", "explode" : true, "in" : "query", "name" : "serviceId", @@ -1407,7 +1613,7 @@ "description" : "Not Found" } }, - "summary" : "Returns service information", + "summary" : "Get Services (getServices)", "tags" : [ "Service Registry and Supervision" ] }, "put" : { @@ -1415,7 +1621,7 @@ "RICStatus" : { "{$request.body#/callback_url}" : { "post" : { - "description" : "The URL to this call is registered at Service registration.", + "description" : "Callouts to indicate Near-RT RIC status changes relevant for Services. \nThe URL invoked by this callback is provided at Service registration.\n", "operationId" : "serviceCallback", "requestBody" : { "content" : { @@ -1449,13 +1655,14 @@ "description" : "Not Found" } }, - "summary" : "Callback for Near-RT RIC status", - "tags" : [ "Service callbacks" ] + "summary" : "Callback for Near-RT RIC status (serviceCallback)", + "tags" : [ "Service Registry and Supervision" ], + "x-callback-request" : true } } } }, - "description" : "Registering a service is needed to:
  • Get callbacks about available NearRT RICs.
  • Activate supervision of the service. If a service is inactive, its policies will automatically be deleted.
Policies can be created even if the service is not registerred. This is a feature which it is optional to use.", + "description" : "Register a single service, or update a previous registration. Service registration is required to get callbacks about available NearRT RICs and to enable supervision of the service's active status. If a registered service becomes inactive, its policies can be automatically deleted. A1 Policy instances can also be created for unregistered services. If an unregistered service is later registered, the service's policies are retained when the service becomes registered. This feature is optional to use.\n", "operationId" : "putService", "requestBody" : { "content" : { @@ -1470,7 +1677,7 @@ "responses" : { "200" : { "content" : { - "*/*" : { + "application/json" : { "schema" : { "type" : "object" } @@ -1480,7 +1687,7 @@ }, "201" : { "content" : { - "*/*" : { + "application/json" : { "schema" : { "type" : "object" } @@ -1499,13 +1706,13 @@ "description" : "Bad Request" } }, - "summary" : "Register a service", + "summary" : "Register or update a Service (putService)", "tags" : [ "Service Registry and Supervision" ] } }, "/services/{serviceId}" : { "delete" : { - "description" : "Unregister a service", + "description" : "Unregister a registered Service using its service ID. Only registered services can be unregistered. All A1 Policy Instances for the previously registered service will be removed.\n", "operationId" : "deleteService", "parameters" : [ { "explode" : false, @@ -1531,7 +1738,7 @@ "responses" : { "204" : { "content" : { - "*/*" : { + "application/json" : { "schema" : { "type" : "object" } @@ -1550,67 +1757,91 @@ "description" : "Not Found" } }, + "summary" : "Unregister a Service (deleteService)", "tags" : [ "Service Registry and Supervision" ] } } }, "components" : { "examples" : { - "ServiceStatusList" : { - "description" : "List of service information", - "value" : { - "serviceList" : [ { - "callbackUrl" : "callbackUrl", - "serviceId" : "serviceId", - "keepAliveIntervalSeconds" : 0, - "timeSinceLastActivitySeconds" : 6 - }, { - "callbackUrl" : "callbackUrl", - "serviceId" : "serviceId", - "keepAliveIntervalSeconds" : 0, - "timeSinceLastActivitySeconds" : 6 - } ] - } - }, - "PolicyStatusInfo" : { - "description" : "Status for one A1-P Policy", - "value" : { - "lastModified" : "last_modified", - "status" : { - "value" : { - "status" : "status" - } - } - } - }, "StatusInfo" : { "value" : { - "status" : "status" + "status" : "success" } }, "RicInfo" : { "value" : { - "ricId" : "ricId", - "managedElementIds" : [ "managedElementId", "managedElementId" ], + "ricId" : "ricId1", + "managedElementIds" : [ "Note #1", "Athlone small cells", "Some optional string" ], "state" : "UNAVAILABLE", - "policyTypeIds" : [ "policyTypeId", "policyTypeId" ] + "policyTypeIds" : [ "policyTypeId1", "policyTypeId2" ] } }, "RicInfoList" : { "value" : { "rics" : [ { - "ricId" : "ricId", - "managedElementIds" : [ "managedElementId", "managedElementId" ], + "ricId" : "ricId1", + "managedElementIds" : [ "Note #1", "Athlone small cells", "Fake Cells" ], "state" : "UNAVAILABLE", - "policyTypeIds" : [ "policyTypeId", "policyTypeId" ] + "policyTypeIds" : [ "policyTypeId1", "policyTypeId2" ] }, { - "ricId" : "ricId", - "managedElementIds" : [ "managedElementId", "managedElementId" ], + "ricId" : "ricId2", + "managedElementIds" : [ "My test element", "Another test element" ], "state" : "UNAVAILABLE", - "policyTypeIds" : [ "policyTypeId", "policyTypeId" ] + "policyTypeIds" : [ "policyTypeId3", "policyTypeId4" ] } ] } }, + "PolicyTypeInformation" : { + "value" : [ { + "policyTypeId" : "STD_QOS2_0.1.0", + "nearRtRicId" : "ric_g3_2" + }, { + "policyTypeId" : "STD_QOS_0_2_0", + "nearRtRicId" : "ric_g3_2" + }, { + "policyTypeId" : "STD_QOS2_0.1.0", + "nearRtRicId" : "ric_g3_1" + }, { + "policyTypeId" : "STD_QOS_0_2_0", + "nearRtRicId" : "ric_g3_1" + } ] + }, + "PolicyTypeObject" : { + "value" : { + "policySchema" : { + "$schema" : "http://json-schema.org/draft-07/schema#", + "title" : "STD_QOS_0_2_0", + "description" : "STD QOS2 policy type", + "type" : "object", + "properties" : { + "scope" : { + "type" : "object", + "properties" : { + "ueId" : { + "type" : "string" + }, + "qosId" : { + "type" : "string" + } + }, + "additionalProperties" : false, + "required" : [ "ueId", "qosId" ] + }, + "qosObjectives" : { + "type" : "object", + "properties" : { + "priorityLevel" : { + "type" : "number" + } + }, + "additionalProperties" : false, + "required" : [ "priorityLevel" ] + } + } + } + } + }, "PolicyObject" : { "value" : { "scope" : { @@ -1652,10 +1883,26 @@ "pdb" : 50 } } + }, + "ServiceStatusList" : { + "description" : "List of service information", + "value" : { + "serviceList" : [ { + "callbackUrl" : "http://callback.url", + "serviceId" : "serviceId1", + "keepAliveIntervalSeconds" : 0, + "timeSinceLastActivitySeconds" : 6 + }, { + "callbackUrl" : "http://callback.url", + "serviceId" : "serviceId2", + "keepAliveIntervalSeconds" : 500, + "timeSinceLastActivitySeconds" : 401 + } ] + } } }, "responses" : { - "400" : { + "404" : { "content" : { "application/problem+json" : { "schema" : { @@ -1663,9 +1910,9 @@ } } }, - "description" : "Bad Request" + "description" : "Not Found" }, - "401" : { + "400" : { "content" : { "application/problem+json" : { "schema" : { @@ -1673,9 +1920,9 @@ } } }, - "description" : "Unauthorized" + "description" : "Bad Request" }, - "403" : { + "401" : { "content" : { "application/problem+json" : { "schema" : { @@ -1683,9 +1930,9 @@ } } }, - "description" : "Forbidden" + "description" : "Unauthorized" }, - "404" : { + "403" : { "content" : { "application/problem+json" : { "schema" : { @@ -1693,9 +1940,9 @@ } } }, - "description" : "Not Found" + "description" : "Forbidden" }, - "405" : { + "406" : { "content" : { "application/problem+json" : { "schema" : { @@ -1703,9 +1950,9 @@ } } }, - "description" : "Method Not Allowed" + "description" : "Not Acceptable" }, - "406" : { + "429" : { "content" : { "application/problem+json" : { "schema" : { @@ -1713,9 +1960,9 @@ } } }, - "description" : "Not Acceptable" + "description" : "Too Many Requests" }, - "409" : { + "500" : { "content" : { "application/problem+json" : { "schema" : { @@ -1723,9 +1970,9 @@ } } }, - "description" : "Conflict" + "description" : "Internal Server Error" }, - "411" : { + "502" : { "content" : { "application/problem+json" : { "schema" : { @@ -1733,9 +1980,9 @@ } } }, - "description" : "Length Required" + "description" : "Bad Gateway" }, - "413" : { + "503" : { "content" : { "application/problem+json" : { "schema" : { @@ -1743,9 +1990,9 @@ } } }, - "description" : "Payload Too Large" + "description" : "Service Unavailable" }, - "415" : { + "411" : { "content" : { "application/problem+json" : { "schema" : { @@ -1753,9 +2000,9 @@ } } }, - "description" : "Unsupported Media Type" + "description" : "Length Required" }, - "429" : { + "413" : { "content" : { "application/problem+json" : { "schema" : { @@ -1763,9 +2010,9 @@ } } }, - "description" : "Too Many Request" + "description" : "Payload Too Large" }, - "500" : { + "415" : { "content" : { "application/problem+json" : { "schema" : { @@ -1773,19 +2020,24 @@ } } }, - "description" : "Internal Server Error" + "description" : "Unsupported Media Type" }, - "502" : { + "Locked" : { "content" : { "application/problem+json" : { + "example" : { + "status" : 423, + "title" : "Locked", + "detail" : "State is Locked in the provided request." + }, "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" + "$ref" : "#/components/schemas/ErrorInformation" } } }, - "description" : "Bad Gateway" + "description" : "Locked - HTTP Status code which can be used when the state is Locked" }, - "503" : { + "405" : { "content" : { "application/problem+json" : { "schema" : { @@ -1793,152 +2045,88 @@ } } }, - "description" : "Service Unavailable" + "description" : "Method Not Allowed" }, - "Locked" : { + "409" : { "content" : { "application/problem+json" : { - "example" : { - "status" : 423, - "title" : "Locked", - "detail" : "State is Locked in the provided request." - }, "schema" : { - "$ref" : "#/components/schemas/ErrorInformation" + "$ref" : "#/components/schemas/ProblemDetails" } } }, - "description" : "Locked - HTTP Status code which can be used when the state is Locked" + "description" : "Conflict" } }, "schemas" : { - "PolicyTypeInformation" : { - "description" : "Available policy types and for each policy type identifier the Near-RT RIC identifiers of those Near-RT RICs that support the related A1 policy type", + "StatusInfo" : { + "example" : { + "status" : "status" + }, "properties" : { - "policyTypeId" : { - "description" : "Identity of the policy type", + "status" : { + "description" : "Status text", "type" : "string" - }, - "nearRtRicId" : { - "$ref" : "#/components/schemas/NearRtRicId" } }, - "required" : [ "nearRtRicId", "policyTypeId" ], "type" : "object" }, - "PolicyObjectInformation" : { - "description" : "Information related to the creation of the policy", + "ProblemDetails" : { + "description" : "Object to carry details about a problem in an HTTP response according to IETF RFC 7807", "properties" : { - "nearRtRicId" : { - "description" : "identity of the target Near-RT RIC", - "example" : "Near-RT-Ric-ID", - "type" : "string" - }, - "transient" : { - "default" : false, - "description" : "if true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.", - "nullable" : false, - "type" : "boolean" - }, - "policyId" : { - "description" : "identity of the Policy", - "example" : "POLICY-ID", + "type" : { + "description" : "URI reference according to IETF RFC 3986 that identifies the problem type", "type" : "string" }, - "serviceId" : { - "description" : "the identity of the service owning the policy. This can be used to group the policies (it is possible to get all policies associated to a service). Note that the service does not need to be registered.", - "example" : "rApp ID", + "title" : { + "description" : "Human-readable summary of the problem type", "type" : "string" }, - "policyObject" : { - "$ref" : "#/components/schemas/PolicyObject" + "status" : { + "description" : "HTTP status code", + "type" : "number" }, - "policyTypeId" : { - "description" : "identity of the policy type", - "example" : "ORAN_QOS_1.0.0(typeName_SemVersion)", - "type" : "string" - } - }, - "required" : [ "nearRtRicId", "policyObject", "policyTypeId" ], - "type" : "object" - }, - "ErrorInformation" : { - "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807", - "properties" : { "detail" : { - "description" : " A human-readable explanation specific to this occurrence of the problem.", - "example" : "Policy type not found", + "description" : "Human-readable explanation", "type" : "string" }, - "title" : { - "description" : "A specific error name", - "example" : "Not Found", - "type" : "string" - }, - "status" : { - "description" : "The HTTP status code generated by the origin server for this occurrence of the problem. ", - "example" : 404, - "format" : "int32", - "type" : "integer" - } - }, - "type" : "object" - }, - "PolicyObject" : { - "description" : "Policy Object is a JSON representation of an A1 policy", - "type" : "object" - }, - "void" : { - "description" : "Void/empty", - "type" : "object" - }, - "StatusInfo" : { - "properties" : { - "status" : { - "description" : "status text", + "instance" : { + "description" : "URI reference that identifies the specific occurrence of the problem", "type" : "string" } }, "type" : "object" }, - "AuthorizationResult" : { - "description" : "Result of authorization", - "example" : { - "result" : true - }, - "properties" : { - "result" : { - "description" : "If true, the access is granted", - "type" : "boolean" - } - }, - "required" : [ "result" ], - "type" : "object" - }, "RicInfo" : { "description" : "Information for a Near-RT RIC", + "example" : { + "ricId" : "ricId", + "policyTypeIds" : [ "policyTypeIds", "policyTypeIds" ], + "managedElementIds" : [ "managedElementIds", "managedElementIds" ], + "state" : "UNAVAILABLE" + }, "properties" : { "ricId" : { - "description" : "identity of the Near-RT RIC", + "description" : "Identity of the Near-RT RIC", "type" : "string" }, "managedElementIds" : { - "description" : "O1 identities for managed entities", + "description" : "Identities for managed entities", "items" : { - "description" : "O1 identities for managed entities", + "description" : "Identity for a managed entity", "type" : "string" }, "type" : "array" }, "state" : { - "description" : "Represents the states for a Near-RT RIC", + "description" : "Represents the state of a Near-RT RIC", "enum" : [ "UNAVAILABLE", "AVAILABLE", "SYNCHRONIZING", "CONSISTENCY_CHECK" ], "type" : "string" }, "policyTypeIds" : { - "description" : "supported policy types", + "description" : "Supported A1 Policy Types", "items" : { - "description" : "supported policy types", + "description" : "Supported A1 Policy Type ID", "type" : "string" }, "type" : "array" @@ -1946,128 +2134,243 @@ }, "type" : "object" }, - "ServiceRegistrationInfo" : { - "description" : "Information for one service", + "RicInfoList" : { + "description" : "Collection of Near-RT RIC information objects", + "example" : { + "rics" : [ { + "ricId" : "ricId", + "policyTypeIds" : [ "policyTypeIds", "policyTypeIds" ], + "managedElementIds" : [ "managedElementIds", "managedElementIds" ], + "state" : "UNAVAILABLE" + }, { + "ricId" : "ricId", + "policyTypeIds" : [ "policyTypeIds", "policyTypeIds" ], + "managedElementIds" : [ "managedElementIds", "managedElementIds" ], + "state" : "UNAVAILABLE" + } ] + }, "properties" : { - "callbackUrl" : { - "description" : "callback for notifying of Near-RT RIC state changes", + "rics" : { + "description" : "List of Near-RT RIC information objects", + "items" : { + "$ref" : "#/components/schemas/RicInfo" + }, + "type" : "array" + } + }, + "type" : "object" + }, + "PolicyTypeInformation" : { + "description" : "A data tuple to indicate that an identified A1 Policy Type is supported at an identified Near-RT RIC.", + "example" : { + "policyTypeId" : "STD_QOS2_0.1.0", + "nearRtRicId" : "ric_g3_2" + }, + "properties" : { + "policyTypeId" : { + "description" : "A1 Policy Type identifier", "type" : "string" }, - "serviceId" : { - "description" : "identity of the service", + "nearRtRicId" : { + "description" : "Identity of the Near-RT RIC", "type" : "string" - }, - "keepAliveIntervalSeconds" : { - "description" : "keep alive interval for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled.", - "format" : "int64", - "type" : "integer" } }, - "required" : [ "serviceId" ], + "required" : [ "nearRtRicId", "policyTypeId" ], "type" : "object" }, - "PolicyStatusInfo" : { - "description" : "Status for one A1-P Policy", + "NearRtRicId" : { + "description" : "Identity of the Near-RT RIC", + "type" : "string" + }, + "PolicyTypeObject" : { + "description" : "An A1 Policy Type, as defined in O-RAN Alliance A1TD", + "example" : { + "policySchema" : { + "$schema" : "http://json-schema.org/draft-07/schema#", + "title" : "STD_QOS_0_2_0", + "description" : "Policy data schema for STD_QOS_0.2.0 A1 Policy Instances.", + "type" : "object", + "properties" : { + "scope" : { + "type" : "object", + "properties" : { + "ueId" : { + "type" : "string" + }, + "qosId" : { + "type" : "string" + } + }, + "additionalProperties" : false, + "required" : [ "ueId", "qosId" ] + }, + "qosObjectives" : { + "type" : "object", + "properties" : { + "priorityLevel" : { + "type" : "number" + } + }, + "additionalProperties" : false, + "required" : [ "priorityLevel" ] + } + } + }, + "statusSchema" : { + "$schema" : "http://json-schema.org/draft-07/schema#", + "title" : "STD_QOS_0.2.0", + "description" : "Status schema for STD_QOS_0.2.0 A1 Policy Instances.", + "type" : "object", + "properties" : { + "enforceStatus" : { + "type" : "string" + }, + "enforceReason" : { + "type" : "string" + }, + "additionalProperties" : false, + "required" : [ "enforceStatus" ] + } + } + }, "properties" : { - "lastModified" : { - "description" : "timestamp, last modification time", - "type" : "string" + "policySchema" : { + "description" : "A schema to define the policy data contents of A1 Policy Instances. Policy data schemas are Policy Type specific. All A1 Policy Instances of an A1 Policy Type should comply with the type's policy data schema.\n", + "type" : "object" }, - "status" : { - "description" : "the Policy status", + "statusSchema" : { + "description" : "A schema to define the contents of the status information for A1 Policy Instances. Status schemas are Policy Type specific. All status information for all A1 Policy Instances of an A1 Policy Type should comply with the type's status schema.\n", "type" : "object" } }, + "required" : [ "policySchema" ], "type" : "object" }, - "ServiceStatus" : { + "PolicySchema" : { + "description" : "A schema to define the policy data contents of A1 Policy Instances. Policy data schemas are Policy Type specific. All A1 Policy Instances of an A1 Policy Type should comply with the type's policy data schema.\n", + "type" : "object" + }, + "StatusSchema" : { + "description" : "A schema to define the contents of the status information for A1 Policy Instances. Status schemas are Policy Type specific. All status information for all A1 Policy Instances of an A1 Policy Type should comply with the type's status schema.\n", + "type" : "object" + }, + "PolicyObject" : { + "description" : "Policy Object is a JSON representation policy data for an A1 Policy Instance. The schema for this policy data is defined in the corresponding A1 Policy Type.\n", + "type" : "object" + }, + "ErrorInformation" : { + "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807", "properties" : { - "callbackUrl" : { - "description" : "callback for notifying of RIC synchronization", + "detail" : { + "description" : "A human-readable explanation specific to this occurrence of the problem.", + "example" : "Policy type not found", "type" : "string" }, - "serviceId" : { - "description" : "identity of the service", + "title" : { + "description" : "A specific error name", + "example" : "Not Found", "type" : "string" }, - "keepAliveIntervalSeconds" : { - "description" : "policy keep alive timeout", - "format" : "int64", - "type" : "integer" - }, - "timeSinceLastActivitySeconds" : { - "description" : "time since last invocation by the service", - "format" : "int64", + "status" : { + "description" : "The HTTP status code generated by the origin server for this occurrence of the problem.\n", + "example" : 404, + "format" : "int32", "type" : "integer" } }, "type" : "object" }, - "RicInfoList" : { - "description" : "List of Near-RT RIC information", - "properties" : { - "rics" : { - "description" : "List of Near-RT RIC information", - "items" : { - "$ref" : "#/components/schemas/RicInfo" - }, - "type" : "array" - } - }, + "PolicyStatusObject" : { + "description" : "A generic policy status object that can be used to transport any policy status. Additionally, a schema for policy status can be defined in the corresponding A1 Policy Type.\n", "type" : "object" }, - "input" : { - "description" : "input", + "PolicyInformation" : { + "description" : "Information tuple for a single A1 Policy Instance. Contains the A1 Policy Instance ID, and the ID of the Near-RT RIC where the policy is created.\n", + "example" : { + "policyId" : "policyId", + "nearRtRicId" : "nearRtRicId" + }, "properties" : { - "accessType" : { - "description" : "Access type", - "enum" : [ "READ", "WRITE", "DELETE" ], - "type" : "string" - }, - "authToken" : { - "description" : "Authorization token", + "policyId" : { + "description" : "Identity of the A1 Policy Instance", "type" : "string" }, - "policyTypeId" : { - "description" : "Policy type identifier", + "nearRtRicId" : { + "description" : "Identity of the Near-RT RIC", "type" : "string" } }, - "required" : [ "accessType", "authToken", "policyTypeId" ], + "required" : [ "nearRtRicId", "policyId" ], "type" : "object" }, - "PolicyAuthorization" : { - "description" : "Authorization request for A1 policy requests", - "properties" : { - "input" : { - "$ref" : "#/components/schemas/input" - } + "PolicyObjectInformation" : { + "description" : "Information to create an A1 Policy Instance", + "example" : { + "policyId" : "POLICY-ID1", + "nearRtRicId" : "Near-RT-Ric-ID1", + "transient" : false, + "policyObject" : "{}", + "serviceId" : "rApp 1", + "policyTypeId" : "ORAN_QOS_1.0.0 '(typeName_SemVersion)'" }, - "required" : [ "input" ], - "type" : "object" - }, - "NearRtRicId" : { - "description" : "Identity of the policy", - "type" : "string" - }, - "PolicyInformation" : { - "description" : "Near-RT RIC identifiers where A1 policies exist and for each Near-RT RIC identifier the policy identifiers of those policies that exist in that Near-RT RIC", "properties" : { + "nearRtRicId" : { + "description" : "Identity of the target Near-RT RIC", + "example" : "Near-RT-Ric-ID1", + "type" : "string" + }, + "transient" : { + "default" : false, + "description" : "If true, the policy is automatically deleted if the targeted Near-RT RIC restarts or recovers. If false, the A1 Policy Instance remains, and is re-pushed to the targeted Near-RT RIC after a restart or recovery. If false, the A1 Policy Instance is maintained and must be deleted separately in the event of Near-RT RIC restart or recovery. Default is false.\n", + "nullable" : false, + "type" : "boolean" + }, "policyId" : { - "description" : "Identity of the policy", + "description" : "An optional identity to be used for the new A1 Policy Instance. If this value is present, it must be unique. If not present the new A1 Policy Instance will be assigned a newly generated unique ID, and the new ID can be extracted from the 'Location' header in the response.\n", + "example" : "POLICY-ID1", "type" : "string" }, - "nearRtRicId" : { - "$ref" : "#/components/schemas/NearRtRicId" + "serviceId" : { + "default" : "", + "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. If the service is registered, the newly created A1 Policy Instance will be subject to the same supervision rules as the the service's other policies.", + "example" : "rApp 1", + "type" : "string" + }, + "policyObject" : { + "description" : "Policy Object is a JSON representation policy data for an A1 Policy Instance. The schema for this policy data is defined in the corresponding A1 Policy Type.\n", + "type" : "object" + }, + "policyTypeId" : { + "description" : "A1 Policy Type identity", + "example" : "ORAN_QOS_1.0.0 '(typeName_SemVersion)'", + "type" : "string" } }, - "required" : [ "nearRtRicId", "policyId" ], + "required" : [ "nearRtRicId", "policyObject", "policyTypeId" ], + "type" : "object" + }, + "void" : { + "description" : "Void/empty", "type" : "object" }, "ServiceStatusList" : { + "example" : { + "serviceList" : [ { + "keepAliveIntervalSeconds" : 0, + "callbackUrl" : "callbackUrl", + "timeSinceLastActivitySeconds" : 6, + "serviceId" : "serviceId" + }, { + "keepAliveIntervalSeconds" : 0, + "callbackUrl" : "callbackUrl", + "timeSinceLastActivitySeconds" : 6, + "serviceId" : "serviceId" + } ] + }, "properties" : { "serviceList" : { - "description" : "List of service information", + "description" : "List of Service Status objects, describing a collection of registered services.", "items" : { "$ref" : "#/components/schemas/ServiceStatus" }, @@ -2076,57 +2379,79 @@ }, "type" : "object" }, - "ServiceCallbackInfo" : { - "description" : "Information transferred as in Service callbacks (callback_url)", + "ServiceStatus" : { + "description" : "Information about a previously registered service", + "example" : { + "keepAliveIntervalSeconds" : 0, + "callbackUrl" : "callbackUrl", + "timeSinceLastActivitySeconds" : 6, + "serviceId" : "serviceId" + }, "properties" : { - "ricId" : { - "description" : "identity of a Near-RT RIC", + "callbackUrl" : { + "description" : "Callback URL for notifying of Near-RT RIC state changes", "type" : "string" }, - "eventType" : { - "description" : "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management", - "enum" : [ "AVAILABLE" ], + "serviceId" : { + "description" : "Identity of the service", "type" : "string" + }, + "keepAliveIntervalSeconds" : { + "description" : "Keep alive interval (seconds) 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.\n", + "format" : "int64", + "type" : "integer" + }, + "timeSinceLastActivitySeconds" : { + "description" : "Time (seconds) since last recorded operation by the service", + "format" : "int64", + "type" : "integer" } }, - "required" : [ "eventType", "ricId" ], "type" : "object" }, - "Link" : { + "ServiceRegistrationInfo" : { + "description" : "Information for a service to be registered", + "example" : { + "keepAliveIntervalSeconds" : 0, + "callbackUrl" : "callbackUrl", + "serviceId" : "serviceId" + }, "properties" : { - "templated" : { - "type" : "boolean" + "callbackUrl" : { + "description" : "Callback URL for notifying of Near-RT RIC state changes", + "type" : "string" }, - "href" : { + "serviceId" : { + "description" : "Identity of the service", "type" : "string" + }, + "keepAliveIntervalSeconds" : { + "description" : "Keep alive interval for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled.\n", + "format" : "int64", + "type" : "integer" } }, + "required" : [ "serviceId" ], "type" : "object" }, - "ProblemDetails" : { - "description" : "A problem detail to carry details in an HTTP response according to RFC 7807", + "ServiceCallbackInfo" : { + "description" : "Information transferred in Service callbacks, \nif a callback URL was provided for a registered service\n", + "example" : { + "ricId" : "ricId", + "eventType" : "AVAILABLE" + }, "properties" : { - "type" : { - "description" : "a URI reference according to IETF RFC 3986 that identifies the problem type", - "type" : "string" - }, - "title" : { - "description" : "human-readable summary of the problem type", - "type" : "string" - }, - "status" : { - "description" : "the HTTP status code", - "type" : "number" - }, - "detail" : { - "description" : "human-readable explanation ", + "ricId" : { + "description" : "Identity of a Near-RT RIC", "type" : "string" }, - "instance" : { - "description" : "URI reference that identifies the specific occurrence of the problem", + "eventType" : { + "description" : "values: \n AVAILABLE: the Near-RT RIC has become available for A1 Policy management\n", + "enum" : [ "AVAILABLE" ], "type" : "string" } }, + "required" : [ "eventType", "ricId" ], "type" : "object" } } diff --git a/api/pms-api-v3.yaml b/api/pms-api-v3.yaml index 46f881e..b0f3226 100644 --- a/api/pms-api-v3.yaml +++ b/api/pms-api-v3.yaml @@ -1,5 +1,6 @@ # ============LICENSE_START======================================================= -# Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved. +# Copyright (C) 2020-2023 Nordix Foundation. All rights reserved. +# Copyright (C) 2023-2025 OpenInfra Foundation Europe. All rights reserved. # ================================================================================ # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -18,689 +19,1114 @@ openapi: 3.0.3 info: - title: 'A1 policy management API' - version: 1.0.0 - x-api-id: a31c510b-20e6-4a08-af16-368c44d7fba8 - x-audience: external-public - description: "

General

The O-RAN Non-RT RIC Policy Management Service\ - \ provides a REST API for managemecnt of A1 policies.
The main tasks of the\ - \ service are:

  • A1 Policy creation, modification and deletion.
  • Monitoring\ - \ and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs
  • Maintaining\ - \ a view of supported Near-RT RIC policy types
  • Supervision of using services\ - \ (R-APPs). When a service is unavailable, its policies are removed.

APIs\ - \ provided or defined by the service

A1 Policy Management

This\ - \ is an API for management of A1 Policies.

  • A1 Policy retrieval, creation,\ - \ modification and deletion.
  • Retrieval of supported A1 Policy types for\ - \ a Near-RT RIC
  • Retrieval of status for existing A1 policies

Management\ - \ of configuration

API for updating and retrieval of the component configuration.\ - \ Note that there other ways to maintain the configuration.

Service callbacks

These\ - \ are endpoints that are invoked by this service. The callbacks are registered\ - \ in this service at service registration.

NearRT-RIC Repository

This\ - \ is an API that provides support for looking up a NearRT-RIC. Each A1 policy\ - \ is targeted for one Near-RT RIC.

Health Check

API used for supervision\ - \ of the PMS component.

Service Registry and Supervision

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.

Authorization API

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.

" + contact: + email: discuss@lists.o-ran-sc.org + url: https://o-ran-sc.org// + description: "

General

The ORAN SC A1 Policy Management Service provides\ + \ a REST API for managing A1 policies.
This document describes the latest\ + \ API set to perform tasks for:

  • A1 Policy creation, modification\ + \ and deletion.
  • Monitoring and maintaining consistency of the SMO view\ + \ of A1 Policies and the Near-RT RICs
  • Maintaining a view of each Near-RT\ + \ RIC's supported A1 Policy Types
  • Supervision of registered services (rApps).\ + \ When a registered service is unavailable, its policies are removed.

APIs\ + \ provided or defined by the service

Note: parts of this API are strongly\ + \ based on extracts of the O-RAN Alliance R1 Interface specification for A1 Policy\ + \ Management, and those parts should be considered '\xA9 O-RAN ALLIANCE - All\ + \ rights reserved.'

A1 Policy Management

This is the latest API\ + \ for managing A1 Policies. This API is partially compliant with O-RAN Alliance\ + \ R1 Interface specifications for A1 Policy Management:

  • A1 Policy retrieval,\ + \ creation, modification and deletion.
  • Retrieval of supported A1 Policy\ + \ Types for a Near-RT RIC
  • Retrieval of status for existing A1 policies

Management\ + \ of configuration

API for updating and retrieval of the component configuration.\ + \ Note that there other ways to maintain the configuration.

Service Callbacks

These\ + \ are endpoints that are invoked by this service. The callbacks are registered\ + \ in this service at service registration.

NearRT-RIC Repository (Older\ + \ version)

This is an API that provides support for looking up a NearRT-RIC.\ + \ Each A1 policy is targeted towards one Near-RT RIC.

Health Check

API\ + \ used for supervision of the A1 Policy Management Service.

Service Registry\ + \ and Supervision

API used for registering services/clients/rApps. Each\ + \ A1 Policy can be tagged with an owner. If the owner service is registered, then\ + \ the service can be optionally monitored by a heart-beat supervision mechanism,\ + \ and if the registered service becomes unavailable, then it is removed and all\ + \ its A1 Policies are deleted. Note that services do not need to be registered\ + \ to create A1 Policies, but unregistered services are not supervised. This\ + \ is a feature that is optional to use.

" license: - name: Copyright (C) 2024 OpenInfra Foundation Europe. Licensed under the Apache License. + name: Copyright (C) 2024 - 2025 OpenInfra Foundation Europe. Licensed under the + Apache 2 License. url: http://www.apache.org/licenses/LICENSE-2.0 - contact: - url: https://www.onap.org/ - email: discuss-list@onap.com + title: OSC - A1 Policy Management API + version: 1.0.0 + x-api-id: e9776a07-0813-4fca-9801-6f892f0a7c13 + x-audience: external-public +externalDocs: + description: "Based on parts of O-RAN ALLIANCE specification: O-RAN.WG2.R1AP-v07.00" + url: https://www.o-ran.org/specifications servers: - - url: '{apiRoot}/a1-policy-management/v1' - variables: - apiRoot: - default: 'https://example.com' - description: 'This is the Host:Port or Address where the A1-Policy Management Service can be accessed' +- url: "{apiRoot}/a1-policy-management/v1" + variables: + apiRoot: + default: https://example.com + description: "This is the Host:Port or Address where the A1-Policy Management\ + \ Service can be accessed. Note: This URL path format aligns with the O-RAN\ + \ Alliance R1-AP specifications for A1 Policy Management" tags: - - name: A1 Policy Management - description: "API used to create polices, Policy Instances and get \ them as individual using an ID or get all policies/Instances." - - name: NearRT-RIC Repository - description: "API used to get the NearRT-RIC for the managed element." - - name: Service Registry and Supervision - description: "API used to keep the service Alive with in the timeout period" - - name: Health Check - description: "API used to get the health status and statistics of this service" - - name: Service callbacks - - name: Configuration - description: "API used to create or fetch the application configuration." +- description: | + API used to get, create, update and delete A1 Policy Instances. Also used to query A1 Policy Types. + name: A1 Policy Management +- description: | + API used to get information about registered Near-RT RICs. + name: NearRT-RIC Repository +- description: | + API used to manage registered services, and control their keep-alive status via heart-beat messages. + name: Service Registry and Supervision +- description: | + API used to get the health status and statistics of this service. + name: Health Check +- description: | + API used to create or fetch the application configuration. + name: Configuration paths: /status: get: + description: Returns status and statistics of this service operationId: getStatus responses: "200": content: application/json: - schema: - $ref: '#/components/schemas/StatusInfo' examples: status_info: $ref: '#/components/examples/StatusInfo' + schema: + $ref: '#/components/schemas/StatusInfo' description: OK- Service is living Ok - description: Returns status and statistics of this service + "404": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + summary: Get Status (getStatus) tags: - - Health Check - /rics/ric: + - Health Check + /rics/{ricId}: get: - description: Either a Near-RT RIC identity or a Managed Element identity can - be specified.
The intention with Managed Element identity is the ID used - in O1 for accessing the traffical element (such as the ID of CU). + description: Get information about a Near-RT RIC operationId: getRic parameters: - - description: "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned." - explode: true - in: query - name: managedElementId - required: false - schema: - type: string - style: form - - description: The identity of a Near-RT RIC to get information for. - explode: true - in: query - name: ricId - required: false - schema: - type: string - style: form - - description: Specifies the content type that the client expects to receive in response to the request. - Only application/json is allowed. - in: header - name: Accept - schema: - type: string - example: application/json + - description: The identity of a Near-RT RIC to get information for. + explode: true + in: path + name: ricId + required: true + schema: + nullable: false + type: string + - description: Specifies the content type that the client expects to receive + in response to the request. Only application/json is allowed. + in: header + name: Accept + schema: + example: application/json + type: string responses: "200": content: application/json: - schema: - $ref: '#/components/schemas/RicInfo' examples: ric_info: $ref: '#/components/examples/RicInfo' + schema: + $ref: '#/components/schemas/RicInfo' description: OK - Near-RT RIC is found OK "404": - $ref: '#/components/responses/404' - summary: Returns info for one Near-RT RIC + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + summary: Get a Near-RT RIC (getRic) tags: - - NearRT-RIC Repository + - NearRT-RIC Repository /rics: get: - description: The call returns all Near-RT RICs that supports a given policy - type identity + description: Get all Near-RT RICs that supports a given A1 Policy Type ID operationId: getRics parameters: - - description: "The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned" - explode: true - in: query - name: policyTypeId - required: false - schema: - type: string - style: form - - description: Specifies the content type that the client expects to receive in response to the request. - Only application/json is allowed. - in: header - name: Accept - schema: - type: string - example: application/json + - description: | + The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned. + explode: true + in: query + name: policyTypeId + required: false + schema: + type: string + style: form + - description: Specifies the content type that the client expects to receive + in response to the request. Only application/json is allowed. + in: header + name: Accept + schema: + example: application/json + type: string responses: "200": content: application/json: - schema: - $ref: '#/components/schemas/RicInfoList' examples: ric_info_list: $ref: '#/components/examples/RicInfoList' + schema: + $ref: '#/components/schemas/RicInfoList' description: OK "404": - $ref: '#/components/responses/404' - summary: Query Near-RT RIC information + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + summary: Get Near-RT RICs for A1 Policy Type (getRics) tags: - - NearRT-RIC Repository + - NearRT-RIC Repository /policy-types: get: + description: Query A1 Policy Type identities using query parameters operationId: getPolicyTypes parameters: - - description: Select types for the given Near-RT RIC identity. - explode: true - in: query - name: nearRtRicId - required: false - schema: - type: string - style: form - - description: Select types with the given type name (type identity has the - format ) - explode: true - in: query - name: typeName - required: false - schema: - type: string - style: form - - description: Select types that are compatible with the given version. This - parameter is only applicable in conjunction with type_name. As an example - version 1.9.1 is compatible with 1.0.0 but not the other way around. Matching - types will be returned sorted in ascending order. - explode: true - in: query - name: compatibleWithVersion - required: false - schema: - type: string - style: form - - description: Specifies the content type that the client expects to receive in response to the request. - Only application/json is allowed. - in: header - name: Accept - schema: - type: string - example: application/json + - description: Select types for the given Near-RT RIC identity. + explode: true + in: query + name: nearRtRicId + required: false + schema: + type: string + style: form + - description: Select types compatible with the given type name (type identity + has the format 'typename_version') + explode: true + in: query + name: typeName + required: false + schema: + type: string + style: form + - description: | + Select types that are compatible with the given version. This parameter is only applicable in conjunction with typeName. As an example version 1.9.1 is compatible with 1.0.0 but not the other way around. Matching types will be returned sorted in ascending order. + explode: true + in: query + name: compatibleWithVersion + required: false + schema: + type: string + style: form + - description: Specifies the content type that the client expects to receive + in response to the request. Only application/json is allowed. + in: header + name: Accept + schema: + example: application/json + type: string responses: - '200': + "200": content: application/json: + examples: + PolicyTypeInformation: + $ref: '#/components/examples/PolicyTypeInformation' schema: items: $ref: '#/components/schemas/PolicyTypeInformation' type: array - description: OK - Policy Type IDs found Ok - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '429': - $ref: '#/components/responses/429' - '500': - $ref: '#/components/responses/500' - '502': - $ref: '#/components/responses/502' - '503': - $ref: '#/components/responses/503' - description: Query policy type identities + "400": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Request + "401": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Unauthorized + "403": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Forbidden + "404": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + "406": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Acceptable + "429": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Too Many Requests + "500": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Internal Server Error + "502": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Gateway + "503": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Service Unavailable + summary: Get A1 Policy Types (getPolicyTypes) tags: - - A1 Policy Management + - A1 Policy Management /policy-types/{policyTypeId}: get: + description: Get an A1 Policy Type definition using its policy type ID operationId: getPolicyTypeDefinition parameters: - - explode: false - in: path - name: policyTypeId - required: true - schema: - type: string - style: simple - - description: Specifies the content type that the client expects to receive in response to the request. - Only application/json is allowed. - in: header - name: Accept - schema: - type: string - example: application/json + - explode: false + in: path + name: policyTypeId + required: true + schema: + type: string + style: simple + - description: Specifies the content type that the client expects to receive + in response to the request. Only application/json is allowed. + in: header + name: Accept + schema: + example: application/json + type: string responses: - '200': + "200": content: application/json: - schema: - $ref: '#/components/schemas/PolicyObject' examples: - policyObject: - $ref: '#/components/examples/PolicyObject' - description: OK - schema of the given policy type - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '429': - $ref: '#/components/responses/429' - '500': - $ref: '#/components/responses/500' - '502': - $ref: '#/components/responses/502' - '503': - $ref: '#/components/responses/503' - description: Returns a policy type definition - tags: - - A1 Policy Management - /policies/{policyId}: - put: - operationId: putPolicy - parameters: - - name: policyId - in: path - required: true - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/PolicyObject' - examples: - policyObject: - $ref: '#/components/examples/PolicyObject' - responses: - '200': + PolicyTypeObject: + $ref: '#/components/examples/PolicyTypeObject' + schema: + $ref: '#/components/schemas/PolicyTypeObject' + description: OK - details and schema of the requested A1 Policy Type + "400": content: - application/json: + application/problem+json: schema: - $ref: '#/components/schemas/PolicyObject' - description: OK - Policy updated - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '411': - $ref: '#/components/responses/411' - '413': - $ref: '#/components/responses/413' - '415': - $ref: '#/components/responses/415' - '423': - $ref: '#/components/responses/Locked' - '429': - $ref: '#/components/responses/429' - '500': - $ref: '#/components/responses/500' - '502': - $ref: '#/components/responses/502' - '503': - $ref: '#/components/responses/503' - description: update a policy + $ref: '#/components/schemas/ProblemDetails' + description: Bad Request + "401": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Unauthorized + "403": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Forbidden + "404": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + "406": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Acceptable + "429": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Too Many Requests + "500": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Internal Server Error + "502": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Gateway + "503": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Service Unavailable + summary: Get an A1 Policy Type definition (getPolicyTypeDefinition) tags: - - A1 Policy Management + - A1 Policy Management + /policies/{policyId}: delete: - description: Deleting the policy using policyId. + description: Delete an existing A1 Policy instance using its policy ID. operationId: deletePolicy parameters: - - explode: false - in: path - name: policyId - required: true - schema: - type: string - style: simple - - description: Specifies the content type that the client expects to receive in response to the request. - Only application/json is allowed. - in: header - name: Accept - schema: - type: string - example: application/json + - explode: false + in: path + name: policyId + required: true + schema: + type: string + style: simple + - description: Specifies the content type that the client expects to receive + in response to the request. Only application/json is allowed. + in: header + name: Accept + schema: + example: application/json + type: string responses: - '204': - description: 'The created A1 policy was deleted' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '423': - $ref: '#/components/responses/Locked' - '429': - $ref: '#/components/responses/429' - '500': - $ref: '#/components/responses/500' - '502': - $ref: '#/components/responses/502' - '503': - $ref: '#/components/responses/503' - summary: Delete a policy + "204": + description: No Content + "400": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Request + "401": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Unauthorized + "403": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Forbidden + "404": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + "405": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Method Not Allowed + "406": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Acceptable + "423": + content: + application/problem+json: + example: + status: 423 + title: Locked + detail: State is Locked in the provided request. + schema: + $ref: '#/components/schemas/ErrorInformation' + description: Locked - HTTP Status code which can be used when the state + is Locked + "429": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Too Many Requests + "500": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Internal Server Error + "502": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Gateway + "503": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Service Unavailable + summary: Delete an A1 Policy instance (deletePolicy) tags: - - A1 Policy Management + - A1 Policy Management get: + description: Get an A1 Policy instance's policy data using its policy ID operationId: getPolicy parameters: - - explode: false - in: path - name: policyId - required: true - schema: - type: string - style: simple - - description: Specifies the content type that the client expects to receive in response to the request. - Only application/json is allowed. - in: header - name: Accept - schema: - type: string - example: application/json + - explode: false + in: path + name: policyId + required: true + schema: + type: string + style: simple + - description: Specifies the content type that the client expects to receive + in response to the request. Only application/json is allowed. + in: header + name: Accept + schema: + example: application/json + type: string responses: - '200': + "200": content: application/json: - schema: - $ref: '#/components/schemas/PolicyObject' examples: policyObject: $ref: '#/components/examples/PolicyObject' + schema: + $ref: '#/components/schemas/PolicyObject' description: OK - Policy found - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '429': - $ref: '#/components/responses/429' - '500': - $ref: '#/components/responses/500' - '502': - $ref: '#/components/responses/502' - '503': - $ref: '#/components/responses/503' - description: Returns a policy - tags: - - A1 Policy Management - /policies: - get: - description: "Returns a list of A1 policies matching given search criteria.\ - \
If several query parameters are defined, the policies matching all conditions\ - \ are returned." - operationId: getAllPolicies - parameters: - - description: Select policies of a given policy type identity. - explode: true - in: query - name: policyTypeId - required: false - schema: - type: string - style: form - - description: Select policies of a given Near-RT RIC identity. - explode: true - in: query - name: nearRtRicId - required: false - schema: - type: string - style: form - - description: Select policies owned by a given service. - explode: true - in: query - name: serviceId - required: false - schema: - type: string - style: form - - description: Select policies of types with the given type name (type identity - has the format ) - explode: true - in: query - name: typeName - required: false - schema: - type: string - style: form - - description: Specifies the content type that the client expects to receive in response to the request. - Only application/json is allowed. - in: header - name: Accept - schema: - type: string - example: application/json - responses: - '200': + "400": content: - application/json: + application/problem+json: schema: - items: - $ref: '#/components/schemas/PolicyInformation' - type: array - description: OK - Policy identities - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '429': - $ref: '#/components/responses/429' - '500': - $ref: '#/components/responses/500' - '502': - $ref: '#/components/responses/502' - '503': - $ref: '#/components/responses/503' - summary: Query policy identities - tags: - - A1 Policy Management - post: - operationId: createPolicy - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/PolicyObjectInformation' - responses: - '201': - description: 'Success case 201 created' + $ref: '#/components/schemas/ProblemDetails' + description: Bad Request + "401": content: - application/json: - schema: - $ref: '#/components/schemas/PolicyObjectInformation' - headers: - Location: - description: 'Contains the URI of the newly created resource' - required: true + application/problem+json: schema: - type: string - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '423': - $ref: '#/components/responses/Locked' - '429': - $ref: '#/components/responses/429' - '500': - $ref: '#/components/responses/500' - '502': - $ref: '#/components/responses/502' - '503': - $ref: '#/components/responses/503' - description: 'To create A1 policies' - tags: - - A1 Policy Management - /configuration: - get: - operationId: getConfiguration - responses: - "200": + $ref: '#/components/schemas/ProblemDetails' + description: Unauthorized + "403": content: - application/json: + application/problem+json: schema: - type: string - description: OK - Application configuration received + $ref: '#/components/schemas/ProblemDetails' + description: Forbidden "404": - $ref: '#/components/responses/404' - - description: Returns the contents of the application configuration + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + "406": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Acceptable + "429": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Too Many Requests + "500": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Internal Server Error + "502": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Gateway + "503": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Service Unavailable + summary: Get an A1 Policy's policy data (getPolicy) tags: - - Configuration + - A1 Policy Management put: - operationId: putConfiguration + description: Update an existing A1 Policy instance's policy data using its policy + ID. + operationId: updatePolicy + parameters: + - in: path + name: policyId + required: true + schema: + type: string requestBody: content: application/json: + examples: + policyObject: + $ref: '#/components/examples/PolicyObject' schema: - type: object + $ref: '#/components/schemas/PolicyObject' required: true responses: "200": content: - '*/*': + application/json: schema: - $ref: '#/components/schemas/void' - description: OK - Configuration updated + $ref: '#/components/schemas/PolicyObject' + description: OK - Policy updated "400": - $ref: '#/components/responses/400' - description: Replace the current configuration file with the given configuration - tags: - - Configuration - /services/{serviceId}/keepalive: - put: - description: A registered service should invoke this operation regularly to - indicate that it is still alive. If a registered service fails to invoke this - operation before the end of a timeout period the service will be deregistered - and all its A1 policies wil be removed. (This timeout can be set or disabled - when each service is initially registered) - operationId: keepAliveService - parameters: - - explode: false - in: path - name: serviceId - required: true - schema: - type: string - style: simple - - description: Specifies the content type that the client expects to receive in response to the request. - Only application/json is allowed. - in: header - name: Accept - schema: - type: string - example: application/json - requestBody: + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Request + "401": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Unauthorized + "403": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Forbidden + "404": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + "406": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Acceptable + "411": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Length Required + "413": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Payload Too Large + "415": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Unsupported Media Type + "423": + content: + application/problem+json: + example: + status: 423 + title: Locked + detail: State is Locked in the provided request. + schema: + $ref: '#/components/schemas/ErrorInformation' + description: Locked - HTTP Status code which can be used when the state + is Locked + "429": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Too Many Requests + "500": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Internal Server Error + "502": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Gateway + "503": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Service Unavailable + summary: Update an A1 Policy's policy data (updatePolicy) + tags: + - A1 Policy Management + /policies/{policyId}/status: + get: + description: Retrieve the status information for an A1 Policy Instance using + its policy ID. + operationId: getPolicyStatus + parameters: + - explode: false + in: path + name: policyId + required: true + schema: + type: string + style: simple + - description: Specifies the content type that the client expects to receive + in response to the request. Only application/json is allowed. + in: header + name: Accept + schema: + example: application/json + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/PolicyStatusObject' + description: OK + "400": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Request + "401": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Unauthorized + "403": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Forbidden + "404": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + "406": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Acceptable + "429": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Too Many Requests + "500": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Internal Server Error + "502": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Gateway + "503": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Service Unavailable + summary: Get an A1 Policy Instance's status (getPolicyStatus) + tags: + - A1 Policy Management + /policies: + get: + description: | + Returns a collection of A1 Policy Instance IDs for policies that match given search criteria. If several query parameters are defined, the policies matching all conditions are returned. + operationId: getPolicyIds + parameters: + - description: Select policies with a given A1 Policy Type ID. + explode: true + in: query + name: policyTypeId + required: false + schema: + type: string + style: form + - description: Select policies for a given Near-RT RIC identity. + explode: true + in: query + name: nearRtRicId + required: false + schema: + type: string + style: form + - description: Select policies owned by a given service (registered or unregistered). + explode: true + in: query + name: serviceId required: false + schema: + type: string + style: form + - description: Select policies of a given A1 Policy Type name (type identity + has the format 'typename_version'). + explode: true + in: query + name: typeName + required: false + schema: + type: string + style: form + - description: Specifies the content type that the client expects to receive + in response to the request. Only application/json is allowed. + in: header + name: Accept + schema: + example: application/json + type: string + responses: + "200": + content: + application/json: + schema: + items: + $ref: '#/components/schemas/PolicyInformation' + type: array + description: OK - Policy identities + "400": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Request + "401": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Unauthorized + "403": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Forbidden + "404": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + "406": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Acceptable + "429": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Too Many Requests + "500": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Internal Server Error + "502": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Gateway + "503": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Service Unavailable + summary: Query for A1 Policy instances (getPolicyIds) + tags: + - A1 Policy Management + post: + description: Create an A1 Policy Instance + operationId: createPolicy + requestBody: content: application/json: schema: - type: string + $ref: '#/components/schemas/PolicyObjectInformation' + required: true responses: - "200": + "201": content: - '*/*': + application/json: schema: - type: object - description: "OK - Service supervision timer refreshed, OK" + $ref: '#/components/schemas/PolicyObjectInformation' + description: Created + headers: + Location: + description: | + Contains the URI of the newly created A1 Policy Instances. This URI includes the A1 Policy Instance ID for the newly created policy instance. + required: true + schema: + type: string + Content-Type: + description: Media Type of the response + schema: + example: application/json + type: string + "400": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Request + "401": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Unauthorized + "403": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Forbidden "404": - $ref: '#/components/responses/404' - summary: Heartbeat indicates that the service is running + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + "405": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Method Not Allowed + "406": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Acceptable + "409": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Conflict + "413": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Payload Too Large + "415": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Unsupported Media Type + "423": + content: + application/problem+json: + example: + status: 423 + title: Locked + detail: State is Locked in the provided request. + schema: + $ref: '#/components/schemas/ErrorInformation' + description: Locked - HTTP Status code which can be used when the state + is Locked + "429": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Too Many Requests + "500": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Internal Server Error + "502": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Gateway + "503": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Service Unavailable + summary: Create an A1 Policy Instance (createPolicy) tags: - - Service Registry and Supervision - /services: + - A1 Policy Management + /configuration: get: - description: Either information about a registered service with given identity - or all registered services are returned. - operationId: getServices - parameters: - - description: The identity of the service - explode: true - in: query - name: serviceId - required: false - schema: - type: string - style: form - - description: Specifies the content type that the client expects to receive in response to the request. - Only application/json is allowed. - in: header - name: Accept - schema: - type: string - example: application/json + description: Returns the entire contents of the Application Configuration. + operationId: getConfiguration responses: "200": content: application/json: schema: - $ref: '#/components/schemas/ServiceStatusList' - examples: - service_status_list: - $ref: '#/components/examples/ServiceStatusList' - description: OK + type: string + description: OK - Application configuration received "404": - $ref: '#/components/responses/404' - summary: Returns service information + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + summary: Get the Application Configuration (getConfiguration) tags: - - Service Registry and Supervision + - Configuration put: - description: "Registering a service is needed to:
  • Get callbacks about\ - \ available NearRT RICs.
  • Activate supervision of the service. If a\ - \ service is inactive, its policies will automatically be deleted.
Policies\ - \ can be created even if the service is not registerred. This is a feature\ - \ which it is optional to use." - operationId: putService + description: | + Replace the current Application Configuration with a new configuration. The new configuration, if accepted, will take effect after a short delay. The new configuration must comply with the Application Configuration schema, which can be found from the the Application Documentation (Developer Guide) + operationId: putConfiguration requestBody: content: application/json: schema: - $ref: '#/components/schemas/ServiceRegistrationInfo' + type: object required: true responses: "200": content: - '*/*': + application/json: schema: - type: object - description: OK - Service updated - "201": + $ref: '#/components/schemas/void' + description: OK - Configuration updated + "400": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Request + summary: Set/Replace the Application Configuration (putConfiguration) + tags: + - Configuration + /services/{serviceId}/keepalive: + put: + description: "A registered service should invoke this operation regularly to\ + \ indicate that it is still alive. If a registered service fails to invoke\ + \ some operation, or this operation, before the end of a timeout period the\ + \ service will be deregistered and all its A1 policies wil be removed and\ + \ the service is deleted. This operation is only intended for registered services.\ + \ (This timeout can be set or disabled when each service is initially registered).\ + \ Unregistered services do not need to invoke this operation, since the optional\ + \ keep-alive monitoring feature can only be enabled for registered services." + operationId: keepAliveService + parameters: + - explode: false + in: path + name: serviceId + required: true + schema: + type: string + style: simple + - description: Specifies the content type that the client expects to receive + in response to the request. Only application/json is allowed. + in: header + name: Accept + schema: + example: application/json + type: string + responses: + "200": content: - '*/*': + application/json: schema: type: object - description: Created - Service created - "400": - $ref: '#/components/responses/400' - summary: Register a service + description: "OK - Service supervision timer refreshed, OK" + "404": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + summary: Heartbeat message from a service (keepAliveService) + tags: + - Service Registry and Supervision + /services: + get: + description: | + Get information about all registered services, or a single registered service. If the service ID of a registered service is included in the query, information about that service is returned. Otherwise Information about all registered is returned. This operation does not retrieve information about unregistered services. + operationId: getServices + parameters: + - description: The identity of the registered service + explode: true + in: query + name: serviceId + required: false + schema: + type: string + style: form + - description: Specifies the content type that the client expects to receive + in response to the request. Only application/json is allowed. + in: header + name: Accept + schema: + example: application/json + type: string + responses: + "200": + content: + application/json: + examples: + service_status_list: + $ref: '#/components/examples/ServiceStatusList' + schema: + $ref: '#/components/schemas/ServiceStatusList' + description: OK + "404": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + summary: Get Services (getServices) tags: - - Service Registry and Supervision + - Service Registry and Supervision + put: callbacks: RICStatus: - "{$request.body#/callback_url}": + '{$request.body#/callback_url}': post: - description: The URL to this call is registered at Service registration. + description: "Callouts to indicate Near-RT RIC status changes relevant\ + \ for Services. \nThe URL invoked by this callback is provided at\ + \ Service registration.\n" operationId: serviceCallback requestBody: content: @@ -716,93 +1142,155 @@ paths: $ref: '#/components/schemas/void' description: OK "404": - $ref: '#/components/responses/404' - summary: Callback for Near-RT RIC status + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + summary: Callback for Near-RT RIC status (serviceCallback) tags: - - Service callbacks + - Service Registry and Supervision + x-callback-request: true + description: | + Register a single service, or update a previous registration. Service registration is required to get callbacks about available NearRT RICs and to enable supervision of the service's active status. If a registered service becomes inactive, its policies can be automatically deleted. A1 Policy instances can also be created for unregistered services. If an unregistered service is later registered, the service's policies are retained when the service becomes registered. This feature is optional to use. + operationId: putService + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceRegistrationInfo' + required: true + responses: + "200": + content: + application/json: + schema: + type: object + description: OK - Service updated + "201": + content: + application/json: + schema: + type: object + description: Created - Service created + "400": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Request + summary: Register or update a Service (putService) + tags: + - Service Registry and Supervision /services/{serviceId}: delete: + description: | + Unregister a registered Service using its service ID. Only registered services can be unregistered. All A1 Policy Instances for the previously registered service will be removed. operationId: deleteService parameters: - - explode: false - in: path - name: serviceId - required: true - schema: - type: string - style: simple - - description: Specifies the content type that the client expects to receive in response to the request. - Only application/json is allowed. - in: header - name: Accept - schema: - type: string - example: application/json + - explode: false + in: path + name: serviceId + required: true + schema: + type: string + style: simple + - description: Specifies the content type that the client expects to receive + in response to the request. Only application/json is allowed. + in: header + name: Accept + schema: + example: application/json + type: string responses: "204": content: - '*/*': + application/json: schema: type: object description: No Content - Service unregistered "404": - $ref: '#/components/responses/404' - description: Unregister a service + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + summary: Unregister a Service (deleteService) tags: - - Service Registry and Supervision + - Service Registry and Supervision components: examples: - ServiceStatusList: - description: List of service information - value: - serviceList: - - callbackUrl: callbackUrl - serviceId: serviceId - keepAliveIntervalSeconds: 0 - timeSinceLastActivitySeconds: 6 - - callbackUrl: callbackUrl - serviceId: serviceId - keepAliveIntervalSeconds: 0 - timeSinceLastActivitySeconds: 6 - PolicyStatusInfo: - description: Status for one A1-P Policy - value: - lastModified: last_modified - status: - value: - status: status StatusInfo: value: - status: status + status: success RicInfo: value: - ricId: ricId + ricId: ricId1 managedElementIds: - - managedElementId - - managedElementId + - "Note #1" + - Athlone small cells + - Some optional string state: UNAVAILABLE policyTypeIds: - - policyTypeId - - policyTypeId + - policyTypeId1 + - policyTypeId2 RicInfoList: value: rics: - - ricId: ricId - managedElementIds: - - managedElementId - - managedElementId - state: UNAVAILABLE - policyTypeIds: - - policyTypeId - - policyTypeId - - ricId: ricId - managedElementIds: - - managedElementId - - managedElementId - state: UNAVAILABLE - policyTypeIds: - - policyTypeId - - policyTypeId + - ricId: ricId1 + managedElementIds: + - "Note #1" + - Athlone small cells + - Fake Cells + state: UNAVAILABLE + policyTypeIds: + - policyTypeId1 + - policyTypeId2 + - ricId: ricId2 + managedElementIds: + - My test element + - Another test element + state: UNAVAILABLE + policyTypeIds: + - policyTypeId3 + - policyTypeId4 + PolicyTypeInformation: + value: + - policyTypeId: STD_QOS2_0.1.0 + nearRtRicId: ric_g3_2 + - policyTypeId: STD_QOS_0_2_0 + nearRtRicId: ric_g3_2 + - policyTypeId: STD_QOS2_0.1.0 + nearRtRicId: ric_g3_1 + - policyTypeId: STD_QOS_0_2_0 + nearRtRicId: ric_g3_1 + PolicyTypeObject: + value: + policySchema: + $schema: http://json-schema.org/draft-07/schema# + title: STD_QOS_0_2_0 + description: STD QOS2 policy type + type: object + properties: + scope: + type: object + properties: + ueId: + type: string + qosId: + type: string + additionalProperties: false + required: + - ueId + - qosId + qosObjectives: + type: object + properties: + priorityLevel: + type: number + additionalProperties: false + required: + - priorityLevel PolicyObject: value: scope: @@ -815,11 +1303,11 @@ components: gnbId: gnbIdLength: 24 gnbIdValue: 12345678 - RanUeId: 'a31c510b20e64a74' + RanUeId: a31c510b20e64a74 groupId: spId: 123 qosId: - 5qI: 1 + "5qI": 1 cellId: plmnId: mcc: "123" @@ -831,380 +1319,464 @@ components: mfbr: 200 priorityLevel: 3 pdb: 50 - schemas: - PolicyTypeInformation: - description: >- - Available policy types and for each policy type identifier the Near-RT - RIC identifiers of those Near-RT RICs that support the related A1 policy - type - type: object - properties: - policyTypeId: - description: Identity of the policy type - type: string - nearRtRicId: - $ref: '#/components/schemas/NearRtRicId' - required: - - policyTypeId - - nearRtRicId - PolicyObjectInformation: - description: Information related to the creation of the policy - type: object - properties: - nearRtRicId: - description: identity of the target Near-RT RIC - type: string - example: - 'Near-RT-Ric-ID' - transient: - default: false - description: "if true, the policy is deleted at RIC restart. If false, its\ - \ value is maintained by this service until explicitly deleted. Default\ - \ false." - nullable: false - type: boolean - policyId: - description: identity of the Policy - type: string - example: - 'POLICY-ID' - serviceId: - description: the identity of the service owning the policy. This can be - used to group the policies (it is possible to get all policies associated - to a service). Note that the service does not need to be registered. - type: string + ServiceStatusList: + description: List of service information + value: + serviceList: + - callbackUrl: http://callback.url + serviceId: serviceId1 + keepAliveIntervalSeconds: 0 + timeSinceLastActivitySeconds: 6 + - callbackUrl: http://callback.url + serviceId: serviceId2 + keepAliveIntervalSeconds: 500 + timeSinceLastActivitySeconds: 401 + responses: + "404": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + "400": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Request + "401": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Unauthorized + "403": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Forbidden + "406": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Acceptable + "429": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Too Many Requests + "500": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Internal Server Error + "502": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Gateway + "503": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Service Unavailable + "411": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Length Required + "413": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Payload Too Large + "415": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Unsupported Media Type + Locked: + content: + application/problem+json: example: - 'rApp ID' - policyObject: - $ref: '#/components/schemas/PolicyObject' - policyTypeId: - description: identity of the policy type + status: 423 + title: Locked + detail: State is Locked in the provided request. + schema: + $ref: '#/components/schemas/ErrorInformation' + description: Locked - HTTP Status code which can be used when the state is Locked + "405": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Method Not Allowed + "409": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Conflict + schemas: + StatusInfo: + example: + status: status + properties: + status: + description: Status text type: string - example: 'ORAN_QOS_1.0.0(typeName_SemVersion)' - required: - - nearRtRicId - - policyObject - - policyTypeId - ErrorInformation: - description: Problem as defined in https://tools.ietf.org/html/rfc7807 + type: object + ProblemDetails: + description: Object to carry details about a problem in an HTTP response according + to IETF RFC 7807 properties: - detail: - description: ' A human-readable explanation specific to this occurrence - of the problem.' - example: Policy type not found + type: + description: URI reference according to IETF RFC 3986 that identifies the + problem type type: string title: - description: 'A specific error name' + description: Human-readable summary of the problem type type: string - example: Not Found - status: - description: 'The HTTP status code generated by the origin server for this - occurrence of the problem. ' - example: 404 - format: int32 - type: integer - type: object - PolicyObject: - description: 'Policy Object is a JSON representation of an A1 policy' - type: object - void: - description: Void/empty - type: object - StatusInfo: - properties: status: - description: status text + description: HTTP status code + type: number + detail: + description: Human-readable explanation + type: string + instance: + description: URI reference that identifies the specific occurrence of the + problem type: string - type: object - AuthorizationResult: - description: Result of authorization - example: - result: true - properties: - result: - description: "If true, the access is granted" - type: boolean - required: - - result type: object RicInfo: description: Information for a Near-RT RIC + example: + ricId: ricId + policyTypeIds: + - policyTypeIds + - policyTypeIds + managedElementIds: + - managedElementIds + - managedElementIds + state: UNAVAILABLE properties: ricId: - description: identity of the Near-RT RIC + description: Identity of the Near-RT RIC type: string managedElementIds: - description: O1 identities for managed entities + description: Identities for managed entities items: - description: O1 identities for managed entities + description: Identity for a managed entity type: string type: array state: - description: Represents the states for a Near-RT RIC + description: Represents the state of a Near-RT RIC enum: - - UNAVAILABLE - - AVAILABLE - - SYNCHRONIZING - - CONSISTENCY_CHECK + - UNAVAILABLE + - AVAILABLE + - SYNCHRONIZING + - CONSISTENCY_CHECK type: string policyTypeIds: - description: supported policy types + description: Supported A1 Policy Types items: - description: supported policy types + description: Supported A1 Policy Type ID type: string type: array type: object - ServiceRegistrationInfo: - description: Information for one service + RicInfoList: + description: Collection of Near-RT RIC information objects + example: + rics: + - ricId: ricId + policyTypeIds: + - policyTypeIds + - policyTypeIds + managedElementIds: + - managedElementIds + - managedElementIds + state: UNAVAILABLE + - ricId: ricId + policyTypeIds: + - policyTypeIds + - policyTypeIds + managedElementIds: + - managedElementIds + - managedElementIds + state: UNAVAILABLE properties: - callbackUrl: - description: callback for notifying of Near-RT RIC state changes + rics: + description: List of Near-RT RIC information objects + items: + $ref: '#/components/schemas/RicInfo' + type: array + type: object + PolicyTypeInformation: + description: A data tuple to indicate that an identified A1 Policy Type is supported + at an identified Near-RT RIC. + example: + policyTypeId: STD_QOS2_0.1.0 + nearRtRicId: ric_g3_2 + properties: + policyTypeId: + description: A1 Policy Type identifier type: string - serviceId: - description: identity of the service + nearRtRicId: + description: Identity of the Near-RT RIC type: string - keepAliveIntervalSeconds: - description: "keep alive interval for the service. This is used to enable\ - \ optional heartbeat supervision of the service. If set (> 0) the registered\ - \ service should regularly invoke a 'keepalive' REST call. When a service\ - \ fails to invoke this 'keepalive' call within the configured time, the\ - \ service is considered unavailable. An unavailable service will be automatically\ - \ deregistered and its policies will be deleted. Value 0 means timeout\ - \ supervision is disabled." - format: int64 - type: integer required: - - serviceId + - nearRtRicId + - policyTypeId type: object - PolicyStatusInfo: - description: Status for one A1-P Policy + NearRtRicId: + description: Identity of the Near-RT RIC + type: string + PolicyTypeObject: + description: "An A1 Policy Type, as defined in O-RAN Alliance A1TD" + example: + policySchema: + $schema: http://json-schema.org/draft-07/schema# + title: STD_QOS_0_2_0 + description: Policy data schema for STD_QOS_0.2.0 A1 Policy Instances. + type: object + properties: + scope: + type: object + properties: + ueId: + type: string + qosId: + type: string + additionalProperties: false + required: + - ueId + - qosId + qosObjectives: + type: object + properties: + priorityLevel: + type: number + additionalProperties: false + required: + - priorityLevel + statusSchema: + $schema: http://json-schema.org/draft-07/schema# + title: STD_QOS_0.2.0 + description: Status schema for STD_QOS_0.2.0 A1 Policy Instances. + type: object + properties: + enforceStatus: + type: string + enforceReason: + type: string + additionalProperties: false + required: + - enforceStatus properties: - lastModified: - description: "timestamp, last modification time" - type: string - status: - description: the Policy status + policySchema: + description: | + A schema to define the policy data contents of A1 Policy Instances. Policy data schemas are Policy Type specific. All A1 Policy Instances of an A1 Policy Type should comply with the type's policy data schema. type: object + statusSchema: + description: | + A schema to define the contents of the status information for A1 Policy Instances. Status schemas are Policy Type specific. All status information for all A1 Policy Instances of an A1 Policy Type should comply with the type's status schema. + type: object + required: + - policySchema type: object - ServiceStatus: + PolicySchema: + description: | + A schema to define the policy data contents of A1 Policy Instances. Policy data schemas are Policy Type specific. All A1 Policy Instances of an A1 Policy Type should comply with the type's policy data schema. + type: object + StatusSchema: + description: | + A schema to define the contents of the status information for A1 Policy Instances. Status schemas are Policy Type specific. All status information for all A1 Policy Instances of an A1 Policy Type should comply with the type's status schema. + type: object + PolicyObject: + description: | + Policy Object is a JSON representation policy data for an A1 Policy Instance. The schema for this policy data is defined in the corresponding A1 Policy Type. + type: object + ErrorInformation: + description: Problem as defined in https://tools.ietf.org/html/rfc7807 properties: - callbackUrl: - description: callback for notifying of RIC synchronization + detail: + description: A human-readable explanation specific to this occurrence of + the problem. + example: Policy type not found type: string - serviceId: - description: identity of the service + title: + description: A specific error name + example: Not Found type: string - keepAliveIntervalSeconds: - description: policy keep alive timeout - format: int64 - type: integer - timeSinceLastActivitySeconds: - description: time since last invocation by the service - format: int64 + status: + description: | + The HTTP status code generated by the origin server for this occurrence of the problem. + example: 404 + format: int32 type: integer type: object - RicInfoList: - description: List of Near-RT RIC information - properties: - rics: - description: List of Near-RT RIC information - items: - $ref: '#/components/schemas/RicInfo' - type: array + PolicyStatusObject: + description: | + A generic policy status object that can be used to transport any policy status. Additionally, a schema for policy status can be defined in the corresponding A1 Policy Type. type: object - input: - description: input + PolicyInformation: + description: | + Information tuple for a single A1 Policy Instance. Contains the A1 Policy Instance ID, and the ID of the Near-RT RIC where the policy is created. + example: + policyId: policyId + nearRtRicId: nearRtRicId properties: - accessType: - description: Access type - enum: - - READ - - WRITE - - DELETE - type: string - authToken: - description: Authorization token + policyId: + description: Identity of the A1 Policy Instance type: string - policyTypeId: - description: Policy type identifier + nearRtRicId: + description: Identity of the Near-RT RIC type: string required: - - accessType - - authToken - - policyTypeId - type: object - PolicyAuthorization: - description: Authorization request for A1 policy requests - properties: - input: - $ref: '#/components/schemas/input' - required: - - input - type: object - NearRtRicId: - description: Identity of the policy - type: string - PolicyInformation: - description: >- - Near-RT RIC identifiers where A1 policies exist and for each Near-RT RIC - identifier the policy identifiers of those policies that exist in that - Near-RT RIC + - nearRtRicId + - policyId type: object + PolicyObjectInformation: + description: Information to create an A1 Policy Instance + example: + policyId: POLICY-ID1 + nearRtRicId: Near-RT-Ric-ID1 + transient: false + policyObject: "{}" + serviceId: rApp 1 + policyTypeId: ORAN_QOS_1.0.0 '(typeName_SemVersion)' properties: + nearRtRicId: + description: Identity of the target Near-RT RIC + example: Near-RT-Ric-ID1 + type: string + transient: + default: false + description: | + If true, the policy is automatically deleted if the targeted Near-RT RIC restarts or recovers. If false, the A1 Policy Instance remains, and is re-pushed to the targeted Near-RT RIC after a restart or recovery. If false, the A1 Policy Instance is maintained and must be deleted separately in the event of Near-RT RIC restart or recovery. Default is false. + nullable: false + type: boolean policyId: - description: Identity of the policy + description: | + An optional identity to be used for the new A1 Policy Instance. If this value is present, it must be unique. If not present the new A1 Policy Instance will be assigned a newly generated unique ID, and the new ID can be extracted from the 'Location' header in the response. + example: POLICY-ID1 + type: string + serviceId: + default: "" + 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.\ + \ If the service is registered, the newly created A1 Policy Instance will\ + \ be subject to the same supervision rules as the the service's other\ + \ policies." + example: rApp 1 + type: string + policyObject: + description: | + Policy Object is a JSON representation policy data for an A1 Policy Instance. The schema for this policy data is defined in the corresponding A1 Policy Type. + type: object + policyTypeId: + description: A1 Policy Type identity + example: ORAN_QOS_1.0.0 '(typeName_SemVersion)' type: string - nearRtRicId: - $ref: '#/components/schemas/NearRtRicId' required: - - policyId - - nearRtRicId + - nearRtRicId + - policyObject + - policyTypeId + type: object + void: + description: Void/empty + type: object ServiceStatusList: + example: + serviceList: + - keepAliveIntervalSeconds: 0 + callbackUrl: callbackUrl + timeSinceLastActivitySeconds: 6 + serviceId: serviceId + - keepAliveIntervalSeconds: 0 + callbackUrl: callbackUrl + timeSinceLastActivitySeconds: 6 + serviceId: serviceId properties: serviceList: - description: List of service information + description: "List of Service Status objects, describing a collection of\ + \ registered services." items: $ref: '#/components/schemas/ServiceStatus' type: array type: object - ServiceCallbackInfo: - description: Information transferred as in Service callbacks (callback_url) + ServiceStatus: + description: Information about a previously registered service + example: + keepAliveIntervalSeconds: 0 + callbackUrl: callbackUrl + timeSinceLastActivitySeconds: 6 + serviceId: serviceId properties: - ricId: - description: identity of a Near-RT RIC + callbackUrl: + description: Callback URL for notifying of Near-RT RIC state changes type: string - eventType: - description: "values:\nAVAILABLE: the Near-RT RIC has become available\ - \ for A1 Policy management" - enum: - - AVAILABLE + serviceId: + description: Identity of the service type: string - required: - - eventType - - ricId + keepAliveIntervalSeconds: + description: | + Keep alive interval (seconds) for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled. + format: int64 + type: integer + timeSinceLastActivitySeconds: + description: Time (seconds) since last recorded operation by the service + format: int64 + type: integer type: object - Link: + ServiceRegistrationInfo: + description: Information for a service to be registered + example: + keepAliveIntervalSeconds: 0 + callbackUrl: callbackUrl + serviceId: serviceId properties: - templated: - type: boolean - href: + callbackUrl: + description: Callback URL for notifying of Near-RT RIC state changes type: string + serviceId: + description: Identity of the service + type: string + keepAliveIntervalSeconds: + description: | + Keep alive interval for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled. + format: int64 + type: integer + required: + - serviceId type: object - ProblemDetails: - description: >- - A problem detail to carry details in an HTTP response according to RFC - 7807 - type: object + ServiceCallbackInfo: + description: "Information transferred in Service callbacks, \nif a callback\ + \ URL was provided for a registered service\n" + example: + ricId: ricId + eventType: AVAILABLE properties: - type: - description: >- - a URI reference according to IETF RFC 3986 that identifies the - problem type - type: string - title: - description: human-readable summary of the problem type - type: string - status: - description: the HTTP status code - type: number - detail: - description: 'human-readable explanation ' + ricId: + description: Identity of a Near-RT RIC type: string - instance: - description: URI reference that identifies the specific occurrence of the problem + eventType: + description: "values: \n AVAILABLE: the Near-RT RIC has become available\ + \ for A1 Policy management\n" + enum: + - AVAILABLE type: string - responses: - '400': - description: Bad Request - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - '401': - description: Unauthorized - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - '403': - description: Forbidden - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - '404': - description: Not Found - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - '405': - description: Method Not Allowed - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - '406': - description: Not Acceptable - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - '409': - description: Conflict - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - '411': - description: Length Required - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - '413': - description: Payload Too Large - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - '415': - description: Unsupported Media Type - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - '429': - description: Too Many Request - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - '500': - description: Internal Server Error - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - '502': - description: Bad Gateway - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - '503': - description: Service Unavailable - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - Locked: - description: "Locked - HTTP Status code which can be used when the state is Locked" - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ErrorInformation' - example: - status: 423 - title: Locked - detail: State is Locked in the provided request. + required: + - eventType + - ricId + type: object diff --git a/api/pms-api.json b/api/pms-api.json index deb5743..8e20aa4 100644 --- a/api/pms-api.json +++ b/api/pms-api.json @@ -2,205 +2,70 @@ "openapi" : "3.0.3", "info" : { "contact" : { - "email" : "discuss-list@onap.com", - "url" : "https://www.onap.org/" + "email" : "discuss@lists.o-ran-sc.org", + "url" : "https://o-ran-sc.org//" }, - "description" : "

General

The O-RAN Non-RT RIC Policy Management Service provides a REST API for managemecnt of A1 policies.
The main tasks of the service are:

  • A1 Policy creation, modification and deletion.
  • Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs
  • Maintaining a view of supported Near-RT RIC policy types
  • Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.

APIs provided or defined by the service

A1 Policy Management

This is an API for management of A1 Policies.

  • A1 Policy retrieval, creation, modification and deletion.
  • Retrieval of supported A1 Policy types for a Near-RT RIC
  • Retrieval of status for existing A1 policies

Management of configuration

API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.

Service callbacks

These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.

NearRT-RIC Repository

This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.

Health Check

API used for supervision of the PMS component.

Service Registry and Supervision

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.

Authorization API

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.

Spring Boot Actuator

Provides generic functions used to monitor and manage the Spring web application.

", + "description" : "

General

The ORAN SC A1 Policy Management Service provides a REST API for managing A1 policies.
This document describes the latest API set to perform tasks for:

  • A1 Policy creation, modification and deletion.
  • Monitoring and maintaining consistency of the SMO view of A1 Policies and the Near-RT RICs
  • Maintaining a view of each Near-RT RIC's supported A1 Policy Types
  • Supervision of registered services (rApps). When a registered service is unavailable, its policies are removed.

APIs provided or defined by the service

Note: parts of this API are strongly based on extracts of the O-RAN Alliance R1 Interface specification for A1 Policy Management, and those parts should be considered '© O-RAN ALLIANCE - All rights reserved.'

A1 Policy Management

This is the latest API for managing A1 Policies. This API is partially compliant with O-RAN Alliance R1 Interface specifications for A1 Policy Management:

  • A1 Policy retrieval, creation, modification and deletion.
  • Retrieval of supported A1 Policy Types for a Near-RT RIC
  • Retrieval of status for existing A1 policies

Management of configuration

API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.

Service Callbacks

These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.

NearRT-RIC Repository (Older version)

This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted towards one Near-RT RIC.

Health Check

API used for supervision of the A1 Policy Management Service.

Service Registry and Supervision

API used for registering services/clients/rApps. Each A1 Policy can be tagged with an owner. If the owner service is registered, then the service can be optionally monitored by a heart-beat supervision mechanism, and if the registered service becomes unavailable, then it is removed and all its A1 Policies are deleted. Note that services do not need to be registered to create A1 Policies, but unregistered services are not supervised. This is a feature that is optional to use.

", "license" : { - "name" : "Copyright (C) 2020-2023 Nordix Foundation. Licensed under the Apache License.", + "name" : "Copyright (C) 2024 - 2025 OpenInfra Foundation Europe. Licensed under the Apache 2 License.", "url" : "http://www.apache.org/licenses/LICENSE-2.0" }, - "title" : "A1 Policy Management Service", - "version" : "1.3.0", - "x-api-id" : "a31c510b-20e6-4a08-af16-368c44d7fba8", + "title" : "OSC - A1 Policy Management API", + "version" : "1.0.0", + "x-api-id" : "e9776a07-0813-4fca-9801-6f892f0a7c13", "x-audience" : "external-public" }, "servers" : [ { "url" : "/" } ], "tags" : [ { - "description" : "API used to create polices, Policy Instances and get them as individual using an ID or get all policies/Instances.", + "description" : "Older pre-spec API used to get, create, update and delete A1 Policy Instances. Also used to query A1 Policy Types.\n", "name" : "A1 Policy Management" }, { - "description" : "API used to get the NearRT-RIC for the managed element.", + "description" : "Older API used to get information about registered Near-RT RICs.\n", "name" : "NearRT-RIC Repository" }, { - "description" : "API used to keep the service Alive with in the timeout period", + "description" : "Older API used to manage registered services, and control their keep-alive status via heart-beat messages.\n", "name" : "Service Registry and Supervision" }, { - "description" : "API used to get the health status and statistics of this service", + "description" : "API used to get the health status and statistics of this service\n", "name" : "Health Check" }, { - "name" : "Service callbacks" + "description" : "Callout to registered services to indicate a status changes for a Near-RT RIC. Note that these operations are called by the A1 Policy Management Service, not provided.\n", + "name" : "Service Callbacks" }, { - "description" : "API used for authorization of information A1 policy access (this is provided by an authorization producer such as OPA).
Note that this API is called by PMS, it is not provided.", + "description" : "API used for authorization of information A1 policy access (this is provided by an authorization producer such as OPA). Note that these operations are called by the A1 Policy Management Service, not provided.\n", "name" : "Authorization API" }, { - "description" : "API used to create or fetch the application configuration.", + "description" : "API used to create or fetch the application configuration.\n", "name" : "Configuration" }, { - "description" : "Monitor and interact", + "description" : "API used to monitor and configure the A1-PMS Springboot Service.\n", "externalDocs" : { "description" : "Spring Boot Actuator Web API Documentation", - "url" : "https://docs.spring.io/spring-boot/docs/current/actuator-api/html/" + "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html" }, - "name" : "Actuator" + "name" : "Actuator API" } ], "paths" : { - "/a1-policy/v2/policy-instances" : { - "get" : { - "description" : "Returns a list of A1 policies matching given search criteria.
If several query parameters are defined, the policies matching all conditions are returned.", - "operationId" : "getPolicyInstances", - "parameters" : [ { - "description" : "Select policies with a given type identity.", - "explode" : true, - "in" : "query", - "name" : "policytype_id", - "required" : false, - "schema" : { - "type" : "string" - }, - "style" : "form" - }, { - "description" : "Select policies for a given Near-RT RIC identity.", - "explode" : true, - "in" : "query", - "name" : "ric_id", - "required" : false, - "schema" : { - "type" : "string" - }, - "style" : "form" - }, { - "description" : "Select policies owned by a given service.", - "explode" : true, - "in" : "query", - "name" : "service_id", - "required" : false, - "schema" : { - "type" : "string" - }, - "style" : "form" - }, { - "description" : "Select policies of a given type name (type identity has the format )", - "explode" : true, - "in" : "query", - "name" : "type_name", - "required" : false, - "schema" : { - "type" : "string" - }, - "style" : "form" - } ], - "responses" : { - "200" : { - "content" : { - "application/json" : { - "examples" : { - "policy_info_list" : { - "$ref" : "#/components/examples/policy_info_list" - } - }, - "schema" : { - "$ref" : "#/components/schemas/policy_info_list" - } - } - }, - "description" : "OK - Returns A1 Policies which matches the criteria" - }, - "404" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/error_information" - } - } - }, - "description" : "Not Found - Near-RT RIC, policy type or service not found" - } - }, - "summary" : "Query for A1 policy instances", - "tags" : [ "A1 Policy Management" ] - } - }, - "/example-authz-check" : { - "post" : { - "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" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/authorization_result" - } - } - }, - "description" : "OK" - }, - "403" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : 403, - "title" : "Forbidden", - "detail" : "Your role does not allow to perform this action. Contact System Administrator to change your access rights." - }, - "schema" : { - "$ref" : "#/components/schemas/error_information" - } - } - }, - "description" : "Forbidden" - } - }, - "summary" : "Request for access authorization.", - "tags" : [ "Authorization API" ] - } - }, - "/actuator/threaddump" : { + "/status" : { "get" : { - "operationId" : "threaddump", + "description" : "Returns status and statistics of this service", + "operationId" : "getStatusV1", "responses" : { "200" : { "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" + "type" : "string" } } }, - "description" : "OK" + "description" : "OK - Service is living" } }, - "summary" : "Actuator web endpoint 'threaddump'", - "tags" : [ "Actuator" ], - "x-internal" : true + "summary" : "Get Status (getStatusV1)", + "tags" : [ "Health Check" ] } }, "/a1-policy/v2/status" : { @@ -224,75 +89,16 @@ "description" : "OK- Service is living Ok" } }, + "summary" : "Get Status (getStatus)", "tags" : [ "Health Check" ] } }, - "/actuator/loggers" : { - "get" : { - "operationId" : "loggers", - "responses" : { - "200" : { - "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" - } - } - }, - "description" : "OK" - } - }, - "summary" : "Actuator web endpoint 'loggers'", - "tags" : [ "Actuator" ], - "x-internal" : true - } - }, - "/actuator/health/**" : { - "get" : { - "operationId" : "health-path", - "responses" : { - "200" : { - "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" - } - } - }, - "description" : "OK" - } - }, - "summary" : "Actuator web endpoint 'health-path'", - "tags" : [ "Actuator" ], - "x-internal" : true - } - }, "/a1-policy/v2/rics/ric" : { "get" : { - "description" : "Either a Near-RT RIC identity or a Managed Element identity can be specified.
The intention with Managed Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU).", + "description" : "Query information about a Near-RT RIC. Either a Near-RT RIC identity or a Managed Element identity can be specified. The intention with Managed Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU).\n", "operationId" : "getRic", "parameters" : [ { - "description" : "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.", + "description" : "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.\n", "explode" : true, "in" : "query", "name" : "managed_element_id", @@ -337,43 +143,13 @@ "description" : "Not Found" } }, - "summary" : "Returns info of Near-RT RIC queried by the ric-id and managed-element-id", + "summary" : "Get a Near-RT RIC (getRic)", "tags" : [ "NearRT-RIC Repository" ] } }, - "/actuator/shutdown" : { - "post" : { - "operationId" : "shutdown", - "responses" : { - "200" : { - "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" - } - } - }, - "description" : "OK" - } - }, - "summary" : "Actuator web endpoint 'shutdown'", - "tags" : [ "Actuator" ], - "x-internal" : true - } - }, "/a1-policy/v2/policy-types" : { "get" : { - "description" : "Query policy type identities", + "description" : "Query A1 Policy Type identities using query parameters", "operationId" : "getPolicyTypes", "parameters" : [ { "description" : "Select types for the given Near-RT RIC identity.", @@ -386,7 +162,7 @@ }, "style" : "form" }, { - "description" : "Select types with the given type name (type identity has the format )", + "description" : "Select types compatible with the given type name (type identity has the format 'typename_version')", "explode" : true, "in" : "query", "name" : "type_name", @@ -431,12 +207,13 @@ "description" : "Not Found" } }, + "summary" : "Get A1 Policy Types (getPolicyTypes)", "tags" : [ "A1 Policy Management" ] } }, "/a1-policy/v2/policies/{policy_id}" : { "delete" : { - "description" : "Deleting the policy using the Policy's Policy ID.", + "description" : "Delete an A1 Policy instance using its policy ID.", "operationId" : "deletePolicy", "parameters" : [ { "explode" : false, @@ -475,11 +252,11 @@ "description" : "Locked - HTTP Status code which can be used when the state is Locked" } }, - "summary" : "Delete a policy", + "summary" : "Delete an A1 Policy instance (deletePolicy)", "tags" : [ "A1 Policy Management" ] }, "get" : { - "description" : "Returns a policy", + "description" : "Get an A1 Policy instance using its policy ID", "operationId" : "getPolicy", "parameters" : [ { "explode" : false, @@ -516,16 +293,18 @@ "description" : "Not Found" } }, + "summary" : "Get an A1 Policy instance (getPolicy)", "tags" : [ "A1 Policy Management" ] } }, - "/actuator/metrics/{requiredMetricName}" : { - "get" : { - "operationId" : "metrics-requiredMetricName", + "/a1-policy/v2/services/{service_id}/keepalive" : { + "put" : { + "description" : "A registered service should invoke this operation regularly to indicate that it is still alive. If a registered service fails to invoke some operation, or this operation, before the end of a timeout period the service will be deregistered and all its A1 policies wil be removed. This operation is only intended for registered services. (This timeout can be set or disabled when each service is initially registered)", + "operationId" : "keepAliveService", "parameters" : [ { "explode" : false, "in" : "path", - "name" : "requiredMetricName", + "name" : "service_id", "required" : true, "schema" : { "type" : "string" @@ -535,299 +314,33 @@ "responses" : { "200" : { "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" } } }, - "description" : "OK" + "description" : "OK - Service supervision timer refreshed, OK" + }, + "404" : { + "content" : { + "application/problem+json" : { + "example" : [ ] + } + }, + "description" : "Not Found" } }, - "summary" : "Actuator web endpoint 'metrics-requiredMetricName'", - "tags" : [ "Actuator" ], - "x-internal" : true + "summary" : "Heartbeat message from a service (keepAliveService)", + "tags" : [ "Service Registry and Supervision" ] } }, - "/a1-policy/v2/configuration" : { + "/a1-policy/v2/rics" : { "get" : { - "description" : "Returns the contents of the application configuration file", - "operationId" : "getConfiguration", - "responses" : { - "200" : { - "content" : { - "application/json" : { - "schema" : { - "type" : "string" - } - } - }, - "description" : "OK - Configuration" - }, - "404" : { - "content" : { - "application/problem+json" : { - "example" : [ ] - } - }, - "description" : "Not Found" - } - }, - "tags" : [ "Configuration" ] - }, - "put" : { - "description" : "Replace the current configuration with the given configuration", - "operationId" : "putConfiguration", - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "type" : "object" - } - } - }, - "required" : true - }, - "responses" : { - "200" : { - "content" : { - "*/*" : { - "schema" : { - "$ref" : "#/components/schemas/void" - } - } - }, - "description" : "OK - Configuration updated" - }, - "400" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : 400, - "title" : "Bad Request", - "detail" : "The provided request is not valid." - }, - "schema" : { - "$ref" : "#/components/schemas/error_information" - } - } - }, - "description" : "Bad Request" - } - }, - "tags" : [ "Configuration" ] - } - }, - "/actuator" : { - "get" : { - "operationId" : "links", - "responses" : { - "200" : { - "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" - } - } - }, - "description" : "OK" - } - }, - "summary" : "Actuator root web endpoint", - "tags" : [ "Actuator" ], - "x-internal" : true - } - }, - "/actuator/loggers/{name}" : { - "get" : { - "operationId" : "loggers-name", - "parameters" : [ { - "explode" : false, - "in" : "path", - "name" : "name", - "required" : true, - "schema" : { - "type" : "string" - }, - "style" : "simple" - } ], - "responses" : { - "200" : { - "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" - } - } - }, - "description" : "OK" - } - }, - "summary" : "Actuator web endpoint 'loggers-name'", - "tags" : [ "Actuator" ], - "x-internal" : true - }, - "post" : { - "operationId" : "loggers-name_2", - "parameters" : [ { - "explode" : false, - "in" : "path", - "name" : "name", - "required" : true, - "schema" : { - "type" : "string" - }, - "style" : "simple" - } ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", "OFF" ], - "type" : "string" - } - } - } - }, - "responses" : { - "200" : { - "content" : { - "*/*" : { - "schema" : { - "type" : "object" - } - } - }, - "description" : "OK" - } - }, - "summary" : "Actuator web endpoint 'loggers-name'", - "tags" : [ "Actuator" ], - "x-internal" : true - } - }, - "/a1-policy/v2/services/{service_id}/keepalive" : { - "put" : { - "description" : "A registered service should invoke this operation regularly to indicate that it is still alive. If a registered service fails to invoke this operation before the end of a timeout period the service will be deregistered and all its A1 policies wil be removed. (This timeout can be set or disabled when each service is initially registered)", - "operationId" : "keepAliveService", - "parameters" : [ { - "explode" : false, - "in" : "path", - "name" : "service_id", - "required" : true, - "schema" : { - "type" : "string" - }, - "style" : "simple" - } ], - "responses" : { - "200" : { - "content" : { - "*/*" : { - "schema" : { - "type" : "object" - } - } - }, - "description" : "OK - Service supervision timer refreshed, OK" - }, - "404" : { - "content" : { - "application/problem+json" : { - "example" : [ ] - } - }, - "description" : "Not Found" - } - }, - "summary" : "Heartbeat indicates that the service is running", - "tags" : [ "Service Registry and Supervision" ] - } - }, - "/actuator/metrics" : { - "get" : { - "operationId" : "metrics", - "responses" : { - "200" : { - "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" - } - } - }, - "description" : "OK" - } - }, - "summary" : "Actuator web endpoint 'metrics'", - "tags" : [ "Actuator" ], - "x-internal" : true - } - }, - "/a1-policy/v2/rics" : { - "get" : { - "description" : "The call returns all Near-RT RICs that supports a given policy type identity", + "description" : "Get all Near-RT RICs that supports a given A1 Policy Type ID", "operationId" : "getRics", "parameters" : [ { - "description" : "The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned", + "description" : "The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned.\n", "explode" : true, "in" : "query", "name" : "policytype_id", @@ -862,16 +375,16 @@ "description" : "Not Found" } }, - "summary" : "Query Near-RT RIC information", + "summary" : "Get Near-RT RICs for A1 Policy Type (getRics)", "tags" : [ "NearRT-RIC Repository" ] } }, "/a1-policy/v2/services" : { "get" : { - "description" : "Either information about a registered service with given identity or all registered services are returned.", + "description" : "Get information about all registered services, or a single registered service. If the service ID of a registered service is included in the query, information about that service is returned. Otherwise Information about all registered is returned. This operation does not retrieve information about unregistered services.\n", "operationId" : "getServices", "parameters" : [ { - "description" : "The identity of the service", + "description" : "The identity of the registered service", "explode" : true, "in" : "query", "name" : "service_id", @@ -906,7 +419,7 @@ "description" : "Not Found" } }, - "summary" : "Returns service information", + "summary" : "Get Services (getServices)", "tags" : [ "Service Registry and Supervision" ] }, "put" : { @@ -914,7 +427,7 @@ "RICStatus" : { "{$request.body#/callback_url}" : { "post" : { - "description" : "The URL to this call is registered at Service registration.", + "description" : "Callouts to indicate Near-RT RIC status changes relevant for Services. \nThe URL invoked by this callback is provided at Service registration.\n", "operationId" : "serviceCallback", "requestBody" : { "content" : { @@ -946,13 +459,14 @@ "description" : "Not Found" } }, - "summary" : "Callback for Near-RT RIC status", - "tags" : [ "Service callbacks" ] + "summary" : "Callback for Near-RT RIC status (serviceCallback)", + "tags" : [ "Service Registry and Supervision", "Service Callbacks" ], + "x-callback-request" : true } } } }, - "description" : "Registering a service is needed to:
  • Get callbacks about available NearRT RICs.
  • Activate supervision of the service. If a service is inactive, its policies will automatically be deleted.
Policies can be created even if the service is not registerred. This is a feature which it is optional to use.", + "description" : "Register a single service, or update a previous registtration. Service registration is required to get callbacks about available NearRT RICs and to enable supervision of the service's active status. If a registered service becomes inactive, its policies can be automatically deleted. A1 Policy instances can also be created for unregistered services. If an unregistered service is later registered, the service's policies are retained when the service becomes registered. This feature is optional to use.\n", "operationId" : "putService", "requestBody" : { "content" : { @@ -1001,62 +515,13 @@ "description" : "Bad Request" } }, - "summary" : "Register a service", + "summary" : "Register or update a Service (putService)", "tags" : [ "Service Registry and Supervision" ] } }, - "/actuator/info" : { + "/a1-policy/v2/policy-types/{policytype_id}" : { "get" : { - "operationId" : "info", - "responses" : { - "200" : { - "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" - } - } - }, - "description" : "OK" - } - }, - "summary" : "Actuator web endpoint 'info'", - "tags" : [ "Actuator" ], - "x-internal" : true - } - }, - "/status" : { - "get" : { - "description" : "Returns status and statistics of this service", - "operationId" : "getStatusV1", - "responses" : { - "200" : { - "content" : { - "*/*" : { - "schema" : { - "type" : "string" - } - } - }, - "description" : "OK - Service is living" - } - }, - "tags" : [ "Health Check" ] - } - }, - "/a1-policy/v2/policy-types/{policytype_id}" : { - "get" : { - "description" : "Returns a policy type definition", + "description" : "Get an A1 Policy Type definition using its policy type ID", "operationId" : "getPolicyTypeDefinition", "parameters" : [ { "explode" : false, @@ -1082,7 +547,7 @@ } } }, - "description" : "OK - schema of the given policy type" + "description" : "OK - schema of the requested A1 Policy Type" }, "404" : { "content" : { @@ -1093,65 +558,16 @@ "description" : "Not Found" } }, + "summary" : "Get an A1 Policy Type definition (getPolicyTypeDefinition)", "tags" : [ "A1 Policy Management" ] } }, - "/actuator/logfile" : { - "get" : { - "operationId" : "logfile", - "responses" : { - "200" : { - "content" : { - "text/plain;charset=UTF-8" : { - "schema" : { - "type" : "object" - } - } - }, - "description" : "OK" - } - }, - "summary" : "Actuator web endpoint 'logfile'", - "tags" : [ "Actuator" ], - "x-internal" : true - } - }, - "/actuator/health" : { - "get" : { - "operationId" : "health", - "responses" : { - "200" : { - "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" - } - } - }, - "description" : "OK" - } - }, - "summary" : "Actuator web endpoint 'health'", - "tags" : [ "Actuator" ], - "x-internal" : true - } - }, "/a1-policy/v2/policies" : { "get" : { - "description" : "Returns a list of A1 policies matching given search criteria.
If several query parameters are defined, the policies matching all conditions are returned.", + "description" : "Retrieve a list of A1 Policy Instance IDs for policies that match given search criteria. If multiple query parameters are given, the policies matching all conditions are returned.\n", "operationId" : "getPolicyIds", "parameters" : [ { - "description" : "Select policies of a given policy type identity.", + "description" : "Select policies of a given A1 Policy Type ID.", "explode" : true, "in" : "query", "name" : "policytype_id", @@ -1171,7 +587,7 @@ }, "style" : "form" }, { - "description" : "Select policies owned by a given service.", + "description" : "Select policies owned by a given service. (Both registered and unregistered services)", "explode" : true, "in" : "query", "name" : "service_id", @@ -1181,7 +597,7 @@ }, "style" : "form" }, { - "description" : "Select policies of types with the given type name (type identity has the format )", + "description" : "Select policies of types with the given A1 Policy Type name (type names have the format 'typename_version')\n", "explode" : true, "in" : "query", "name" : "type_name", @@ -1216,11 +632,11 @@ "description" : "Not Found" } }, - "summary" : "Query policy identities", + "summary" : "Query A1 Policy Instances (getPolicyIds)", "tags" : [ "A1 Policy Management" ] }, "put" : { - "description" : "Create or update a policy", + "description" : "Create or Update an A1 Policy Instance", "operationId" : "putPolicy", "requestBody" : { "content" : { @@ -1269,12 +685,89 @@ "description" : "Locked - HTTP Status code which can be used when the state is Locked" } }, + "summary" : "Create or Update an A1 Policy Instance (putPolicy)", + "tags" : [ "A1 Policy Management" ] + } + }, + "/a1-policy/v2/policy-instances" : { + "get" : { + "description" : "Returns a collection of A1 Policy Instance information for policies that match given search criteria. If several query parameters are defined, the policies matching all conditions are returned.\n", + "operationId" : "getPolicyInstances", + "parameters" : [ { + "description" : "Select policies with a given A1 Policy Type ID.", + "explode" : true, + "in" : "query", + "name" : "policytype_id", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "form" + }, { + "description" : "Select policies for a given Near-RT RIC identity.", + "explode" : true, + "in" : "query", + "name" : "ric_id", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "form" + }, { + "description" : "Select policies owned by a given service (registered or unregistered).", + "explode" : true, + "in" : "query", + "name" : "service_id", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "form" + }, { + "description" : "Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').", + "explode" : true, + "in" : "query", + "name" : "type_name", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "form" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "examples" : { + "policy_info_list" : { + "$ref" : "#/components/examples/policy_info_list" + } + }, + "schema" : { + "$ref" : "#/components/schemas/policy_info_list" + } + } + }, + "description" : "OK - Returns A1 Policy Instances which match the criteria" + }, + "404" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/error_information" + } + } + }, + "description" : "Not Found - Near-RT RIC, A1 Policy Type or service was not found" + } + }, + "summary" : "Query for A1 Policy instances (getPolicyInstances)", "tags" : [ "A1 Policy Management" ] } }, "/a1-policy/v2/services/{service_id}" : { "delete" : { - "description" : "Unregister a service", + "description" : "Unregister a registered Service using its service ID. Only registered services can be unregistered. All A1 Policy Instances for the previously registered service will be removed.\n", "operationId" : "deleteService", "parameters" : [ { "explode" : false, @@ -1306,32 +799,13 @@ "description" : "Not Found" } }, + "summary" : "Unregister a Service (deleteService)", "tags" : [ "Service Registry and Supervision" ] } }, - "/actuator/heapdump" : { - "get" : { - "operationId" : "heapdump", - "responses" : { - "200" : { - "content" : { - "application/octet-stream" : { - "schema" : { - "type" : "object" - } - } - }, - "description" : "OK" - } - }, - "summary" : "Actuator web endpoint 'heapdump'", - "tags" : [ "Actuator" ], - "x-internal" : true - } - }, "/a1-policy/v2/policies/{policy_id}/status" : { "get" : { - "description" : "Returns a policy status", + "description" : "Retrieve the status information for an A1 Policy Instance.", "operationId" : "getPolicyStatus", "parameters" : [ { "explode" : false, @@ -1368,100 +842,614 @@ "description" : "Not Found" } }, + "summary" : "Get an A1 Policy Instance's status (getPolicyStatus)", "tags" : [ "A1 Policy Management" ] } - } - }, - "components" : { - "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" - } + }, + "/a1-policy/v2/configuration" : { + "get" : { + "description" : "Returns the entire contents of the Application Configuration.", + "operationId" : "getConfiguration", + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "string" + } + } + }, + "description" : "OK - Configuration" + }, + "404" : { + "content" : { + "application/problem+json" : { + "example" : [ ] + } + }, + "description" : "Not Found" + } + }, + "summary" : "Get the Application Configuration (getConfiguration)", + "tags" : [ "Configuration" ] }, - "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" ] - } + "put" : { + "description" : "Replace the current Application Configuration with a new configuration. The new configuration, if accepted, will take effect after a short delay. The new configuration must comply with the Application Configuration schema, which can be found from the the Application Documentation (Developer Guide)\n", + "operationId" : "putConfiguration", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "object" + } + } + }, + "required" : true + }, + "responses" : { + "200" : { + "content" : { + "*/*" : { + "schema" : { + "$ref" : "#/components/schemas/void" + } + } + }, + "description" : "OK - Configuration updated" + }, + "400" : { + "content" : { + "application/problem+json" : { + "example" : { + "status" : 400, + "title" : "Bad Request", + "detail" : "The provided request is not valid." + }, + "schema" : { + "$ref" : "#/components/schemas/error_information" + } + } + }, + "description" : "Bad Request" + } + }, + "summary" : "Set/Replace the Application Configuration (putConfiguration)", + "tags" : [ "Configuration" ] + } + }, + "/example-authz-check" : { + "post" : { + "description" : "A template endpoint for callout requests to an external authorization function. The authorization function, if enabled, decides if individual operations are permitted.\n", + "operationId" : "performAccessControl", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/policy_authorization" + } + } + }, + "required" : true + }, + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/authorization_result" + } + } + }, + "description" : "OK" + }, + "403" : { + "content" : { + "application/problem+json" : { + "example" : { + "status" : 403, + "title" : "Forbidden", + "detail" : "Your role does not allow to perform this action. Contact System Administrator to change your access rights." + }, + "schema" : { + "$ref" : "#/components/schemas/error_information" + } + } + }, + "description" : "Forbidden" + } + }, + "summary" : "Callout request for access authorization (performAccessControl)", + "tags" : [ "Authorization API" ] + } + }, + "/actuator" : { + "get" : { + "description" : "A1-PMS Springboot Service Actuator web endpoint. Returns a set of links to available/enabled actuator endpoints.\n", + "externalDocs" : { + "description" : "Spring Boot Actuator Web API Documentation", + "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html" + }, + "operationId" : "actuatorLinks", + "responses" : { + "200" : { + "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" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator endpoint - Root (actuatorLinks)", + "tags" : [ "Actuator API" ], + "x-internal" : true + } + }, + "/actuator/heapdump" : { + "get" : { + "description" : "A1-PMS Springboot Service Actuator web endpoint - HeapDump.\n", + "externalDocs" : { + "description" : "Spring Boot Actuator Web API Documentation", + "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html" + }, + "operationId" : "actuatorHeapdump", + "responses" : { + "200" : { + "content" : { + "application/octet-stream" : { + "schema" : { + "type" : "object" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator endpoint - Heapdump (actuatorHeapdump)", + "tags" : [ "Actuator API" ], + "x-internal" : true + } + }, + "/actuator/info" : { + "get" : { + "description" : "A1-PMS Springboot Service Actuator web endpoint - Info.\n", + "externalDocs" : { + "description" : "Spring Boot Actuator Web API Documentation", + "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html" + }, + "operationId" : "actuatorInfo", + "responses" : { + "200" : { + "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" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator endpoint - Info (actuatorInfo)", + "tags" : [ "Actuator API" ], + "x-internal" : true + } + }, + "/actuator/threaddump" : { + "get" : { + "description" : "A1-PMS Springboot Service Actuator web endpoint - ThreadDump.\n", + "externalDocs" : { + "description" : "Spring Boot Actuator Web API Documentation", + "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html" + }, + "operationId" : "actuatorThreaddump", + "responses" : { + "200" : { + "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" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator endpoint - Threaddump (actuatorThreaddump)", + "tags" : [ "Actuator API" ], + "x-internal" : true + } + }, + "/actuator/loggers" : { + "get" : { + "description" : "A1-PMS Springboot Service Actuator web endpoint - Get a list of Loggers.\n", + "externalDocs" : { + "description" : "Spring Boot Actuator Web API Documentation", + "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html" + }, + "operationId" : "actuatorLoggers", + "responses" : { + "200" : { + "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" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator endpoint - Get Loggers (actuatorLoggers)", + "tags" : [ "Actuator API" ], + "x-internal" : true + } + }, + "/actuator/loggers/{name}" : { + "get" : { + "description" : "A1-PMS Springboot Service Actuator web endpoint - Get a single named Logger.\n", + "externalDocs" : { + "description" : "Spring Boot Actuator Web API Documentation", + "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html" + }, + "operationId" : "actuatorGetLogger", + "parameters" : [ { + "explode" : false, + "in" : "path", + "name" : "name", + "required" : true, + "schema" : { + "type" : "string" + }, + "style" : "simple" + } ], + "responses" : { + "200" : { + "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" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator endpoint - Get Logger (actuatorGetLogger)", + "tags" : [ "Actuator API" ], + "x-internal" : true }, - "policy_status_info" : { - "description" : "Status for one A1-P Policy", - "value" : { - "last_modified" : "last_modified", - "status" : { - "value" : { - "status" : "status" + "post" : { + "description" : "A1-PMS Springboot Service Actuator web endpoint - Create or Update single named Logger.\n", + "externalDocs" : { + "description" : "Spring Boot Actuator Web API Documentation", + "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html" + }, + "operationId" : "actuatorSetlogger", + "parameters" : [ { + "explode" : false, + "in" : "path", + "name" : "name", + "required" : true, + "schema" : { + "type" : "string" + }, + "style" : "simple" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", "OFF" ], + "type" : "string" + } } } - } - }, + }, + "responses" : { + "200" : { + "content" : { + "*/*" : { + "schema" : { + "type" : "object" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator endpoint - Set Logger (actuatorSetlogger)", + "tags" : [ "Actuator API" ], + "x-internal" : true + } + }, + "/actuator/logfile" : { + "get" : { + "description" : "A1-PMS Springboot Service Actuator web endpoint - Get the Log file.\n", + "externalDocs" : { + "description" : "Spring Boot Actuator Web API Documentation", + "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html" + }, + "operationId" : "actuatorGetLogFile", + "responses" : { + "200" : { + "content" : { + "text/plain;charset=UTF-8" : { + "schema" : { + "type" : "object" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator endpoint - Log File (actuatorGetLogFile)", + "tags" : [ "Actuator API" ], + "x-internal" : true + } + }, + "/actuator/health" : { + "get" : { + "description" : "A1-PMS Springboot Service Actuator web endpoint - Health Check.\n", + "externalDocs" : { + "description" : "Spring Boot Actuator Web API Documentation", + "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html" + }, + "operationId" : "actuatorHealth", + "responses" : { + "200" : { + "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" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator endpoint - Health (actuatorHealth)", + "tags" : [ "Actuator API" ], + "x-internal" : true + } + }, + "/actuator/health/**" : { + "get" : { + "description" : "A1-PMS Springboot Service Actuator web endpoint - Health Status for an Application Component.\n", + "externalDocs" : { + "description" : "Spring Boot Actuator Web API Documentation", + "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html" + }, + "operationId" : "actuatorHealthComponent", + "responses" : { + "200" : { + "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" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator endpoint - Component Health (actuatorHealthComponent)", + "tags" : [ "Actuator API" ], + "x-internal" : true + } + }, + "/actuator/shutdown" : { + "post" : { + "description" : "A1-PMS Springboot Service Actuator web endpoint - Shutdown the Application.\n", + "externalDocs" : { + "description" : "Spring Boot Actuator Web API Documentation", + "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html" + }, + "operationId" : "actuatorShutdown", + "responses" : { + "200" : { + "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" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator endpoint - Shutdown (actuatorShutdown)", + "tags" : [ "Actuator API" ], + "x-internal" : true + } + }, + "/actuator/metrics" : { + "get" : { + "description" : "A1-PMS Springboot Service Actuator web endpoint - Get a list of Application metrics names.\n", + "externalDocs" : { + "description" : "Spring Boot Actuator Web API Documentation", + "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html" + }, + "operationId" : "actuatorMetrics", + "responses" : { + "200" : { + "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" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator endpoint - Metrics (actuatorMetrics)", + "tags" : [ "Actuator API" ], + "x-internal" : true + } + }, + "/actuator/metrics/{requiredMetricName}" : { + "get" : { + "description" : "A1-PMS Springboot Service Actuator web endpoint - Get the value for a named Application metric.\n", + "externalDocs" : { + "description" : "Spring Boot Actuator Web API Documentation", + "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html" + }, + "operationId" : "actuatorGetMetric", + "parameters" : [ { + "explode" : false, + "in" : "path", + "name" : "requiredMetricName", + "required" : true, + "schema" : { + "type" : "string" + }, + "style" : "simple" + } ], + "responses" : { + "200" : { + "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" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator endpoint - Get Metric (actuatorGetMetric)", + "x-internal" : true + } + } + }, + "components" : { + "examples" : { "status_info" : { "value" : { "status" : "status" @@ -1475,6 +1463,24 @@ "policytype_ids" : [ "some_policytype_id", "some_policytype_id" ] } }, + "policy_type_id_list" : { + "description" : "Array of A1 Policy Type id's", + "value" : { + "policy_type_id_list" : [ "policytype_id", "policytype_id" ] + } + }, + "policy_info" : { + "description" : "Information for an A1 Policy Instance", + "value" : { + "ric_id" : "ric_id1", + "policy_id" : "policy_id1", + "transient" : false, + "service_id" : "service_id1", + "policy_data" : "{}", + "status_notification_uri" : "status_notification_uri", + "policytype_id" : "policytype_id1" + } + }, "ric_info_list" : { "value" : { "rics" : [ { @@ -1489,9 +1495,78 @@ "policytype_ids" : [ "policytype_ids", "policytype_ids" ] } ] } + }, + "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 A1 Policy Type", + "value" : { + "policy_schema" : "{}" + } + }, + "policy_id_list" : { + "description" : "A list of policy identities", + "value" : { + "policy_ids" : [ "some_policy_id", "some_policy_id" ] + } + }, + "policy_info_list" : { + "description" : "List of policy information", + "value" : { + "policies" : [ { + "ric_id" : "ric_id1", + "policy_id" : "policy_id1", + "transient" : false, + "service_id" : "service_id1", + "policy_data" : "{}", + "status_notification_uri" : "status_notification_uri", + "policytype_id" : "policytype_id1" + }, { + "ric_id" : "ric_id2", + "policy_id" : "policy_id2", + "transient" : true, + "service_id" : "service_id2", + "policy_data" : "{}", + "status_notification_uri" : "status_notification_uri", + "policytype_id" : "policytype_id2" + } ] + } + }, + "policy_status_info" : { + "description" : "Status for one A1-P Policy", + "value" : { + "last_modified" : "last_modified", + "status" : { + "value" : { + "status" : "status" + } + } + } } }, "responses" : { + "NotFound" : { + "content" : { + "application/problem+json" : { + "example" : [ ] + } + }, + "description" : "Not Found" + }, "Locked" : { "content" : { "application/problem+json" : { @@ -1536,54 +1611,13 @@ } }, "description" : "Forbidden" - }, - "NotFound" : { - "content" : { - "application/problem+json" : { - "example" : [ ] - } - }, - "description" : "Not Found" } }, "schemas" : { - "policy_type_definition" : { - "description" : "Contains policy type schema definition", - "properties" : { - "policy_schema" : { - "description" : "Policy type json schema. The schema is a json object following http://json-schema.org/draft-07/schema", - "type" : "object" - } - }, - "type" : "object" - }, - "error_information" : { - "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807", - "properties" : { - "detail" : { - "description" : " A human-readable explanation specific to this occurrence of the problem.", - "example" : "Policy type not found", - "type" : "string" - }, - "title" : { - "description" : "A specific error name", - "example" : "Not Found", - "type" : "string" - }, - "status" : { - "description" : "The HTTP status code generated by the origin server for this occurrence of the problem. ", - "example" : 404, - "format" : "int32", - "type" : "integer" - } - }, - "type" : "object" - }, - "void" : { - "description" : "Void/empty", - "type" : "object" - }, "status_info" : { + "example" : { + "status" : "status" + }, "properties" : { "status" : { "description" : "status text", @@ -1592,22 +1626,14 @@ }, "type" : "object" }, - "authorization_result" : { - "description" : "Result of authorization", - "example" : { - "result" : true - }, - "properties" : { - "result" : { - "description" : "If true, the access is granted", - "type" : "boolean" - } - }, - "required" : [ "result" ], - "type" : "object" - }, "ric_info" : { "description" : "Information for a Near-RT RIC", + "example" : { + "ric_id" : "ric_id", + "managed_element_ids" : [ "managed_element_ids", "managed_element_ids" ], + "state" : "UNAVAILABLE", + "policytype_ids" : [ "policytype_ids", "policytype_ids" ] + }, "properties" : { "ric_id" : { "description" : "identity of the Near-RT RIC", @@ -1627,9 +1653,26 @@ "type" : "string" }, "policytype_ids" : { - "description" : "supported policy types", + "description" : "supported A1 Policy Types", + "items" : { + "description" : "supported A1 Policy Types", + "type" : "string" + }, + "type" : "array" + } + }, + "type" : "object" + }, + "policy_type_id_list" : { + "description" : "Information about A1 Policy Types", + "example" : { + "policytype_ids" : [ "policytype_ids", "policytype_ids" ] + }, + "properties" : { + "policytype_ids" : { + "description" : "A1 Policy Type identities", "items" : { - "description" : "supported policy types", + "description" : "A1 Policy Type identities", "type" : "string" }, "type" : "array" @@ -1637,54 +1680,143 @@ }, "type" : "object" }, - "service_registration_info" : { - "description" : "Information for one service", + "policy_info" : { + "description" : "Information for one A1-P Policy", + "example" : { + "ric_id" : "ric_id", + "policy_id" : "policy_id", + "transient" : false, + "service_id" : "", + "policy_data" : "{}", + "status_notification_uri" : "status_notification_uri", + "policytype_id" : "policytype_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 automatically deleted if the targeted Near-RT RIC restarts or recovers. If false, the A1 Policy Instance remains, and is re-pushed to the targeted Near-RT RIC after a restart or recovery. If false, the A1 Policy Instance is maintained and must be deleted separately in the event of Near-RT RIC restart or recovery. Default is false.\n", + "example" : false, + "nullable" : false, + "type" : "boolean" + }, + "service_id" : { + "default" : "", + "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. If the service is registered, the A1 Policy Instance will be subject to the same supervision rules as the the service's other policies.\n", + "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 A1 Policy Type", + "type" : "string" + } + }, + "required" : [ "policy_data", "policy_id", "policytype_id", "ric_id" ], + "type" : "object" + }, + "void" : { + "description" : "Void/empty", + "type" : "object" + }, + "error_information" : { + "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807", + "example" : { + "detail" : "A1 Policy Type not found", + "title" : "Not Found", + "status" : 404 + }, "properties" : { - "callback_url" : { - "description" : "callback for notifying of Near-RT RIC state changes", + "detail" : { + "description" : " A human-readable explanation specific to this occurrence of the problem.", + "example" : "A1 Policy Type not found", "type" : "string" }, - "service_id" : { - "description" : "identity of the service", + "title" : { + "description" : "A specific error name", + "example" : "Not Found", "type" : "string" }, - "keep_alive_interval_seconds" : { - "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", + "status" : { + "description" : "The HTTP status code generated by the origin server for this occurrence of the problem. ", + "example" : 404, + "format" : "int32", "type" : "integer" } }, - "required" : [ "service_id" ], "type" : "object" }, - "policy_info_list" : { - "description" : "List of policy information", + "ric_info_list" : { + "description" : "List of Near-RT RIC information", + "example" : { + "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" ] + } ] + }, "properties" : { - "policies" : { - "description" : "List of policy information", + "rics" : { + "description" : "List of Near-RT RIC information", "items" : { - "$ref" : "#/components/schemas/policy_info" + "$ref" : "#/components/schemas/ric_info" }, "type" : "array" } }, "type" : "object" }, - "policy_status_info" : { - "description" : "Status for one A1-P Policy", + "service_status_list" : { + "example" : { + "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 + } ] + }, "properties" : { - "last_modified" : { - "description" : "timestamp, last modification time", - "type" : "string" - }, - "status" : { - "description" : "the Policy status", - "type" : "object" + "service_list" : { + "description" : "List of service information", + "items" : { + "$ref" : "#/components/schemas/service_status" + }, + "type" : "array" } }, "type" : "object" }, "service_status" : { + "example" : { + "callback_url" : "callback_url", + "service_id" : "service_id", + "keep_alive_interval_seconds" : 0, + "time_since_last_activity_seconds" : 6 + }, "properties" : { "callback_url" : { "description" : "callback for notifying of RIC synchronization", @@ -1707,100 +1839,53 @@ }, "type" : "object" }, - "ric_info_list" : { - "description" : "List of Near-RT RIC information", - "properties" : { - "rics" : { - "description" : "List of Near-RT RIC information", - "items" : { - "$ref" : "#/components/schemas/ric_info" - }, - "type" : "array" - } - }, - "type" : "object" - }, - "input" : { - "description" : "input", + "service_registration_info" : { + "description" : "Information for one service", "properties" : { - "access_type" : { - "description" : "Access type", - "enum" : [ "READ", "WRITE", "DELETE" ], + "callback_url" : { + "description" : "Callback for notifying of Near-RT RIC state changes", "type" : "string" }, - "auth_token" : { - "description" : "Authorization token", + "service_id" : { + "description" : "identity of the service", "type" : "string" }, - "policy_type_id" : { - "description" : "Policy type identifier", - "type" : "string" + "keep_alive_interval_seconds" : { + "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.\n", + "format" : "int64", + "type" : "integer" } }, - "required" : [ "access_type", "auth_token", "policy_type_id" ], + "required" : [ "service_id" ], "type" : "object" }, - "policy_authorization" : { - "description" : "Authorization request for A1 policy requests", + "service_callback_info_v2" : { + "description" : "Information transferred in Service callbacks, \nif a callback URL was provided for a registered service\n", "properties" : { - "input" : { - "$ref" : "#/components/schemas/input" + "ric_id" : { + "description" : "identity of a Near-RT RIC", + "type" : "string" + }, + "event_type" : { + "description" : "values: \n AVAILABLE: the Near-RT RIC has become available for A1 Policy management\n", + "enum" : [ "AVAILABLE" ], + "type" : "string" } }, - "required" : [ "input" ], + "required" : [ "event_type", "ric_id" ], "type" : "object" }, - "policy_type_id_list" : { - "description" : "Information about policy types", - "properties" : { - "policytype_ids" : { - "description" : "Policy type identities", - "items" : { - "description" : "Policy type identities", - "type" : "string" - }, - "type" : "array" - } + "policy_type_definition" : { + "description" : "Contains A1 Policy Type schema definition", + "example" : { + "policy_schema" : "{}" }, - "type" : "object" - }, - "policy_info" : { - "description" : "Information for one A1-P Policy", "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.", - "example" : false, - "nullable" : false, - "type" : "boolean" - }, - "service_id" : { - "default" : "", - "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", + "policy_schema" : { + "description" : "A1 Policy Type json schema. The schema is a json object following http://json-schema.org/draft-07/schema", "type" : "object" - }, - "status_notification_uri" : { - "description" : "Callback URI for policy status updates", - "type" : "string" - }, - "policytype_id" : { - "description" : "identity of the policy type", - "type" : "string" } }, - "required" : [ "policy_data", "policy_id", "policytype_id", "ric_id" ], "type" : "object" }, "policy_id_list" : { @@ -1820,32 +1905,98 @@ }, "type" : "object" }, - "service_status_list" : { + "policy_info_list" : { + "description" : "List of policy information", + "example" : { + "policies" : [ { + "ric_id" : "ric_id", + "policy_id" : "policy_id", + "transient" : false, + "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" : "", + "policy_data" : "{}", + "status_notification_uri" : "status_notification_uri", + "policytype_id" : "policytype_id" + } ] + }, "properties" : { - "service_list" : { - "description" : "List of service information", + "policies" : { + "description" : "List of policy information", "items" : { - "$ref" : "#/components/schemas/service_status" + "$ref" : "#/components/schemas/policy_info" }, "type" : "array" } }, "type" : "object" }, - "service_callback_info_v2" : { - "description" : "Information transferred as in Service callbacks (callback_url)", + "policy_status_info" : { + "description" : "Status for one A1-P Policy", + "example" : { + "last_modified" : "last_modified", + "status" : "{}" + }, "properties" : { - "ric_id" : { - "description" : "identity of a Near-RT RIC", + "last_modified" : { + "description" : "timestamp, last modification time", "type" : "string" }, - "event_type" : { - "description" : "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management", - "enum" : [ "AVAILABLE" ], + "status" : { + "description" : "the Policy status", + "type" : "object" + } + }, + "type" : "object" + }, + "policy_authorization" : { + "description" : "Authorization request for A1 policy requests", + "properties" : { + "input" : { + "$ref" : "#/components/schemas/input" + } + }, + "required" : [ "input" ], + "type" : "object" + }, + "input" : { + "description" : "input", + "properties" : { + "access_type" : { + "description" : "Access type", + "enum" : [ "READ", "WRITE", "DELETE" ], + "type" : "string" + }, + "auth_token" : { + "description" : "Authorization token", + "type" : "string" + }, + "policy_type_id" : { + "description" : "A1 Policy Type identifier", "type" : "string" } }, - "required" : [ "event_type", "ric_id" ], + "required" : [ "access_type", "auth_token", "policy_type_id" ], + "type" : "object" + }, + "authorization_result" : { + "description" : "Result of authorization", + "example" : { + "result" : true + }, + "properties" : { + "result" : { + "description" : "If true, the access is granted", + "type" : "boolean" + } + }, + "required" : [ "result" ], "type" : "object" }, "Link" : { diff --git a/api/pms-api.yaml b/api/pms-api.yaml index c0b50d4..16ecd88 100644 --- a/api/pms-api.yaml +++ b/api/pms-api.yaml @@ -1,8 +1,6 @@ # ============LICENSE_START======================================================= -# Copyright (C) 2020-2023 Nordix Foundation -# Copyright (C) 2023-2024 OpenInfra Foundation Europe. All rights reserved. -# Modifications Copyright (C) 2021 Pantheon.tech -# Modifications Copyright (C) 2021 Bell Canada +# Copyright (C) 2020-2023 Nordix Foundation. All rights reserved. +# Copyright (C) 2023-2025 OpenInfra Foundation Europe. All rights reserved. # ================================================================================ # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -21,319 +19,182 @@ openapi: 3.0.3 info: - x-api-id: a31c510b-20e6-4a08-af16-368c44d7fba8 - x-audience: external-public - description: "

General

The O-RAN Non-RT RIC Policy Management Service\ - \ provides a REST API for managemecnt of A1 policies.
The main tasks of the\ - \ service are:

  • A1 Policy creation, modification and deletion.
  • Monitoring\ - \ and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs
  • Maintaining\ - \ a view of supported Near-RT RIC policy types
  • Supervision of using services\ - \ (R-APPs). When a service is unavailable, its policies are removed.

APIs\ - \ provided or defined by the service

A1 Policy Management

This\ - \ is an API for management of A1 Policies.

  • A1 Policy retrieval, creation,\ - \ modification and deletion.
  • Retrieval of supported A1 Policy types for\ - \ a Near-RT RIC
  • Retrieval of status for existing A1 policies

Management\ + contact: + email: discuss@lists.o-ran-sc.org + url: https://o-ran-sc.org// + description: "

General

The ORAN SC A1 Policy Management Service provides\ + \ a REST API for managing A1 policies.
This document describes the latest\ + \ API set to perform tasks for:

  • A1 Policy creation, modification\ + \ and deletion.
  • Monitoring and maintaining consistency of the SMO view\ + \ of A1 Policies and the Near-RT RICs
  • Maintaining a view of each Near-RT\ + \ RIC's supported A1 Policy Types
  • Supervision of registered services (rApps).\ + \ When a registered service is unavailable, its policies are removed.

APIs\ + \ provided or defined by the service

Note: parts of this API are strongly\ + \ based on extracts of the O-RAN Alliance R1 Interface specification for A1 Policy\ + \ Management, and those parts should be considered '\xA9 O-RAN ALLIANCE - All\ + \ rights reserved.'

A1 Policy Management

This is the latest API\ + \ for managing A1 Policies. This API is partially compliant with O-RAN Alliance\ + \ R1 Interface specifications for A1 Policy Management:

  • A1 Policy retrieval,\ + \ creation, modification and deletion.
  • Retrieval of supported A1 Policy\ + \ Types for a Near-RT RIC
  • Retrieval of status for existing A1 policies

Management\ \ of configuration

API for updating and retrieval of the component configuration.\ - \ Note that there other ways to maintain the configuration.

Service callbacks

These\ + \ Note that there other ways to maintain the configuration.

Service Callbacks

These\ \ are endpoints that are invoked by this service. The callbacks are registered\ - \ in this service at service registration.

NearRT-RIC Repository

This\ - \ is an API that provides support for looking up a NearRT-RIC. Each A1 policy\ - \ is targeted for one Near-RT RIC.

Health Check

API used for supervision\ - \ of the PMS component.

Service Registry and Supervision

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.

Authorization API

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.

Spring Boot\ - \ Actuator

Provides generic functions used to monitor and manage the Spring\ - \ web application.

" + \ in this service at service registration.

NearRT-RIC Repository (Older\ + \ version)

This is an API that provides support for looking up a NearRT-RIC.\ + \ Each A1 policy is targeted towards one Near-RT RIC.

Health Check

API\ + \ used for supervision of the A1 Policy Management Service.

Service Registry\ + \ and Supervision

API used for registering services/clients/rApps. Each\ + \ A1 Policy can be tagged with an owner. If the owner service is registered, then\ + \ the service can be optionally monitored by a heart-beat supervision mechanism,\ + \ and if the registered service becomes unavailable, then it is removed and all\ + \ its A1 Policies are deleted. Note that services do not need to be registered\ + \ to create A1 Policies, but unregistered services are not supervised. This\ + \ is a feature that is optional to use.

" license: - name: Copyright (C) 2020-2023 Nordix Foundation. Licensed under the Apache License. + name: Copyright (C) 2024 - 2025 OpenInfra Foundation Europe. Licensed under the + Apache 2 License. url: http://www.apache.org/licenses/LICENSE-2.0 - title: A1 Policy Management Service - version: 1.3.0 - contact: - url: https://www.onap.org/ - email: discuss-list@onap.com + title: OSC - A1 Policy Management API + version: 1.0.0 + x-api-id: e9776a07-0813-4fca-9801-6f892f0a7c13 + x-audience: external-public servers: - - url: / +- 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).
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/ +- description: | + Older pre-spec API used to get, create, update and delete A1 Policy Instances. Also used to query A1 Policy Types. + name: A1 Policy Management +- description: | + Older API used to get information about registered Near-RT RICs. + name: NearRT-RIC Repository +- description: | + Older API used to manage registered services, and control their keep-alive status via heart-beat messages. + name: Service Registry and Supervision +- description: | + API used to get the health status and statistics of this service + name: Health Check +- description: | + Callout to registered services to indicate a status changes for a Near-RT RIC. Note that these operations are called by the A1 Policy Management Service, not provided. + name: Service Callbacks +- description: | + API used for authorization of information A1 policy access (this is provided by an authorization producer such as OPA). Note that these operations are called by the A1 Policy Management Service, not provided. + name: Authorization API +- description: | + API used to create or fetch the application configuration. + name: Configuration +- description: | + API used to monitor and configure the A1-PMS Springboot Service. + externalDocs: + description: Spring Boot Actuator Web API Documentation + url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html + name: Actuator API paths: - /a1-policy/v2/policy-instances: - get: - description: "Returns a list of A1 policies matching given search criteria.\ - \
If several query parameters are defined, the policies matching all conditions\ - \ are returned." - operationId: getPolicyInstances - parameters: - - description: Select policies with a given type identity. - explode: true - in: query - name: policytype_id - required: false - schema: - type: string - style: form - - description: Select policies for a given Near-RT RIC identity. - explode: true - in: query - name: ric_id - required: false - schema: - type: string - style: form - - description: Select policies owned by a given service. - explode: true - in: query - name: service_id - required: false - schema: - type: string - style: form - - description: Select policies of a given type name (type identity has the format - ) - explode: true - in: query - name: type_name - required: false - schema: - type: string - style: form - responses: - "200": - content: - application/json: - examples: - policy_info_list: - $ref: '#/components/examples/policy_info_list' - schema: - $ref: '#/components/schemas/policy_info_list' - description: OK - Returns A1 Policies which matches the criteria - "404": - content: - application/json: - schema: - $ref: '#/components/schemas/error_information' - description: "Not Found - Near-RT RIC, policy type or service not found" - summary: Query for A1 policy instances - tags: - - A1 Policy Management - /example-authz-check: - post: - 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": - content: - application/json: - schema: - $ref: '#/components/schemas/authorization_result' - description: OK - "403": - $ref: '#/components/responses/Forbidden' - summary: Request for access authorization. - tags: - - Authorization API - /actuator/threaddump: + /status: get: - x-internal: true - operationId: threaddump + description: Returns status and statistics of this service + operationId: getStatusV1 responses: "200": 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 - description: OK - summary: Actuator web endpoint 'threaddump' + type: string + description: OK - Service is living + summary: Get Status (getStatusV1) tags: - - Actuator + - Health Check /a1-policy/v2/status: get: + description: Returns status and statistics of this service operationId: getStatus responses: "200": content: application/json: - schema: - $ref: '#/components/schemas/status_info' examples: status_info: $ref: '#/components/examples/status_info' - 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": - 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 - description: OK - summary: Actuator web endpoint 'loggers' - tags: - - Actuator - /actuator/health/**: - get: - x-internal: true - operationId: health-path - responses: - "200": - 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 - description: OK - summary: Actuator web endpoint 'health-path' + $ref: '#/components/schemas/status_info' + description: OK- Service is living Ok + summary: Get Status (getStatus) tags: - - Actuator + - Health Check /a1-policy/v2/rics/ric: get: - description: Either a Near-RT RIC identity or a Managed Element identity can - be specified.
The intention with Managed Element identity is the ID used - in O1 for accessing the traffical element (such as the ID of CU). + description: | + Query information about a Near-RT RIC. Either a Near-RT RIC identity or a Managed Element identity can be specified. The intention with Managed Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU). operationId: getRic parameters: - - description: "The identity of a Managed Element. If given, the Near-RT RIC\ - \ managing the ME is returned." - explode: true - in: query - name: managed_element_id - required: false - schema: - type: string - style: form - - description: The identity of a Near-RT RIC to get information for. - explode: true - in: query - name: ric_id - required: false - schema: - type: string - style: form + - description: | + The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned. + explode: true + in: query + name: managed_element_id + required: false + schema: + type: string + style: form + - description: The identity of a Near-RT RIC to get information for. + explode: true + in: query + name: ric_id + required: false + schema: + type: string + style: form responses: "200": content: application/json: - schema: - $ref: '#/components/schemas/ric_info' examples: ric_info: $ref: '#/components/examples/ric_info' + schema: + $ref: '#/components/schemas/ric_info' description: OK - Near-RT RIC is found "404": - $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": 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 - description: OK - summary: Actuator web endpoint 'shutdown' + application/problem+json: + example: [] + description: Not Found + summary: Get a Near-RT RIC (getRic) tags: - - Actuator + - NearRT-RIC Repository /a1-policy/v2/policy-types: get: + description: Query A1 Policy Type identities using query parameters operationId: getPolicyTypes parameters: - - description: Select types for the given Near-RT RIC identity. - explode: true - in: query - name: ric_id - required: false - schema: - type: string - style: form - - description: Select types with the given type name (type identity has the - format ) - explode: true - in: query - name: type_name - required: false - schema: - type: string - style: form - - description: Select types that are compatible with the given version. This - parameter is only applicable in conjunction with type_name. As an example - version 1.9.1 is compatible with 1.0.0 but not the other way around. Matching - types will be returned sorted in ascending order. - explode: true - in: query - name: compatible_with_version - required: false - schema: - type: string - style: form + - description: Select types for the given Near-RT RIC identity. + explode: true + in: query + name: ric_id + required: false + schema: + type: string + style: form + - description: Select types compatible with the given type name (type identity + has the format 'typename_version') + explode: true + in: query + name: type_name + required: false + schema: + type: string + style: form + - description: Select types that are compatible with the given version. This + parameter is only applicable in conjunction with type_name. As an example + version 1.9.1 is compatible with 1.0.0 but not the other way around. Matching + types will be returned sorted in ascending order. + explode: true + in: query + name: compatible_with_version + required: false + schema: + type: string + style: form responses: "200": content: @@ -345,23 +206,25 @@ paths: $ref: '#/components/schemas/policy_type_id_list' description: OK - Policy Type IDs Found "404": - $ref: '#/components/responses/NotFound' - description: 'Not Found - Requested Policy Type IDs Not Found' - description: Query policy type identities + content: + application/problem+json: + example: [] + description: Not Found + summary: Get A1 Policy Types (getPolicyTypes) tags: - - A1 Policy Management + - A1 Policy Management /a1-policy/v2/policies/{policy_id}: delete: - description: Deleting the policy using the Policy's Policy ID. + description: Delete an A1 Policy instance using its policy ID. operationId: deletePolicy parameters: - - explode: false - in: path - name: policy_id - required: true - schema: - type: string - style: simple + - explode: false + in: path + name: policy_id + required: true + schema: + type: string + style: simple responses: "200": content: @@ -370,434 +233,650 @@ paths: $ref: '#/components/schemas/void' description: OK - Policy deleted "423": - $ref: '#/components/responses/Locked' - description: 'The requested policy using policy_id is Locked' - summary: Delete a policy + content: + application/problem+json: + example: + status: 423 + title: Locked + detail: Requested resource is in a locked state. + schema: + $ref: '#/components/schemas/error_information' + description: Locked - HTTP Status code which can be used when the state + is Locked + summary: Delete an A1 Policy instance (deletePolicy) tags: - - A1 Policy Management + - A1 Policy Management get: + description: Get an A1 Policy instance using its policy ID operationId: getPolicy parameters: - - explode: false - in: path - name: policy_id - required: true - schema: - type: string - style: simple + - explode: false + in: path + name: policy_id + required: true + schema: + type: string + style: simple responses: "200": content: application/json: - schema: - $ref: '#/components/schemas/policy_info' examples: policy_info: $ref: '#/components/examples/policy_info' + schema: + $ref: '#/components/schemas/policy_info' description: OK - Policy found "404": - $ref: '#/components/responses/NotFound' - description: 'Not Found - Requested Policy using policy_id is not found' - description: Returns a policy + content: + application/problem+json: + example: [] + description: Not Found + summary: Get an A1 Policy instance (getPolicy) tags: - - A1 Policy Management - /actuator/metrics/{requiredMetricName}: - get: - x-internal: true - operationId: metrics-requiredMetricName + - A1 Policy Management + /a1-policy/v2/services/{service_id}/keepalive: + put: + description: "A registered service should invoke this operation regularly to\ + \ indicate that it is still alive. If a registered service fails to invoke\ + \ some operation, or this operation, before the end of a timeout period the\ + \ service will be deregistered and all its A1 policies wil be removed. This\ + \ operation is only intended for registered services. (This timeout can be\ + \ set or disabled when each service is initially registered)" + operationId: keepAliveService parameters: - - explode: false - in: path - name: requiredMetricName - required: true - schema: - type: string - style: simple + - explode: false + in: path + name: service_id + required: true + schema: + type: string + style: simple responses: "200": content: - application/vnd.spring-boot.actuator.v3+json: + '*/*': schema: type: object + description: "OK - Service supervision timer refreshed, OK" + "404": + content: + application/problem+json: + example: [] + description: Not Found + summary: Heartbeat message from a service (keepAliveService) + tags: + - Service Registry and Supervision + /a1-policy/v2/rics: + get: + description: Get all Near-RT RICs that supports a given A1 Policy Type ID + operationId: getRics + parameters: + - description: | + The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned. + explode: true + in: query + name: policytype_id + required: false + schema: + type: string + style: form + responses: + "200": + content: application/json: + examples: + ric_info_list: + $ref: '#/components/examples/ric_info_list' schema: - type: object - application/vnd.spring-boot.actuator.v2+json: - schema: - type: object + $ref: '#/components/schemas/ric_info_list' description: OK - summary: Actuator web endpoint 'metrics-requiredMetricName' + "404": + content: + application/problem+json: + example: [] + description: Not Found + summary: Get Near-RT RICs for A1 Policy Type (getRics) tags: - - Actuator - /a1-policy/v2/configuration: + - NearRT-RIC Repository + /a1-policy/v2/services: get: - operationId: getConfiguration + description: | + Get information about all registered services, or a single registered service. If the service ID of a registered service is included in the query, information about that service is returned. Otherwise Information about all registered is returned. This operation does not retrieve information about unregistered services. + operationId: getServices + parameters: + - description: The identity of the registered service + explode: true + in: query + name: service_id + required: false + schema: + type: string + style: form responses: "200": content: application/json: + examples: + service_status_list: + $ref: '#/components/examples/service_status_list' schema: - type: string - description: OK - Configuration + $ref: '#/components/schemas/service_status_list' + description: OK "404": - $ref: '#/components/responses/NotFound' - description: Not Found - Configuration is not found or readable - description: Returns the contents of the application configuration file + content: + application/problem+json: + example: [] + description: Not Found + summary: Get Services (getServices) tags: - - Configuration + - Service Registry and Supervision put: - operationId: putConfiguration + callbacks: + RICStatus: + '{$request.body#/callback_url}': + post: + description: "Callouts to indicate Near-RT RIC status changes relevant\ + \ for Services. \nThe URL invoked by this callback is provided at\ + \ Service registration.\n" + operationId: serviceCallback + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/service_callback_info_v2' + required: true + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/void' + description: OK + "404": + content: + application/problem+json: + example: [] + description: Not Found + summary: Callback for Near-RT RIC status (serviceCallback) + tags: + - Service Registry and Supervision + - Service Callbacks + x-callback-request: true + description: | + Register a single service, or update a previous registtration. Service registration is required to get callbacks about available NearRT RICs and to enable supervision of the service's active status. If a registered service becomes inactive, its policies can be automatically deleted. A1 Policy instances can also be created for unregistered services. If an unregistered service is later registered, the service's policies are retained when the service becomes registered. This feature is optional to use. + operationId: putService requestBody: content: application/json: schema: - type: object + $ref: '#/components/schemas/service_registration_info' required: true responses: "200": content: '*/*': schema: - $ref: '#/components/schemas/void' - description: OK - Configuration updated + type: object + description: OK - Service updated + "201": + content: + '*/*': + schema: + type: object + description: Created - Service created "400": - $ref: '#/components/responses/BadRequest' - description: Replace the current configuration with the given configuration + content: + application/problem+json: + example: + status: 400 + title: Bad Request + detail: The provided request is not valid. + schema: + $ref: '#/components/schemas/error_information' + description: Bad Request + summary: Register or update a Service (putService) tags: - - Configuration - /actuator: + - Service Registry and Supervision + /a1-policy/v2/policy-types/{policytype_id}: get: - x-internal: true - operationId: links + description: Get an A1 Policy Type definition using its policy type ID + operationId: getPolicyTypeDefinition + parameters: + - explode: false + in: path + name: policytype_id + required: true + schema: + type: string + style: simple responses: "200": content: - application/vnd.spring-boot.actuator.v3+json: - schema: - additionalProperties: - additionalProperties: - $ref: '#/components/schemas/Link' - type: object - type: object application/json: + examples: + policy_type_definition: + $ref: '#/components/examples/policy_type_definition' 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 - description: OK - summary: Actuator root web endpoint + $ref: '#/components/schemas/policy_type_definition' + description: OK - schema of the requested A1 Policy Type + "404": + content: + application/problem+json: + example: [] + description: Not Found + summary: Get an A1 Policy Type definition (getPolicyTypeDefinition) tags: - - Actuator - /actuator/loggers/{name}: + - A1 Policy Management + /a1-policy/v2/policies: get: - x-internal: true - operationId: loggers-name + description: | + Retrieve a list of A1 Policy Instance IDs for policies that match given search criteria. If multiple query parameters are given, the policies matching all conditions are returned. + operationId: getPolicyIds parameters: - - explode: false - in: path - name: name - required: true - schema: - type: string - style: simple + - description: Select policies of a given A1 Policy Type ID. + explode: true + in: query + name: policytype_id + required: false + schema: + type: string + style: form + - description: Select policies of a given Near-RT RIC identity. + explode: true + in: query + name: ric_id + required: false + schema: + type: string + style: form + - description: Select policies owned by a given service. (Both registered and + unregistered services) + explode: true + in: query + name: service_id + required: false + schema: + type: string + style: form + - description: | + Select policies of types with the given A1 Policy Type name (type names have the format 'typename_version') + explode: true + in: query + name: type_name + required: false + schema: + type: string + style: form responses: "200": content: - application/vnd.spring-boot.actuator.v3+json: - schema: - type: object application/json: + examples: + policy_id_list: + $ref: '#/components/examples/policy_id_list' schema: - type: object - application/vnd.spring-boot.actuator.v2+json: - schema: - type: object - description: OK - summary: Actuator web endpoint 'loggers-name' + $ref: '#/components/schemas/policy_id_list' + description: OK - Policy identities + "404": + content: + application/problem+json: + example: [] + description: Not Found + summary: Query A1 Policy Instances (getPolicyIds) tags: - - Actuator - post: - x-internal: true - operationId: loggers-name_2 - parameters: - - explode: false - in: path - name: name - required: true - schema: - type: string - style: simple + - A1 Policy Management + put: + description: Create or Update an A1 Policy Instance + operationId: putPolicy requestBody: content: application/json: schema: - enum: - - TRACE - - DEBUG - - INFO - - WARN - - ERROR - - FATAL - - "OFF" - type: string + $ref: '#/components/schemas/policy_info' + required: true responses: "200": content: - '*/*': + application/json: schema: - type: object - description: OK - summary: Actuator web endpoint 'loggers-name' - tags: - - Actuator - /a1-policy/v2/services/{service_id}/keepalive: - put: - description: A registered service should invoke this operation regularly to - indicate that it is still alive. If a registered service fails to invoke this - operation before the end of a timeout period the service will be deregistered - and all its A1 policies wil be removed. (This timeout can be set or disabled - when each service is initially registered) - operationId: keepAliveService - parameters: - - explode: false - in: path - name: service_id - required: true - schema: - type: string - style: simple - responses: - "200": + $ref: '#/components/schemas/void' + description: OK - Policy updated + "201": content: - '*/*': + application/json: schema: - type: object - description: "OK - Service supervision timer refreshed, OK" - "404": - $ref: '#/components/responses/NotFound' - summary: Heartbeat indicates that the service is running + $ref: '#/components/schemas/void' + description: Created - Policy created + "423": + content: + application/problem+json: + example: + status: 423 + title: Locked + detail: Requested resource is in a locked state. + schema: + $ref: '#/components/schemas/error_information' + description: Locked - HTTP Status code which can be used when the state + is Locked + summary: Create or Update an A1 Policy Instance (putPolicy) tags: - - Service Registry and Supervision - /actuator/metrics: + - A1 Policy Management + /a1-policy/v2/policy-instances: get: - x-internal: true - operationId: metrics + description: | + Returns a collection of A1 Policy Instance information for policies that match given search criteria. If several query parameters are defined, the policies matching all conditions are returned. + operationId: getPolicyInstances + parameters: + - description: Select policies with a given A1 Policy Type ID. + explode: true + in: query + name: policytype_id + required: false + schema: + type: string + style: form + - description: Select policies for a given Near-RT RIC identity. + explode: true + in: query + name: ric_id + required: false + schema: + type: string + style: form + - description: Select policies owned by a given service (registered or unregistered). + explode: true + in: query + name: service_id + required: false + schema: + type: string + style: form + - description: Select policies of a given A1 Policy Type name (type identity + has the format 'typename_version'). + explode: true + in: query + name: type_name + required: false + schema: + type: string + style: form responses: "200": content: - application/vnd.spring-boot.actuator.v3+json: + application/json: + examples: + policy_info_list: + $ref: '#/components/examples/policy_info_list' schema: - type: object + $ref: '#/components/schemas/policy_info_list' + description: OK - Returns A1 Policy Instances which match the criteria + "404": + content: application/json: schema: - type: object - application/vnd.spring-boot.actuator.v2+json: + $ref: '#/components/schemas/error_information' + description: "Not Found - Near-RT RIC, A1 Policy Type or service was not\ + \ found" + summary: Query for A1 Policy instances (getPolicyInstances) + tags: + - A1 Policy Management + /a1-policy/v2/services/{service_id}: + delete: + description: | + Unregister a registered Service using its service ID. Only registered services can be unregistered. All A1 Policy Instances for the previously registered service will be removed. + operationId: deleteService + parameters: + - explode: false + in: path + name: service_id + required: true + schema: + type: string + style: simple + responses: + "204": + content: + '*/*': schema: type: object - description: OK - summary: Actuator web endpoint 'metrics' + description: No Content - Service unregistered + "404": + content: + application/problem+json: + example: [] + description: Not Found + summary: Unregister a Service (deleteService) tags: - - Actuator - /a1-policy/v2/rics: + - Service Registry and Supervision + /a1-policy/v2/policies/{policy_id}/status: get: - description: The call returns all Near-RT RICs that supports a given policy - type identity - operationId: getRics + description: Retrieve the status information for an A1 Policy Instance. + operationId: getPolicyStatus parameters: - - description: "The identity of a policy type. If given, all Near-RT RICs supporting\ - \ the policy type are returned" - explode: true - in: query - name: policytype_id - required: false - schema: - type: string - style: form + - explode: false + in: path + name: policy_id + required: true + schema: + type: string + style: simple responses: "200": content: application/json: - schema: - $ref: '#/components/schemas/ric_info_list' examples: - ric_info_list: - $ref: '#/components/examples/ric_info_list' - description: OK + policy_status_info: + $ref: '#/components/examples/policy_status_info' + schema: + $ref: '#/components/schemas/policy_status_info' + description: OK - Policy status "404": - $ref: '#/components/responses/NotFound' - summary: Query Near-RT RIC information + content: + application/problem+json: + example: [] + description: Not Found + summary: Get an A1 Policy Instance's status (getPolicyStatus) tags: - - NearRT-RIC Repository - /a1-policy/v2/services: + - A1 Policy Management + /a1-policy/v2/configuration: get: - description: Either information about a registered service with given identity - or all registered services are returned. - operationId: getServices - parameters: - - description: The identity of the service - explode: true - in: query - name: service_id - required: false - schema: - type: string - style: form + description: Returns the entire contents of the Application Configuration. + operationId: getConfiguration responses: "200": content: application/json: schema: - $ref: '#/components/schemas/service_status_list' - examples: - service_status_list: - $ref: '#/components/examples/service_status_list' - description: OK + type: string + description: OK - Configuration "404": - $ref: '#/components/responses/NotFound' - summary: Returns service information + content: + application/problem+json: + example: [] + description: Not Found + summary: Get the Application Configuration (getConfiguration) tags: - - Service Registry and Supervision + - Configuration put: - description: "Registering a service is needed to:
  • Get callbacks about\ - \ available NearRT RICs.
  • Activate supervision of the service. If a\ - \ service is inactive, its policies will automatically be deleted.
Policies\ - \ can be created even if the service is not registerred. This is a feature\ - \ which it is optional to use." - operationId: putService + description: | + Replace the current Application Configuration with a new configuration. The new configuration, if accepted, will take effect after a short delay. The new configuration must comply with the Application Configuration schema, which can be found from the the Application Documentation (Developer Guide) + operationId: putConfiguration requestBody: content: application/json: schema: - $ref: '#/components/schemas/service_registration_info' + type: object required: true responses: "200": content: '*/*': schema: - type: object - description: OK - Service updated - "201": + $ref: '#/components/schemas/void' + description: OK - Configuration updated + "400": content: - '*/*': + application/problem+json: + example: + status: 400 + title: Bad Request + detail: The provided request is not valid. schema: - type: object - description: Created - Service created - "400": - $ref: '#/components/responses/BadRequest' - summary: Register a service + $ref: '#/components/schemas/error_information' + description: Bad Request + summary: Set/Replace the Application Configuration (putConfiguration) 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": - 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: + - Configuration + /example-authz-check: + post: + description: | + A template endpoint for callout requests to an external authorization function. The authorization function, if enabled, decides if individual operations are permitted. + operationId: performAccessControl + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy_authorization' + required: true + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/authorization_result' + description: OK + "403": + content: + application/problem+json: + example: + status: 403 + title: Forbidden + detail: Your role does not allow to perform this action. Contact System + Administrator to change your access rights. + schema: + $ref: '#/components/schemas/error_information' + description: Forbidden + summary: Callout request for access authorization (performAccessControl) + tags: + - Authorization API + /actuator: get: - x-internal: true - operationId: info + description: | + A1-PMS Springboot Service Actuator web endpoint. Returns a set of links to available/enabled actuator endpoints. + externalDocs: + description: Spring Boot Actuator Web API Documentation + url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html + operationId: actuatorLinks responses: "200": 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 description: OK - summary: Actuator web endpoint 'info' + summary: Actuator endpoint - Root (actuatorLinks) tags: - - Actuator - /status: + - Actuator API + x-internal: true + /actuator/heapdump: get: - operationId: getStatusV1 + description: | + A1-PMS Springboot Service Actuator web endpoint - HeapDump. + externalDocs: + description: Spring Boot Actuator Web API Documentation + url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html + operationId: actuatorHeapdump responses: "200": content: - '*/*': + application/octet-stream: schema: - type: string - description: OK - Service is living - description: Returns status and statistics of this service + type: object + description: OK + summary: Actuator endpoint - Heapdump (actuatorHeapdump) tags: - - Health Check - /a1-policy/v2/policy-types/{policytype_id}: + - Actuator API + x-internal: true + /actuator/info: get: - operationId: getPolicyTypeDefinition - parameters: - - explode: false - in: path - name: policytype_id - required: true - schema: - type: string - style: simple + description: | + A1-PMS Springboot Service Actuator web endpoint - Info. + externalDocs: + description: Spring Boot Actuator Web API Documentation + url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html + operationId: actuatorInfo responses: "200": content: + application/vnd.spring-boot.actuator.v3+json: + schema: + type: object application/json: schema: - $ref: '#/components/schemas/policy_type_definition' - examples: - policy_type_definition: - $ref: '#/components/examples/policy_type_definition' - description: OK - schema of the given policy type - "404": - $ref: '#/components/responses/NotFound' - description: Returns a policy type definition - tags: - - A1 Policy Management - /actuator/logfile: - get: - x-internal: true - operationId: logfile + type: object + application/vnd.spring-boot.actuator.v2+json: + schema: + type: object + description: OK + summary: Actuator endpoint - Info (actuatorInfo) + tags: + - Actuator API + x-internal: true + /actuator/threaddump: + get: + description: | + A1-PMS Springboot Service Actuator web endpoint - ThreadDump. + externalDocs: + description: Spring Boot Actuator Web API Documentation + url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html + operationId: actuatorThreaddump responses: "200": 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 description: OK - summary: Actuator web endpoint 'logfile' + summary: Actuator endpoint - Threaddump (actuatorThreaddump) tags: - - Actuator - /actuator/health: - get: + - Actuator API x-internal: true - operationId: health + /actuator/loggers: + get: + description: | + A1-PMS Springboot Service Actuator web endpoint - Get a list of Loggers. + externalDocs: + description: Spring Boot Actuator Web API Documentation + url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html + operationId: actuatorLoggers responses: "200": content: @@ -811,257 +890,322 @@ paths: schema: type: object description: OK - summary: Actuator web endpoint 'health' + summary: Actuator endpoint - Get Loggers (actuatorLoggers) tags: - - Actuator - /a1-policy/v2/policies: + - Actuator API + x-internal: true + /actuator/loggers/{name}: get: - description: "Returns a list of A1 policies matching given search criteria.\ - \
If several query parameters are defined, the policies matching all conditions\ - \ are returned." - operationId: getPolicyIds + description: | + A1-PMS Springboot Service Actuator web endpoint - Get a single named Logger. + externalDocs: + description: Spring Boot Actuator Web API Documentation + url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html + operationId: actuatorGetLogger parameters: - - description: Select policies of a given policy type identity. - explode: true - in: query - name: policytype_id - required: false - schema: - type: string - style: form - - description: Select policies of a given Near-RT RIC identity. - explode: true - in: query - name: ric_id - required: false - schema: - type: string - style: form - - description: Select policies owned by a given service. - explode: true - in: query - name: service_id - required: false - schema: - type: string - style: form - - description: Select policies of types with the given type name (type identity - has the format ) - explode: true - in: query - name: type_name - required: false - schema: - type: string - style: form + - explode: false + in: path + name: name + required: true + schema: + type: string + style: simple responses: "200": content: + application/vnd.spring-boot.actuator.v3+json: + schema: + type: object application/json: - examples: - policy_id_list: - $ref: '#/components/examples/policy_id_list' schema: - $ref: '#/components/schemas/policy_id_list' - description: OK - Policy identities - "404": - $ref: '#/components/responses/NotFound' - summary: Query policy identities + type: object + application/vnd.spring-boot.actuator.v2+json: + schema: + type: object + description: OK + summary: Actuator endpoint - Get Logger (actuatorGetLogger) tags: - - A1 Policy Management - put: - operationId: putPolicy + - Actuator API + x-internal: true + post: + description: | + A1-PMS Springboot Service Actuator web endpoint - Create or Update single named Logger. + externalDocs: + description: Spring Boot Actuator Web API Documentation + url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html + operationId: actuatorSetlogger + parameters: + - explode: false + in: path + name: name + required: true + schema: + type: string + style: simple requestBody: content: application/json: schema: - $ref: '#/components/schemas/policy_info' - required: true + enum: + - TRACE + - DEBUG + - INFO + - WARN + - ERROR + - FATAL + - "OFF" + type: string responses: "200": content: + '*/*': + schema: + type: object + description: OK + summary: Actuator endpoint - Set Logger (actuatorSetlogger) + tags: + - Actuator API + x-internal: true + /actuator/logfile: + get: + description: | + A1-PMS Springboot Service Actuator web endpoint - Get the Log file. + externalDocs: + description: Spring Boot Actuator Web API Documentation + url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html + operationId: actuatorGetLogFile + responses: + "200": + content: + text/plain;charset=UTF-8: + schema: + type: object + description: OK + summary: Actuator endpoint - Log File (actuatorGetLogFile) + tags: + - Actuator API + x-internal: true + /actuator/health: + get: + description: | + A1-PMS Springboot Service Actuator web endpoint - Health Check. + externalDocs: + description: Spring Boot Actuator Web API Documentation + url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html + operationId: actuatorHealth + responses: + "200": + content: + application/vnd.spring-boot.actuator.v3+json: + schema: + type: object application/json: schema: - $ref: '#/components/schemas/void' - description: OK - Policy updated - "201": + type: object + application/vnd.spring-boot.actuator.v2+json: + schema: + type: object + description: OK + summary: Actuator endpoint - Health (actuatorHealth) + tags: + - Actuator API + x-internal: true + /actuator/health/**: + get: + description: | + A1-PMS Springboot Service Actuator web endpoint - Health Status for an Application Component. + externalDocs: + description: Spring Boot Actuator Web API Documentation + url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html + operationId: actuatorHealthComponent + responses: + "200": content: + application/vnd.spring-boot.actuator.v3+json: + schema: + type: object application/json: schema: - $ref: '#/components/schemas/void' - description: Created - Policy created - "423": - $ref: '#/components/responses/Locked' - description: Create or update a policy + type: object + application/vnd.spring-boot.actuator.v2+json: + schema: + type: object + description: OK + summary: Actuator endpoint - Component Health (actuatorHealthComponent) tags: - - A1 Policy Management - /a1-policy/v2/services/{service_id}: - delete: - operationId: deleteService - parameters: - - explode: false - in: path - name: service_id - required: true - schema: - type: string - style: simple + - Actuator API + x-internal: true + /actuator/shutdown: + post: + description: | + A1-PMS Springboot Service Actuator web endpoint - Shutdown the Application. + externalDocs: + description: Spring Boot Actuator Web API Documentation + url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html + operationId: actuatorShutdown responses: - "204": + "200": content: - '*/*': + application/vnd.spring-boot.actuator.v3+json: schema: type: object - description: No Content - Service unregistered - "404": - $ref: '#/components/responses/NotFound' - description: Unregister a service + application/json: + schema: + type: object + application/vnd.spring-boot.actuator.v2+json: + schema: + type: object + description: OK + summary: Actuator endpoint - Shutdown (actuatorShutdown) tags: - - Service Registry and Supervision - /actuator/heapdump: - get: + - Actuator API x-internal: true - operationId: heapdump + /actuator/metrics: + get: + description: | + A1-PMS Springboot Service Actuator web endpoint - Get a list of Application metrics names. + externalDocs: + description: Spring Boot Actuator Web API Documentation + url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html + operationId: actuatorMetrics responses: "200": content: - application/octet-stream: + 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 description: OK - summary: Actuator web endpoint 'heapdump' + summary: Actuator endpoint - Metrics (actuatorMetrics) tags: - - Actuator - /a1-policy/v2/policies/{policy_id}/status: + - Actuator API + x-internal: true + /actuator/metrics/{requiredMetricName}: get: - operationId: getPolicyStatus + description: | + A1-PMS Springboot Service Actuator web endpoint - Get the value for a named Application metric. + externalDocs: + description: Spring Boot Actuator Web API Documentation + url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html + operationId: actuatorGetMetric parameters: - - explode: false - in: path - name: policy_id - required: true - schema: - type: string - style: simple + - explode: false + in: path + name: requiredMetricName + required: true + schema: + type: string + style: simple responses: "200": content: + application/vnd.spring-boot.actuator.v3+json: + schema: + type: object application/json: schema: - $ref: '#/components/schemas/policy_status_info' - examples: - policy_status_info: - $ref: '#/components/examples/policy_status_info' - description: OK - Policy status - "404": - $ref: '#/components/responses/NotFound' - description: Returns a policy status - tags: - - A1 Policy Management + type: object + application/vnd.spring-boot.actuator.v2+json: + schema: + type: object + description: OK + summary: Actuator endpoint - Get Metric (actuatorGetMetric) + x-internal: true 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 - 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 + status_info: 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 + status: status + ric_info: value: - policy_schema: "{}" + 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 policy_type_id_list: - description: Array of policy type id's + description: Array of A1 Policy Type id's value: policy_type_id_list: - - policytype_id - - policytype_id + - policytype_id + - policytype_id policy_info: - description: Policy information of one A1-P policy + description: Information for an A1 Policy Instance value: - ric_id: ric_id - policy_id: policy_id + ric_id: ric_id1 + policy_id: policy_id1 transient: false - service_id: service_id + service_id: service_id1 policy_data: "{}" status_notification_uri: status_notification_uri - policytype_id: policytype_id - policy_info_list: - description: List of policy information + policytype_id: policytype_id1 + ric_info_list: 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 + 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 + 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 A1 Policy Type + value: + policy_schema: "{}" policy_id_list: description: A list of policy identities value: policy_ids: - - some_policy_id - - some_policy_id + - some_policy_id + - some_policy_id + policy_info_list: + description: List of policy information + value: + policies: + - ric_id: ric_id1 + policy_id: policy_id1 + transient: false + service_id: service_id1 + policy_data: "{}" + status_notification_uri: status_notification_uri + policytype_id: policytype_id1 + - ric_id: ric_id2 + policy_id: policy_id2 + transient: true + service_id: service_id2 + policy_data: "{}" + status_notification_uri: status_notification_uri + policytype_id: policytype_id2 policy_status_info: description: Status for one A1-P Policy value: @@ -1069,89 +1213,63 @@ components: status: value: status: status + responses: + NotFound: + content: + application/problem+json: + example: [] + description: Not Found + Locked: + content: + application/problem+json: + example: + status: 423 + title: Locked + detail: Requested resource is in a locked state. + schema: + $ref: '#/components/schemas/error_information' + description: Locked - HTTP Status code which can be used when the state is Locked + BadRequest: + content: + application/problem+json: + example: + status: 400 + title: Bad Request + detail: The provided request is not valid. + schema: + $ref: '#/components/schemas/error_information' + description: Bad Request + Forbidden: + content: + application/problem+json: + example: + status: 403 + title: Forbidden + detail: Your role does not allow to perform this action. Contact System + Administrator to change your access rights. + schema: + $ref: '#/components/schemas/error_information' + description: Forbidden + schemas: 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 - - schemas: - policy_type_definition: - description: Contains policy type schema definition - 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 - error_information: - description: Problem as defined in https://tools.ietf.org/html/rfc7807 - properties: - detail: - description: ' A human-readable explanation specific to this occurrence - of the problem.' - example: Policy type not found - type: string - title: - description: 'A specific error name' - type: string - example: Not Found - status: - description: 'The HTTP status code generated by the origin server for this - occurrence of the problem. ' - example: 404 - format: int32 - type: integer - type: object - void: - description: Void/empty - type: object - status_info: + example: + status: status properties: status: description: status text type: string type: object - authorization_result: - description: Result of authorization - example: - result: true - properties: - result: - description: "If true, the access is granted" - type: boolean - required: - - result - type: object ric_info: description: Information for a Near-RT RIC + example: + ric_id: ric_id + managed_element_ids: + - managed_element_ids + - managed_element_ids + state: UNAVAILABLE + policytype_ids: + - policytype_ids + - policytype_ids properties: ric_id: description: identity of the Near-RT RIC @@ -1165,60 +1283,153 @@ components: state: description: Represents the states for a Near-RT RIC enum: - - UNAVAILABLE - - AVAILABLE - - SYNCHRONIZING - - CONSISTENCY_CHECK + - UNAVAILABLE + - AVAILABLE + - SYNCHRONIZING + - CONSISTENCY_CHECK type: string policytype_ids: - description: supported policy types + description: supported A1 Policy Types items: - description: supported policy types + description: supported A1 Policy Types type: string type: array type: object - service_registration_info: - description: Information for one service + policy_type_id_list: + description: Information about A1 Policy Types + example: + policytype_ids: + - policytype_ids + - policytype_ids properties: - callback_url: - description: callback for notifying of Near-RT RIC state changes + policytype_ids: + description: A1 Policy Type identities + items: + description: A1 Policy Type identities + type: string + type: array + type: object + policy_info: + description: Information for one A1-P Policy + example: + ric_id: ric_id + policy_id: policy_id + transient: false + service_id: "" + policy_data: "{}" + status_notification_uri: status_notification_uri + policytype_id: policytype_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 automatically deleted if the targeted Near-RT RIC restarts or recovers. If false, the A1 Policy Instance remains, and is re-pushed to the targeted Near-RT RIC after a restart or recovery. If false, the A1 Policy Instance is maintained and must be deleted separately in the event of Near-RT RIC restart or recovery. Default is false. + example: false + nullable: false + type: boolean service_id: - description: identity of the service + default: "" + 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. If the service is registered, the A1 Policy Instance will be subject to the same supervision rules as the the service's other policies. + 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 A1 Policy Type type: string - keep_alive_interval_seconds: - description: "keep alive interval for the service. This is used to enable\ - \ optional heartbeat supervision of the service. If set (> 0) the registered\ - \ service should regularly invoke a 'keepalive' REST call. When a service\ - \ fails to invoke this 'keepalive' call within the configured time, the\ - \ service is considered unavailable. An unavailable service will be automatically\ - \ deregistered and its policies will be deleted. Value 0 means timeout\ - \ supervision is disabled." - format: int64 - type: integer required: - - service_id + - policy_data + - policy_id + - policytype_id + - ric_id type: object - policy_info_list: - description: List of policy information + void: + description: Void/empty + type: object + error_information: + description: Problem as defined in https://tools.ietf.org/html/rfc7807 + example: + detail: A1 Policy Type not found + title: Not Found + status: 404 properties: - policies: - description: List of policy information + detail: + description: ' A human-readable explanation specific to this occurrence + of the problem.' + example: A1 Policy Type not found + type: string + title: + description: A specific error name + example: Not Found + type: string + status: + description: 'The HTTP status code generated by the origin server for this + occurrence of the problem. ' + example: 404 + format: int32 + type: integer + type: object + ric_info_list: + description: List of Near-RT RIC information + example: + 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 + properties: + rics: + description: List of Near-RT RIC information items: - $ref: '#/components/schemas/policy_info' + $ref: '#/components/schemas/ric_info' type: array type: object - policy_status_info: - description: Status for one A1-P Policy + service_status_list: + example: + 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 properties: - last_modified: - description: "timestamp, last modification time" - type: string - status: - description: the Policy status - type: object + service_list: + description: List of service information + items: + $ref: '#/components/schemas/service_status' + type: array type: object service_status: + example: + callback_url: callback_url + service_id: service_id + keep_alive_interval_seconds: 0 + time_since_last_activity_seconds: 6 properties: callback_url: description: callback for notifying of RIC synchronization @@ -1235,98 +1446,56 @@ components: format: int64 type: integer type: object - ric_info_list: - description: List of Near-RT RIC information - properties: - rics: - description: List of Near-RT RIC information - items: - $ref: '#/components/schemas/ric_info' - type: array - type: object - input: - description: input + service_registration_info: + description: Information for one service properties: - access_type: - description: Access type - enum: - - READ - - WRITE - - DELETE - type: string - auth_token: - description: Authorization token + callback_url: + description: Callback for notifying of Near-RT RIC state changes type: string - policy_type_id: - description: Policy type identifier + service_id: + description: identity of the service type: string + keep_alive_interval_seconds: + description: | + Keep alive interval for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled. + format: int64 + type: integer required: - - access_type - - auth_token - - policy_type_id - type: object - policy_authorization: - description: Authorization request for A1 policy requests - properties: - input: - $ref: '#/components/schemas/input' - required: - - input - type: object - policy_type_id_list: - description: Information about policy types - properties: - policytype_ids: - description: Policy type identities - items: - description: Policy type identities - type: string - type: array + - service_id type: object - policy_info: - description: Information for one A1-P Policy + service_callback_info_v2: + description: "Information transferred in Service callbacks, \nif a callback\ + \ URL was provided for a registered service\n" 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." - example: false - nullable: false - type: boolean - 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 - default: "" - policy_data: - description: the configuration of the policy - type: object - status_notification_uri: - description: Callback URI for policy status updates + description: identity of a Near-RT RIC type: string - policytype_id: - description: identity of the policy type + event_type: + description: "values: \n AVAILABLE: the Near-RT RIC has become available\ + \ for A1 Policy management\n" + enum: + - AVAILABLE type: string required: - - ric_id - - policy_id - - policy_data - - policytype_id + - event_type + - ric_id + type: object + policy_type_definition: + description: Contains A1 Policy Type schema definition + example: + policy_schema: "{}" + properties: + policy_schema: + description: A1 Policy Type json schema. The schema is a json object following + http://json-schema.org/draft-07/schema + type: object type: object policy_id_list: description: A list of policy identities example: policy_ids: - - policy_ids - - policy_ids + - policy_ids + - policy_ids properties: policy_ids: description: Policy identities @@ -1335,29 +1504,83 @@ components: type: string type: array type: object - service_status_list: + policy_info_list: + description: List of policy information + example: + policies: + - ric_id: ric_id + policy_id: policy_id + transient: false + 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: "" + policy_data: "{}" + status_notification_uri: status_notification_uri + policytype_id: policytype_id properties: - service_list: - description: List of service information + policies: + description: List of policy information items: - $ref: '#/components/schemas/service_status' + $ref: '#/components/schemas/policy_info' type: array type: object - service_callback_info_v2: - description: Information transferred as in Service callbacks (callback_url) + policy_status_info: + description: Status for one A1-P Policy + example: + last_modified: last_modified + status: "{}" properties: - ric_id: - description: identity of a Near-RT RIC + last_modified: + description: "timestamp, last modification time" type: string - event_type: - description: "values:\nAVAILABLE: the Near-RT RIC has become available\ - \ for A1 Policy management" + status: + description: the Policy status + type: object + type: object + policy_authorization: + description: Authorization request for A1 policy requests + properties: + input: + $ref: '#/components/schemas/input' + required: + - input + type: object + input: + description: input + properties: + access_type: + description: Access type enum: - - AVAILABLE + - READ + - WRITE + - DELETE type: string + auth_token: + description: Authorization token + type: string + policy_type_id: + description: A1 Policy Type identifier + type: string + required: + - access_type + - auth_token + - policy_type_id + type: object + authorization_result: + description: Result of authorization + example: + result: true + properties: + result: + description: "If true, the access is granted" + type: boolean required: - - event_type - - ric_id + - result type: object Link: properties: @@ -1365,4 +1588,4 @@ components: type: boolean href: type: string - type: object \ No newline at end of file + type: object diff --git a/api/pms-api/index.html b/api/pms-api/index.html index 247549a..bed148f 100644 --- a/api/pms-api/index.html +++ b/api/pms-api/index.html @@ -2,7 +2,7 @@ - A1 Policy Management Service + OSC - A1 Policy Management API @@ -864,7 +864,7 @@ ul.nav-tabs { "detail" : { "type" : "string", "description" : " A human-readable explanation specific to this occurrence of the problem.", - "example" : "Policy type not found" + "example" : "A1 Policy Type not found" }, "title" : { "type" : "string", @@ -878,7 +878,12 @@ ul.nav-tabs { "example" : 404 } }, - "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807" + "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807", + "example" : { + "detail" : "A1 Policy Type not found", + "title" : "Not Found", + "status" : 404 + } }; defs["input"] = { "required" : [ "access_type", "auth_token", "policy_type_id" ], @@ -895,7 +900,7 @@ ul.nav-tabs { }, "policy_type_id" : { "type" : "string", - "description" : "Policy type identifier" + "description" : "A1 Policy Type identifier" } }, "description" : "input" @@ -952,14 +957,14 @@ ul.nav-tabs { }, "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.", + "description" : "If true, the policy is automatically deleted if the targeted Near-RT RIC restarts or recovers. If false, the A1 Policy Instance remains, and is re-pushed to the targeted Near-RT RIC after a restart or recovery. If false, the A1 Policy Instance is maintained and must be deleted separately in the event of Near-RT RIC restart or recovery. Default is false.\n", "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.", + "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. If the service is registered, the A1 Policy Instance will be subject to the same supervision rules as the the service's other policies.\n", "default" : "" }, "policy_data" : { @@ -972,10 +977,19 @@ ul.nav-tabs { }, "policytype_id" : { "type" : "string", - "description" : "identity of the policy type" + "description" : "identity of the A1 Policy Type" } }, - "description" : "Information for one A1-P Policy" + "description" : "Information for one A1-P Policy", + "example" : { + "ric_id" : "ric_id", + "policy_id" : "policy_id", + "transient" : false, + "service_id" : "", + "policy_data" : "{}", + "status_notification_uri" : "status_notification_uri", + "policytype_id" : "policytype_id" + } }; defs["policy_info_list"] = { "type" : "object", @@ -988,7 +1002,26 @@ ul.nav-tabs { } } }, - "description" : "List of policy information" + "description" : "List of policy information", + "example" : { + "policies" : [ { + "ric_id" : "ric_id", + "policy_id" : "policy_id", + "transient" : false, + "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" : "", + "policy_data" : "{}", + "status_notification_uri" : "status_notification_uri", + "policytype_id" : "policytype_id" + } ] + } }; defs["policy_status_info"] = { "type" : "object", @@ -1002,31 +1035,41 @@ ul.nav-tabs { "description" : "the Policy status" } }, - "description" : "Status for one A1-P Policy" + "description" : "Status for one A1-P Policy", + "example" : { + "last_modified" : "last_modified", + "status" : "{}" + } }; 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" : "A1 Policy Type json schema. The schema is a json object following http://json-schema.org/draft-07/schema" } }, - "description" : "Contains policy type schema definition" + "description" : "Contains A1 Policy Type schema definition", + "example" : { + "policy_schema" : "{}" + } }; defs["policy_type_id_list"] = { "type" : "object", "properties" : { "policytype_ids" : { "type" : "array", - "description" : "Policy type identities", + "description" : "A1 Policy Type identities", "items" : { "type" : "string", - "description" : "Policy type identities" + "description" : "A1 Policy Type identities" } } }, - "description" : "Information about policy types" + "description" : "Information about A1 Policy Types", + "example" : { + "policytype_ids" : [ "policytype_ids", "policytype_ids" ] + } }; defs["ric_info"] = { "type" : "object", @@ -1050,14 +1093,20 @@ ul.nav-tabs { }, "policytype_ids" : { "type" : "array", - "description" : "supported policy types", + "description" : "supported A1 Policy Types", "items" : { "type" : "string", - "description" : "supported policy types" + "description" : "supported A1 Policy Types" } } }, - "description" : "Information for a Near-RT RIC" + "description" : "Information for a Near-RT RIC", + "example" : { + "ric_id" : "ric_id", + "managed_element_ids" : [ "managed_element_ids", "managed_element_ids" ], + "state" : "UNAVAILABLE", + "policytype_ids" : [ "policytype_ids", "policytype_ids" ] + } }; defs["ric_info_list"] = { "type" : "object", @@ -1070,7 +1119,20 @@ ul.nav-tabs { } } }, - "description" : "List of Near-RT RIC information" + "description" : "List of Near-RT RIC information", + "example" : { + "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" ] + } ] + } }; defs["service_callback_info_v2"] = { "required" : [ "event_type", "ric_id" ], @@ -1082,11 +1144,11 @@ ul.nav-tabs { }, "event_type" : { "type" : "string", - "description" : "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management", + "description" : "values: \n AVAILABLE: the Near-RT RIC has become available for A1 Policy management\n", "enum" : [ "AVAILABLE" ] } }, - "description" : "Information transferred as in Service callbacks (callback_url)" + "description" : "Information transferred in Service callbacks, \nif a callback URL was provided for a registered service\n" }; defs["service_registration_info"] = { "required" : [ "service_id" ], @@ -1094,7 +1156,7 @@ ul.nav-tabs { "properties" : { "callback_url" : { "type" : "string", - "description" : "callback for notifying of Near-RT RIC state changes" + "description" : "Callback for notifying of Near-RT RIC state changes" }, "service_id" : { "type" : "string", @@ -1102,7 +1164,7 @@ ul.nav-tabs { }, "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.", + "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.\n", "format" : "int64" } }, @@ -1129,6 +1191,12 @@ ul.nav-tabs { "description" : "time since last invocation by the service", "format" : "int64" } + }, + "example" : { + "callback_url" : "callback_url", + "service_id" : "service_id", + "keep_alive_interval_seconds" : 0, + "time_since_last_activity_seconds" : 6 } }; defs["service_status_list"] = { @@ -1141,6 +1209,19 @@ ul.nav-tabs { "$ref" : "#/components/schemas/service_status" } } + }, + "example" : { + "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 + } ] } }; defs["status_info"] = { @@ -1150,6 +1231,9 @@ ul.nav-tabs { "type" : "string", "description" : "status text" } + }, + "example" : { + "status" : "status" } }; @@ -1240,17 +1324,17 @@ ul.nav-tabs {
-

A1 Policy Management Service

+

OSC - A1 Policy Management API

-
var A1PolicyManagementService = require('a1_policy_management_service');
+                              
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.A1PolicyManagementApi()
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
 var policyId = policyId_example; // {String} 
 
 var callback = function(error, data, response) {
@@ -1424,7 +1508,7 @@ namespace Example
             var policyId = policyId_example;  // String |  (default to null)
 
             try {
-                // Delete a policy
+                // Delete an A1 Policy instance (deletePolicy)
                 Object result = apiInstance.deletePolicy(policyId);
                 Debug.WriteLine(result);
             } catch (Exception e) {
@@ -1483,7 +1567,7 @@ api_instance = openapi_client.A1PolicyManagementApi()
 policyId = policyId_example # String |  (default to null)
 
 try:
-    # Delete a policy
+    # Delete an A1 Policy instance (deletePolicy)
     api_response = api_instance.delete_policy(policyId)
     pprint(api_response)
 except ApiException as e:
@@ -1709,12 +1793,12 @@ pub fn main() {
                       

getPolicy

-

+

Get an A1 Policy instance (getPolicy)

-

Returns a policy

+

Get an A1 Policy instance using its policy ID


/a1-policy/v2/policies/{policy_id}
@@ -1818,6 +1902,7 @@ public class A1PolicyManagementApiExample { A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init]; String *policyId = policyId_example; // (default to null) +// Get an A1 Policy instance (getPolicy) [apiInstance getPolicyWith:policyId completionHandler: ^(policy_info output, NSError* error) { if (output) { @@ -1831,10 +1916,10 @@ String *policyId = policyId_example; // (default to null)
-
var A1PolicyManagementService = require('a1_policy_management_service');
+                              
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.A1PolicyManagementApi()
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
 var policyId = policyId_example; // {String} 
 
 var callback = function(error, data, response) {
@@ -1870,6 +1955,7 @@ namespace Example
             var policyId = policyId_example;  // String |  (default to null)
 
             try {
+                // Get an A1 Policy instance (getPolicy)
                 policy_info result = apiInstance.getPolicy(policyId);
                 Debug.WriteLine(result);
             } catch (Exception e) {
@@ -1928,6 +2014,7 @@ api_instance = openapi_client.A1PolicyManagementApi()
 policyId = policyId_example # String |  (default to null)
 
 try:
+    # Get an A1 Policy instance (getPolicy)
     api_response = api_instance.get_policy(policyId)
     pprint(api_response)
 except ApiException as e:
@@ -2146,12 +2233,13 @@ pub fn main() {
                       

getPolicyIds

-

Query policy identities

+

Query A1 Policy Instances (getPolicyIds)

-

Returns a list of A1 policies matching given search criteria. <br>If several query parameters are defined, the policies matching all conditions are returned.

+

Retrieve a list of A1 Policy Instance IDs for policies that match given search criteria. If multiple query parameters are given, the policies matching all conditions are returned. +


/a1-policy/v2/policies
@@ -2195,10 +2283,11 @@ public class A1PolicyManagementApiExample { // Create an instance of the API class A1PolicyManagementApi apiInstance = new A1PolicyManagementApi(); - String policytypeId = policytypeId_example; // String | Select policies of a given policy type identity. + String policytypeId = policytypeId_example; // String | Select policies of a given A1 Policy Type ID. String ricId = ricId_example; // String | Select policies of a given Near-RT RIC identity. - String serviceId = serviceId_example; // String | Select policies owned by a given service. - String typeName = typeName_example; // String | Select policies of types with the given type name (type identity has the format ) + String serviceId = serviceId_example; // String | Select policies owned by a given service. (Both registered and unregistered services) + String typeName = typeName_example; // String | Select policies of types with the given A1 Policy Type name (type names have the format 'typename_version') + try { policy_id_list result = apiInstance.getPolicyIds(policytypeId, ricId, serviceId, typeName); @@ -2217,10 +2306,11 @@ public class A1PolicyManagementApiExample { final api_instance = DefaultApi(); -final String policytypeId = new String(); // String | Select policies of a given policy type identity. +final String policytypeId = new String(); // String | Select policies of a given A1 Policy Type ID. final String ricId = new String(); // String | Select policies of a given Near-RT RIC identity. -final String serviceId = new String(); // String | Select policies owned by a given service. -final String typeName = new String(); // String | Select policies of types with the given type name (type identity has the format ) +final String serviceId = new String(); // String | Select policies owned by a given service. (Both registered and unregistered services) +final String typeName = new String(); // String | Select policies of types with the given A1 Policy Type name (type names have the format 'typename_version') + try { final result = await api_instance.getPolicyIds(policytypeId, ricId, serviceId, typeName); @@ -2238,10 +2328,11 @@ try { public class A1PolicyManagementApiExample { public static void main(String[] args) { A1PolicyManagementApi apiInstance = new A1PolicyManagementApi(); - String policytypeId = policytypeId_example; // String | Select policies of a given policy type identity. + String policytypeId = policytypeId_example; // String | Select policies of a given A1 Policy Type ID. String ricId = ricId_example; // String | Select policies of a given Near-RT RIC identity. - String serviceId = serviceId_example; // String | Select policies owned by a given service. - String typeName = typeName_example; // String | Select policies of types with the given type name (type identity has the format ) + String serviceId = serviceId_example; // String | Select policies owned by a given service. (Both registered and unregistered services) + String typeName = typeName_example; // String | Select policies of types with the given A1 Policy Type name (type names have the format 'typename_version') + try { policy_id_list result = apiInstance.getPolicyIds(policytypeId, ricId, serviceId, typeName); @@ -2262,12 +2353,13 @@ public class A1PolicyManagementApiExample { // Create an instance of the API class A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init]; -String *policytypeId = policytypeId_example; // Select policies of a given policy type identity. (optional) (default to null) +String *policytypeId = policytypeId_example; // Select policies of a given A1 Policy Type ID. (optional) (default to null) String *ricId = ricId_example; // Select policies of a given Near-RT RIC identity. (optional) (default to null) -String *serviceId = serviceId_example; // Select policies owned by a given service. (optional) (default to null) -String *typeName = typeName_example; // Select policies of types with the given type name (type identity has the format ) (optional) (default to null) +String *serviceId = serviceId_example; // Select policies owned by a given service. (Both registered and unregistered services) (optional) (default to null) +String *typeName = typeName_example; // Select policies of types with the given A1 Policy Type name (type names have the format 'typename_version') + (optional) (default to null) -// Query policy identities +// Query A1 Policy Instances (getPolicyIds) [apiInstance getPolicyIdsWith:policytypeId ricId:ricId serviceId:serviceId @@ -2284,15 +2376,16 @@ String *typeName = typeName_example; // Select policies of types with the given
-
var A1PolicyManagementService = require('a1_policy_management_service');
+                              
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.A1PolicyManagementApi()
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
 var opts = {
-  'policytypeId': policytypeId_example, // {String} Select policies of a given policy type identity.
+  'policytypeId': policytypeId_example, // {String} Select policies of a given A1 Policy Type ID.
   'ricId': ricId_example, // {String} Select policies of a given Near-RT RIC identity.
-  'serviceId': serviceId_example, // {String} Select policies owned by a given service.
-  'typeName': typeName_example // {String} Select policies of types with the given type name (type identity has the format )
+  'serviceId': serviceId_example, // {String} Select policies owned by a given service. (Both registered and unregistered services)
+  'typeName': typeName_example // {String} Select policies of types with the given A1 Policy Type name  (type names have the format 'typename_version')
+
 };
 
 var callback = function(error, data, response) {
@@ -2325,13 +2418,14 @@ namespace Example
 
             // Create an instance of the API class
             var apiInstance = new A1PolicyManagementApi();
-            var policytypeId = policytypeId_example;  // String | Select policies of a given policy type identity. (optional)  (default to null)
+            var policytypeId = policytypeId_example;  // String | Select policies of a given A1 Policy Type ID. (optional)  (default to null)
             var ricId = ricId_example;  // String | Select policies of a given Near-RT RIC identity. (optional)  (default to null)
-            var serviceId = serviceId_example;  // String | Select policies owned by a given service. (optional)  (default to null)
-            var typeName = typeName_example;  // String | Select policies of types with the given type name (type identity has the format ) (optional)  (default to null)
+            var serviceId = serviceId_example;  // String | Select policies owned by a given service. (Both registered and unregistered services) (optional)  (default to null)
+            var typeName = typeName_example;  // String | Select policies of types with the given A1 Policy Type name  (type names have the format 'typename_version')
+ (optional)  (default to null)
 
             try {
-                // Query policy identities
+                // Query A1 Policy Instances (getPolicyIds)
                 policy_id_list result = apiInstance.getPolicyIds(policytypeId, ricId, serviceId, typeName);
                 Debug.WriteLine(result);
             } catch (Exception e) {
@@ -2349,10 +2443,11 @@ require_once(__DIR__ . '/vendor/autoload.php');
 
 // Create an instance of the API class
 $api_instance = new OpenAPITools\Client\Api\A1PolicyManagementApi();
-$policytypeId = policytypeId_example; // String | Select policies of a given policy type identity.
+$policytypeId = policytypeId_example; // String | Select policies of a given A1 Policy Type ID.
 $ricId = ricId_example; // String | Select policies of a given Near-RT RIC identity.
-$serviceId = serviceId_example; // String | Select policies owned by a given service.
-$typeName = typeName_example; // String | Select policies of types with the given type name (type identity has the format )
+$serviceId = serviceId_example; // String | Select policies owned by a given service. (Both registered and unregistered services)
+$typeName = typeName_example; // String | Select policies of types with the given A1 Policy Type name  (type names have the format 'typename_version')
+
 
 try {
     $result = $api_instance->getPolicyIds($policytypeId, $ricId, $serviceId, $typeName);
@@ -2370,10 +2465,11 @@ use WWW::OPenAPIClient::A1PolicyManagementApi;
 
 # Create an instance of the API class
 my $api_instance = WWW::OPenAPIClient::A1PolicyManagementApi->new();
-my $policytypeId = policytypeId_example; # String | Select policies of a given policy type identity.
+my $policytypeId = policytypeId_example; # String | Select policies of a given A1 Policy Type ID.
 my $ricId = ricId_example; # String | Select policies of a given Near-RT RIC identity.
-my $serviceId = serviceId_example; # String | Select policies owned by a given service.
-my $typeName = typeName_example; # String | Select policies of types with the given type name (type identity has the format )
+my $serviceId = serviceId_example; # String | Select policies owned by a given service. (Both registered and unregistered services)
+my $typeName = typeName_example; # String | Select policies of types with the given A1 Policy Type name  (type names have the format 'typename_version')
+
 
 eval {
     my $result = $api_instance->getPolicyIds(policytypeId => $policytypeId, ricId => $ricId, serviceId => $serviceId, typeName => $typeName);
@@ -2393,13 +2489,14 @@ from pprint import pprint
 
 # Create an instance of the API class
 api_instance = openapi_client.A1PolicyManagementApi()
-policytypeId = policytypeId_example # String | Select policies of a given policy type identity. (optional) (default to null)
+policytypeId = policytypeId_example # String | Select policies of a given A1 Policy Type ID. (optional) (default to null)
 ricId = ricId_example # String | Select policies of a given Near-RT RIC identity. (optional) (default to null)
-serviceId = serviceId_example # String | Select policies owned by a given service. (optional) (default to null)
-typeName = typeName_example # String | Select policies of types with the given type name (type identity has the format ) (optional) (default to null)
+serviceId = serviceId_example # String | Select policies owned by a given service. (Both registered and unregistered services) (optional) (default to null)
+typeName = typeName_example # String | Select policies of types with the given A1 Policy Type name  (type names have the format 'typename_version')
+ (optional) (default to null)
 
 try:
-    # Query policy identities
+    # Query A1 Policy Instances (getPolicyIds)
     api_response = api_instance.get_policy_ids(policytypeId=policytypeId, ricId=ricId, serviceId=serviceId, typeName=typeName)
     pprint(api_response)
 except ApiException as e:
@@ -2453,7 +2550,7 @@ pub fn main() {
                 
 
                     
-Select policies of a given policy type identity. +Select policies of a given A1 Policy Type ID.
@@ -2493,7 +2590,7 @@ Select policies of a given Near-RT RIC identity.
-Select policies owned by a given service. +Select policies owned by a given service. (Both registered and unregistered services)
@@ -2513,7 +2610,8 @@ Select policies owned by a given service.
-Select policies of types with the given type name (type identity has the format <typename_version>) +Select policies of types with the given A1 Policy Type name (type names have the format 'typename_version') +
@@ -2681,12 +2779,13 @@ Select policies of types with the given type name (type identity has the format

getPolicyInstances

-

Query for A1 policy instances

+

Query for A1 Policy instances (getPolicyInstances)

-

Returns a list of A1 policies matching given search criteria. <br>If several query parameters are defined, the policies matching all conditions are returned.

+

Returns a collection of A1 Policy Instance information for policies that match given search criteria. If several query parameters are defined, the policies matching all conditions are returned. +


/a1-policy/v2/policy-instances
@@ -2730,10 +2829,10 @@ public class A1PolicyManagementApiExample { // Create an instance of the API class A1PolicyManagementApi apiInstance = new A1PolicyManagementApi(); - String policytypeId = policytypeId_example; // String | Select policies with a given type identity. + String policytypeId = policytypeId_example; // String | Select policies with a given A1 Policy Type ID. String ricId = ricId_example; // String | Select policies for a given Near-RT RIC identity. - String serviceId = serviceId_example; // String | Select policies owned by a given service. - String typeName = typeName_example; // String | Select policies of a given type name (type identity has the format ) + String serviceId = serviceId_example; // String | Select policies owned by a given service (registered or unregistered). + String typeName = typeName_example; // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version'). try { policy_info_list result = apiInstance.getPolicyInstances(policytypeId, ricId, serviceId, typeName); @@ -2752,10 +2851,10 @@ public class A1PolicyManagementApiExample { final api_instance = DefaultApi(); -final String policytypeId = new String(); // String | Select policies with a given type identity. +final String policytypeId = new String(); // String | Select policies with a given A1 Policy Type ID. final String ricId = new String(); // String | Select policies for a given Near-RT RIC identity. -final String serviceId = new String(); // String | Select policies owned by a given service. -final String typeName = new String(); // String | Select policies of a given type name (type identity has the format ) +final String serviceId = new String(); // String | Select policies owned by a given service (registered or unregistered). +final String typeName = new String(); // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version'). try { final result = await api_instance.getPolicyInstances(policytypeId, ricId, serviceId, typeName); @@ -2773,10 +2872,10 @@ try { public class A1PolicyManagementApiExample { public static void main(String[] args) { A1PolicyManagementApi apiInstance = new A1PolicyManagementApi(); - String policytypeId = policytypeId_example; // String | Select policies with a given type identity. + String policytypeId = policytypeId_example; // String | Select policies with a given A1 Policy Type ID. String ricId = ricId_example; // String | Select policies for a given Near-RT RIC identity. - String serviceId = serviceId_example; // String | Select policies owned by a given service. - String typeName = typeName_example; // String | Select policies of a given type name (type identity has the format ) + String serviceId = serviceId_example; // String | Select policies owned by a given service (registered or unregistered). + String typeName = typeName_example; // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version'). try { policy_info_list result = apiInstance.getPolicyInstances(policytypeId, ricId, serviceId, typeName); @@ -2797,12 +2896,12 @@ public class A1PolicyManagementApiExample { // Create an instance of the API class A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init]; -String *policytypeId = policytypeId_example; // Select policies with a given type identity. (optional) (default to null) +String *policytypeId = policytypeId_example; // Select policies with a given A1 Policy Type ID. (optional) (default to null) String *ricId = ricId_example; // Select policies for a given Near-RT RIC identity. (optional) (default to null) -String *serviceId = serviceId_example; // Select policies owned by a given service. (optional) (default to null) -String *typeName = typeName_example; // Select policies of a given type name (type identity has the format ) (optional) (default to null) +String *serviceId = serviceId_example; // Select policies owned by a given service (registered or unregistered). (optional) (default to null) +String *typeName = typeName_example; // Select policies of a given A1 Policy Type name (type identity has the format 'typename_version'). (optional) (default to null) -// Query for A1 policy instances +// Query for A1 Policy instances (getPolicyInstances) [apiInstance getPolicyInstancesWith:policytypeId ricId:ricId serviceId:serviceId @@ -2819,15 +2918,15 @@ String *typeName = typeName_example; // Select policies of a given type name (ty
-
var A1PolicyManagementService = require('a1_policy_management_service');
+                              
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.A1PolicyManagementApi()
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
 var opts = {
-  'policytypeId': policytypeId_example, // {String} Select policies with a given type identity.
+  'policytypeId': policytypeId_example, // {String} Select policies with a given A1 Policy Type ID.
   'ricId': ricId_example, // {String} Select policies for a given Near-RT RIC identity.
-  'serviceId': serviceId_example, // {String} Select policies owned by a given service.
-  'typeName': typeName_example // {String} Select policies of a given type name (type identity has the format )
+  'serviceId': serviceId_example, // {String} Select policies owned by a given service (registered or unregistered).
+  'typeName': typeName_example // {String} Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
 };
 
 var callback = function(error, data, response) {
@@ -2860,13 +2959,13 @@ namespace Example
 
             // Create an instance of the API class
             var apiInstance = new A1PolicyManagementApi();
-            var policytypeId = policytypeId_example;  // String | Select policies with a given type identity. (optional)  (default to null)
+            var policytypeId = policytypeId_example;  // String | Select policies with a given A1 Policy Type ID. (optional)  (default to null)
             var ricId = ricId_example;  // String | Select policies for a given Near-RT RIC identity. (optional)  (default to null)
-            var serviceId = serviceId_example;  // String | Select policies owned by a given service. (optional)  (default to null)
-            var typeName = typeName_example;  // String | Select policies of a given type name (type identity has the format ) (optional)  (default to null)
+            var serviceId = serviceId_example;  // String | Select policies owned by a given service (registered or unregistered). (optional)  (default to null)
+            var typeName = typeName_example;  // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version'). (optional)  (default to null)
 
             try {
-                // Query for A1 policy instances
+                // Query for A1 Policy instances (getPolicyInstances)
                 policy_info_list result = apiInstance.getPolicyInstances(policytypeId, ricId, serviceId, typeName);
                 Debug.WriteLine(result);
             } catch (Exception e) {
@@ -2884,10 +2983,10 @@ require_once(__DIR__ . '/vendor/autoload.php');
 
 // Create an instance of the API class
 $api_instance = new OpenAPITools\Client\Api\A1PolicyManagementApi();
-$policytypeId = policytypeId_example; // String | Select policies with a given type identity.
+$policytypeId = policytypeId_example; // String | Select policies with a given A1 Policy Type ID.
 $ricId = ricId_example; // String | Select policies for a given Near-RT RIC identity.
-$serviceId = serviceId_example; // String | Select policies owned by a given service.
-$typeName = typeName_example; // String | Select policies of a given type name (type identity has the format )
+$serviceId = serviceId_example; // String | Select policies owned by a given service (registered or unregistered).
+$typeName = typeName_example; // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
 
 try {
     $result = $api_instance->getPolicyInstances($policytypeId, $ricId, $serviceId, $typeName);
@@ -2905,10 +3004,10 @@ use WWW::OPenAPIClient::A1PolicyManagementApi;
 
 # Create an instance of the API class
 my $api_instance = WWW::OPenAPIClient::A1PolicyManagementApi->new();
-my $policytypeId = policytypeId_example; # String | Select policies with a given type identity.
+my $policytypeId = policytypeId_example; # String | Select policies with a given A1 Policy Type ID.
 my $ricId = ricId_example; # String | Select policies for a given Near-RT RIC identity.
-my $serviceId = serviceId_example; # String | Select policies owned by a given service.
-my $typeName = typeName_example; # String | Select policies of a given type name (type identity has the format )
+my $serviceId = serviceId_example; # String | Select policies owned by a given service (registered or unregistered).
+my $typeName = typeName_example; # String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
 
 eval {
     my $result = $api_instance->getPolicyInstances(policytypeId => $policytypeId, ricId => $ricId, serviceId => $serviceId, typeName => $typeName);
@@ -2928,13 +3027,13 @@ from pprint import pprint
 
 # Create an instance of the API class
 api_instance = openapi_client.A1PolicyManagementApi()
-policytypeId = policytypeId_example # String | Select policies with a given type identity. (optional) (default to null)
+policytypeId = policytypeId_example # String | Select policies with a given A1 Policy Type ID. (optional) (default to null)
 ricId = ricId_example # String | Select policies for a given Near-RT RIC identity. (optional) (default to null)
-serviceId = serviceId_example # String | Select policies owned by a given service. (optional) (default to null)
-typeName = typeName_example # String | Select policies of a given type name (type identity has the format ) (optional) (default to null)
+serviceId = serviceId_example # String | Select policies owned by a given service (registered or unregistered). (optional) (default to null)
+typeName = typeName_example # String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version'). (optional) (default to null)
 
 try:
-    # Query for A1 policy instances
+    # Query for A1 Policy instances (getPolicyInstances)
     api_response = api_instance.get_policy_instances(policytypeId=policytypeId, ricId=ricId, serviceId=serviceId, typeName=typeName)
     pprint(api_response)
 except ApiException as e:
@@ -2988,7 +3087,7 @@ pub fn main() {
                 
 
                     
-Select policies with a given type identity. +Select policies with a given A1 Policy Type ID.
@@ -3028,7 +3127,7 @@ Select policies for a given Near-RT RIC identity.
-Select policies owned by a given service. +Select policies owned by a given service (registered or unregistered).
@@ -3048,7 +3147,7 @@ Select policies owned by a given service.
-Select policies of a given type name (type identity has the format <typename_version>) +Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
@@ -3062,7 +3161,7 @@ Select policies of a given type name (type identity has the format <typename_

-
- -
-
-
-
-

deletePolicy

-

Delete a policy

-
-
-
-

-

Deleting the policy using policyId.

+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+
+
+
+
+
+
+

deletePolicy

+

Delete an A1 Policy instance (deletePolicy)

+
+
+
+

+

Delete an existing A1 Policy instance using its policy ID.

+

+
+
/policies/{policyId}
+

+

Usage and SDK Samples

+

+ + +
+
+
curl -X DELETE \
+ -H "Accept: application/problem+json" \
+ "https://example.com/a1-policy-management/v1/policies/{policyId}"
+
+
+
+
import org.openapitools.client.*;
+import org.openapitools.client.auth.*;
+import org.openapitools.client.model.*;
+import org.openapitools.client.api.A1PolicyManagementApi;
+
+import java.io.File;
+import java.util.*;
+
+public class A1PolicyManagementApiExample {
+    public static void main(String[] args) {
+
+        // Create an instance of the API class
+        A1PolicyManagementApi apiInstance = new A1PolicyManagementApi();
+        String policyId = policyId_example; // String | 
+        String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
+
+        try {
+            apiInstance.deletePolicy(policyId, accept);
+        } catch (ApiException e) {
+            System.err.println("Exception when calling A1PolicyManagementApi#deletePolicy");
+            e.printStackTrace();
+        }
+    }
+}
+
+
+ +
+
import 'package:openapi/api.dart';
+
+final api_instance = DefaultApi();
+
+final String policyId = new String(); // String | 
+final String accept = new String(); // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
+
+try {
+    final result = await api_instance.deletePolicy(policyId, accept);
+    print(result);
+} catch (e) {
+    print('Exception when calling DefaultApi->deletePolicy: $e\n');
+}
+
+
+
+ +
+
import org.openapitools.client.api.A1PolicyManagementApi;
+
+public class A1PolicyManagementApiExample {
+    public static void main(String[] args) {
+        A1PolicyManagementApi apiInstance = new A1PolicyManagementApi();
+        String policyId = policyId_example; // String | 
+        String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
+
+        try {
+            apiInstance.deletePolicy(policyId, accept);
+        } catch (ApiException e) {
+            System.err.println("Exception when calling A1PolicyManagementApi#deletePolicy");
+            e.printStackTrace();
+        }
+    }
+}
+
+ +
+

+
+// Create an instance of the API class
+A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init];
+String *policyId = policyId_example; //  (default to null)
+String *accept = application/json; // Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
+
+// Delete an A1 Policy instance (deletePolicy)
+[apiInstance deletePolicyWith:policyId
+    accept:accept
+              completionHandler: ^(NSError* error) {
+    if (error) {
+        NSLog(@"Error: %@", error);
+    }
+}];
+
+
+ +
+
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
+
+// Create an instance of the API class
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
+var policyId = policyId_example; // {String} 
+var opts = {
+  'accept': application/json // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
+};
+
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully.');
+  }
+};
+api.deletePolicy(policyId, opts, callback);
+
+
+ + +
+
using System;
+using System.Diagnostics;
+using Org.OpenAPITools.Api;
+using Org.OpenAPITools.Client;
+using Org.OpenAPITools.Model;
+
+namespace Example
+{
+    public class deletePolicyExample
+    {
+        public void main()
+        {
+
+            // Create an instance of the API class
+            var apiInstance = new A1PolicyManagementApi();
+            var policyId = policyId_example;  // String |  (default to null)
+            var accept = application/json;  // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional)  (default to null)
+
+            try {
+                // Delete an A1 Policy instance (deletePolicy)
+                apiInstance.deletePolicy(policyId, accept);
+            } catch (Exception e) {
+                Debug.Print("Exception when calling A1PolicyManagementApi.deletePolicy: " + e.Message );
+            }
+        }
+    }
+}
+
+
+ +
+
<?php
+require_once(__DIR__ . '/vendor/autoload.php');
+
+// Create an instance of the API class
+$api_instance = new OpenAPITools\Client\Api\A1PolicyManagementApi();
+$policyId = policyId_example; // String | 
+$accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
+
+try {
+    $api_instance->deletePolicy($policyId, $accept);
+} catch (Exception $e) {
+    echo 'Exception when calling A1PolicyManagementApi->deletePolicy: ', $e->getMessage(), PHP_EOL;
+}
+?>
+
+ +
+
use Data::Dumper;
+use WWW::OPenAPIClient::Configuration;
+use WWW::OPenAPIClient::A1PolicyManagementApi;
+
+# Create an instance of the API class
+my $api_instance = WWW::OPenAPIClient::A1PolicyManagementApi->new();
+my $policyId = policyId_example; # String | 
+my $accept = application/json; # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
+
+eval {
+    $api_instance->deletePolicy(policyId => $policyId, accept => $accept);
+};
+if ($@) {
+    warn "Exception when calling A1PolicyManagementApi->deletePolicy: $@\n";
+}
+
+ +
+
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.A1PolicyManagementApi()
+policyId = policyId_example # String |  (default to null)
+accept = application/json # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
+
+try:
+    # Delete an A1 Policy instance (deletePolicy)
+    api_instance.delete_policy(policyId, accept=accept)
+except ApiException as e:
+    print("Exception when calling A1PolicyManagementApi->deletePolicy: %s\n" % e)
+
+ +
+
extern crate A1PolicyManagementApi;
+
+pub fn main() {
+    let policyId = policyId_example; // String
+    let accept = application/json; // String
+
+    let mut context = A1PolicyManagementApi::Context::default();
+    let result = client.deletePolicy(policyId, accept, &context).wait();
+
+    println!("{:?}", result);
+}
+
+
+
+ +

Scopes

+ + +
+ +

Parameters

+ +
Path parameters
+ + + + + + + + + +
NameDescription
policyId* + + +
+
+
+ + String + + +
+
+ Required +
+
+
+
+ +
Header parameters
+ + + + + + + + + +
NameDescription
Accept + + +
+
+
+ + String + + +
+Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. +
+
+
+
+
+ + + + +

Responses

+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+
+
+
+
+
+
+

getPolicy

+

Get an A1 Policy's policy data (getPolicy)

+
+
+
+

+

Get an A1 Policy instance's policy data using its policy ID


-
/policies/{policyId}
+
/policies/{policyId}

Usage and SDK Samples

-
-
curl -X DELETE \
- -H "Accept: application/problem+json" \
+                          
+
curl -X GET \
+ -H "Accept: application/json,application/problem+json" \
  "https://example.com/a1-policy-management/v1/policies/{policyId}"
 
-
+
import org.openapitools.client.*;
 import org.openapitools.client.auth.*;
 import org.openapitools.client.model.*;
@@ -2463,9 +4081,10 @@ public class A1PolicyManagementApiExample {
         String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
         try {
-            apiInstance.deletePolicy(policyId, accept);
+            Object result = apiInstance.getPolicy(policyId, accept);
+            System.out.println(result);
         } catch (ApiException e) {
-            System.err.println("Exception when calling A1PolicyManagementApi#deletePolicy");
+            System.err.println("Exception when calling A1PolicyManagementApi#getPolicy");
             e.printStackTrace();
         }
     }
@@ -2473,7 +4092,7 @@ public class A1PolicyManagementApiExample {
 
-
+
import 'package:openapi/api.dart';
 
 final api_instance = DefaultApi();
@@ -2482,16 +4101,16 @@ final String policyId = new String(); // String |
 final String accept = new String(); // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 try {
-    final result = await api_instance.deletePolicy(policyId, accept);
+    final result = await api_instance.getPolicy(policyId, accept);
     print(result);
 } catch (e) {
-    print('Exception when calling DefaultApi->deletePolicy: $e\n');
+    print('Exception when calling DefaultApi->getPolicy: $e\n');
 }
 
 
-
+
import org.openapitools.client.api.A1PolicyManagementApi;
 
 public class A1PolicyManagementApiExample {
@@ -2501,19 +4120,20 @@ public class A1PolicyManagementApiExample {
         String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
         try {
-            apiInstance.deletePolicy(policyId, accept);
+            Object result = apiInstance.getPolicy(policyId, accept);
+            System.out.println(result);
         } catch (ApiException e) {
-            System.err.println("Exception when calling A1PolicyManagementApi#deletePolicy");
+            System.err.println("Exception when calling A1PolicyManagementApi#getPolicy");
             e.printStackTrace();
         }
     }
 }
-
+

 
 // Create an instance of the API class
@@ -2521,10 +4141,13 @@ A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init];
 String *policyId = policyId_example; //  (default to null)
 String *accept = application/json; // Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
 
-// Delete a policy
-[apiInstance deletePolicyWith:policyId
+// Get an A1 Policy's policy data (getPolicy)
+[apiInstance getPolicyWith:policyId
     accept:accept
-              completionHandler: ^(NSError* error) {
+              completionHandler: ^(Object output, NSError* error) {
+    if (output) {
+        NSLog(@"%@", output);
+    }
     if (error) {
         NSLog(@"Error: %@", error);
     }
@@ -2532,11 +4155,11 @@ String *accept = application/json; // Specifies the content type that the client
 
-
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+                            
+
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementApi.A1PolicyManagementApi()
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
 var policyId = policyId_example; // {String} 
 var opts = {
   'accept': application/json // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
@@ -2546,17 +4169,17 @@ var callback = function(error, data, response) {
   if (error) {
     console.error(error);
   } else {
-    console.log('API called successfully.');
+    console.log('API called successfully. Returned data: ' + data);
   }
 };
-api.deletePolicy(policyId, opts, callback);
+api.getPolicy(policyId, opts, callback);
 
- -
+
using System;
 using System.Diagnostics;
 using Org.OpenAPITools.Api;
@@ -2565,7 +4188,7 @@ using Org.OpenAPITools.Model;
 
 namespace Example
 {
-    public class deletePolicyExample
+    public class getPolicyExample
     {
         public void main()
         {
@@ -2576,10 +4199,11 @@ namespace Example
             var accept = application/json;  // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional)  (default to null)
 
             try {
-                // Delete a policy
-                apiInstance.deletePolicy(policyId, accept);
+                // Get an A1 Policy's policy data (getPolicy)
+                Object result = apiInstance.getPolicy(policyId, accept);
+                Debug.WriteLine(result);
             } catch (Exception e) {
-                Debug.Print("Exception when calling A1PolicyManagementApi.deletePolicy: " + e.Message );
+                Debug.Print("Exception when calling A1PolicyManagementApi.getPolicy: " + e.Message );
             }
         }
     }
@@ -2587,7 +4211,7 @@ namespace Example
 
-
+
<?php
 require_once(__DIR__ . '/vendor/autoload.php');
 
@@ -2597,14 +4221,15 @@ $policyId = policyId_example; // String |
 $accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 try {
-    $api_instance->deletePolicy($policyId, $accept);
+    $result = $api_instance->getPolicy($policyId, $accept);
+    print_r($result);
 } catch (Exception $e) {
-    echo 'Exception when calling A1PolicyManagementApi->deletePolicy: ', $e->getMessage(), PHP_EOL;
+    echo 'Exception when calling A1PolicyManagementApi->getPolicy: ', $e->getMessage(), PHP_EOL;
 }
 ?>
-
+
use Data::Dumper;
 use WWW::OPenAPIClient::Configuration;
 use WWW::OPenAPIClient::A1PolicyManagementApi;
@@ -2615,14 +4240,15 @@ my $policyId = policyId_example; # String |
 my $accept = application/json; # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 eval {
-    $api_instance->deletePolicy(policyId => $policyId, accept => $accept);
+    my $result = $api_instance->getPolicy(policyId => $policyId, accept => $accept);
+    print Dumper($result);
 };
 if ($@) {
-    warn "Exception when calling A1PolicyManagementApi->deletePolicy: $@\n";
+    warn "Exception when calling A1PolicyManagementApi->getPolicy: $@\n";
 }
-
+
from __future__ import print_statement
 import time
 import openapi_client
@@ -2635,13 +4261,14 @@ policyId = policyId_example # String |  (default to null)
 accept = application/json # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
 
 try:
-    # Delete a policy
-    api_instance.delete_policy(policyId, accept=accept)
+    # Get an A1 Policy's policy data (getPolicy)
+    api_response = api_instance.get_policy(policyId, accept=accept)
+    pprint(api_response)
 except ApiException as e:
-    print("Exception when calling A1PolicyManagementApi->deletePolicy: %s\n" % e)
+ print("Exception when calling A1PolicyManagementApi->getPolicy: %s\n" % e)
-
+
extern crate A1PolicyManagementApi;
 
 pub fn main() {
@@ -2649,7 +4276,7 @@ pub fn main() {
     let accept = application/json; // String
 
     let mut context = A1PolicyManagementApi::Context::default();
-    let result = client.deletePolicy(policyId, accept, &context).wait();
+    let result = client.getPolicy(policyId, accept, &context).wait();
 
     println!("{:?}", result);
 }
@@ -2674,7 +4301,7 @@ pub fn main() {
 
 
 
-    
+
@@ -2702,7 +4329,7 @@ pub fn main() { -
+
@@ -2724,33 +4351,50 @@ Specifies the content type that the client expects to receive in response to the

Responses

-

-

+

+

-

-
-
+
+
-

getAllPolicies

-

Query policy identities

+

getPolicyIds

+

Query for A1 Policy instances (getPolicyIds)

-

Returns a list of A1 policies matching given search criteria. <br>If several query parameters are defined, the policies matching all conditions are returned.

+

Returns a collection of A1 Policy Instance IDs for policies that match given search criteria. If several query parameters are defined, the policies matching all conditions are returned. +


/policies
@@ -3497,29 +5137,29 @@ Specifies the content type that the client expects to receive in response to the

Usage and SDK Samples

-
+
curl -X GET \
  -H "Accept: application/json,application/problem+json" \
  "https://example.com/a1-policy-management/v1/policies?policyTypeId=policyTypeId_example&nearRtRicId=nearRtRicId_example&serviceId=serviceId_example&typeName=typeName_example"
 
-
+
import org.openapitools.client.*;
 import org.openapitools.client.auth.*;
 import org.openapitools.client.model.*;
@@ -3533,17 +5173,17 @@ public class A1PolicyManagementApiExample {
 
         // Create an instance of the API class
         A1PolicyManagementApi apiInstance = new A1PolicyManagementApi();
-        String policyTypeId = policyTypeId_example; // String | Select policies of a given policy type identity.
-        String nearRtRicId = nearRtRicId_example; // String | Select policies of a given Near-RT RIC identity.
-        String serviceId = serviceId_example; // String | Select policies owned by a given service.
-        String typeName = typeName_example; // String | Select policies of types with the given type name (type identity has the format )
+        String policyTypeId = policyTypeId_example; // String | Select policies with a given A1 Policy Type ID.
+        String nearRtRicId = nearRtRicId_example; // String | Select policies for a given Near-RT RIC identity.
+        String serviceId = serviceId_example; // String | Select policies owned by a given service (registered or unregistered).
+        String typeName = typeName_example; // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
         String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
         try {
-            array[PolicyInformation] result = apiInstance.getAllPolicies(policyTypeId, nearRtRicId, serviceId, typeName, accept);
+            array[PolicyInformation] result = apiInstance.getPolicyIds(policyTypeId, nearRtRicId, serviceId, typeName, accept);
             System.out.println(result);
         } catch (ApiException e) {
-            System.err.println("Exception when calling A1PolicyManagementApi#getAllPolicies");
+            System.err.println("Exception when calling A1PolicyManagementApi#getPolicyIds");
             e.printStackTrace();
         }
     }
@@ -3551,66 +5191,66 @@ public class A1PolicyManagementApiExample {
 
-
+
import 'package:openapi/api.dart';
 
 final api_instance = DefaultApi();
 
-final String policyTypeId = new String(); // String | Select policies of a given policy type identity.
-final String nearRtRicId = new String(); // String | Select policies of a given Near-RT RIC identity.
-final String serviceId = new String(); // String | Select policies owned by a given service.
-final String typeName = new String(); // String | Select policies of types with the given type name (type identity has the format )
+final String policyTypeId = new String(); // String | Select policies with a given A1 Policy Type ID.
+final String nearRtRicId = new String(); // String | Select policies for a given Near-RT RIC identity.
+final String serviceId = new String(); // String | Select policies owned by a given service (registered or unregistered).
+final String typeName = new String(); // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
 final String accept = new String(); // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 try {
-    final result = await api_instance.getAllPolicies(policyTypeId, nearRtRicId, serviceId, typeName, accept);
+    final result = await api_instance.getPolicyIds(policyTypeId, nearRtRicId, serviceId, typeName, accept);
     print(result);
 } catch (e) {
-    print('Exception when calling DefaultApi->getAllPolicies: $e\n');
+    print('Exception when calling DefaultApi->getPolicyIds: $e\n');
 }
 
 
-
+
import org.openapitools.client.api.A1PolicyManagementApi;
 
 public class A1PolicyManagementApiExample {
     public static void main(String[] args) {
         A1PolicyManagementApi apiInstance = new A1PolicyManagementApi();
-        String policyTypeId = policyTypeId_example; // String | Select policies of a given policy type identity.
-        String nearRtRicId = nearRtRicId_example; // String | Select policies of a given Near-RT RIC identity.
-        String serviceId = serviceId_example; // String | Select policies owned by a given service.
-        String typeName = typeName_example; // String | Select policies of types with the given type name (type identity has the format )
+        String policyTypeId = policyTypeId_example; // String | Select policies with a given A1 Policy Type ID.
+        String nearRtRicId = nearRtRicId_example; // String | Select policies for a given Near-RT RIC identity.
+        String serviceId = serviceId_example; // String | Select policies owned by a given service (registered or unregistered).
+        String typeName = typeName_example; // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
         String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
         try {
-            array[PolicyInformation] result = apiInstance.getAllPolicies(policyTypeId, nearRtRicId, serviceId, typeName, accept);
+            array[PolicyInformation] result = apiInstance.getPolicyIds(policyTypeId, nearRtRicId, serviceId, typeName, accept);
             System.out.println(result);
         } catch (ApiException e) {
-            System.err.println("Exception when calling A1PolicyManagementApi#getAllPolicies");
+            System.err.println("Exception when calling A1PolicyManagementApi#getPolicyIds");
             e.printStackTrace();
         }
     }
 }
-
+

 
 // Create an instance of the API class
 A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init];
-String *policyTypeId = policyTypeId_example; // Select policies of a given policy type identity. (optional) (default to null)
-String *nearRtRicId = nearRtRicId_example; // Select policies of a given Near-RT RIC identity. (optional) (default to null)
-String *serviceId = serviceId_example; // Select policies owned by a given service. (optional) (default to null)
-String *typeName = typeName_example; // Select policies of types with the given type name (type identity has the format ) (optional) (default to null)
+String *policyTypeId = policyTypeId_example; // Select policies with a given A1 Policy Type ID. (optional) (default to null)
+String *nearRtRicId = nearRtRicId_example; // Select policies for a given Near-RT RIC identity. (optional) (default to null)
+String *serviceId = serviceId_example; // Select policies owned by a given service (registered or unregistered). (optional) (default to null)
+String *typeName = typeName_example; // Select policies of a given A1 Policy Type name (type identity has the format 'typename_version'). (optional) (default to null)
 String *accept = application/json; // Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
 
-// Query policy identities
-[apiInstance getAllPoliciesWith:policyTypeId
+// Query for A1 Policy instances (getPolicyIds)
+[apiInstance getPolicyIdsWith:policyTypeId
     nearRtRicId:nearRtRicId
     serviceId:serviceId
     typeName:typeName
@@ -3626,16 +5266,16 @@ String *accept = application/json; // Specifies the content type that the client
 
-
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+                            
+
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementApi.A1PolicyManagementApi()
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
 var opts = {
-  'policyTypeId': policyTypeId_example, // {String} Select policies of a given policy type identity.
-  'nearRtRicId': nearRtRicId_example, // {String} Select policies of a given Near-RT RIC identity.
-  'serviceId': serviceId_example, // {String} Select policies owned by a given service.
-  'typeName': typeName_example, // {String} Select policies of types with the given type name (type identity has the format )
+  'policyTypeId': policyTypeId_example, // {String} Select policies with a given A1 Policy Type ID.
+  'nearRtRicId': nearRtRicId_example, // {String} Select policies for a given Near-RT RIC identity.
+  'serviceId': serviceId_example, // {String} Select policies owned by a given service (registered or unregistered).
+  'typeName': typeName_example, // {String} Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
   'accept': application/json // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 };
 
@@ -3646,14 +5286,14 @@ var callback = function(error, data, response) {
     console.log('API called successfully. Returned data: ' + data);
   }
 };
-api.getAllPolicies(opts, callback);
+api.getPolicyIds(opts, callback);
 
- -
+
using System;
 using System.Diagnostics;
 using Org.OpenAPITools.Api;
@@ -3662,25 +5302,25 @@ using Org.OpenAPITools.Model;
 
 namespace Example
 {
-    public class getAllPoliciesExample
+    public class getPolicyIdsExample
     {
         public void main()
         {
 
             // Create an instance of the API class
             var apiInstance = new A1PolicyManagementApi();
-            var policyTypeId = policyTypeId_example;  // String | Select policies of a given policy type identity. (optional)  (default to null)
-            var nearRtRicId = nearRtRicId_example;  // String | Select policies of a given Near-RT RIC identity. (optional)  (default to null)
-            var serviceId = serviceId_example;  // String | Select policies owned by a given service. (optional)  (default to null)
-            var typeName = typeName_example;  // String | Select policies of types with the given type name (type identity has the format ) (optional)  (default to null)
+            var policyTypeId = policyTypeId_example;  // String | Select policies with a given A1 Policy Type ID. (optional)  (default to null)
+            var nearRtRicId = nearRtRicId_example;  // String | Select policies for a given Near-RT RIC identity. (optional)  (default to null)
+            var serviceId = serviceId_example;  // String | Select policies owned by a given service (registered or unregistered). (optional)  (default to null)
+            var typeName = typeName_example;  // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version'). (optional)  (default to null)
             var accept = application/json;  // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional)  (default to null)
 
             try {
-                // Query policy identities
-                array[PolicyInformation] result = apiInstance.getAllPolicies(policyTypeId, nearRtRicId, serviceId, typeName, accept);
+                // Query for A1 Policy instances (getPolicyIds)
+                array[PolicyInformation] result = apiInstance.getPolicyIds(policyTypeId, nearRtRicId, serviceId, typeName, accept);
                 Debug.WriteLine(result);
             } catch (Exception e) {
-                Debug.Print("Exception when calling A1PolicyManagementApi.getAllPolicies: " + e.Message );
+                Debug.Print("Exception when calling A1PolicyManagementApi.getPolicyIds: " + e.Message );
             }
         }
     }
@@ -3688,50 +5328,50 @@ namespace Example
 
-
+
<?php
 require_once(__DIR__ . '/vendor/autoload.php');
 
 // Create an instance of the API class
 $api_instance = new OpenAPITools\Client\Api\A1PolicyManagementApi();
-$policyTypeId = policyTypeId_example; // String | Select policies of a given policy type identity.
-$nearRtRicId = nearRtRicId_example; // String | Select policies of a given Near-RT RIC identity.
-$serviceId = serviceId_example; // String | Select policies owned by a given service.
-$typeName = typeName_example; // String | Select policies of types with the given type name (type identity has the format )
+$policyTypeId = policyTypeId_example; // String | Select policies with a given A1 Policy Type ID.
+$nearRtRicId = nearRtRicId_example; // String | Select policies for a given Near-RT RIC identity.
+$serviceId = serviceId_example; // String | Select policies owned by a given service (registered or unregistered).
+$typeName = typeName_example; // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
 $accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 try {
-    $result = $api_instance->getAllPolicies($policyTypeId, $nearRtRicId, $serviceId, $typeName, $accept);
+    $result = $api_instance->getPolicyIds($policyTypeId, $nearRtRicId, $serviceId, $typeName, $accept);
     print_r($result);
 } catch (Exception $e) {
-    echo 'Exception when calling A1PolicyManagementApi->getAllPolicies: ', $e->getMessage(), PHP_EOL;
+    echo 'Exception when calling A1PolicyManagementApi->getPolicyIds: ', $e->getMessage(), PHP_EOL;
 }
 ?>
-
+
use Data::Dumper;
 use WWW::OPenAPIClient::Configuration;
 use WWW::OPenAPIClient::A1PolicyManagementApi;
 
 # Create an instance of the API class
 my $api_instance = WWW::OPenAPIClient::A1PolicyManagementApi->new();
-my $policyTypeId = policyTypeId_example; # String | Select policies of a given policy type identity.
-my $nearRtRicId = nearRtRicId_example; # String | Select policies of a given Near-RT RIC identity.
-my $serviceId = serviceId_example; # String | Select policies owned by a given service.
-my $typeName = typeName_example; # String | Select policies of types with the given type name (type identity has the format )
+my $policyTypeId = policyTypeId_example; # String | Select policies with a given A1 Policy Type ID.
+my $nearRtRicId = nearRtRicId_example; # String | Select policies for a given Near-RT RIC identity.
+my $serviceId = serviceId_example; # String | Select policies owned by a given service (registered or unregistered).
+my $typeName = typeName_example; # String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
 my $accept = application/json; # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 eval {
-    my $result = $api_instance->getAllPolicies(policyTypeId => $policyTypeId, nearRtRicId => $nearRtRicId, serviceId => $serviceId, typeName => $typeName, accept => $accept);
+    my $result = $api_instance->getPolicyIds(policyTypeId => $policyTypeId, nearRtRicId => $nearRtRicId, serviceId => $serviceId, typeName => $typeName, accept => $accept);
     print Dumper($result);
 };
 if ($@) {
-    warn "Exception when calling A1PolicyManagementApi->getAllPolicies: $@\n";
+    warn "Exception when calling A1PolicyManagementApi->getPolicyIds: $@\n";
 }
-
+
from __future__ import print_statement
 import time
 import openapi_client
@@ -3740,21 +5380,21 @@ from pprint import pprint
 
 # Create an instance of the API class
 api_instance = openapi_client.A1PolicyManagementApi()
-policyTypeId = policyTypeId_example # String | Select policies of a given policy type identity. (optional) (default to null)
-nearRtRicId = nearRtRicId_example # String | Select policies of a given Near-RT RIC identity. (optional) (default to null)
-serviceId = serviceId_example # String | Select policies owned by a given service. (optional) (default to null)
-typeName = typeName_example # String | Select policies of types with the given type name (type identity has the format ) (optional) (default to null)
+policyTypeId = policyTypeId_example # String | Select policies with a given A1 Policy Type ID. (optional) (default to null)
+nearRtRicId = nearRtRicId_example # String | Select policies for a given Near-RT RIC identity. (optional) (default to null)
+serviceId = serviceId_example # String | Select policies owned by a given service (registered or unregistered). (optional) (default to null)
+typeName = typeName_example # String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version'). (optional) (default to null)
 accept = application/json # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
 
 try:
-    # Query policy identities
-    api_response = api_instance.get_all_policies(policyTypeId=policyTypeId, nearRtRicId=nearRtRicId, serviceId=serviceId, typeName=typeName, accept=accept)
+    # Query for A1 Policy instances (getPolicyIds)
+    api_response = api_instance.get_policy_ids(policyTypeId=policyTypeId, nearRtRicId=nearRtRicId, serviceId=serviceId, typeName=typeName, accept=accept)
     pprint(api_response)
 except ApiException as e:
-    print("Exception when calling A1PolicyManagementApi->getAllPolicies: %s\n" % e)
+ print("Exception when calling A1PolicyManagementApi->getPolicyIds: %s\n" % e)
-
+
extern crate A1PolicyManagementApi;
 
 pub fn main() {
@@ -3765,7 +5405,7 @@ pub fn main() {
     let accept = application/json; // String
 
     let mut context = A1PolicyManagementApi::Context::default();
-    let result = client.getAllPolicies(policyTypeId, nearRtRicId, serviceId, typeName, accept, &context).wait();
+    let result = client.getPolicyIds(policyTypeId, nearRtRicId, serviceId, typeName, accept, &context).wait();
 
     println!("{:?}", result);
 }
@@ -3791,7 +5431,7 @@ pub fn main() {
 
 
 
-    
+
@@ -3821,7 +5461,7 @@ Specifies the content type that the client expects to receive in response to the -
+
@@ -3829,7 +5469,7 @@ Specifies the content type that the client expects to receive in response to the
-Select policies of a given policy type identity. +Select policies with a given A1 Policy Type ID.
@@ -3841,7 +5481,7 @@ Select policies of a given policy type identity. -
+
@@ -3849,7 +5489,7 @@ Select policies of a given policy type identity.
-Select policies of a given Near-RT RIC identity. +Select policies for a given Near-RT RIC identity.
@@ -3861,7 +5501,7 @@ Select policies of a given Near-RT RIC identity. -
+
@@ -3869,7 +5509,7 @@ Select policies of a given Near-RT RIC identity.
-Select policies owned by a given service. +Select policies owned by a given service (registered or unregistered).
@@ -3881,7 +5521,7 @@ Select policies owned by a given service. -
+
@@ -3889,7 +5529,7 @@ Select policies owned by a given service.
-Select policies of types with the given type name (type identity has the format <typename_version>) +Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
@@ -3900,23 +5540,23 @@ Select policies of types with the given type name (type identity has the format

Responses

-

-

+

+

-

-
-
+
+
-

getPolicy

-

+

getPolicyStatus

+

Get an A1 Policy Instance's status (getPolicyStatus)

-

Returns a policy

+

Retrieve the status information for an A1 Policy Instance using its policy ID.


-
/policies/{policyId}
+
/policies/{policyId}/status

Usage and SDK Samples

-
+
curl -X GET \
  -H "Accept: application/json,application/problem+json" \
- "https://example.com/a1-policy-management/v1/policies/{policyId}"
+ "https://example.com/a1-policy-management/v1/policies/{policyId}/status"
 
-
+
import org.openapitools.client.*;
 import org.openapitools.client.auth.*;
 import org.openapitools.client.model.*;
@@ -4723,10 +6363,10 @@ public class A1PolicyManagementApiExample {
         String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
         try {
-            Object result = apiInstance.getPolicy(policyId, accept);
+            Object result = apiInstance.getPolicyStatus(policyId, accept);
             System.out.println(result);
         } catch (ApiException e) {
-            System.err.println("Exception when calling A1PolicyManagementApi#getPolicy");
+            System.err.println("Exception when calling A1PolicyManagementApi#getPolicyStatus");
             e.printStackTrace();
         }
     }
@@ -4734,7 +6374,7 @@ public class A1PolicyManagementApiExample {
 
-
+
import 'package:openapi/api.dart';
 
 final api_instance = DefaultApi();
@@ -4743,16 +6383,16 @@ final String policyId = new String(); // String |
 final String accept = new String(); // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 try {
-    final result = await api_instance.getPolicy(policyId, accept);
+    final result = await api_instance.getPolicyStatus(policyId, accept);
     print(result);
 } catch (e) {
-    print('Exception when calling DefaultApi->getPolicy: $e\n');
+    print('Exception when calling DefaultApi->getPolicyStatus: $e\n');
 }
 
 
-
+
import org.openapitools.client.api.A1PolicyManagementApi;
 
 public class A1PolicyManagementApiExample {
@@ -4762,20 +6402,20 @@ public class A1PolicyManagementApiExample {
         String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
         try {
-            Object result = apiInstance.getPolicy(policyId, accept);
+            Object result = apiInstance.getPolicyStatus(policyId, accept);
             System.out.println(result);
         } catch (ApiException e) {
-            System.err.println("Exception when calling A1PolicyManagementApi#getPolicy");
+            System.err.println("Exception when calling A1PolicyManagementApi#getPolicyStatus");
             e.printStackTrace();
         }
     }
 }
-
+

 
 // Create an instance of the API class
@@ -4783,7 +6423,8 @@ A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init];
 String *policyId = policyId_example; //  (default to null)
 String *accept = application/json; // Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
 
-[apiInstance getPolicyWith:policyId
+// Get an A1 Policy Instance's status (getPolicyStatus)
+[apiInstance getPolicyStatusWith:policyId
     accept:accept
               completionHandler: ^(Object output, NSError* error) {
     if (output) {
@@ -4796,11 +6437,11 @@ String *accept = application/json; // Specifies the content type that the client
 
-
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+                            
+
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementApi.A1PolicyManagementApi()
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
 var policyId = policyId_example; // {String} 
 var opts = {
   'accept': application/json // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
@@ -4813,14 +6454,14 @@ var callback = function(error, data, response) {
     console.log('API called successfully. Returned data: ' + data);
   }
 };
-api.getPolicy(policyId, opts, callback);
+api.getPolicyStatus(policyId, opts, callback);
 
- -
+
using System;
 using System.Diagnostics;
 using Org.OpenAPITools.Api;
@@ -4829,7 +6470,7 @@ using Org.OpenAPITools.Model;
 
 namespace Example
 {
-    public class getPolicyExample
+    public class getPolicyStatusExample
     {
         public void main()
         {
@@ -4840,10 +6481,11 @@ namespace Example
             var accept = application/json;  // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional)  (default to null)
 
             try {
-                Object result = apiInstance.getPolicy(policyId, accept);
+                // Get an A1 Policy Instance's status (getPolicyStatus)
+                Object result = apiInstance.getPolicyStatus(policyId, accept);
                 Debug.WriteLine(result);
             } catch (Exception e) {
-                Debug.Print("Exception when calling A1PolicyManagementApi.getPolicy: " + e.Message );
+                Debug.Print("Exception when calling A1PolicyManagementApi.getPolicyStatus: " + e.Message );
             }
         }
     }
@@ -4851,7 +6493,7 @@ namespace Example
 
-
+
<?php
 require_once(__DIR__ . '/vendor/autoload.php');
 
@@ -4861,15 +6503,15 @@ $policyId = policyId_example; // String |
 $accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 try {
-    $result = $api_instance->getPolicy($policyId, $accept);
+    $result = $api_instance->getPolicyStatus($policyId, $accept);
     print_r($result);
 } catch (Exception $e) {
-    echo 'Exception when calling A1PolicyManagementApi->getPolicy: ', $e->getMessage(), PHP_EOL;
+    echo 'Exception when calling A1PolicyManagementApi->getPolicyStatus: ', $e->getMessage(), PHP_EOL;
 }
 ?>
-
+
use Data::Dumper;
 use WWW::OPenAPIClient::Configuration;
 use WWW::OPenAPIClient::A1PolicyManagementApi;
@@ -4880,15 +6522,15 @@ my $policyId = policyId_example; # String |
 my $accept = application/json; # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 eval {
-    my $result = $api_instance->getPolicy(policyId => $policyId, accept => $accept);
+    my $result = $api_instance->getPolicyStatus(policyId => $policyId, accept => $accept);
     print Dumper($result);
 };
 if ($@) {
-    warn "Exception when calling A1PolicyManagementApi->getPolicy: $@\n";
+    warn "Exception when calling A1PolicyManagementApi->getPolicyStatus: $@\n";
 }
-
+
from __future__ import print_statement
 import time
 import openapi_client
@@ -4901,13 +6543,14 @@ policyId = policyId_example # String |  (default to null)
 accept = application/json # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
 
 try:
-    api_response = api_instance.get_policy(policyId, accept=accept)
+    # Get an A1 Policy Instance's status (getPolicyStatus)
+    api_response = api_instance.get_policy_status(policyId, accept=accept)
     pprint(api_response)
 except ApiException as e:
-    print("Exception when calling A1PolicyManagementApi->getPolicy: %s\n" % e)
+ print("Exception when calling A1PolicyManagementApi->getPolicyStatus: %s\n" % e)
-
+
extern crate A1PolicyManagementApi;
 
 pub fn main() {
@@ -4915,7 +6558,7 @@ pub fn main() {
     let accept = application/json; // String
 
     let mut context = A1PolicyManagementApi::Context::default();
-    let result = client.getPolicy(policyId, accept, &context).wait();
+    let result = client.getPolicyStatus(policyId, accept, &context).wait();
 
     println!("{:?}", result);
 }
@@ -4940,7 +6583,7 @@ pub fn main() {
 
 
 
-    
+
@@ -4968,7 +6611,7 @@ pub fn main() { -
+
@@ -4990,23 +6633,23 @@ Specifies the content type that the client expects to receive in response to the

Responses

-

-

+

+

-
@@ -5762,12 +7400,12 @@ Specifies the content type that the client expects to receive in response to the

getPolicyTypeDefinition

-

+

Get an A1 Policy Type definition (getPolicyTypeDefinition)

-

Returns a policy type definition

+

Get an A1 Policy Type definition using its policy type ID


/policy-types/{policyTypeId}
@@ -5815,7 +7453,7 @@ public class A1PolicyManagementApiExample { String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. try { - Object result = apiInstance.getPolicyTypeDefinition(policyTypeId, accept); + PolicyTypeObject result = apiInstance.getPolicyTypeDefinition(policyTypeId, accept); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling A1PolicyManagementApi#getPolicyTypeDefinition"); @@ -5854,7 +7492,7 @@ public class A1PolicyManagementApiExample { String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. try { - Object result = apiInstance.getPolicyTypeDefinition(policyTypeId, accept); + PolicyTypeObject result = apiInstance.getPolicyTypeDefinition(policyTypeId, accept); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling A1PolicyManagementApi#getPolicyTypeDefinition"); @@ -5875,9 +7513,10 @@ A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init]; String *policyTypeId = policyTypeId_example; // (default to null) String *accept = application/json; // Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null) +// Get an A1 Policy Type definition (getPolicyTypeDefinition) [apiInstance getPolicyTypeDefinitionWith:policyTypeId accept:accept - completionHandler: ^(Object output, NSError* error) { + completionHandler: ^(PolicyTypeObject output, NSError* error) { if (output) { NSLog(@"%@", output); } @@ -5889,10 +7528,10 @@ String *accept = application/json; // Specifies the content type that the client
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+                              
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementApi.A1PolicyManagementApi()
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
 var policyTypeId = policyTypeId_example; // {String} 
 var opts = {
   'accept': application/json // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
@@ -5932,7 +7571,8 @@ namespace Example
             var accept = application/json;  // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional)  (default to null)
 
             try {
-                Object result = apiInstance.getPolicyTypeDefinition(policyTypeId, accept);
+                // Get an A1 Policy Type definition (getPolicyTypeDefinition)
+                PolicyTypeObject result = apiInstance.getPolicyTypeDefinition(policyTypeId, accept);
                 Debug.WriteLine(result);
             } catch (Exception e) {
                 Debug.Print("Exception when calling A1PolicyManagementApi.getPolicyTypeDefinition: " + e.Message );
@@ -5993,6 +7633,7 @@ policyTypeId = policyTypeId_example # String |  (default to null)
 accept = application/json # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
 
 try:
+    # Get an A1 Policy Type definition (getPolicyTypeDefinition)
     api_response = api_instance.get_policy_type_definition(policyTypeId, accept=accept)
     pprint(api_response)
 except ApiException as e:
@@ -6085,7 +7726,7 @@ Specifies the content type that the client expects to receive in response to the
                             

-
+
@@ -8352,23 +10014,23 @@ $(document).ready(function() {

Responses

-

-

+

+

-
@@ -9429,10 +11091,10 @@ $(document).ready(function() { diff --git a/api/pms-api/v3/index.html b/api/pms-api/v3/index.html index 6404c06..e032a50 100644 --- a/api/pms-api/v3/index.html +++ b/api/pms-api/v3/index.html @@ -2,7 +2,7 @@ - A1 policy management API + OSC - A1 Policy Management API @@ -844,26 +844,12 @@ ul.nav-tabs { -
-
-
-
-
-
-

deletePolicy

-

Delete a policy

-
-
-
-

-

Deleting the policy using policyId.

+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+
+
+
+
+
+
+

deletePolicy

+

Delete an A1 Policy instance (deletePolicy)

+
+
+
+

+

Delete an existing A1 Policy instance using its policy ID.

+

+
+
/policies/{policyId}
+

+

Usage and SDK Samples

+

+ + +
+
+
curl -X DELETE \
+ -H "Accept: application/problem+json" \
+ "https://example.com/a1-policy-management/v1/policies/{policyId}"
+
+
+
+
import org.openapitools.client.*;
+import org.openapitools.client.auth.*;
+import org.openapitools.client.model.*;
+import org.openapitools.client.api.A1PolicyManagementApi;
+
+import java.io.File;
+import java.util.*;
+
+public class A1PolicyManagementApiExample {
+    public static void main(String[] args) {
+
+        // Create an instance of the API class
+        A1PolicyManagementApi apiInstance = new A1PolicyManagementApi();
+        String policyId = policyId_example; // String | 
+        String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
+
+        try {
+            apiInstance.deletePolicy(policyId, accept);
+        } catch (ApiException e) {
+            System.err.println("Exception when calling A1PolicyManagementApi#deletePolicy");
+            e.printStackTrace();
+        }
+    }
+}
+
+
+ +
+
import 'package:openapi/api.dart';
+
+final api_instance = DefaultApi();
+
+final String policyId = new String(); // String | 
+final String accept = new String(); // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
+
+try {
+    final result = await api_instance.deletePolicy(policyId, accept);
+    print(result);
+} catch (e) {
+    print('Exception when calling DefaultApi->deletePolicy: $e\n');
+}
+
+
+
+ +
+
import org.openapitools.client.api.A1PolicyManagementApi;
+
+public class A1PolicyManagementApiExample {
+    public static void main(String[] args) {
+        A1PolicyManagementApi apiInstance = new A1PolicyManagementApi();
+        String policyId = policyId_example; // String | 
+        String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
+
+        try {
+            apiInstance.deletePolicy(policyId, accept);
+        } catch (ApiException e) {
+            System.err.println("Exception when calling A1PolicyManagementApi#deletePolicy");
+            e.printStackTrace();
+        }
+    }
+}
+
+ +
+

+
+// Create an instance of the API class
+A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init];
+String *policyId = policyId_example; //  (default to null)
+String *accept = application/json; // Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
+
+// Delete an A1 Policy instance (deletePolicy)
+[apiInstance deletePolicyWith:policyId
+    accept:accept
+              completionHandler: ^(NSError* error) {
+    if (error) {
+        NSLog(@"Error: %@", error);
+    }
+}];
+
+
+ +
+
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
+
+// Create an instance of the API class
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
+var policyId = policyId_example; // {String} 
+var opts = {
+  'accept': application/json // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
+};
+
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully.');
+  }
+};
+api.deletePolicy(policyId, opts, callback);
+
+
+ + +
+
using System;
+using System.Diagnostics;
+using Org.OpenAPITools.Api;
+using Org.OpenAPITools.Client;
+using Org.OpenAPITools.Model;
+
+namespace Example
+{
+    public class deletePolicyExample
+    {
+        public void main()
+        {
+
+            // Create an instance of the API class
+            var apiInstance = new A1PolicyManagementApi();
+            var policyId = policyId_example;  // String |  (default to null)
+            var accept = application/json;  // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional)  (default to null)
+
+            try {
+                // Delete an A1 Policy instance (deletePolicy)
+                apiInstance.deletePolicy(policyId, accept);
+            } catch (Exception e) {
+                Debug.Print("Exception when calling A1PolicyManagementApi.deletePolicy: " + e.Message );
+            }
+        }
+    }
+}
+
+
+ +
+
<?php
+require_once(__DIR__ . '/vendor/autoload.php');
+
+// Create an instance of the API class
+$api_instance = new OpenAPITools\Client\Api\A1PolicyManagementApi();
+$policyId = policyId_example; // String | 
+$accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
+
+try {
+    $api_instance->deletePolicy($policyId, $accept);
+} catch (Exception $e) {
+    echo 'Exception when calling A1PolicyManagementApi->deletePolicy: ', $e->getMessage(), PHP_EOL;
+}
+?>
+
+ +
+
use Data::Dumper;
+use WWW::OPenAPIClient::Configuration;
+use WWW::OPenAPIClient::A1PolicyManagementApi;
+
+# Create an instance of the API class
+my $api_instance = WWW::OPenAPIClient::A1PolicyManagementApi->new();
+my $policyId = policyId_example; # String | 
+my $accept = application/json; # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
+
+eval {
+    $api_instance->deletePolicy(policyId => $policyId, accept => $accept);
+};
+if ($@) {
+    warn "Exception when calling A1PolicyManagementApi->deletePolicy: $@\n";
+}
+
+ +
+
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.A1PolicyManagementApi()
+policyId = policyId_example # String |  (default to null)
+accept = application/json # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
+
+try:
+    # Delete an A1 Policy instance (deletePolicy)
+    api_instance.delete_policy(policyId, accept=accept)
+except ApiException as e:
+    print("Exception when calling A1PolicyManagementApi->deletePolicy: %s\n" % e)
+
+ +
+
extern crate A1PolicyManagementApi;
+
+pub fn main() {
+    let policyId = policyId_example; // String
+    let accept = application/json; // String
+
+    let mut context = A1PolicyManagementApi::Context::default();
+    let result = client.deletePolicy(policyId, accept, &context).wait();
+
+    println!("{:?}", result);
+}
+
+
+
+ +

Scopes

+ + +
+ +

Parameters

+ +
Path parameters
+ + + + + + + + + +
NameDescription
policyId* + + +
+
+
+ + String + + +
+
+ Required +
+
+
+
+ +
Header parameters
+ + + + + + + + + +
NameDescription
Accept + + +
+
+
+ + String + + +
+Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. +
+
+
+
+
+ + + + +

Responses

+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+
+
+
+
+
+
+

getPolicy

+

Get an A1 Policy's policy data (getPolicy)

+
+
+
+

+

Get an A1 Policy instance's policy data using its policy ID


-
/policies/{policyId}
+
/policies/{policyId}

Usage and SDK Samples

-

-

-
-
+
+
-

getAllPolicies

-

Query policy identities

+

getPolicyIds

+

Query for A1 Policy instances (getPolicyIds)

-

Returns a list of A1 policies matching given search criteria. <br>If several query parameters are defined, the policies matching all conditions are returned.

+

Returns a collection of A1 Policy Instance IDs for policies that match given search criteria. If several query parameters are defined, the policies matching all conditions are returned. +


/policies
@@ -3528,29 +5168,29 @@ Specifies the content type that the client expects to receive in response to the

Usage and SDK Samples

-
+
curl -X GET \
  -H "Accept: application/json,application/problem+json" \
  "https://example.com/a1-policy-management/v1/policies?policyTypeId=policyTypeId_example&nearRtRicId=nearRtRicId_example&serviceId=serviceId_example&typeName=typeName_example"
 
-
+
import org.openapitools.client.*;
 import org.openapitools.client.auth.*;
 import org.openapitools.client.model.*;
@@ -3564,17 +5204,17 @@ public class A1PolicyManagementApiExample {
 
         // Create an instance of the API class
         A1PolicyManagementApi apiInstance = new A1PolicyManagementApi();
-        String policyTypeId = policyTypeId_example; // String | Select policies of a given policy type identity.
-        String nearRtRicId = nearRtRicId_example; // String | Select policies of a given Near-RT RIC identity.
-        String serviceId = serviceId_example; // String | Select policies owned by a given service.
-        String typeName = typeName_example; // String | Select policies of types with the given type name (type identity has the format )
+        String policyTypeId = policyTypeId_example; // String | Select policies with a given A1 Policy Type ID.
+        String nearRtRicId = nearRtRicId_example; // String | Select policies for a given Near-RT RIC identity.
+        String serviceId = serviceId_example; // String | Select policies owned by a given service (registered or unregistered).
+        String typeName = typeName_example; // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
         String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
         try {
-            array[PolicyInformation] result = apiInstance.getAllPolicies(policyTypeId, nearRtRicId, serviceId, typeName, accept);
+            array[PolicyInformation] result = apiInstance.getPolicyIds(policyTypeId, nearRtRicId, serviceId, typeName, accept);
             System.out.println(result);
         } catch (ApiException e) {
-            System.err.println("Exception when calling A1PolicyManagementApi#getAllPolicies");
+            System.err.println("Exception when calling A1PolicyManagementApi#getPolicyIds");
             e.printStackTrace();
         }
     }
@@ -3582,66 +5222,66 @@ public class A1PolicyManagementApiExample {
 
-
+
import 'package:openapi/api.dart';
 
 final api_instance = DefaultApi();
 
-final String policyTypeId = new String(); // String | Select policies of a given policy type identity.
-final String nearRtRicId = new String(); // String | Select policies of a given Near-RT RIC identity.
-final String serviceId = new String(); // String | Select policies owned by a given service.
-final String typeName = new String(); // String | Select policies of types with the given type name (type identity has the format )
+final String policyTypeId = new String(); // String | Select policies with a given A1 Policy Type ID.
+final String nearRtRicId = new String(); // String | Select policies for a given Near-RT RIC identity.
+final String serviceId = new String(); // String | Select policies owned by a given service (registered or unregistered).
+final String typeName = new String(); // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
 final String accept = new String(); // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 try {
-    final result = await api_instance.getAllPolicies(policyTypeId, nearRtRicId, serviceId, typeName, accept);
+    final result = await api_instance.getPolicyIds(policyTypeId, nearRtRicId, serviceId, typeName, accept);
     print(result);
 } catch (e) {
-    print('Exception when calling DefaultApi->getAllPolicies: $e\n');
+    print('Exception when calling DefaultApi->getPolicyIds: $e\n');
 }
 
 
-
+
import org.openapitools.client.api.A1PolicyManagementApi;
 
 public class A1PolicyManagementApiExample {
     public static void main(String[] args) {
         A1PolicyManagementApi apiInstance = new A1PolicyManagementApi();
-        String policyTypeId = policyTypeId_example; // String | Select policies of a given policy type identity.
-        String nearRtRicId = nearRtRicId_example; // String | Select policies of a given Near-RT RIC identity.
-        String serviceId = serviceId_example; // String | Select policies owned by a given service.
-        String typeName = typeName_example; // String | Select policies of types with the given type name (type identity has the format )
+        String policyTypeId = policyTypeId_example; // String | Select policies with a given A1 Policy Type ID.
+        String nearRtRicId = nearRtRicId_example; // String | Select policies for a given Near-RT RIC identity.
+        String serviceId = serviceId_example; // String | Select policies owned by a given service (registered or unregistered).
+        String typeName = typeName_example; // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
         String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
         try {
-            array[PolicyInformation] result = apiInstance.getAllPolicies(policyTypeId, nearRtRicId, serviceId, typeName, accept);
+            array[PolicyInformation] result = apiInstance.getPolicyIds(policyTypeId, nearRtRicId, serviceId, typeName, accept);
             System.out.println(result);
         } catch (ApiException e) {
-            System.err.println("Exception when calling A1PolicyManagementApi#getAllPolicies");
+            System.err.println("Exception when calling A1PolicyManagementApi#getPolicyIds");
             e.printStackTrace();
         }
     }
 }
-
+

 
 // Create an instance of the API class
 A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init];
-String *policyTypeId = policyTypeId_example; // Select policies of a given policy type identity. (optional) (default to null)
-String *nearRtRicId = nearRtRicId_example; // Select policies of a given Near-RT RIC identity. (optional) (default to null)
-String *serviceId = serviceId_example; // Select policies owned by a given service. (optional) (default to null)
-String *typeName = typeName_example; // Select policies of types with the given type name (type identity has the format ) (optional) (default to null)
+String *policyTypeId = policyTypeId_example; // Select policies with a given A1 Policy Type ID. (optional) (default to null)
+String *nearRtRicId = nearRtRicId_example; // Select policies for a given Near-RT RIC identity. (optional) (default to null)
+String *serviceId = serviceId_example; // Select policies owned by a given service (registered or unregistered). (optional) (default to null)
+String *typeName = typeName_example; // Select policies of a given A1 Policy Type name (type identity has the format 'typename_version'). (optional) (default to null)
 String *accept = application/json; // Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
 
-// Query policy identities
-[apiInstance getAllPoliciesWith:policyTypeId
+// Query for A1 Policy instances (getPolicyIds)
+[apiInstance getPolicyIdsWith:policyTypeId
     nearRtRicId:nearRtRicId
     serviceId:serviceId
     typeName:typeName
@@ -3657,16 +5297,16 @@ String *accept = application/json; // Specifies the content type that the client
 
-
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+                            
+
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementApi.A1PolicyManagementApi()
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
 var opts = {
-  'policyTypeId': policyTypeId_example, // {String} Select policies of a given policy type identity.
-  'nearRtRicId': nearRtRicId_example, // {String} Select policies of a given Near-RT RIC identity.
-  'serviceId': serviceId_example, // {String} Select policies owned by a given service.
-  'typeName': typeName_example, // {String} Select policies of types with the given type name (type identity has the format )
+  'policyTypeId': policyTypeId_example, // {String} Select policies with a given A1 Policy Type ID.
+  'nearRtRicId': nearRtRicId_example, // {String} Select policies for a given Near-RT RIC identity.
+  'serviceId': serviceId_example, // {String} Select policies owned by a given service (registered or unregistered).
+  'typeName': typeName_example, // {String} Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
   'accept': application/json // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 };
 
@@ -3677,14 +5317,14 @@ var callback = function(error, data, response) {
     console.log('API called successfully. Returned data: ' + data);
   }
 };
-api.getAllPolicies(opts, callback);
+api.getPolicyIds(opts, callback);
 
- -
+
using System;
 using System.Diagnostics;
 using Org.OpenAPITools.Api;
@@ -3693,25 +5333,25 @@ using Org.OpenAPITools.Model;
 
 namespace Example
 {
-    public class getAllPoliciesExample
+    public class getPolicyIdsExample
     {
         public void main()
         {
 
             // Create an instance of the API class
             var apiInstance = new A1PolicyManagementApi();
-            var policyTypeId = policyTypeId_example;  // String | Select policies of a given policy type identity. (optional)  (default to null)
-            var nearRtRicId = nearRtRicId_example;  // String | Select policies of a given Near-RT RIC identity. (optional)  (default to null)
-            var serviceId = serviceId_example;  // String | Select policies owned by a given service. (optional)  (default to null)
-            var typeName = typeName_example;  // String | Select policies of types with the given type name (type identity has the format ) (optional)  (default to null)
+            var policyTypeId = policyTypeId_example;  // String | Select policies with a given A1 Policy Type ID. (optional)  (default to null)
+            var nearRtRicId = nearRtRicId_example;  // String | Select policies for a given Near-RT RIC identity. (optional)  (default to null)
+            var serviceId = serviceId_example;  // String | Select policies owned by a given service (registered or unregistered). (optional)  (default to null)
+            var typeName = typeName_example;  // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version'). (optional)  (default to null)
             var accept = application/json;  // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional)  (default to null)
 
             try {
-                // Query policy identities
-                array[PolicyInformation] result = apiInstance.getAllPolicies(policyTypeId, nearRtRicId, serviceId, typeName, accept);
+                // Query for A1 Policy instances (getPolicyIds)
+                array[PolicyInformation] result = apiInstance.getPolicyIds(policyTypeId, nearRtRicId, serviceId, typeName, accept);
                 Debug.WriteLine(result);
             } catch (Exception e) {
-                Debug.Print("Exception when calling A1PolicyManagementApi.getAllPolicies: " + e.Message );
+                Debug.Print("Exception when calling A1PolicyManagementApi.getPolicyIds: " + e.Message );
             }
         }
     }
@@ -3719,50 +5359,50 @@ namespace Example
 
-
+
<?php
 require_once(__DIR__ . '/vendor/autoload.php');
 
 // Create an instance of the API class
 $api_instance = new OpenAPITools\Client\Api\A1PolicyManagementApi();
-$policyTypeId = policyTypeId_example; // String | Select policies of a given policy type identity.
-$nearRtRicId = nearRtRicId_example; // String | Select policies of a given Near-RT RIC identity.
-$serviceId = serviceId_example; // String | Select policies owned by a given service.
-$typeName = typeName_example; // String | Select policies of types with the given type name (type identity has the format )
+$policyTypeId = policyTypeId_example; // String | Select policies with a given A1 Policy Type ID.
+$nearRtRicId = nearRtRicId_example; // String | Select policies for a given Near-RT RIC identity.
+$serviceId = serviceId_example; // String | Select policies owned by a given service (registered or unregistered).
+$typeName = typeName_example; // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
 $accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 try {
-    $result = $api_instance->getAllPolicies($policyTypeId, $nearRtRicId, $serviceId, $typeName, $accept);
+    $result = $api_instance->getPolicyIds($policyTypeId, $nearRtRicId, $serviceId, $typeName, $accept);
     print_r($result);
 } catch (Exception $e) {
-    echo 'Exception when calling A1PolicyManagementApi->getAllPolicies: ', $e->getMessage(), PHP_EOL;
+    echo 'Exception when calling A1PolicyManagementApi->getPolicyIds: ', $e->getMessage(), PHP_EOL;
 }
 ?>
-
+
use Data::Dumper;
 use WWW::OPenAPIClient::Configuration;
 use WWW::OPenAPIClient::A1PolicyManagementApi;
 
 # Create an instance of the API class
 my $api_instance = WWW::OPenAPIClient::A1PolicyManagementApi->new();
-my $policyTypeId = policyTypeId_example; # String | Select policies of a given policy type identity.
-my $nearRtRicId = nearRtRicId_example; # String | Select policies of a given Near-RT RIC identity.
-my $serviceId = serviceId_example; # String | Select policies owned by a given service.
-my $typeName = typeName_example; # String | Select policies of types with the given type name (type identity has the format )
+my $policyTypeId = policyTypeId_example; # String | Select policies with a given A1 Policy Type ID.
+my $nearRtRicId = nearRtRicId_example; # String | Select policies for a given Near-RT RIC identity.
+my $serviceId = serviceId_example; # String | Select policies owned by a given service (registered or unregistered).
+my $typeName = typeName_example; # String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
 my $accept = application/json; # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 eval {
-    my $result = $api_instance->getAllPolicies(policyTypeId => $policyTypeId, nearRtRicId => $nearRtRicId, serviceId => $serviceId, typeName => $typeName, accept => $accept);
+    my $result = $api_instance->getPolicyIds(policyTypeId => $policyTypeId, nearRtRicId => $nearRtRicId, serviceId => $serviceId, typeName => $typeName, accept => $accept);
     print Dumper($result);
 };
 if ($@) {
-    warn "Exception when calling A1PolicyManagementApi->getAllPolicies: $@\n";
+    warn "Exception when calling A1PolicyManagementApi->getPolicyIds: $@\n";
 }
-
+
from __future__ import print_statement
 import time
 import openapi_client
@@ -3771,21 +5411,21 @@ from pprint import pprint
 
 # Create an instance of the API class
 api_instance = openapi_client.A1PolicyManagementApi()
-policyTypeId = policyTypeId_example # String | Select policies of a given policy type identity. (optional) (default to null)
-nearRtRicId = nearRtRicId_example # String | Select policies of a given Near-RT RIC identity. (optional) (default to null)
-serviceId = serviceId_example # String | Select policies owned by a given service. (optional) (default to null)
-typeName = typeName_example # String | Select policies of types with the given type name (type identity has the format ) (optional) (default to null)
+policyTypeId = policyTypeId_example # String | Select policies with a given A1 Policy Type ID. (optional) (default to null)
+nearRtRicId = nearRtRicId_example # String | Select policies for a given Near-RT RIC identity. (optional) (default to null)
+serviceId = serviceId_example # String | Select policies owned by a given service (registered or unregistered). (optional) (default to null)
+typeName = typeName_example # String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version'). (optional) (default to null)
 accept = application/json # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
 
 try:
-    # Query policy identities
-    api_response = api_instance.get_all_policies(policyTypeId=policyTypeId, nearRtRicId=nearRtRicId, serviceId=serviceId, typeName=typeName, accept=accept)
+    # Query for A1 Policy instances (getPolicyIds)
+    api_response = api_instance.get_policy_ids(policyTypeId=policyTypeId, nearRtRicId=nearRtRicId, serviceId=serviceId, typeName=typeName, accept=accept)
     pprint(api_response)
 except ApiException as e:
-    print("Exception when calling A1PolicyManagementApi->getAllPolicies: %s\n" % e)
+ print("Exception when calling A1PolicyManagementApi->getPolicyIds: %s\n" % e)
-
+
extern crate A1PolicyManagementApi;
 
 pub fn main() {
@@ -3796,7 +5436,7 @@ pub fn main() {
     let accept = application/json; // String
 
     let mut context = A1PolicyManagementApi::Context::default();
-    let result = client.getAllPolicies(policyTypeId, nearRtRicId, serviceId, typeName, accept, &context).wait();
+    let result = client.getPolicyIds(policyTypeId, nearRtRicId, serviceId, typeName, accept, &context).wait();
 
     println!("{:?}", result);
 }
@@ -3822,7 +5462,7 @@ pub fn main() {
 
 
 
-    
+
@@ -3852,7 +5492,7 @@ Specifies the content type that the client expects to receive in response to the -
+
@@ -3860,7 +5500,7 @@ Specifies the content type that the client expects to receive in response to the
-Select policies of a given policy type identity. +Select policies with a given A1 Policy Type ID.
@@ -3872,7 +5512,7 @@ Select policies of a given policy type identity. -
+
@@ -3880,7 +5520,7 @@ Select policies of a given policy type identity.
-Select policies of a given Near-RT RIC identity. +Select policies for a given Near-RT RIC identity.
@@ -3892,7 +5532,7 @@ Select policies of a given Near-RT RIC identity. -
+
@@ -3900,7 +5540,7 @@ Select policies of a given Near-RT RIC identity.
-Select policies owned by a given service. +Select policies owned by a given service (registered or unregistered).
@@ -3912,7 +5552,7 @@ Select policies owned by a given service. -
+
@@ -3920,7 +5560,7 @@ Select policies owned by a given service.
-Select policies of types with the given type name (type identity has the format <typename_version>) +Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
@@ -3931,23 +5571,23 @@ Select policies of types with the given type name (type identity has the format

Responses

-

-

+

+

-

-
-
+
+
-

getPolicy

-

+

getPolicyStatus

+

Get an A1 Policy Instance's status (getPolicyStatus)

-

Returns a policy

+

Retrieve the status information for an A1 Policy Instance using its policy ID.


-
/policies/{policyId}
+
/policies/{policyId}/status

Usage and SDK Samples

-
+
curl -X GET \
  -H "Accept: application/json,application/problem+json" \
- "https://example.com/a1-policy-management/v1/policies/{policyId}"
+ "https://example.com/a1-policy-management/v1/policies/{policyId}/status"
 
-
+
import org.openapitools.client.*;
 import org.openapitools.client.auth.*;
 import org.openapitools.client.model.*;
@@ -4754,10 +6394,10 @@ public class A1PolicyManagementApiExample {
         String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
         try {
-            Object result = apiInstance.getPolicy(policyId, accept);
+            Object result = apiInstance.getPolicyStatus(policyId, accept);
             System.out.println(result);
         } catch (ApiException e) {
-            System.err.println("Exception when calling A1PolicyManagementApi#getPolicy");
+            System.err.println("Exception when calling A1PolicyManagementApi#getPolicyStatus");
             e.printStackTrace();
         }
     }
@@ -4765,7 +6405,7 @@ public class A1PolicyManagementApiExample {
 
-
+
import 'package:openapi/api.dart';
 
 final api_instance = DefaultApi();
@@ -4774,16 +6414,16 @@ final String policyId = new String(); // String |
 final String accept = new String(); // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 try {
-    final result = await api_instance.getPolicy(policyId, accept);
+    final result = await api_instance.getPolicyStatus(policyId, accept);
     print(result);
 } catch (e) {
-    print('Exception when calling DefaultApi->getPolicy: $e\n');
+    print('Exception when calling DefaultApi->getPolicyStatus: $e\n');
 }
 
 
-
+
import org.openapitools.client.api.A1PolicyManagementApi;
 
 public class A1PolicyManagementApiExample {
@@ -4793,20 +6433,20 @@ public class A1PolicyManagementApiExample {
         String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
         try {
-            Object result = apiInstance.getPolicy(policyId, accept);
+            Object result = apiInstance.getPolicyStatus(policyId, accept);
             System.out.println(result);
         } catch (ApiException e) {
-            System.err.println("Exception when calling A1PolicyManagementApi#getPolicy");
+            System.err.println("Exception when calling A1PolicyManagementApi#getPolicyStatus");
             e.printStackTrace();
         }
     }
 }
-
+

 
 // Create an instance of the API class
@@ -4814,7 +6454,8 @@ A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init];
 String *policyId = policyId_example; //  (default to null)
 String *accept = application/json; // Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
 
-[apiInstance getPolicyWith:policyId
+// Get an A1 Policy Instance's status (getPolicyStatus)
+[apiInstance getPolicyStatusWith:policyId
     accept:accept
               completionHandler: ^(Object output, NSError* error) {
     if (output) {
@@ -4827,11 +6468,11 @@ String *accept = application/json; // Specifies the content type that the client
 
-
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+                            
+
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementApi.A1PolicyManagementApi()
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
 var policyId = policyId_example; // {String} 
 var opts = {
   'accept': application/json // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
@@ -4844,14 +6485,14 @@ var callback = function(error, data, response) {
     console.log('API called successfully. Returned data: ' + data);
   }
 };
-api.getPolicy(policyId, opts, callback);
+api.getPolicyStatus(policyId, opts, callback);
 
- -
+
using System;
 using System.Diagnostics;
 using Org.OpenAPITools.Api;
@@ -4860,7 +6501,7 @@ using Org.OpenAPITools.Model;
 
 namespace Example
 {
-    public class getPolicyExample
+    public class getPolicyStatusExample
     {
         public void main()
         {
@@ -4871,10 +6512,11 @@ namespace Example
             var accept = application/json;  // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional)  (default to null)
 
             try {
-                Object result = apiInstance.getPolicy(policyId, accept);
+                // Get an A1 Policy Instance's status (getPolicyStatus)
+                Object result = apiInstance.getPolicyStatus(policyId, accept);
                 Debug.WriteLine(result);
             } catch (Exception e) {
-                Debug.Print("Exception when calling A1PolicyManagementApi.getPolicy: " + e.Message );
+                Debug.Print("Exception when calling A1PolicyManagementApi.getPolicyStatus: " + e.Message );
             }
         }
     }
@@ -4882,7 +6524,7 @@ namespace Example
 
-
+
<?php
 require_once(__DIR__ . '/vendor/autoload.php');
 
@@ -4892,15 +6534,15 @@ $policyId = policyId_example; // String |
 $accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 try {
-    $result = $api_instance->getPolicy($policyId, $accept);
+    $result = $api_instance->getPolicyStatus($policyId, $accept);
     print_r($result);
 } catch (Exception $e) {
-    echo 'Exception when calling A1PolicyManagementApi->getPolicy: ', $e->getMessage(), PHP_EOL;
+    echo 'Exception when calling A1PolicyManagementApi->getPolicyStatus: ', $e->getMessage(), PHP_EOL;
 }
 ?>
-
+
use Data::Dumper;
 use WWW::OPenAPIClient::Configuration;
 use WWW::OPenAPIClient::A1PolicyManagementApi;
@@ -4911,15 +6553,15 @@ my $policyId = policyId_example; # String |
 my $accept = application/json; # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 eval {
-    my $result = $api_instance->getPolicy(policyId => $policyId, accept => $accept);
+    my $result = $api_instance->getPolicyStatus(policyId => $policyId, accept => $accept);
     print Dumper($result);
 };
 if ($@) {
-    warn "Exception when calling A1PolicyManagementApi->getPolicy: $@\n";
+    warn "Exception when calling A1PolicyManagementApi->getPolicyStatus: $@\n";
 }
-
+
from __future__ import print_statement
 import time
 import openapi_client
@@ -4932,13 +6574,14 @@ policyId = policyId_example # String |  (default to null)
 accept = application/json # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
 
 try:
-    api_response = api_instance.get_policy(policyId, accept=accept)
+    # Get an A1 Policy Instance's status (getPolicyStatus)
+    api_response = api_instance.get_policy_status(policyId, accept=accept)
     pprint(api_response)
 except ApiException as e:
-    print("Exception when calling A1PolicyManagementApi->getPolicy: %s\n" % e)
+ print("Exception when calling A1PolicyManagementApi->getPolicyStatus: %s\n" % e)
-
+
extern crate A1PolicyManagementApi;
 
 pub fn main() {
@@ -4946,7 +6589,7 @@ pub fn main() {
     let accept = application/json; // String
 
     let mut context = A1PolicyManagementApi::Context::default();
-    let result = client.getPolicy(policyId, accept, &context).wait();
+    let result = client.getPolicyStatus(policyId, accept, &context).wait();
 
     println!("{:?}", result);
 }
@@ -4971,7 +6614,7 @@ pub fn main() {
 
 
 
-    
+
@@ -4999,7 +6642,7 @@ pub fn main() { -
+
@@ -5021,23 +6664,23 @@ Specifies the content type that the client expects to receive in response to the

Responses

-

-

+

+

-
@@ -5793,12 +7431,12 @@ Specifies the content type that the client expects to receive in response to the

getPolicyTypeDefinition

-

+

Get an A1 Policy Type definition (getPolicyTypeDefinition)

-

Returns a policy type definition

+

Get an A1 Policy Type definition using its policy type ID


/policy-types/{policyTypeId}
@@ -5846,7 +7484,7 @@ public class A1PolicyManagementApiExample { String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. try { - Object result = apiInstance.getPolicyTypeDefinition(policyTypeId, accept); + PolicyTypeObject result = apiInstance.getPolicyTypeDefinition(policyTypeId, accept); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling A1PolicyManagementApi#getPolicyTypeDefinition"); @@ -5885,7 +7523,7 @@ public class A1PolicyManagementApiExample { String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. try { - Object result = apiInstance.getPolicyTypeDefinition(policyTypeId, accept); + PolicyTypeObject result = apiInstance.getPolicyTypeDefinition(policyTypeId, accept); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling A1PolicyManagementApi#getPolicyTypeDefinition"); @@ -5906,9 +7544,10 @@ A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init]; String *policyTypeId = policyTypeId_example; // (default to null) String *accept = application/json; // Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null) +// Get an A1 Policy Type definition (getPolicyTypeDefinition) [apiInstance getPolicyTypeDefinitionWith:policyTypeId accept:accept - completionHandler: ^(Object output, NSError* error) { + completionHandler: ^(PolicyTypeObject output, NSError* error) { if (output) { NSLog(@"%@", output); } @@ -5920,10 +7559,10 @@ String *accept = application/json; // Specifies the content type that the client
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+                              
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementApi.A1PolicyManagementApi()
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
 var policyTypeId = policyTypeId_example; // {String} 
 var opts = {
   'accept': application/json // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
@@ -5963,7 +7602,8 @@ namespace Example
             var accept = application/json;  // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional)  (default to null)
 
             try {
-                Object result = apiInstance.getPolicyTypeDefinition(policyTypeId, accept);
+                // Get an A1 Policy Type definition (getPolicyTypeDefinition)
+                PolicyTypeObject result = apiInstance.getPolicyTypeDefinition(policyTypeId, accept);
                 Debug.WriteLine(result);
             } catch (Exception e) {
                 Debug.Print("Exception when calling A1PolicyManagementApi.getPolicyTypeDefinition: " + e.Message );
@@ -6024,6 +7664,7 @@ policyTypeId = policyTypeId_example # String |  (default to null)
 accept = application/json # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
 
 try:
+    # Get an A1 Policy Type definition (getPolicyTypeDefinition)
     api_response = api_instance.get_policy_type_definition(policyTypeId, accept=accept)
     pprint(api_response)
 except ApiException as e:
@@ -6116,7 +7757,7 @@ Specifies the content type that the client expects to receive in response to the
                             

-
+
@@ -8383,23 +10045,23 @@ $(document).ready(function() {

Responses

-

-

+

+

-
@@ -9462,12 +11124,12 @@ $(document).ready(function() {

getConfiguration

-

+

Get the Application Configuration (getConfiguration)

-

Returns the contents of the application configuration

+

Returns the entire contents of the Application Configuration.


/configuration
@@ -9567,6 +11229,7 @@ public class ConfigurationApiExample { // Create an instance of the API class ConfigurationApi *apiInstance = [[ConfigurationApi alloc] init]; +// Get the Application Configuration (getConfiguration) [apiInstance getConfigurationWithCompletionHandler: ^('String' output, NSError* error) { if (output) { @@ -9580,10 +11243,10 @@ ConfigurationApi *apiInstance = [[ConfigurationApi alloc] init];
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+                              
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementApi.ConfigurationApi()
+var api = new OscA1PolicyManagementApi.ConfigurationApi()
 var callback = function(error, data, response) {
   if (error) {
     console.error(error);
@@ -9616,6 +11279,7 @@ namespace Example
             var apiInstance = new ConfigurationApi();
 
             try {
+                // Get the Application Configuration (getConfiguration)
                 'String' result = apiInstance.getConfiguration();
                 Debug.WriteLine(result);
             } catch (Exception e) {
@@ -9671,6 +11335,7 @@ from pprint import pprint
 api_instance = openapi_client.ConfigurationApi()
 
 try:
+    # Get the Application Configuration (getConfiguration)
     api_response = api_instance.get_configuration()
     pprint(api_response)
 except ApiException as e:
@@ -9863,12 +11528,13 @@ pub fn main() {
                       

putConfiguration

-

+

Set/Replace the Application Configuration (putConfiguration)

-

Replace the current configuration file with the given configuration

+

Replace the current Application Configuration with a new configuration. The new configuration, if accepted, will take effect after a short delay. The new configuration must comply with the Application Configuration schema, which can be found from the the Application Documentation (Developer Guide) +


/configuration
@@ -9894,7 +11560,7 @@ pub fn main() {
curl -X PUT \
- -H "Accept: */*,application/problem+json" \
+ -H "Accept: application/json,application/problem+json" \
  -H "Content-Type: application/json" \
  "https://example.com/a1-policy-management/v1/configuration" \
  -d ''
@@ -9974,6 +11640,7 @@ public class ConfigurationApiExample {
 ConfigurationApi *apiInstance = [[ConfigurationApi alloc] init];
 Object *body = Object; // 
 
+// Set/Replace the Application Configuration (putConfiguration)
 [apiInstance putConfigurationWith:body
               completionHandler: ^(Object output, NSError* error) {
     if (output) {
@@ -9987,10 +11654,10 @@ Object *body = Object; //
                             
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+                              
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementApi.ConfigurationApi()
+var api = new OscA1PolicyManagementApi.ConfigurationApi()
 var body = Object; // {Object} 
 
 var callback = function(error, data, response) {
@@ -10026,6 +11693,7 @@ namespace Example
             var body = Object;  // Object | 
 
             try {
+                // Set/Replace the Application Configuration (putConfiguration)
                 Object result = apiInstance.putConfiguration(body);
                 Debug.WriteLine(result);
             } catch (Exception e) {
@@ -10084,6 +11752,7 @@ api_instance = openapi_client.ConfigurationApi()
 body = Object # Object | 
 
 try:
+    # Set/Replace the Application Configuration (putConfiguration)
     api_response = api_instance.put_configuration(body)
     pprint(api_response)
 except ApiException as e:
@@ -10199,7 +11868,7 @@ $(document).ready(function() {
                                       var schemaWrapper = {
   "description" : "OK - Configuration updated",
   "content" : {
-    "*/*" : {
+    "application/json" : {
       "schema" : {
         "$ref" : "#/components/schemas/void"
       }
@@ -10328,7 +11997,7 @@ $(document).ready(function() {
                       

getStatus

-

+

Get Status (getStatus)

@@ -10359,7 +12028,7 @@ $(document).ready(function() {
curl -X GET \
- -H "Accept: application/json" \
+ -H "Accept: application/json,application/problem+json" \
  "https://example.com/a1-policy-management/v1/status"
 
@@ -10433,6 +12102,7 @@ public class HealthCheckApiExample { // Create an instance of the API class HealthCheckApi *apiInstance = [[HealthCheckApi alloc] init]; +// Get Status (getStatus) [apiInstance getStatusWithCompletionHandler: ^(StatusInfo output, NSError* error) { if (output) { @@ -10446,10 +12116,10 @@ HealthCheckApi *apiInstance = [[HealthCheckApi alloc] init];
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+                              
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementApi.HealthCheckApi()
+var api = new OscA1PolicyManagementApi.HealthCheckApi()
 var callback = function(error, data, response) {
   if (error) {
     console.error(error);
@@ -10482,6 +12152,7 @@ namespace Example
             var apiInstance = new HealthCheckApi();
 
             try {
+                // Get Status (getStatus)
                 StatusInfo result = apiInstance.getStatus();
                 Debug.WriteLine(result);
             } catch (Exception e) {
@@ -10537,6 +12208,7 @@ from pprint import pprint
 api_instance = openapi_client.HealthCheckApi()
 
 try:
+    # Get Status (getStatus)
     api_response = api_instance.get_status()
     pprint(api_response)
 except ApiException as e:
@@ -10651,6 +12323,82 @@ pub fn main() {
                                 
                               
+

+

+ + + + + + +
+
+
+ +
+ +
+

@@ -10661,15 +12409,15 @@ pub fn main() {

getRic

-

Returns info for one Near-RT RIC

+

Get a Near-RT RIC (getRic)

-

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).

+

Get information about a Near-RT RIC


-
/rics/ric
+
/rics/{ricId}

Usage and SDK Samples

@@ -10693,7 +12441,7 @@ pub fn main() {
curl -X GET \
  -H "Accept: application/json,application/problem+json" \
- "https://example.com/a1-policy-management/v1/rics/ric?managedElementId=managedElementId_example&ricId=ricId_example"
+ "https://example.com/a1-policy-management/v1/rics/{ricId}"
 
@@ -10710,12 +12458,11 @@ public class NearRTRICRepositoryApiExample { // Create an instance of the API class NearRTRICRepositoryApi apiInstance = new NearRTRICRepositoryApi(); - String managedElementId = managedElementId_example; // String | The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned. String ricId = ricId_example; // String | The identity of a Near-RT RIC to get information for. String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. try { - RicInfo result = apiInstance.getRic(managedElementId, ricId, accept); + RicInfo result = apiInstance.getRic(ricId, accept); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling NearRTRICRepositoryApi#getRic"); @@ -10731,12 +12478,11 @@ public class NearRTRICRepositoryApiExample { final api_instance = DefaultApi(); -final String managedElementId = new String(); // String | The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned. final String ricId = new String(); // String | The identity of a Near-RT RIC to get information for. final String accept = new String(); // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. try { - final result = await api_instance.getRic(managedElementId, ricId, accept); + final result = await api_instance.getRic(ricId, accept); print(result); } catch (e) { print('Exception when calling DefaultApi->getRic: $e\n'); @@ -10751,12 +12497,11 @@ try { public class NearRTRICRepositoryApiExample { public static void main(String[] args) { NearRTRICRepositoryApi apiInstance = new NearRTRICRepositoryApi(); - String managedElementId = managedElementId_example; // String | The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned. String ricId = ricId_example; // String | The identity of a Near-RT RIC to get information for. String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. try { - RicInfo result = apiInstance.getRic(managedElementId, ricId, accept); + RicInfo result = apiInstance.getRic(ricId, accept); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling NearRTRICRepositoryApi#getRic"); @@ -10774,13 +12519,11 @@ public class NearRTRICRepositoryApiExample { // Create an instance of the API class 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) +String *ricId = ricId_example; // The identity of a Near-RT RIC to get information for. (default to null) String *accept = application/json; // Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null) -// Returns info for one Near-RT RIC -[apiInstance getRicWith:managedElementId - ricId:ricId +// Get a Near-RT RIC (getRic) +[apiInstance getRicWith:ricId accept:accept completionHandler: ^(RicInfo output, NSError* error) { if (output) { @@ -10794,13 +12537,12 @@ String *accept = application/json; // Specifies the content type that the client
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+                              
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementApi.NearRTRICRepositoryApi()
+var api = new OscA1PolicyManagementApi.NearRTRICRepositoryApi()
+var ricId = ricId_example; // {String} The identity of a Near-RT RIC to get information for.
 var opts = {
-  'managedElementId': managedElementId_example, // {String} The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.
-  'ricId': ricId_example, // {String} The identity of a Near-RT RIC to get information for.
   'accept': application/json // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 };
 
@@ -10811,7 +12553,7 @@ var callback = function(error, data, response) {
     console.log('API called successfully. Returned data: ' + data);
   }
 };
-api.getRic(opts, callback);
+api.getRic(ricId, opts, callback);
 
@@ -10834,13 +12576,12 @@ namespace Example // Create an instance of the API class var apiInstance = new NearRTRICRepositoryApi(); - var managedElementId = managedElementId_example; // String | The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned. (optional) (default to null) - var ricId = ricId_example; // String | The identity of a Near-RT RIC to get information for. (optional) (default to null) + var ricId = ricId_example; // String | The identity of a Near-RT RIC to get information for. (default to null) var accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null) try { - // Returns info for one Near-RT RIC - RicInfo result = apiInstance.getRic(managedElementId, ricId, accept); + // Get a Near-RT RIC (getRic) + RicInfo result = apiInstance.getRic(ricId, accept); Debug.WriteLine(result); } catch (Exception e) { Debug.Print("Exception when calling NearRTRICRepositoryApi.getRic: " + e.Message ); @@ -10857,12 +12598,11 @@ require_once(__DIR__ . '/vendor/autoload.php'); // Create an instance of the API class $api_instance = new OpenAPITools\Client\Api\NearRTRICRepositoryApi(); -$managedElementId = managedElementId_example; // String | The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned. $ricId = ricId_example; // String | The identity of a Near-RT RIC to get information for. $accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. try { - $result = $api_instance->getRic($managedElementId, $ricId, $accept); + $result = $api_instance->getRic($ricId, $accept); print_r($result); } catch (Exception $e) { echo 'Exception when calling NearRTRICRepositoryApi->getRic: ', $e->getMessage(), PHP_EOL; @@ -10877,12 +12617,11 @@ use WWW::OPenAPIClient::NearRTRICRepositoryApi; # Create an instance of the API class my $api_instance = WWW::OPenAPIClient::NearRTRICRepositoryApi->new(); -my $managedElementId = managedElementId_example; # String | The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned. my $ricId = ricId_example; # String | The identity of a Near-RT RIC to get information for. my $accept = application/json; # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. eval { - my $result = $api_instance->getRic(managedElementId => $managedElementId, ricId => $ricId, accept => $accept); + my $result = $api_instance->getRic(ricId => $ricId, accept => $accept); print Dumper($result); }; if ($@) { @@ -10899,13 +12638,12 @@ from pprint import pprint # Create an instance of the API class api_instance = openapi_client.NearRTRICRepositoryApi() -managedElementId = managedElementId_example # String | The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned. (optional) (default to null) -ricId = ricId_example # String | The identity of a Near-RT RIC to get information for. (optional) (default to null) +ricId = ricId_example # String | The identity of a Near-RT RIC to get information for. (default to null) accept = application/json # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null) try: - # Returns info for one Near-RT RIC - api_response = api_instance.get_ric(managedElementId=managedElementId, ricId=ricId, accept=accept) + # Get a Near-RT RIC (getRic) + api_response = api_instance.get_ric(ricId, accept=accept) pprint(api_response) except ApiException as e: print("Exception when calling NearRTRICRepositoryApi->getRic: %s\n" % e) @@ -10915,12 +12653,11 @@ except ApiException as e:
extern crate NearRTRICRepositoryApi;
 
 pub fn main() {
-    let managedElementId = managedElementId_example; // String
     let ricId = ricId_example; // String
     let accept = application/json; // String
 
     let mut context = NearRTRICRepositoryApi::Context::default();
-    let result = client.getRic(managedElementId, ricId, accept, &context).wait();
+    let result = client.getRic(ricId, accept, &context).wait();
 
     println!("{:?}", result);
 }
@@ -10935,18 +12672,17 @@ pub fn main() {
 
                           

Parameters

- -
Header parameters
+
Path parameters
- - - - - + + + + + @@ -10964,19 +12703,17 @@ Specifies the content type that the client expects to receive in response to the
NameDescription
Accept
NameDescription
ricId* -
+
@@ -10954,9 +12690,12 @@ pub fn main() {
-Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. +The identity of a Near-RT RIC to get information for.
+
+ Required +
- - -
Query parameters
+
Header parameters
- + - -
Name Description
managedElementId
Accept -
+
@@ -10984,7 +12721,7 @@ Specifies the content type that the client expects to receive in response to the
-The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned. +Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
@@ -10992,27 +12729,10 @@ The identity of a Managed Element. If given, the Near-RT RIC managing the ME is
ricId - +
-
-
-
- - String - -
-The identity of a Near-RT RIC to get information for. -
-
-
-
- - -

Responses

@@ -11179,12 +12899,12 @@ The identity of a Near-RT RIC to get information for.

getRics

-

Query Near-RT RIC information

+

Get Near-RT RICs for A1 Policy Type (getRics)

-

The call returns all Near-RT RICs that supports a given policy type identity

+

Get all Near-RT RICs that supports a given A1 Policy Type ID


/rics
@@ -11228,7 +12948,8 @@ public class NearRTRICRepositoryApiExample { // Create an instance of the API class NearRTRICRepositoryApi apiInstance = new NearRTRICRepositoryApi(); - String policyTypeId = policyTypeId_example; // String | The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned + String policyTypeId = policyTypeId_example; // String | The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned. + String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. try { @@ -11248,7 +12969,8 @@ public class NearRTRICRepositoryApiExample { final api_instance = DefaultApi(); -final String policyTypeId = new String(); // String | The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned +final String policyTypeId = new String(); // String | The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned. + final String accept = new String(); // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. try { @@ -11267,7 +12989,8 @@ try { public class NearRTRICRepositoryApiExample { public static void main(String[] args) { NearRTRICRepositoryApi apiInstance = new NearRTRICRepositoryApi(); - String policyTypeId = policyTypeId_example; // String | The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned + String policyTypeId = policyTypeId_example; // String | The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned. + String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. try { @@ -11289,10 +13012,11 @@ public class NearRTRICRepositoryApiExample { // Create an instance of the API class NearRTRICRepositoryApi *apiInstance = [[NearRTRICRepositoryApi alloc] init]; -String *policyTypeId = policyTypeId_example; // The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned (optional) (default to null) +String *policyTypeId = policyTypeId_example; // The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned. + (optional) (default to null) String *accept = application/json; // Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null) -// Query Near-RT RIC information +// Get Near-RT RICs for A1 Policy Type (getRics) [apiInstance getRicsWith:policyTypeId accept:accept completionHandler: ^(RicInfoList output, NSError* error) { @@ -11307,12 +13031,13 @@ String *accept = application/json; // Specifies the content type that the client
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+                              
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementApi.NearRTRICRepositoryApi()
+var api = new OscA1PolicyManagementApi.NearRTRICRepositoryApi()
 var opts = {
-  'policyTypeId': policyTypeId_example, // {String} The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned
+  'policyTypeId': policyTypeId_example, // {String} The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned.
+
   'accept': application/json // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 };
 
@@ -11346,11 +13071,12 @@ namespace Example
 
             // Create an instance of the API class
             var apiInstance = new NearRTRICRepositoryApi();
-            var policyTypeId = policyTypeId_example;  // String | The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned (optional)  (default to null)
+            var policyTypeId = policyTypeId_example;  // String | The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned.
+ (optional)  (default to null)
             var accept = application/json;  // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional)  (default to null)
 
             try {
-                // Query Near-RT RIC information
+                // Get Near-RT RICs for A1 Policy Type (getRics)
                 RicInfoList result = apiInstance.getRics(policyTypeId, accept);
                 Debug.WriteLine(result);
             } catch (Exception e) {
@@ -11368,7 +13094,8 @@ require_once(__DIR__ . '/vendor/autoload.php');
 
 // Create an instance of the API class
 $api_instance = new OpenAPITools\Client\Api\NearRTRICRepositoryApi();
-$policyTypeId = policyTypeId_example; // String | The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned
+$policyTypeId = policyTypeId_example; // String | The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned.
+
 $accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 try {
@@ -11387,7 +13114,8 @@ use WWW::OPenAPIClient::NearRTRICRepositoryApi;
 
 # Create an instance of the API class
 my $api_instance = WWW::OPenAPIClient::NearRTRICRepositoryApi->new();
-my $policyTypeId = policyTypeId_example; # String | The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned
+my $policyTypeId = policyTypeId_example; # String | The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned.
+
 my $accept = application/json; # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 eval {
@@ -11408,11 +13136,12 @@ from pprint import pprint
 
 # Create an instance of the API class
 api_instance = openapi_client.NearRTRICRepositoryApi()
-policyTypeId = policyTypeId_example # String | The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned (optional) (default to null)
+policyTypeId = policyTypeId_example # String | The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned.
+ (optional) (default to null)
 accept = application/json # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
 
 try:
-    # Query Near-RT RIC information
+    # Get Near-RT RICs for A1 Policy Type (getRics)
     api_response = api_instance.get_rics(policyTypeId=policyTypeId, accept=accept)
     pprint(api_response)
 except ApiException as e:
@@ -11491,7 +13220,8 @@ Specifies the content type that the client expects to receive in response to the
                 
 
                     
-The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned +The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned. +
@@ -11669,12 +13399,13 @@ The identity of a policy type. If given, all Near-RT RICs supporting the policy

deleteService

-

+

Unregister a Service (deleteService)

-

Unregister a service

+

Unregister a registered Service using its service ID. Only registered services can be unregistered. All A1 Policy Instances for the previously registered service will be removed. +


/services/{serviceId}
@@ -11700,7 +13431,7 @@ The identity of a policy type. If given, all Near-RT RICs supporting the policy
curl -X DELETE \
- -H "Accept: */*,application/problem+json" \
+ -H "Accept: application/json,application/problem+json" \
  "https://example.com/a1-policy-management/v1/services/{serviceId}"
 
@@ -11782,6 +13513,7 @@ ServiceRegistryAndSupervisionApi *apiInstance = [[ServiceRegistryAndSupervisionA String *serviceId = serviceId_example; // (default to null) String *accept = application/json; // Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null) +// Unregister a Service (deleteService) [apiInstance deleteServiceWith:serviceId accept:accept completionHandler: ^(Object output, NSError* error) { @@ -11796,10 +13528,10 @@ String *accept = application/json; // Specifies the content type that the client
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+                              
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementApi.ServiceRegistryAndSupervisionApi()
+var api = new OscA1PolicyManagementApi.ServiceRegistryAndSupervisionApi()
 var serviceId = serviceId_example; // {String} 
 var opts = {
   'accept': application/json // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
@@ -11839,6 +13571,7 @@ namespace Example
             var accept = application/json;  // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional)  (default to null)
 
             try {
+                // Unregister a Service (deleteService)
                 Object result = apiInstance.deleteService(serviceId, accept);
                 Debug.WriteLine(result);
             } catch (Exception e) {
@@ -11900,6 +13633,7 @@ serviceId = serviceId_example # String |  (default to null)
 accept = application/json # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
 
 try:
+    # Unregister a Service (deleteService)
     api_response = api_instance.delete_service(serviceId, accept=accept)
     pprint(api_response)
 except ApiException as e:
@@ -12022,7 +13756,7 @@ Specifies the content type that the client expects to receive in response to the
                                       var schemaWrapper = {
   "description" : "No Content - Service unregistered",
   "content" : {
-    "*/*" : {
+    "application/json" : {
       "schema" : {
         "type" : "object"
       }
@@ -12148,12 +13882,13 @@ Specifies the content type that the client expects to receive in response to the
                       

getServices

-

Returns service information

+

Get Services (getServices)

-

Either information about a registered service with given identity or all registered services are returned.

+

Get information about all registered services, or a single registered service. If the service ID of a registered service is included in the query, information about that service is returned. Otherwise Information about all registered is returned. This operation does not retrieve information about unregistered services. +


/services
@@ -12197,7 +13932,7 @@ public class ServiceRegistryAndSupervisionApiExample { // Create an instance of the API class ServiceRegistryAndSupervisionApi apiInstance = new ServiceRegistryAndSupervisionApi(); - String serviceId = serviceId_example; // String | The identity of the service + String serviceId = serviceId_example; // String | The identity of the registered service String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. try { @@ -12217,7 +13952,7 @@ public class ServiceRegistryAndSupervisionApiExample { final api_instance = DefaultApi(); -final String serviceId = new String(); // String | The identity of the service +final String serviceId = new String(); // String | The identity of the registered service final String accept = new String(); // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. try { @@ -12236,7 +13971,7 @@ try { public class ServiceRegistryAndSupervisionApiExample { public static void main(String[] args) { ServiceRegistryAndSupervisionApi apiInstance = new ServiceRegistryAndSupervisionApi(); - String serviceId = serviceId_example; // String | The identity of the service + String serviceId = serviceId_example; // String | The identity of the registered service String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. try { @@ -12258,10 +13993,10 @@ public class ServiceRegistryAndSupervisionApiExample { // Create an instance of the API class ServiceRegistryAndSupervisionApi *apiInstance = [[ServiceRegistryAndSupervisionApi alloc] init]; -String *serviceId = serviceId_example; // The identity of the service (optional) (default to null) +String *serviceId = serviceId_example; // The identity of the registered service (optional) (default to null) String *accept = application/json; // Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null) -// Returns service information +// Get Services (getServices) [apiInstance getServicesWith:serviceId accept:accept completionHandler: ^(ServiceStatusList output, NSError* error) { @@ -12276,12 +14011,12 @@ String *accept = application/json; // Specifies the content type that the client
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+                              
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementApi.ServiceRegistryAndSupervisionApi()
+var api = new OscA1PolicyManagementApi.ServiceRegistryAndSupervisionApi()
 var opts = {
-  'serviceId': serviceId_example, // {String} The identity of the service
+  'serviceId': serviceId_example, // {String} The identity of the registered service
   'accept': application/json // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 };
 
@@ -12315,11 +14050,11 @@ namespace Example
 
             // Create an instance of the API class
             var apiInstance = new ServiceRegistryAndSupervisionApi();
-            var serviceId = serviceId_example;  // String | The identity of the service (optional)  (default to null)
+            var serviceId = serviceId_example;  // String | The identity of the registered service (optional)  (default to null)
             var accept = application/json;  // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional)  (default to null)
 
             try {
-                // Returns service information
+                // Get Services (getServices)
                 ServiceStatusList result = apiInstance.getServices(serviceId, accept);
                 Debug.WriteLine(result);
             } catch (Exception e) {
@@ -12337,7 +14072,7 @@ require_once(__DIR__ . '/vendor/autoload.php');
 
 // Create an instance of the API class
 $api_instance = new OpenAPITools\Client\Api\ServiceRegistryAndSupervisionApi();
-$serviceId = serviceId_example; // String | The identity of the service
+$serviceId = serviceId_example; // String | The identity of the registered service
 $accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 try {
@@ -12356,7 +14091,7 @@ use WWW::OPenAPIClient::ServiceRegistryAndSupervisionApi;
 
 # Create an instance of the API class
 my $api_instance = WWW::OPenAPIClient::ServiceRegistryAndSupervisionApi->new();
-my $serviceId = serviceId_example; # String | The identity of the service
+my $serviceId = serviceId_example; # String | The identity of the registered service
 my $accept = application/json; # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 eval {
@@ -12377,11 +14112,11 @@ from pprint import pprint
 
 # Create an instance of the API class
 api_instance = openapi_client.ServiceRegistryAndSupervisionApi()
-serviceId = serviceId_example # String | The identity of the service (optional) (default to null)
+serviceId = serviceId_example # String | The identity of the registered service (optional) (default to null)
 accept = application/json # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
 
 try:
-    # Returns service information
+    # Get Services (getServices)
     api_response = api_instance.get_services(serviceId=serviceId, accept=accept)
     pprint(api_response)
 except ApiException as e:
@@ -12460,7 +14195,7 @@ Specifies the content type that the client expects to receive in response to the
                 
 
                     
-The identity of the service +The identity of the registered service
@@ -12635,12 +14370,12 @@ The identity of the service

keepAliveService

-

Heartbeat indicates that the service is running

+

Heartbeat message from a service (keepAliveService)

-

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)

+

A registered service should invoke this operation regularly to indicate that it is still alive. If a registered service fails to invoke some operation, or this operation, before the end of a timeout period the service will be deregistered and all its A1 policies wil be removed and the service is deleted. This operation is only intended for registered services. (This timeout can be set or disabled when each service is initially registered). Unregistered services do not need to invoke this operation, since the optional keep-alive monitoring feature can only be enabled for registered services.


/services/{serviceId}/keepalive
@@ -12666,10 +14401,8 @@ The identity of the service
curl -X PUT \
- -H "Accept: */*,application/problem+json" \
- -H "Content-Type: application/json" \
- "https://example.com/a1-policy-management/v1/services/{serviceId}/keepalive" \
- -d ''
+ -H "Accept: application/json,application/problem+json" \
+ "https://example.com/a1-policy-management/v1/services/{serviceId}/keepalive"
 
@@ -12688,10 +14421,9 @@ public class ServiceRegistryAndSupervisionApiExample { ServiceRegistryAndSupervisionApi apiInstance = new ServiceRegistryAndSupervisionApi(); String serviceId = serviceId_example; // String | String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. - String body = body_example; // String | try { - Object result = apiInstance.keepAliveService(serviceId, accept, body); + Object result = apiInstance.keepAliveService(serviceId, accept); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling ServiceRegistryAndSupervisionApi#keepAliveService"); @@ -12709,10 +14441,9 @@ final api_instance = DefaultApi(); final String serviceId = new String(); // String | final String accept = new String(); // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. -final String body = new String(); // String | try { - final result = await api_instance.keepAliveService(serviceId, accept, body); + final result = await api_instance.keepAliveService(serviceId, accept); print(result); } catch (e) { print('Exception when calling DefaultApi->keepAliveService: $e\n'); @@ -12729,10 +14460,9 @@ public class ServiceRegistryAndSupervisionApiExample { ServiceRegistryAndSupervisionApi apiInstance = new ServiceRegistryAndSupervisionApi(); String serviceId = serviceId_example; // String | String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. - String body = body_example; // String | try { - Object result = apiInstance.keepAliveService(serviceId, accept, body); + Object result = apiInstance.keepAliveService(serviceId, accept); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling ServiceRegistryAndSupervisionApi#keepAliveService"); @@ -12752,12 +14482,10 @@ public class ServiceRegistryAndSupervisionApiExample { ServiceRegistryAndSupervisionApi *apiInstance = [[ServiceRegistryAndSupervisionApi alloc] init]; String *serviceId = serviceId_example; // (default to null) String *accept = application/json; // Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null) -String *body = body_example; // (optional) -// Heartbeat indicates that the service is running +// Heartbeat message from a service (keepAliveService) [apiInstance keepAliveServiceWith:serviceId accept:accept - body:body completionHandler: ^(Object output, NSError* error) { if (output) { NSLog(@"%@", output); @@ -12770,14 +14498,13 @@ String *body = body_example; // (optional)
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+                              
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementApi.ServiceRegistryAndSupervisionApi()
+var api = new OscA1PolicyManagementApi.ServiceRegistryAndSupervisionApi()
 var serviceId = serviceId_example; // {String} 
 var opts = {
-  'accept': application/json, // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
-  'body': body_example // {String} 
+  'accept': application/json // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 };
 
 var callback = function(error, data, response) {
@@ -12812,11 +14539,10 @@ namespace Example
             var apiInstance = new ServiceRegistryAndSupervisionApi();
             var serviceId = serviceId_example;  // String |  (default to null)
             var accept = application/json;  // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional)  (default to null)
-            var body = body_example;  // String |  (optional) 
 
             try {
-                // Heartbeat indicates that the service is running
-                Object result = apiInstance.keepAliveService(serviceId, accept, body);
+                // Heartbeat message from a service (keepAliveService)
+                Object result = apiInstance.keepAliveService(serviceId, accept);
                 Debug.WriteLine(result);
             } catch (Exception e) {
                 Debug.Print("Exception when calling ServiceRegistryAndSupervisionApi.keepAliveService: " + e.Message );
@@ -12835,10 +14561,9 @@ require_once(__DIR__ . '/vendor/autoload.php');
 $api_instance = new OpenAPITools\Client\Api\ServiceRegistryAndSupervisionApi();
 $serviceId = serviceId_example; // String | 
 $accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
-$body = body_example; // String | 
 
 try {
-    $result = $api_instance->keepAliveService($serviceId, $accept, $body);
+    $result = $api_instance->keepAliveService($serviceId, $accept);
     print_r($result);
 } catch (Exception $e) {
     echo 'Exception when calling ServiceRegistryAndSupervisionApi->keepAliveService: ', $e->getMessage(), PHP_EOL;
@@ -12855,10 +14580,9 @@ use WWW::OPenAPIClient::ServiceRegistryAndSupervisionApi;
 my $api_instance = WWW::OPenAPIClient::ServiceRegistryAndSupervisionApi->new();
 my $serviceId = serviceId_example; # String | 
 my $accept = application/json; # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
-my $body = WWW::OPenAPIClient::Object::String->new(); # String | 
 
 eval {
-    my $result = $api_instance->keepAliveService(serviceId => $serviceId, accept => $accept, body => $body);
+    my $result = $api_instance->keepAliveService(serviceId => $serviceId, accept => $accept);
     print Dumper($result);
 };
 if ($@) {
@@ -12877,11 +14601,10 @@ from pprint import pprint
 api_instance = openapi_client.ServiceRegistryAndSupervisionApi()
 serviceId = serviceId_example # String |  (default to null)
 accept = application/json # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
-body = body_example # String |  (optional)
 
 try:
-    # Heartbeat indicates that the service is running
-    api_response = api_instance.keep_alive_service(serviceId, accept=accept, body=body)
+    # Heartbeat message from a service (keepAliveService)
+    api_response = api_instance.keep_alive_service(serviceId, accept=accept)
     pprint(api_response)
 except ApiException as e:
     print("Exception when calling ServiceRegistryAndSupervisionApi->keepAliveService: %s\n" % e)
@@ -12893,10 +14616,9 @@ except ApiException as e: pub fn main() { let serviceId = serviceId_example; // String let accept = application/json; // String - let body = body_example; // String let mut context = ServiceRegistryAndSupervisionApi::Context::default(); - let result = client.keepAliveService(serviceId, accept, body, &context).wait(); + let result = client.keepAliveService(serviceId, accept, &context).wait(); println!("{:?}", result); } @@ -12967,54 +14689,6 @@ Specifies the content type that the client expects to receive in response to the -
Body parameters
- - - - - - - - - -
NameDescription
body -

- -
-
@@ -13052,7 +14726,7 @@ $(document).ready(function() { var schemaWrapper = { "description" : "OK - Service supervision timer refreshed, OK", "content" : { - "*/*" : { + "application/json" : { "schema" : { "type" : "object" } @@ -13178,12 +14852,13 @@ $(document).ready(function() {

putService

-

Register a service

+

Register or update a Service (putService)

-

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.

+

Register a single service, or update a previous registration. Service registration is required to get callbacks about available NearRT RICs and to enable supervision of the service's active status. If a registered service becomes inactive, its policies can be automatically deleted. A1 Policy instances can also be created for unregistered services. If an unregistered service is later registered, the service's policies are retained when the service becomes registered. This feature is optional to use. +


/services
@@ -13209,7 +14884,7 @@ $(document).ready(function() {
curl -X PUT \
- -H "Accept: */*,application/problem+json" \
+ -H "Accept: application/json,application/problem+json" \
  -H "Content-Type: application/json" \
  "https://example.com/a1-policy-management/v1/services" \
  -d '{
@@ -13293,7 +14968,7 @@ public class ServiceRegistryAndSupervisionApiExample {
 ServiceRegistryAndSupervisionApi *apiInstance = [[ServiceRegistryAndSupervisionApi alloc] init];
 ServiceRegistrationInfo *serviceRegistrationInfo = ; // 
 
-// Register a service
+// Register or update a Service (putService)
 [apiInstance putServiceWith:serviceRegistrationInfo
               completionHandler: ^(Object output, NSError* error) {
     if (output) {
@@ -13307,10 +14982,10 @@ ServiceRegistrationInfo *serviceRegistrationInfo = ; //
                             
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+                              
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementApi.ServiceRegistryAndSupervisionApi()
+var api = new OscA1PolicyManagementApi.ServiceRegistryAndSupervisionApi()
 var serviceRegistrationInfo = ; // {ServiceRegistrationInfo} 
 
 var callback = function(error, data, response) {
@@ -13346,7 +15021,7 @@ namespace Example
             var serviceRegistrationInfo = new ServiceRegistrationInfo(); // ServiceRegistrationInfo | 
 
             try {
-                // Register a service
+                // Register or update a Service (putService)
                 Object result = apiInstance.putService(serviceRegistrationInfo);
                 Debug.WriteLine(result);
             } catch (Exception e) {
@@ -13405,7 +15080,7 @@ api_instance = openapi_client.ServiceRegistryAndSupervisionApi()
 serviceRegistrationInfo =  # ServiceRegistrationInfo | 
 
 try:
-    # Register a service
+    # Register or update a Service (putService)
     api_response = api_instance.put_service(serviceRegistrationInfo)
     pprint(api_response)
 except ApiException as e:
@@ -13521,7 +15196,7 @@ $(document).ready(function() {
                                       var schemaWrapper = {
   "description" : "OK - Service updated",
   "content" : {
-    "*/*" : {
+    "application/json" : {
       "schema" : {
         "type" : "object"
       }
@@ -13597,7 +15272,7 @@ $(document).ready(function() {
                                       var schemaWrapper = {
   "description" : "Created - Service created",
   "content" : {
-    "*/*" : {
+    "application/json" : {
       "schema" : {
         "type" : "object"
       }
@@ -13724,10 +15399,10 @@ $(document).ready(function() {
           
diff --git a/config/README b/config/README
new file mode 100644
index 0000000..38d4f3d
--- /dev/null
+++ b/config/README
@@ -0,0 +1,44 @@
+The keystore.jks and truststore.jks files are created by using the following commands (note that this is an example):
+
+1) Create a CA certificate and a private key:
+
+openssl genrsa -des3 -out CA-key.pem 2048
+openssl req -new -key CA-key.pem -x509 -days 3600 -out CA-cert.pem
+
+2) Create a keystore with a private key entry that is signed by the CA:
+
+Note: the "your name" must be "localhost" for the unittest to work.
+
+keytool -genkeypair -alias policy_agent -keyalg RSA -keysize 2048 -keystore keystore.jks -validity 3650 -storepass policy_agent
+keytool -certreq -alias policy_agent -file request.csr -keystore keystore.jks -ext san=dns:your.domain.com -storepass policy_agent
+openssl x509 -req -days 3650 -in request.csr -CA CA-cert.pem -CAkey CA-key.pem -CAcreateserial -out ca_signed-cert.pem
+keytool -importcert -alias ca_cert -file CA-cert.pem -keystore keystore.jks -trustcacerts -storepass policy_agent
+keytool -importcert -alias policy_agent -file ca_signed-cert.pem -keystore keystore.jks -trustcacerts -storepass policy_agent
+
+
+3) Create a trust store containing the CA cert (to trust all certs signed by the CA):
+
+keytool -genkeypair -alias not_used -keyalg RSA -keysize 2048 -keystore truststore.jks -validity 3650 -storepass policy_agent
+keytool -importcert -alias ca_cert -file CA-cert.pem -keystore truststore.jks -trustcacerts -storepass policy_agent
+
+
+4) Command for listing of the contents of jks files, examples:
+keytool -list -v -keystore keystore.jks -storepass policy_agent
+keytool -list -v -keystore truststore.jks -storepass policy_agent
+
+## License
+
+ONAP : ccsdk oran
+Copyright (C) 2020-2023 Nordix Foundation. 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.
+
diff --git a/config/application.yaml b/config/application.yaml
index e1f3b5c..4b1dbce 100644
--- a/config/application.yaml
+++ b/config/application.yaml
@@ -3,7 +3,7 @@
 # ONAP : ccsdk oran
 # ================================================================================
 # Copyright (C) 2020-2023 Nordix Foundation. All rights reserved.
-# Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved.
+# Copyright (C) 2024-2025 OpenInfra Foundation Europe. All rights reserved.
 # ================================================================================
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -28,7 +28,7 @@ app:
   # 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,
+  # the config-file-schema-path refers 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.
@@ -58,9 +58,13 @@ app:
     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
+  # Options for schema validation of the policy and policy status. Options: NONE, INFO, WARN, FAIL
+  validate-policy-instance-schema: NONE
 lifecycle:
   timeout-per-shutdown-phase: "20s"
+
 logging:
+  config: ${LOGBACK_CONFIG_FILE:classpath:logback-plain.xml}
   # Reactive logging filter
   reactive-entry-exit-filter-enabled: true
   # Configuration of logging
@@ -103,6 +107,9 @@ otel:
   sdk:
     disabled: ${ONAP_SDK_DISABLED:true}
     south: ${ONAP_TRACING_SOUTHBOUND:true}
+  instrumentation:
+    spring-webflux:
+      enabled: ${ONAP_TRACING_NORTHBOUND:true}
   tracing:
     sampler:
       jaeger_remote:
@@ -114,6 +121,7 @@ server:
   http-port: 8081
   shutdown: "graceful"
   ssl:
+    enabled: true
     key-store-type: JKS
     key-store-password: policy_agent
     key-store: /opt/app/policy-agent/etc/cert/keystore.jks
@@ -147,4 +155,4 @@ spring:
     username: a1pms
     password: mypwd
 springdoc:
-  show-actuator: true
\ No newline at end of file
+  show-actuator: true
diff --git a/config/application_configuration.json b/config/application_configuration.json
index 29d5923..c250570 100644
--- a/config/application_configuration.json
+++ b/config/application_configuration.json
@@ -14,26 +14,26 @@
             "name": "ric1",
             "baseUrl": "http://ric1:8085/",
             "managedElementIds": [
-               "kista_1",
-               "kista_2"
+               "optional_1",
+               "optional_2"
             ]
          },
          {
             "name": "ric2",
-            "baseUrl": "http://localhost:8081/",
+            "baseUrl": "http://ric2:8085/",
             "customAdapterClass": "org.onap.ccsdk.oran.a1policymanagementservice.clients.StdA1ClientVersion2$Factory",
             "managedElementIds": [
-               "kista_3",
-               "kista_4"
+               "optional_3",
+               "optional_4"
             ]
          },
          {
             "name": "ric3",
-            "baseUrl": "http://ric1:8085/",
+            "baseUrl": "http://ric3:8085/",
             "controller": "controller1",
             "managedElementIds": [
-               "kista_5",
-               "kista_6"
+               "optional_5",
+               "optional_6"
             ]
          }
       ]
diff --git a/docs/offeredapis/openapitoolgen/offeredapis/pms-api/index.html b/docs/offeredapis/openapitoolgen/offeredapis/pms-api/index.html
index 247549a..bed148f 100644
--- a/docs/offeredapis/openapitoolgen/offeredapis/pms-api/index.html
+++ b/docs/offeredapis/openapitoolgen/offeredapis/pms-api/index.html
@@ -2,7 +2,7 @@
 
 
   
-  A1 Policy Management Service
+  OSC - A1 Policy Management API
   
   
   
@@ -864,7 +864,7 @@ ul.nav-tabs {
     "detail" : {
       "type" : "string",
       "description" : " A human-readable explanation specific to this occurrence of the problem.",
-      "example" : "Policy type not found"
+      "example" : "A1 Policy Type not found"
     },
     "title" : {
       "type" : "string",
@@ -878,7 +878,12 @@ ul.nav-tabs {
       "example" : 404
     }
   },
-  "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807"
+  "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807",
+  "example" : {
+    "detail" : "A1 Policy Type not found",
+    "title" : "Not Found",
+    "status" : 404
+  }
 };
     defs["input"] = {
   "required" : [ "access_type", "auth_token", "policy_type_id" ],
@@ -895,7 +900,7 @@ ul.nav-tabs {
     },
     "policy_type_id" : {
       "type" : "string",
-      "description" : "Policy type identifier"
+      "description" : "A1 Policy Type identifier"
     }
   },
   "description" : "input"
@@ -952,14 +957,14 @@ ul.nav-tabs {
     },
     "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.",
+      "description" : "If true, the policy is automatically deleted if the targeted Near-RT RIC restarts  or recovers. If false, the A1 Policy Instance remains, and is re-pushed to the targeted  Near-RT RIC after a restart or recovery. If false, the A1 Policy Instance is maintained and  must be deleted separately in the event of Near-RT RIC restart or recovery. Default is false.\n",
       "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.",
+      "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.  If the service is registered, the A1 Policy Instance will be  subject to the same supervision rules as the the service's other policies.\n",
       "default" : ""
     },
     "policy_data" : {
@@ -972,10 +977,19 @@ ul.nav-tabs {
     },
     "policytype_id" : {
       "type" : "string",
-      "description" : "identity of the policy type"
+      "description" : "identity of the A1 Policy Type"
     }
   },
-  "description" : "Information for one A1-P Policy"
+  "description" : "Information for one A1-P Policy",
+  "example" : {
+    "ric_id" : "ric_id",
+    "policy_id" : "policy_id",
+    "transient" : false,
+    "service_id" : "",
+    "policy_data" : "{}",
+    "status_notification_uri" : "status_notification_uri",
+    "policytype_id" : "policytype_id"
+  }
 };
     defs["policy_info_list"] = {
   "type" : "object",
@@ -988,7 +1002,26 @@ ul.nav-tabs {
       }
     }
   },
-  "description" : "List of policy information"
+  "description" : "List of policy information",
+  "example" : {
+    "policies" : [ {
+      "ric_id" : "ric_id",
+      "policy_id" : "policy_id",
+      "transient" : false,
+      "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" : "",
+      "policy_data" : "{}",
+      "status_notification_uri" : "status_notification_uri",
+      "policytype_id" : "policytype_id"
+    } ]
+  }
 };
     defs["policy_status_info"] = {
   "type" : "object",
@@ -1002,31 +1035,41 @@ ul.nav-tabs {
       "description" : "the Policy status"
     }
   },
-  "description" : "Status for one A1-P Policy"
+  "description" : "Status for one A1-P Policy",
+  "example" : {
+    "last_modified" : "last_modified",
+    "status" : "{}"
+  }
 };
     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" : "A1 Policy Type json schema. The schema is a json object following http://json-schema.org/draft-07/schema"
     }
   },
-  "description" : "Contains policy type schema definition"
+  "description" : "Contains A1 Policy Type schema definition",
+  "example" : {
+    "policy_schema" : "{}"
+  }
 };
     defs["policy_type_id_list"] = {
   "type" : "object",
   "properties" : {
     "policytype_ids" : {
       "type" : "array",
-      "description" : "Policy type identities",
+      "description" : "A1 Policy Type identities",
       "items" : {
         "type" : "string",
-        "description" : "Policy type identities"
+        "description" : "A1 Policy Type identities"
       }
     }
   },
-  "description" : "Information about policy types"
+  "description" : "Information about A1 Policy Types",
+  "example" : {
+    "policytype_ids" : [ "policytype_ids", "policytype_ids" ]
+  }
 };
     defs["ric_info"] = {
   "type" : "object",
@@ -1050,14 +1093,20 @@ ul.nav-tabs {
     },
     "policytype_ids" : {
       "type" : "array",
-      "description" : "supported policy types",
+      "description" : "supported A1 Policy Types",
       "items" : {
         "type" : "string",
-        "description" : "supported policy types"
+        "description" : "supported A1 Policy Types"
       }
     }
   },
-  "description" : "Information for a Near-RT RIC"
+  "description" : "Information for a Near-RT RIC",
+  "example" : {
+    "ric_id" : "ric_id",
+    "managed_element_ids" : [ "managed_element_ids", "managed_element_ids" ],
+    "state" : "UNAVAILABLE",
+    "policytype_ids" : [ "policytype_ids", "policytype_ids" ]
+  }
 };
     defs["ric_info_list"] = {
   "type" : "object",
@@ -1070,7 +1119,20 @@ ul.nav-tabs {
       }
     }
   },
-  "description" : "List of Near-RT RIC information"
+  "description" : "List of Near-RT RIC information",
+  "example" : {
+    "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" ]
+    } ]
+  }
 };
     defs["service_callback_info_v2"] = {
   "required" : [ "event_type", "ric_id" ],
@@ -1082,11 +1144,11 @@ ul.nav-tabs {
     },
     "event_type" : {
       "type" : "string",
-      "description" : "values:\nAVAILABLE: the  Near-RT RIC has become available for A1 Policy management",
+      "description" : "values: \n  AVAILABLE: the  Near-RT RIC has become available for A1 Policy management\n",
       "enum" : [ "AVAILABLE" ]
     }
   },
-  "description" : "Information transferred as in Service callbacks (callback_url)"
+  "description" : "Information transferred in Service callbacks, \nif a callback URL was provided for a registered service\n"
 };
     defs["service_registration_info"] = {
   "required" : [ "service_id" ],
@@ -1094,7 +1156,7 @@ ul.nav-tabs {
   "properties" : {
     "callback_url" : {
       "type" : "string",
-      "description" : "callback for notifying of Near-RT RIC state changes"
+      "description" : "Callback for notifying of Near-RT RIC state changes"
     },
     "service_id" : {
       "type" : "string",
@@ -1102,7 +1164,7 @@ ul.nav-tabs {
     },
     "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.",
+      "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.\n",
       "format" : "int64"
     }
   },
@@ -1129,6 +1191,12 @@ ul.nav-tabs {
       "description" : "time since last invocation by the service",
       "format" : "int64"
     }
+  },
+  "example" : {
+    "callback_url" : "callback_url",
+    "service_id" : "service_id",
+    "keep_alive_interval_seconds" : 0,
+    "time_since_last_activity_seconds" : 6
   }
 };
     defs["service_status_list"] = {
@@ -1141,6 +1209,19 @@ ul.nav-tabs {
         "$ref" : "#/components/schemas/service_status"
       }
     }
+  },
+  "example" : {
+    "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
+    } ]
   }
 };
     defs["status_info"] = {
@@ -1150,6 +1231,9 @@ ul.nav-tabs {
       "type" : "string",
       "description" : "status text"
     }
+  },
+  "example" : {
+    "status" : "status"
   }
 };
 
@@ -1240,17 +1324,17 @@ ul.nav-tabs {
       
-

A1 Policy Management Service

+

OSC - A1 Policy Management API

-
var A1PolicyManagementService = require('a1_policy_management_service');
+                              
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.A1PolicyManagementApi()
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
 var policyId = policyId_example; // {String} 
 
 var callback = function(error, data, response) {
@@ -1424,7 +1508,7 @@ namespace Example
             var policyId = policyId_example;  // String |  (default to null)
 
             try {
-                // Delete a policy
+                // Delete an A1 Policy instance (deletePolicy)
                 Object result = apiInstance.deletePolicy(policyId);
                 Debug.WriteLine(result);
             } catch (Exception e) {
@@ -1483,7 +1567,7 @@ api_instance = openapi_client.A1PolicyManagementApi()
 policyId = policyId_example # String |  (default to null)
 
 try:
-    # Delete a policy
+    # Delete an A1 Policy instance (deletePolicy)
     api_response = api_instance.delete_policy(policyId)
     pprint(api_response)
 except ApiException as e:
@@ -1709,12 +1793,12 @@ pub fn main() {
                       

getPolicy

-

+

Get an A1 Policy instance (getPolicy)

-

Returns a policy

+

Get an A1 Policy instance using its policy ID


/a1-policy/v2/policies/{policy_id}
@@ -1818,6 +1902,7 @@ public class A1PolicyManagementApiExample { A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init]; String *policyId = policyId_example; // (default to null) +// Get an A1 Policy instance (getPolicy) [apiInstance getPolicyWith:policyId completionHandler: ^(policy_info output, NSError* error) { if (output) { @@ -1831,10 +1916,10 @@ String *policyId = policyId_example; // (default to null)
-
var A1PolicyManagementService = require('a1_policy_management_service');
+                              
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.A1PolicyManagementApi()
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
 var policyId = policyId_example; // {String} 
 
 var callback = function(error, data, response) {
@@ -1870,6 +1955,7 @@ namespace Example
             var policyId = policyId_example;  // String |  (default to null)
 
             try {
+                // Get an A1 Policy instance (getPolicy)
                 policy_info result = apiInstance.getPolicy(policyId);
                 Debug.WriteLine(result);
             } catch (Exception e) {
@@ -1928,6 +2014,7 @@ api_instance = openapi_client.A1PolicyManagementApi()
 policyId = policyId_example # String |  (default to null)
 
 try:
+    # Get an A1 Policy instance (getPolicy)
     api_response = api_instance.get_policy(policyId)
     pprint(api_response)
 except ApiException as e:
@@ -2146,12 +2233,13 @@ pub fn main() {
                       

getPolicyIds

-

Query policy identities

+

Query A1 Policy Instances (getPolicyIds)

-

Returns a list of A1 policies matching given search criteria. <br>If several query parameters are defined, the policies matching all conditions are returned.

+

Retrieve a list of A1 Policy Instance IDs for policies that match given search criteria. If multiple query parameters are given, the policies matching all conditions are returned. +


/a1-policy/v2/policies
@@ -2195,10 +2283,11 @@ public class A1PolicyManagementApiExample { // Create an instance of the API class A1PolicyManagementApi apiInstance = new A1PolicyManagementApi(); - String policytypeId = policytypeId_example; // String | Select policies of a given policy type identity. + String policytypeId = policytypeId_example; // String | Select policies of a given A1 Policy Type ID. String ricId = ricId_example; // String | Select policies of a given Near-RT RIC identity. - String serviceId = serviceId_example; // String | Select policies owned by a given service. - String typeName = typeName_example; // String | Select policies of types with the given type name (type identity has the format ) + String serviceId = serviceId_example; // String | Select policies owned by a given service. (Both registered and unregistered services) + String typeName = typeName_example; // String | Select policies of types with the given A1 Policy Type name (type names have the format 'typename_version') + try { policy_id_list result = apiInstance.getPolicyIds(policytypeId, ricId, serviceId, typeName); @@ -2217,10 +2306,11 @@ public class A1PolicyManagementApiExample { final api_instance = DefaultApi(); -final String policytypeId = new String(); // String | Select policies of a given policy type identity. +final String policytypeId = new String(); // String | Select policies of a given A1 Policy Type ID. final String ricId = new String(); // String | Select policies of a given Near-RT RIC identity. -final String serviceId = new String(); // String | Select policies owned by a given service. -final String typeName = new String(); // String | Select policies of types with the given type name (type identity has the format ) +final String serviceId = new String(); // String | Select policies owned by a given service. (Both registered and unregistered services) +final String typeName = new String(); // String | Select policies of types with the given A1 Policy Type name (type names have the format 'typename_version') + try { final result = await api_instance.getPolicyIds(policytypeId, ricId, serviceId, typeName); @@ -2238,10 +2328,11 @@ try { public class A1PolicyManagementApiExample { public static void main(String[] args) { A1PolicyManagementApi apiInstance = new A1PolicyManagementApi(); - String policytypeId = policytypeId_example; // String | Select policies of a given policy type identity. + String policytypeId = policytypeId_example; // String | Select policies of a given A1 Policy Type ID. String ricId = ricId_example; // String | Select policies of a given Near-RT RIC identity. - String serviceId = serviceId_example; // String | Select policies owned by a given service. - String typeName = typeName_example; // String | Select policies of types with the given type name (type identity has the format ) + String serviceId = serviceId_example; // String | Select policies owned by a given service. (Both registered and unregistered services) + String typeName = typeName_example; // String | Select policies of types with the given A1 Policy Type name (type names have the format 'typename_version') + try { policy_id_list result = apiInstance.getPolicyIds(policytypeId, ricId, serviceId, typeName); @@ -2262,12 +2353,13 @@ public class A1PolicyManagementApiExample { // Create an instance of the API class A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init]; -String *policytypeId = policytypeId_example; // Select policies of a given policy type identity. (optional) (default to null) +String *policytypeId = policytypeId_example; // Select policies of a given A1 Policy Type ID. (optional) (default to null) String *ricId = ricId_example; // Select policies of a given Near-RT RIC identity. (optional) (default to null) -String *serviceId = serviceId_example; // Select policies owned by a given service. (optional) (default to null) -String *typeName = typeName_example; // Select policies of types with the given type name (type identity has the format ) (optional) (default to null) +String *serviceId = serviceId_example; // Select policies owned by a given service. (Both registered and unregistered services) (optional) (default to null) +String *typeName = typeName_example; // Select policies of types with the given A1 Policy Type name (type names have the format 'typename_version') + (optional) (default to null) -// Query policy identities +// Query A1 Policy Instances (getPolicyIds) [apiInstance getPolicyIdsWith:policytypeId ricId:ricId serviceId:serviceId @@ -2284,15 +2376,16 @@ String *typeName = typeName_example; // Select policies of types with the given
-
var A1PolicyManagementService = require('a1_policy_management_service');
+                              
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.A1PolicyManagementApi()
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
 var opts = {
-  'policytypeId': policytypeId_example, // {String} Select policies of a given policy type identity.
+  'policytypeId': policytypeId_example, // {String} Select policies of a given A1 Policy Type ID.
   'ricId': ricId_example, // {String} Select policies of a given Near-RT RIC identity.
-  'serviceId': serviceId_example, // {String} Select policies owned by a given service.
-  'typeName': typeName_example // {String} Select policies of types with the given type name (type identity has the format )
+  'serviceId': serviceId_example, // {String} Select policies owned by a given service. (Both registered and unregistered services)
+  'typeName': typeName_example // {String} Select policies of types with the given A1 Policy Type name  (type names have the format 'typename_version')
+
 };
 
 var callback = function(error, data, response) {
@@ -2325,13 +2418,14 @@ namespace Example
 
             // Create an instance of the API class
             var apiInstance = new A1PolicyManagementApi();
-            var policytypeId = policytypeId_example;  // String | Select policies of a given policy type identity. (optional)  (default to null)
+            var policytypeId = policytypeId_example;  // String | Select policies of a given A1 Policy Type ID. (optional)  (default to null)
             var ricId = ricId_example;  // String | Select policies of a given Near-RT RIC identity. (optional)  (default to null)
-            var serviceId = serviceId_example;  // String | Select policies owned by a given service. (optional)  (default to null)
-            var typeName = typeName_example;  // String | Select policies of types with the given type name (type identity has the format ) (optional)  (default to null)
+            var serviceId = serviceId_example;  // String | Select policies owned by a given service. (Both registered and unregistered services) (optional)  (default to null)
+            var typeName = typeName_example;  // String | Select policies of types with the given A1 Policy Type name  (type names have the format 'typename_version')
+ (optional)  (default to null)
 
             try {
-                // Query policy identities
+                // Query A1 Policy Instances (getPolicyIds)
                 policy_id_list result = apiInstance.getPolicyIds(policytypeId, ricId, serviceId, typeName);
                 Debug.WriteLine(result);
             } catch (Exception e) {
@@ -2349,10 +2443,11 @@ require_once(__DIR__ . '/vendor/autoload.php');
 
 // Create an instance of the API class
 $api_instance = new OpenAPITools\Client\Api\A1PolicyManagementApi();
-$policytypeId = policytypeId_example; // String | Select policies of a given policy type identity.
+$policytypeId = policytypeId_example; // String | Select policies of a given A1 Policy Type ID.
 $ricId = ricId_example; // String | Select policies of a given Near-RT RIC identity.
-$serviceId = serviceId_example; // String | Select policies owned by a given service.
-$typeName = typeName_example; // String | Select policies of types with the given type name (type identity has the format )
+$serviceId = serviceId_example; // String | Select policies owned by a given service. (Both registered and unregistered services)
+$typeName = typeName_example; // String | Select policies of types with the given A1 Policy Type name  (type names have the format 'typename_version')
+
 
 try {
     $result = $api_instance->getPolicyIds($policytypeId, $ricId, $serviceId, $typeName);
@@ -2370,10 +2465,11 @@ use WWW::OPenAPIClient::A1PolicyManagementApi;
 
 # Create an instance of the API class
 my $api_instance = WWW::OPenAPIClient::A1PolicyManagementApi->new();
-my $policytypeId = policytypeId_example; # String | Select policies of a given policy type identity.
+my $policytypeId = policytypeId_example; # String | Select policies of a given A1 Policy Type ID.
 my $ricId = ricId_example; # String | Select policies of a given Near-RT RIC identity.
-my $serviceId = serviceId_example; # String | Select policies owned by a given service.
-my $typeName = typeName_example; # String | Select policies of types with the given type name (type identity has the format )
+my $serviceId = serviceId_example; # String | Select policies owned by a given service. (Both registered and unregistered services)
+my $typeName = typeName_example; # String | Select policies of types with the given A1 Policy Type name  (type names have the format 'typename_version')
+
 
 eval {
     my $result = $api_instance->getPolicyIds(policytypeId => $policytypeId, ricId => $ricId, serviceId => $serviceId, typeName => $typeName);
@@ -2393,13 +2489,14 @@ from pprint import pprint
 
 # Create an instance of the API class
 api_instance = openapi_client.A1PolicyManagementApi()
-policytypeId = policytypeId_example # String | Select policies of a given policy type identity. (optional) (default to null)
+policytypeId = policytypeId_example # String | Select policies of a given A1 Policy Type ID. (optional) (default to null)
 ricId = ricId_example # String | Select policies of a given Near-RT RIC identity. (optional) (default to null)
-serviceId = serviceId_example # String | Select policies owned by a given service. (optional) (default to null)
-typeName = typeName_example # String | Select policies of types with the given type name (type identity has the format ) (optional) (default to null)
+serviceId = serviceId_example # String | Select policies owned by a given service. (Both registered and unregistered services) (optional) (default to null)
+typeName = typeName_example # String | Select policies of types with the given A1 Policy Type name  (type names have the format 'typename_version')
+ (optional) (default to null)
 
 try:
-    # Query policy identities
+    # Query A1 Policy Instances (getPolicyIds)
     api_response = api_instance.get_policy_ids(policytypeId=policytypeId, ricId=ricId, serviceId=serviceId, typeName=typeName)
     pprint(api_response)
 except ApiException as e:
@@ -2453,7 +2550,7 @@ pub fn main() {
                 
 
                     
-Select policies of a given policy type identity. +Select policies of a given A1 Policy Type ID.
@@ -2493,7 +2590,7 @@ Select policies of a given Near-RT RIC identity.
-Select policies owned by a given service. +Select policies owned by a given service. (Both registered and unregistered services)
@@ -2513,7 +2610,8 @@ Select policies owned by a given service.
-Select policies of types with the given type name (type identity has the format <typename_version>) +Select policies of types with the given A1 Policy Type name (type names have the format 'typename_version') +
@@ -2681,12 +2779,13 @@ Select policies of types with the given type name (type identity has the format

getPolicyInstances

-

Query for A1 policy instances

+

Query for A1 Policy instances (getPolicyInstances)

-

Returns a list of A1 policies matching given search criteria. <br>If several query parameters are defined, the policies matching all conditions are returned.

+

Returns a collection of A1 Policy Instance information for policies that match given search criteria. If several query parameters are defined, the policies matching all conditions are returned. +


/a1-policy/v2/policy-instances
@@ -2730,10 +2829,10 @@ public class A1PolicyManagementApiExample { // Create an instance of the API class A1PolicyManagementApi apiInstance = new A1PolicyManagementApi(); - String policytypeId = policytypeId_example; // String | Select policies with a given type identity. + String policytypeId = policytypeId_example; // String | Select policies with a given A1 Policy Type ID. String ricId = ricId_example; // String | Select policies for a given Near-RT RIC identity. - String serviceId = serviceId_example; // String | Select policies owned by a given service. - String typeName = typeName_example; // String | Select policies of a given type name (type identity has the format ) + String serviceId = serviceId_example; // String | Select policies owned by a given service (registered or unregistered). + String typeName = typeName_example; // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version'). try { policy_info_list result = apiInstance.getPolicyInstances(policytypeId, ricId, serviceId, typeName); @@ -2752,10 +2851,10 @@ public class A1PolicyManagementApiExample { final api_instance = DefaultApi(); -final String policytypeId = new String(); // String | Select policies with a given type identity. +final String policytypeId = new String(); // String | Select policies with a given A1 Policy Type ID. final String ricId = new String(); // String | Select policies for a given Near-RT RIC identity. -final String serviceId = new String(); // String | Select policies owned by a given service. -final String typeName = new String(); // String | Select policies of a given type name (type identity has the format ) +final String serviceId = new String(); // String | Select policies owned by a given service (registered or unregistered). +final String typeName = new String(); // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version'). try { final result = await api_instance.getPolicyInstances(policytypeId, ricId, serviceId, typeName); @@ -2773,10 +2872,10 @@ try { public class A1PolicyManagementApiExample { public static void main(String[] args) { A1PolicyManagementApi apiInstance = new A1PolicyManagementApi(); - String policytypeId = policytypeId_example; // String | Select policies with a given type identity. + String policytypeId = policytypeId_example; // String | Select policies with a given A1 Policy Type ID. String ricId = ricId_example; // String | Select policies for a given Near-RT RIC identity. - String serviceId = serviceId_example; // String | Select policies owned by a given service. - String typeName = typeName_example; // String | Select policies of a given type name (type identity has the format ) + String serviceId = serviceId_example; // String | Select policies owned by a given service (registered or unregistered). + String typeName = typeName_example; // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version'). try { policy_info_list result = apiInstance.getPolicyInstances(policytypeId, ricId, serviceId, typeName); @@ -2797,12 +2896,12 @@ public class A1PolicyManagementApiExample { // Create an instance of the API class A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init]; -String *policytypeId = policytypeId_example; // Select policies with a given type identity. (optional) (default to null) +String *policytypeId = policytypeId_example; // Select policies with a given A1 Policy Type ID. (optional) (default to null) String *ricId = ricId_example; // Select policies for a given Near-RT RIC identity. (optional) (default to null) -String *serviceId = serviceId_example; // Select policies owned by a given service. (optional) (default to null) -String *typeName = typeName_example; // Select policies of a given type name (type identity has the format ) (optional) (default to null) +String *serviceId = serviceId_example; // Select policies owned by a given service (registered or unregistered). (optional) (default to null) +String *typeName = typeName_example; // Select policies of a given A1 Policy Type name (type identity has the format 'typename_version'). (optional) (default to null) -// Query for A1 policy instances +// Query for A1 Policy instances (getPolicyInstances) [apiInstance getPolicyInstancesWith:policytypeId ricId:ricId serviceId:serviceId @@ -2819,15 +2918,15 @@ String *typeName = typeName_example; // Select policies of a given type name (ty
-
var A1PolicyManagementService = require('a1_policy_management_service');
+                              
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementService.A1PolicyManagementApi()
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
 var opts = {
-  'policytypeId': policytypeId_example, // {String} Select policies with a given type identity.
+  'policytypeId': policytypeId_example, // {String} Select policies with a given A1 Policy Type ID.
   'ricId': ricId_example, // {String} Select policies for a given Near-RT RIC identity.
-  'serviceId': serviceId_example, // {String} Select policies owned by a given service.
-  'typeName': typeName_example // {String} Select policies of a given type name (type identity has the format )
+  'serviceId': serviceId_example, // {String} Select policies owned by a given service (registered or unregistered).
+  'typeName': typeName_example // {String} Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
 };
 
 var callback = function(error, data, response) {
@@ -2860,13 +2959,13 @@ namespace Example
 
             // Create an instance of the API class
             var apiInstance = new A1PolicyManagementApi();
-            var policytypeId = policytypeId_example;  // String | Select policies with a given type identity. (optional)  (default to null)
+            var policytypeId = policytypeId_example;  // String | Select policies with a given A1 Policy Type ID. (optional)  (default to null)
             var ricId = ricId_example;  // String | Select policies for a given Near-RT RIC identity. (optional)  (default to null)
-            var serviceId = serviceId_example;  // String | Select policies owned by a given service. (optional)  (default to null)
-            var typeName = typeName_example;  // String | Select policies of a given type name (type identity has the format ) (optional)  (default to null)
+            var serviceId = serviceId_example;  // String | Select policies owned by a given service (registered or unregistered). (optional)  (default to null)
+            var typeName = typeName_example;  // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version'). (optional)  (default to null)
 
             try {
-                // Query for A1 policy instances
+                // Query for A1 Policy instances (getPolicyInstances)
                 policy_info_list result = apiInstance.getPolicyInstances(policytypeId, ricId, serviceId, typeName);
                 Debug.WriteLine(result);
             } catch (Exception e) {
@@ -2884,10 +2983,10 @@ require_once(__DIR__ . '/vendor/autoload.php');
 
 // Create an instance of the API class
 $api_instance = new OpenAPITools\Client\Api\A1PolicyManagementApi();
-$policytypeId = policytypeId_example; // String | Select policies with a given type identity.
+$policytypeId = policytypeId_example; // String | Select policies with a given A1 Policy Type ID.
 $ricId = ricId_example; // String | Select policies for a given Near-RT RIC identity.
-$serviceId = serviceId_example; // String | Select policies owned by a given service.
-$typeName = typeName_example; // String | Select policies of a given type name (type identity has the format )
+$serviceId = serviceId_example; // String | Select policies owned by a given service (registered or unregistered).
+$typeName = typeName_example; // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
 
 try {
     $result = $api_instance->getPolicyInstances($policytypeId, $ricId, $serviceId, $typeName);
@@ -2905,10 +3004,10 @@ use WWW::OPenAPIClient::A1PolicyManagementApi;
 
 # Create an instance of the API class
 my $api_instance = WWW::OPenAPIClient::A1PolicyManagementApi->new();
-my $policytypeId = policytypeId_example; # String | Select policies with a given type identity.
+my $policytypeId = policytypeId_example; # String | Select policies with a given A1 Policy Type ID.
 my $ricId = ricId_example; # String | Select policies for a given Near-RT RIC identity.
-my $serviceId = serviceId_example; # String | Select policies owned by a given service.
-my $typeName = typeName_example; # String | Select policies of a given type name (type identity has the format )
+my $serviceId = serviceId_example; # String | Select policies owned by a given service (registered or unregistered).
+my $typeName = typeName_example; # String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
 
 eval {
     my $result = $api_instance->getPolicyInstances(policytypeId => $policytypeId, ricId => $ricId, serviceId => $serviceId, typeName => $typeName);
@@ -2928,13 +3027,13 @@ from pprint import pprint
 
 # Create an instance of the API class
 api_instance = openapi_client.A1PolicyManagementApi()
-policytypeId = policytypeId_example # String | Select policies with a given type identity. (optional) (default to null)
+policytypeId = policytypeId_example # String | Select policies with a given A1 Policy Type ID. (optional) (default to null)
 ricId = ricId_example # String | Select policies for a given Near-RT RIC identity. (optional) (default to null)
-serviceId = serviceId_example # String | Select policies owned by a given service. (optional) (default to null)
-typeName = typeName_example # String | Select policies of a given type name (type identity has the format ) (optional) (default to null)
+serviceId = serviceId_example # String | Select policies owned by a given service (registered or unregistered). (optional) (default to null)
+typeName = typeName_example # String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version'). (optional) (default to null)
 
 try:
-    # Query for A1 policy instances
+    # Query for A1 Policy instances (getPolicyInstances)
     api_response = api_instance.get_policy_instances(policytypeId=policytypeId, ricId=ricId, serviceId=serviceId, typeName=typeName)
     pprint(api_response)
 except ApiException as e:
@@ -2988,7 +3087,7 @@ pub fn main() {
                 
 
                     
-Select policies with a given type identity. +Select policies with a given A1 Policy Type ID.
@@ -3028,7 +3127,7 @@ Select policies for a given Near-RT RIC identity.
-Select policies owned by a given service. +Select policies owned by a given service (registered or unregistered).
@@ -3048,7 +3147,7 @@ Select policies owned by a given service.
-Select policies of a given type name (type identity has the format <typename_version>) +Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
@@ -3062,7 +3161,7 @@ Select policies of a given type name (type identity has the format <typename_

-
- -
-
-
-
-

deletePolicy

-

Delete a policy

-
-
-
-

-

Deleting the policy using policyId.

+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+
+
+
+
+
+
+

deletePolicy

+

Delete an A1 Policy instance (deletePolicy)

+
+
+
+

+

Delete an existing A1 Policy instance using its policy ID.

+

+
+
/policies/{policyId}
+

+

Usage and SDK Samples

+

+ + +
+
+
curl -X DELETE \
+ -H "Accept: application/problem+json" \
+ "https://example.com/a1-policy-management/v1/policies/{policyId}"
+
+
+
+
import org.openapitools.client.*;
+import org.openapitools.client.auth.*;
+import org.openapitools.client.model.*;
+import org.openapitools.client.api.A1PolicyManagementApi;
+
+import java.io.File;
+import java.util.*;
+
+public class A1PolicyManagementApiExample {
+    public static void main(String[] args) {
+
+        // Create an instance of the API class
+        A1PolicyManagementApi apiInstance = new A1PolicyManagementApi();
+        String policyId = policyId_example; // String | 
+        String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
+
+        try {
+            apiInstance.deletePolicy(policyId, accept);
+        } catch (ApiException e) {
+            System.err.println("Exception when calling A1PolicyManagementApi#deletePolicy");
+            e.printStackTrace();
+        }
+    }
+}
+
+
+ +
+
import 'package:openapi/api.dart';
+
+final api_instance = DefaultApi();
+
+final String policyId = new String(); // String | 
+final String accept = new String(); // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
+
+try {
+    final result = await api_instance.deletePolicy(policyId, accept);
+    print(result);
+} catch (e) {
+    print('Exception when calling DefaultApi->deletePolicy: $e\n');
+}
+
+
+
+ +
+
import org.openapitools.client.api.A1PolicyManagementApi;
+
+public class A1PolicyManagementApiExample {
+    public static void main(String[] args) {
+        A1PolicyManagementApi apiInstance = new A1PolicyManagementApi();
+        String policyId = policyId_example; // String | 
+        String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
+
+        try {
+            apiInstance.deletePolicy(policyId, accept);
+        } catch (ApiException e) {
+            System.err.println("Exception when calling A1PolicyManagementApi#deletePolicy");
+            e.printStackTrace();
+        }
+    }
+}
+
+ +
+

+
+// Create an instance of the API class
+A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init];
+String *policyId = policyId_example; //  (default to null)
+String *accept = application/json; // Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
+
+// Delete an A1 Policy instance (deletePolicy)
+[apiInstance deletePolicyWith:policyId
+    accept:accept
+              completionHandler: ^(NSError* error) {
+    if (error) {
+        NSLog(@"Error: %@", error);
+    }
+}];
+
+
+ +
+
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
+
+// Create an instance of the API class
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
+var policyId = policyId_example; // {String} 
+var opts = {
+  'accept': application/json // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
+};
+
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully.');
+  }
+};
+api.deletePolicy(policyId, opts, callback);
+
+
+ + +
+
using System;
+using System.Diagnostics;
+using Org.OpenAPITools.Api;
+using Org.OpenAPITools.Client;
+using Org.OpenAPITools.Model;
+
+namespace Example
+{
+    public class deletePolicyExample
+    {
+        public void main()
+        {
+
+            // Create an instance of the API class
+            var apiInstance = new A1PolicyManagementApi();
+            var policyId = policyId_example;  // String |  (default to null)
+            var accept = application/json;  // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional)  (default to null)
+
+            try {
+                // Delete an A1 Policy instance (deletePolicy)
+                apiInstance.deletePolicy(policyId, accept);
+            } catch (Exception e) {
+                Debug.Print("Exception when calling A1PolicyManagementApi.deletePolicy: " + e.Message );
+            }
+        }
+    }
+}
+
+
+ +
+
<?php
+require_once(__DIR__ . '/vendor/autoload.php');
+
+// Create an instance of the API class
+$api_instance = new OpenAPITools\Client\Api\A1PolicyManagementApi();
+$policyId = policyId_example; // String | 
+$accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
+
+try {
+    $api_instance->deletePolicy($policyId, $accept);
+} catch (Exception $e) {
+    echo 'Exception when calling A1PolicyManagementApi->deletePolicy: ', $e->getMessage(), PHP_EOL;
+}
+?>
+
+ +
+
use Data::Dumper;
+use WWW::OPenAPIClient::Configuration;
+use WWW::OPenAPIClient::A1PolicyManagementApi;
+
+# Create an instance of the API class
+my $api_instance = WWW::OPenAPIClient::A1PolicyManagementApi->new();
+my $policyId = policyId_example; # String | 
+my $accept = application/json; # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
+
+eval {
+    $api_instance->deletePolicy(policyId => $policyId, accept => $accept);
+};
+if ($@) {
+    warn "Exception when calling A1PolicyManagementApi->deletePolicy: $@\n";
+}
+
+ +
+
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.A1PolicyManagementApi()
+policyId = policyId_example # String |  (default to null)
+accept = application/json # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
+
+try:
+    # Delete an A1 Policy instance (deletePolicy)
+    api_instance.delete_policy(policyId, accept=accept)
+except ApiException as e:
+    print("Exception when calling A1PolicyManagementApi->deletePolicy: %s\n" % e)
+
+ +
+
extern crate A1PolicyManagementApi;
+
+pub fn main() {
+    let policyId = policyId_example; // String
+    let accept = application/json; // String
+
+    let mut context = A1PolicyManagementApi::Context::default();
+    let result = client.deletePolicy(policyId, accept, &context).wait();
+
+    println!("{:?}", result);
+}
+
+
+
+ +

Scopes

+ + +
+ +

Parameters

+ +
Path parameters
+ + + + + + + + + +
NameDescription
policyId* + + +
+
+
+ + String + + +
+
+ Required +
+
+
+
+ +
Header parameters
+ + + + + + + + + +
NameDescription
Accept + + +
+
+
+ + String + + +
+Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. +
+
+
+
+
+ + + + +

Responses

+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+
+
+
+
+
+
+

getPolicy

+

Get an A1 Policy's policy data (getPolicy)

+
+
+
+

+

Get an A1 Policy instance's policy data using its policy ID


-
/policies/{policyId}
+
/policies/{policyId}

Usage and SDK Samples

-
-
curl -X DELETE \
- -H "Accept: application/problem+json" \
+                          
+
curl -X GET \
+ -H "Accept: application/json,application/problem+json" \
  "https://example.com/a1-policy-management/v1/policies/{policyId}"
 
-
+
import org.openapitools.client.*;
 import org.openapitools.client.auth.*;
 import org.openapitools.client.model.*;
@@ -2463,9 +4081,10 @@ public class A1PolicyManagementApiExample {
         String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
         try {
-            apiInstance.deletePolicy(policyId, accept);
+            Object result = apiInstance.getPolicy(policyId, accept);
+            System.out.println(result);
         } catch (ApiException e) {
-            System.err.println("Exception when calling A1PolicyManagementApi#deletePolicy");
+            System.err.println("Exception when calling A1PolicyManagementApi#getPolicy");
             e.printStackTrace();
         }
     }
@@ -2473,7 +4092,7 @@ public class A1PolicyManagementApiExample {
 
-
+
import 'package:openapi/api.dart';
 
 final api_instance = DefaultApi();
@@ -2482,16 +4101,16 @@ final String policyId = new String(); // String |
 final String accept = new String(); // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 try {
-    final result = await api_instance.deletePolicy(policyId, accept);
+    final result = await api_instance.getPolicy(policyId, accept);
     print(result);
 } catch (e) {
-    print('Exception when calling DefaultApi->deletePolicy: $e\n');
+    print('Exception when calling DefaultApi->getPolicy: $e\n');
 }
 
 
-
+
import org.openapitools.client.api.A1PolicyManagementApi;
 
 public class A1PolicyManagementApiExample {
@@ -2501,19 +4120,20 @@ public class A1PolicyManagementApiExample {
         String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
         try {
-            apiInstance.deletePolicy(policyId, accept);
+            Object result = apiInstance.getPolicy(policyId, accept);
+            System.out.println(result);
         } catch (ApiException e) {
-            System.err.println("Exception when calling A1PolicyManagementApi#deletePolicy");
+            System.err.println("Exception when calling A1PolicyManagementApi#getPolicy");
             e.printStackTrace();
         }
     }
 }
-
+

 
 // Create an instance of the API class
@@ -2521,10 +4141,13 @@ A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init];
 String *policyId = policyId_example; //  (default to null)
 String *accept = application/json; // Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
 
-// Delete a policy
-[apiInstance deletePolicyWith:policyId
+// Get an A1 Policy's policy data (getPolicy)
+[apiInstance getPolicyWith:policyId
     accept:accept
-              completionHandler: ^(NSError* error) {
+              completionHandler: ^(Object output, NSError* error) {
+    if (output) {
+        NSLog(@"%@", output);
+    }
     if (error) {
         NSLog(@"Error: %@", error);
     }
@@ -2532,11 +4155,11 @@ String *accept = application/json; // Specifies the content type that the client
 
-
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+                            
+
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementApi.A1PolicyManagementApi()
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
 var policyId = policyId_example; // {String} 
 var opts = {
   'accept': application/json // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
@@ -2546,17 +4169,17 @@ var callback = function(error, data, response) {
   if (error) {
     console.error(error);
   } else {
-    console.log('API called successfully.');
+    console.log('API called successfully. Returned data: ' + data);
   }
 };
-api.deletePolicy(policyId, opts, callback);
+api.getPolicy(policyId, opts, callback);
 
- -
+
using System;
 using System.Diagnostics;
 using Org.OpenAPITools.Api;
@@ -2565,7 +4188,7 @@ using Org.OpenAPITools.Model;
 
 namespace Example
 {
-    public class deletePolicyExample
+    public class getPolicyExample
     {
         public void main()
         {
@@ -2576,10 +4199,11 @@ namespace Example
             var accept = application/json;  // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional)  (default to null)
 
             try {
-                // Delete a policy
-                apiInstance.deletePolicy(policyId, accept);
+                // Get an A1 Policy's policy data (getPolicy)
+                Object result = apiInstance.getPolicy(policyId, accept);
+                Debug.WriteLine(result);
             } catch (Exception e) {
-                Debug.Print("Exception when calling A1PolicyManagementApi.deletePolicy: " + e.Message );
+                Debug.Print("Exception when calling A1PolicyManagementApi.getPolicy: " + e.Message );
             }
         }
     }
@@ -2587,7 +4211,7 @@ namespace Example
 
-
+
<?php
 require_once(__DIR__ . '/vendor/autoload.php');
 
@@ -2597,14 +4221,15 @@ $policyId = policyId_example; // String |
 $accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 try {
-    $api_instance->deletePolicy($policyId, $accept);
+    $result = $api_instance->getPolicy($policyId, $accept);
+    print_r($result);
 } catch (Exception $e) {
-    echo 'Exception when calling A1PolicyManagementApi->deletePolicy: ', $e->getMessage(), PHP_EOL;
+    echo 'Exception when calling A1PolicyManagementApi->getPolicy: ', $e->getMessage(), PHP_EOL;
 }
 ?>
-
+
use Data::Dumper;
 use WWW::OPenAPIClient::Configuration;
 use WWW::OPenAPIClient::A1PolicyManagementApi;
@@ -2615,14 +4240,15 @@ my $policyId = policyId_example; # String |
 my $accept = application/json; # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 eval {
-    $api_instance->deletePolicy(policyId => $policyId, accept => $accept);
+    my $result = $api_instance->getPolicy(policyId => $policyId, accept => $accept);
+    print Dumper($result);
 };
 if ($@) {
-    warn "Exception when calling A1PolicyManagementApi->deletePolicy: $@\n";
+    warn "Exception when calling A1PolicyManagementApi->getPolicy: $@\n";
 }
-
+
from __future__ import print_statement
 import time
 import openapi_client
@@ -2635,13 +4261,14 @@ policyId = policyId_example # String |  (default to null)
 accept = application/json # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
 
 try:
-    # Delete a policy
-    api_instance.delete_policy(policyId, accept=accept)
+    # Get an A1 Policy's policy data (getPolicy)
+    api_response = api_instance.get_policy(policyId, accept=accept)
+    pprint(api_response)
 except ApiException as e:
-    print("Exception when calling A1PolicyManagementApi->deletePolicy: %s\n" % e)
+ print("Exception when calling A1PolicyManagementApi->getPolicy: %s\n" % e)
-
+
extern crate A1PolicyManagementApi;
 
 pub fn main() {
@@ -2649,7 +4276,7 @@ pub fn main() {
     let accept = application/json; // String
 
     let mut context = A1PolicyManagementApi::Context::default();
-    let result = client.deletePolicy(policyId, accept, &context).wait();
+    let result = client.getPolicy(policyId, accept, &context).wait();
 
     println!("{:?}", result);
 }
@@ -2674,7 +4301,7 @@ pub fn main() {
 
 
 
-    
+
@@ -2702,7 +4329,7 @@ pub fn main() { -
+
@@ -2724,33 +4351,50 @@ Specifies the content type that the client expects to receive in response to the

Responses

-

-

+

+

-

-
-
+
+
-

getAllPolicies

-

Query policy identities

+

getPolicyIds

+

Query for A1 Policy instances (getPolicyIds)

-

Returns a list of A1 policies matching given search criteria. <br>If several query parameters are defined, the policies matching all conditions are returned.

+

Returns a collection of A1 Policy Instance IDs for policies that match given search criteria. If several query parameters are defined, the policies matching all conditions are returned. +


/policies
@@ -3497,29 +5137,29 @@ Specifies the content type that the client expects to receive in response to the

Usage and SDK Samples

-
+
curl -X GET \
  -H "Accept: application/json,application/problem+json" \
  "https://example.com/a1-policy-management/v1/policies?policyTypeId=policyTypeId_example&nearRtRicId=nearRtRicId_example&serviceId=serviceId_example&typeName=typeName_example"
 
-
+
import org.openapitools.client.*;
 import org.openapitools.client.auth.*;
 import org.openapitools.client.model.*;
@@ -3533,17 +5173,17 @@ public class A1PolicyManagementApiExample {
 
         // Create an instance of the API class
         A1PolicyManagementApi apiInstance = new A1PolicyManagementApi();
-        String policyTypeId = policyTypeId_example; // String | Select policies of a given policy type identity.
-        String nearRtRicId = nearRtRicId_example; // String | Select policies of a given Near-RT RIC identity.
-        String serviceId = serviceId_example; // String | Select policies owned by a given service.
-        String typeName = typeName_example; // String | Select policies of types with the given type name (type identity has the format )
+        String policyTypeId = policyTypeId_example; // String | Select policies with a given A1 Policy Type ID.
+        String nearRtRicId = nearRtRicId_example; // String | Select policies for a given Near-RT RIC identity.
+        String serviceId = serviceId_example; // String | Select policies owned by a given service (registered or unregistered).
+        String typeName = typeName_example; // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
         String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
         try {
-            array[PolicyInformation] result = apiInstance.getAllPolicies(policyTypeId, nearRtRicId, serviceId, typeName, accept);
+            array[PolicyInformation] result = apiInstance.getPolicyIds(policyTypeId, nearRtRicId, serviceId, typeName, accept);
             System.out.println(result);
         } catch (ApiException e) {
-            System.err.println("Exception when calling A1PolicyManagementApi#getAllPolicies");
+            System.err.println("Exception when calling A1PolicyManagementApi#getPolicyIds");
             e.printStackTrace();
         }
     }
@@ -3551,66 +5191,66 @@ public class A1PolicyManagementApiExample {
 
-
+
import 'package:openapi/api.dart';
 
 final api_instance = DefaultApi();
 
-final String policyTypeId = new String(); // String | Select policies of a given policy type identity.
-final String nearRtRicId = new String(); // String | Select policies of a given Near-RT RIC identity.
-final String serviceId = new String(); // String | Select policies owned by a given service.
-final String typeName = new String(); // String | Select policies of types with the given type name (type identity has the format )
+final String policyTypeId = new String(); // String | Select policies with a given A1 Policy Type ID.
+final String nearRtRicId = new String(); // String | Select policies for a given Near-RT RIC identity.
+final String serviceId = new String(); // String | Select policies owned by a given service (registered or unregistered).
+final String typeName = new String(); // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
 final String accept = new String(); // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 try {
-    final result = await api_instance.getAllPolicies(policyTypeId, nearRtRicId, serviceId, typeName, accept);
+    final result = await api_instance.getPolicyIds(policyTypeId, nearRtRicId, serviceId, typeName, accept);
     print(result);
 } catch (e) {
-    print('Exception when calling DefaultApi->getAllPolicies: $e\n');
+    print('Exception when calling DefaultApi->getPolicyIds: $e\n');
 }
 
 
-
+
import org.openapitools.client.api.A1PolicyManagementApi;
 
 public class A1PolicyManagementApiExample {
     public static void main(String[] args) {
         A1PolicyManagementApi apiInstance = new A1PolicyManagementApi();
-        String policyTypeId = policyTypeId_example; // String | Select policies of a given policy type identity.
-        String nearRtRicId = nearRtRicId_example; // String | Select policies of a given Near-RT RIC identity.
-        String serviceId = serviceId_example; // String | Select policies owned by a given service.
-        String typeName = typeName_example; // String | Select policies of types with the given type name (type identity has the format )
+        String policyTypeId = policyTypeId_example; // String | Select policies with a given A1 Policy Type ID.
+        String nearRtRicId = nearRtRicId_example; // String | Select policies for a given Near-RT RIC identity.
+        String serviceId = serviceId_example; // String | Select policies owned by a given service (registered or unregistered).
+        String typeName = typeName_example; // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
         String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
         try {
-            array[PolicyInformation] result = apiInstance.getAllPolicies(policyTypeId, nearRtRicId, serviceId, typeName, accept);
+            array[PolicyInformation] result = apiInstance.getPolicyIds(policyTypeId, nearRtRicId, serviceId, typeName, accept);
             System.out.println(result);
         } catch (ApiException e) {
-            System.err.println("Exception when calling A1PolicyManagementApi#getAllPolicies");
+            System.err.println("Exception when calling A1PolicyManagementApi#getPolicyIds");
             e.printStackTrace();
         }
     }
 }
-
+

 
 // Create an instance of the API class
 A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init];
-String *policyTypeId = policyTypeId_example; // Select policies of a given policy type identity. (optional) (default to null)
-String *nearRtRicId = nearRtRicId_example; // Select policies of a given Near-RT RIC identity. (optional) (default to null)
-String *serviceId = serviceId_example; // Select policies owned by a given service. (optional) (default to null)
-String *typeName = typeName_example; // Select policies of types with the given type name (type identity has the format ) (optional) (default to null)
+String *policyTypeId = policyTypeId_example; // Select policies with a given A1 Policy Type ID. (optional) (default to null)
+String *nearRtRicId = nearRtRicId_example; // Select policies for a given Near-RT RIC identity. (optional) (default to null)
+String *serviceId = serviceId_example; // Select policies owned by a given service (registered or unregistered). (optional) (default to null)
+String *typeName = typeName_example; // Select policies of a given A1 Policy Type name (type identity has the format 'typename_version'). (optional) (default to null)
 String *accept = application/json; // Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
 
-// Query policy identities
-[apiInstance getAllPoliciesWith:policyTypeId
+// Query for A1 Policy instances (getPolicyIds)
+[apiInstance getPolicyIdsWith:policyTypeId
     nearRtRicId:nearRtRicId
     serviceId:serviceId
     typeName:typeName
@@ -3626,16 +5266,16 @@ String *accept = application/json; // Specifies the content type that the client
 
-
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+                            
+
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementApi.A1PolicyManagementApi()
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
 var opts = {
-  'policyTypeId': policyTypeId_example, // {String} Select policies of a given policy type identity.
-  'nearRtRicId': nearRtRicId_example, // {String} Select policies of a given Near-RT RIC identity.
-  'serviceId': serviceId_example, // {String} Select policies owned by a given service.
-  'typeName': typeName_example, // {String} Select policies of types with the given type name (type identity has the format )
+  'policyTypeId': policyTypeId_example, // {String} Select policies with a given A1 Policy Type ID.
+  'nearRtRicId': nearRtRicId_example, // {String} Select policies for a given Near-RT RIC identity.
+  'serviceId': serviceId_example, // {String} Select policies owned by a given service (registered or unregistered).
+  'typeName': typeName_example, // {String} Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
   'accept': application/json // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 };
 
@@ -3646,14 +5286,14 @@ var callback = function(error, data, response) {
     console.log('API called successfully. Returned data: ' + data);
   }
 };
-api.getAllPolicies(opts, callback);
+api.getPolicyIds(opts, callback);
 
- -
+
using System;
 using System.Diagnostics;
 using Org.OpenAPITools.Api;
@@ -3662,25 +5302,25 @@ using Org.OpenAPITools.Model;
 
 namespace Example
 {
-    public class getAllPoliciesExample
+    public class getPolicyIdsExample
     {
         public void main()
         {
 
             // Create an instance of the API class
             var apiInstance = new A1PolicyManagementApi();
-            var policyTypeId = policyTypeId_example;  // String | Select policies of a given policy type identity. (optional)  (default to null)
-            var nearRtRicId = nearRtRicId_example;  // String | Select policies of a given Near-RT RIC identity. (optional)  (default to null)
-            var serviceId = serviceId_example;  // String | Select policies owned by a given service. (optional)  (default to null)
-            var typeName = typeName_example;  // String | Select policies of types with the given type name (type identity has the format ) (optional)  (default to null)
+            var policyTypeId = policyTypeId_example;  // String | Select policies with a given A1 Policy Type ID. (optional)  (default to null)
+            var nearRtRicId = nearRtRicId_example;  // String | Select policies for a given Near-RT RIC identity. (optional)  (default to null)
+            var serviceId = serviceId_example;  // String | Select policies owned by a given service (registered or unregistered). (optional)  (default to null)
+            var typeName = typeName_example;  // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version'). (optional)  (default to null)
             var accept = application/json;  // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional)  (default to null)
 
             try {
-                // Query policy identities
-                array[PolicyInformation] result = apiInstance.getAllPolicies(policyTypeId, nearRtRicId, serviceId, typeName, accept);
+                // Query for A1 Policy instances (getPolicyIds)
+                array[PolicyInformation] result = apiInstance.getPolicyIds(policyTypeId, nearRtRicId, serviceId, typeName, accept);
                 Debug.WriteLine(result);
             } catch (Exception e) {
-                Debug.Print("Exception when calling A1PolicyManagementApi.getAllPolicies: " + e.Message );
+                Debug.Print("Exception when calling A1PolicyManagementApi.getPolicyIds: " + e.Message );
             }
         }
     }
@@ -3688,50 +5328,50 @@ namespace Example
 
-
+
<?php
 require_once(__DIR__ . '/vendor/autoload.php');
 
 // Create an instance of the API class
 $api_instance = new OpenAPITools\Client\Api\A1PolicyManagementApi();
-$policyTypeId = policyTypeId_example; // String | Select policies of a given policy type identity.
-$nearRtRicId = nearRtRicId_example; // String | Select policies of a given Near-RT RIC identity.
-$serviceId = serviceId_example; // String | Select policies owned by a given service.
-$typeName = typeName_example; // String | Select policies of types with the given type name (type identity has the format )
+$policyTypeId = policyTypeId_example; // String | Select policies with a given A1 Policy Type ID.
+$nearRtRicId = nearRtRicId_example; // String | Select policies for a given Near-RT RIC identity.
+$serviceId = serviceId_example; // String | Select policies owned by a given service (registered or unregistered).
+$typeName = typeName_example; // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
 $accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 try {
-    $result = $api_instance->getAllPolicies($policyTypeId, $nearRtRicId, $serviceId, $typeName, $accept);
+    $result = $api_instance->getPolicyIds($policyTypeId, $nearRtRicId, $serviceId, $typeName, $accept);
     print_r($result);
 } catch (Exception $e) {
-    echo 'Exception when calling A1PolicyManagementApi->getAllPolicies: ', $e->getMessage(), PHP_EOL;
+    echo 'Exception when calling A1PolicyManagementApi->getPolicyIds: ', $e->getMessage(), PHP_EOL;
 }
 ?>
-
+
use Data::Dumper;
 use WWW::OPenAPIClient::Configuration;
 use WWW::OPenAPIClient::A1PolicyManagementApi;
 
 # Create an instance of the API class
 my $api_instance = WWW::OPenAPIClient::A1PolicyManagementApi->new();
-my $policyTypeId = policyTypeId_example; # String | Select policies of a given policy type identity.
-my $nearRtRicId = nearRtRicId_example; # String | Select policies of a given Near-RT RIC identity.
-my $serviceId = serviceId_example; # String | Select policies owned by a given service.
-my $typeName = typeName_example; # String | Select policies of types with the given type name (type identity has the format )
+my $policyTypeId = policyTypeId_example; # String | Select policies with a given A1 Policy Type ID.
+my $nearRtRicId = nearRtRicId_example; # String | Select policies for a given Near-RT RIC identity.
+my $serviceId = serviceId_example; # String | Select policies owned by a given service (registered or unregistered).
+my $typeName = typeName_example; # String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
 my $accept = application/json; # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 eval {
-    my $result = $api_instance->getAllPolicies(policyTypeId => $policyTypeId, nearRtRicId => $nearRtRicId, serviceId => $serviceId, typeName => $typeName, accept => $accept);
+    my $result = $api_instance->getPolicyIds(policyTypeId => $policyTypeId, nearRtRicId => $nearRtRicId, serviceId => $serviceId, typeName => $typeName, accept => $accept);
     print Dumper($result);
 };
 if ($@) {
-    warn "Exception when calling A1PolicyManagementApi->getAllPolicies: $@\n";
+    warn "Exception when calling A1PolicyManagementApi->getPolicyIds: $@\n";
 }
-
+
from __future__ import print_statement
 import time
 import openapi_client
@@ -3740,21 +5380,21 @@ from pprint import pprint
 
 # Create an instance of the API class
 api_instance = openapi_client.A1PolicyManagementApi()
-policyTypeId = policyTypeId_example # String | Select policies of a given policy type identity. (optional) (default to null)
-nearRtRicId = nearRtRicId_example # String | Select policies of a given Near-RT RIC identity. (optional) (default to null)
-serviceId = serviceId_example # String | Select policies owned by a given service. (optional) (default to null)
-typeName = typeName_example # String | Select policies of types with the given type name (type identity has the format ) (optional) (default to null)
+policyTypeId = policyTypeId_example # String | Select policies with a given A1 Policy Type ID. (optional) (default to null)
+nearRtRicId = nearRtRicId_example # String | Select policies for a given Near-RT RIC identity. (optional) (default to null)
+serviceId = serviceId_example # String | Select policies owned by a given service (registered or unregistered). (optional) (default to null)
+typeName = typeName_example # String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version'). (optional) (default to null)
 accept = application/json # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
 
 try:
-    # Query policy identities
-    api_response = api_instance.get_all_policies(policyTypeId=policyTypeId, nearRtRicId=nearRtRicId, serviceId=serviceId, typeName=typeName, accept=accept)
+    # Query for A1 Policy instances (getPolicyIds)
+    api_response = api_instance.get_policy_ids(policyTypeId=policyTypeId, nearRtRicId=nearRtRicId, serviceId=serviceId, typeName=typeName, accept=accept)
     pprint(api_response)
 except ApiException as e:
-    print("Exception when calling A1PolicyManagementApi->getAllPolicies: %s\n" % e)
+ print("Exception when calling A1PolicyManagementApi->getPolicyIds: %s\n" % e)
-
+
extern crate A1PolicyManagementApi;
 
 pub fn main() {
@@ -3765,7 +5405,7 @@ pub fn main() {
     let accept = application/json; // String
 
     let mut context = A1PolicyManagementApi::Context::default();
-    let result = client.getAllPolicies(policyTypeId, nearRtRicId, serviceId, typeName, accept, &context).wait();
+    let result = client.getPolicyIds(policyTypeId, nearRtRicId, serviceId, typeName, accept, &context).wait();
 
     println!("{:?}", result);
 }
@@ -3791,7 +5431,7 @@ pub fn main() {
 
 
 
-    
+
@@ -3821,7 +5461,7 @@ Specifies the content type that the client expects to receive in response to the -
+
@@ -3829,7 +5469,7 @@ Specifies the content type that the client expects to receive in response to the
-Select policies of a given policy type identity. +Select policies with a given A1 Policy Type ID.
@@ -3841,7 +5481,7 @@ Select policies of a given policy type identity. -
+
@@ -3849,7 +5489,7 @@ Select policies of a given policy type identity.
-Select policies of a given Near-RT RIC identity. +Select policies for a given Near-RT RIC identity.
@@ -3861,7 +5501,7 @@ Select policies of a given Near-RT RIC identity. -
+
@@ -3869,7 +5509,7 @@ Select policies of a given Near-RT RIC identity.
-Select policies owned by a given service. +Select policies owned by a given service (registered or unregistered).
@@ -3881,7 +5521,7 @@ Select policies owned by a given service. -
+
@@ -3889,7 +5529,7 @@ Select policies owned by a given service.
-Select policies of types with the given type name (type identity has the format <typename_version>) +Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
@@ -3900,23 +5540,23 @@ Select policies of types with the given type name (type identity has the format

Responses

-

-

+

+

-

-
-
+
+
-

getPolicy

-

+

getPolicyStatus

+

Get an A1 Policy Instance's status (getPolicyStatus)

-

Returns a policy

+

Retrieve the status information for an A1 Policy Instance using its policy ID.


-
/policies/{policyId}
+
/policies/{policyId}/status

Usage and SDK Samples

-
+
curl -X GET \
  -H "Accept: application/json,application/problem+json" \
- "https://example.com/a1-policy-management/v1/policies/{policyId}"
+ "https://example.com/a1-policy-management/v1/policies/{policyId}/status"
 
-
+
import org.openapitools.client.*;
 import org.openapitools.client.auth.*;
 import org.openapitools.client.model.*;
@@ -4723,10 +6363,10 @@ public class A1PolicyManagementApiExample {
         String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
         try {
-            Object result = apiInstance.getPolicy(policyId, accept);
+            Object result = apiInstance.getPolicyStatus(policyId, accept);
             System.out.println(result);
         } catch (ApiException e) {
-            System.err.println("Exception when calling A1PolicyManagementApi#getPolicy");
+            System.err.println("Exception when calling A1PolicyManagementApi#getPolicyStatus");
             e.printStackTrace();
         }
     }
@@ -4734,7 +6374,7 @@ public class A1PolicyManagementApiExample {
 
-
+
import 'package:openapi/api.dart';
 
 final api_instance = DefaultApi();
@@ -4743,16 +6383,16 @@ final String policyId = new String(); // String |
 final String accept = new String(); // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 try {
-    final result = await api_instance.getPolicy(policyId, accept);
+    final result = await api_instance.getPolicyStatus(policyId, accept);
     print(result);
 } catch (e) {
-    print('Exception when calling DefaultApi->getPolicy: $e\n');
+    print('Exception when calling DefaultApi->getPolicyStatus: $e\n');
 }
 
 
-
+
import org.openapitools.client.api.A1PolicyManagementApi;
 
 public class A1PolicyManagementApiExample {
@@ -4762,20 +6402,20 @@ public class A1PolicyManagementApiExample {
         String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
         try {
-            Object result = apiInstance.getPolicy(policyId, accept);
+            Object result = apiInstance.getPolicyStatus(policyId, accept);
             System.out.println(result);
         } catch (ApiException e) {
-            System.err.println("Exception when calling A1PolicyManagementApi#getPolicy");
+            System.err.println("Exception when calling A1PolicyManagementApi#getPolicyStatus");
             e.printStackTrace();
         }
     }
 }
-
+

 
 // Create an instance of the API class
@@ -4783,7 +6423,8 @@ A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init];
 String *policyId = policyId_example; //  (default to null)
 String *accept = application/json; // Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
 
-[apiInstance getPolicyWith:policyId
+// Get an A1 Policy Instance's status (getPolicyStatus)
+[apiInstance getPolicyStatusWith:policyId
     accept:accept
               completionHandler: ^(Object output, NSError* error) {
     if (output) {
@@ -4796,11 +6437,11 @@ String *accept = application/json; // Specifies the content type that the client
 
-
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+                            
+
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementApi.A1PolicyManagementApi()
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
 var policyId = policyId_example; // {String} 
 var opts = {
   'accept': application/json // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
@@ -4813,14 +6454,14 @@ var callback = function(error, data, response) {
     console.log('API called successfully. Returned data: ' + data);
   }
 };
-api.getPolicy(policyId, opts, callback);
+api.getPolicyStatus(policyId, opts, callback);
 
- -
+
using System;
 using System.Diagnostics;
 using Org.OpenAPITools.Api;
@@ -4829,7 +6470,7 @@ using Org.OpenAPITools.Model;
 
 namespace Example
 {
-    public class getPolicyExample
+    public class getPolicyStatusExample
     {
         public void main()
         {
@@ -4840,10 +6481,11 @@ namespace Example
             var accept = application/json;  // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional)  (default to null)
 
             try {
-                Object result = apiInstance.getPolicy(policyId, accept);
+                // Get an A1 Policy Instance's status (getPolicyStatus)
+                Object result = apiInstance.getPolicyStatus(policyId, accept);
                 Debug.WriteLine(result);
             } catch (Exception e) {
-                Debug.Print("Exception when calling A1PolicyManagementApi.getPolicy: " + e.Message );
+                Debug.Print("Exception when calling A1PolicyManagementApi.getPolicyStatus: " + e.Message );
             }
         }
     }
@@ -4851,7 +6493,7 @@ namespace Example
 
-
+
<?php
 require_once(__DIR__ . '/vendor/autoload.php');
 
@@ -4861,15 +6503,15 @@ $policyId = policyId_example; // String |
 $accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 try {
-    $result = $api_instance->getPolicy($policyId, $accept);
+    $result = $api_instance->getPolicyStatus($policyId, $accept);
     print_r($result);
 } catch (Exception $e) {
-    echo 'Exception when calling A1PolicyManagementApi->getPolicy: ', $e->getMessage(), PHP_EOL;
+    echo 'Exception when calling A1PolicyManagementApi->getPolicyStatus: ', $e->getMessage(), PHP_EOL;
 }
 ?>
-
+
use Data::Dumper;
 use WWW::OPenAPIClient::Configuration;
 use WWW::OPenAPIClient::A1PolicyManagementApi;
@@ -4880,15 +6522,15 @@ my $policyId = policyId_example; # String |
 my $accept = application/json; # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 eval {
-    my $result = $api_instance->getPolicy(policyId => $policyId, accept => $accept);
+    my $result = $api_instance->getPolicyStatus(policyId => $policyId, accept => $accept);
     print Dumper($result);
 };
 if ($@) {
-    warn "Exception when calling A1PolicyManagementApi->getPolicy: $@\n";
+    warn "Exception when calling A1PolicyManagementApi->getPolicyStatus: $@\n";
 }
-
+
from __future__ import print_statement
 import time
 import openapi_client
@@ -4901,13 +6543,14 @@ policyId = policyId_example # String |  (default to null)
 accept = application/json # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
 
 try:
-    api_response = api_instance.get_policy(policyId, accept=accept)
+    # Get an A1 Policy Instance's status (getPolicyStatus)
+    api_response = api_instance.get_policy_status(policyId, accept=accept)
     pprint(api_response)
 except ApiException as e:
-    print("Exception when calling A1PolicyManagementApi->getPolicy: %s\n" % e)
+ print("Exception when calling A1PolicyManagementApi->getPolicyStatus: %s\n" % e)
-
+
extern crate A1PolicyManagementApi;
 
 pub fn main() {
@@ -4915,7 +6558,7 @@ pub fn main() {
     let accept = application/json; // String
 
     let mut context = A1PolicyManagementApi::Context::default();
-    let result = client.getPolicy(policyId, accept, &context).wait();
+    let result = client.getPolicyStatus(policyId, accept, &context).wait();
 
     println!("{:?}", result);
 }
@@ -4940,7 +6583,7 @@ pub fn main() {
 
 
 
-    
+
@@ -4968,7 +6611,7 @@ pub fn main() { -
+
@@ -4990,23 +6633,23 @@ Specifies the content type that the client expects to receive in response to the

Responses

-

-

+

+

-
@@ -5762,12 +7400,12 @@ Specifies the content type that the client expects to receive in response to the

getPolicyTypeDefinition

-

+

Get an A1 Policy Type definition (getPolicyTypeDefinition)

-

Returns a policy type definition

+

Get an A1 Policy Type definition using its policy type ID


/policy-types/{policyTypeId}
@@ -5815,7 +7453,7 @@ public class A1PolicyManagementApiExample { String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. try { - Object result = apiInstance.getPolicyTypeDefinition(policyTypeId, accept); + PolicyTypeObject result = apiInstance.getPolicyTypeDefinition(policyTypeId, accept); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling A1PolicyManagementApi#getPolicyTypeDefinition"); @@ -5854,7 +7492,7 @@ public class A1PolicyManagementApiExample { String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. try { - Object result = apiInstance.getPolicyTypeDefinition(policyTypeId, accept); + PolicyTypeObject result = apiInstance.getPolicyTypeDefinition(policyTypeId, accept); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling A1PolicyManagementApi#getPolicyTypeDefinition"); @@ -5875,9 +7513,10 @@ A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init]; String *policyTypeId = policyTypeId_example; // (default to null) String *accept = application/json; // Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null) +// Get an A1 Policy Type definition (getPolicyTypeDefinition) [apiInstance getPolicyTypeDefinitionWith:policyTypeId accept:accept - completionHandler: ^(Object output, NSError* error) { + completionHandler: ^(PolicyTypeObject output, NSError* error) { if (output) { NSLog(@"%@", output); } @@ -5889,10 +7528,10 @@ String *accept = application/json; // Specifies the content type that the client
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+                              
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementApi.A1PolicyManagementApi()
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
 var policyTypeId = policyTypeId_example; // {String} 
 var opts = {
   'accept': application/json // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
@@ -5932,7 +7571,8 @@ namespace Example
             var accept = application/json;  // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional)  (default to null)
 
             try {
-                Object result = apiInstance.getPolicyTypeDefinition(policyTypeId, accept);
+                // Get an A1 Policy Type definition (getPolicyTypeDefinition)
+                PolicyTypeObject result = apiInstance.getPolicyTypeDefinition(policyTypeId, accept);
                 Debug.WriteLine(result);
             } catch (Exception e) {
                 Debug.Print("Exception when calling A1PolicyManagementApi.getPolicyTypeDefinition: " + e.Message );
@@ -5993,6 +7633,7 @@ policyTypeId = policyTypeId_example # String |  (default to null)
 accept = application/json # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
 
 try:
+    # Get an A1 Policy Type definition (getPolicyTypeDefinition)
     api_response = api_instance.get_policy_type_definition(policyTypeId, accept=accept)
     pprint(api_response)
 except ApiException as e:
@@ -6085,7 +7726,7 @@ Specifies the content type that the client expects to receive in response to the
                             

-
+
@@ -8352,23 +10014,23 @@ $(document).ready(function() {

Responses

-

-

+

+

-
@@ -9429,10 +11091,10 @@ $(document).ready(function() { diff --git a/docs/offeredapis/openapitoolgen/offeredapis/pms-api/v3/index.html b/docs/offeredapis/openapitoolgen/offeredapis/pms-api/v3/index.html index 6404c06..e032a50 100644 --- a/docs/offeredapis/openapitoolgen/offeredapis/pms-api/v3/index.html +++ b/docs/offeredapis/openapitoolgen/offeredapis/pms-api/v3/index.html @@ -2,7 +2,7 @@ - A1 policy management API + OSC - A1 Policy Management API @@ -844,26 +844,12 @@ ul.nav-tabs { -
-
-
-
-
-
-

deletePolicy

-

Delete a policy

-
-
-
-

-

Deleting the policy using policyId.

+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+
+
+
+
+
+
+

deletePolicy

+

Delete an A1 Policy instance (deletePolicy)

+
+
+
+

+

Delete an existing A1 Policy instance using its policy ID.

+

+
+
/policies/{policyId}
+

+

Usage and SDK Samples

+

+ + +
+
+
curl -X DELETE \
+ -H "Accept: application/problem+json" \
+ "https://example.com/a1-policy-management/v1/policies/{policyId}"
+
+
+
+
import org.openapitools.client.*;
+import org.openapitools.client.auth.*;
+import org.openapitools.client.model.*;
+import org.openapitools.client.api.A1PolicyManagementApi;
+
+import java.io.File;
+import java.util.*;
+
+public class A1PolicyManagementApiExample {
+    public static void main(String[] args) {
+
+        // Create an instance of the API class
+        A1PolicyManagementApi apiInstance = new A1PolicyManagementApi();
+        String policyId = policyId_example; // String | 
+        String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
+
+        try {
+            apiInstance.deletePolicy(policyId, accept);
+        } catch (ApiException e) {
+            System.err.println("Exception when calling A1PolicyManagementApi#deletePolicy");
+            e.printStackTrace();
+        }
+    }
+}
+
+
+ +
+
import 'package:openapi/api.dart';
+
+final api_instance = DefaultApi();
+
+final String policyId = new String(); // String | 
+final String accept = new String(); // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
+
+try {
+    final result = await api_instance.deletePolicy(policyId, accept);
+    print(result);
+} catch (e) {
+    print('Exception when calling DefaultApi->deletePolicy: $e\n');
+}
+
+
+
+ +
+
import org.openapitools.client.api.A1PolicyManagementApi;
+
+public class A1PolicyManagementApiExample {
+    public static void main(String[] args) {
+        A1PolicyManagementApi apiInstance = new A1PolicyManagementApi();
+        String policyId = policyId_example; // String | 
+        String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
+
+        try {
+            apiInstance.deletePolicy(policyId, accept);
+        } catch (ApiException e) {
+            System.err.println("Exception when calling A1PolicyManagementApi#deletePolicy");
+            e.printStackTrace();
+        }
+    }
+}
+
+ +
+

+
+// Create an instance of the API class
+A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init];
+String *policyId = policyId_example; //  (default to null)
+String *accept = application/json; // Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
+
+// Delete an A1 Policy instance (deletePolicy)
+[apiInstance deletePolicyWith:policyId
+    accept:accept
+              completionHandler: ^(NSError* error) {
+    if (error) {
+        NSLog(@"Error: %@", error);
+    }
+}];
+
+
+ +
+
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
+
+// Create an instance of the API class
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
+var policyId = policyId_example; // {String} 
+var opts = {
+  'accept': application/json // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
+};
+
+var callback = function(error, data, response) {
+  if (error) {
+    console.error(error);
+  } else {
+    console.log('API called successfully.');
+  }
+};
+api.deletePolicy(policyId, opts, callback);
+
+
+ + +
+
using System;
+using System.Diagnostics;
+using Org.OpenAPITools.Api;
+using Org.OpenAPITools.Client;
+using Org.OpenAPITools.Model;
+
+namespace Example
+{
+    public class deletePolicyExample
+    {
+        public void main()
+        {
+
+            // Create an instance of the API class
+            var apiInstance = new A1PolicyManagementApi();
+            var policyId = policyId_example;  // String |  (default to null)
+            var accept = application/json;  // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional)  (default to null)
+
+            try {
+                // Delete an A1 Policy instance (deletePolicy)
+                apiInstance.deletePolicy(policyId, accept);
+            } catch (Exception e) {
+                Debug.Print("Exception when calling A1PolicyManagementApi.deletePolicy: " + e.Message );
+            }
+        }
+    }
+}
+
+
+ +
+
<?php
+require_once(__DIR__ . '/vendor/autoload.php');
+
+// Create an instance of the API class
+$api_instance = new OpenAPITools\Client\Api\A1PolicyManagementApi();
+$policyId = policyId_example; // String | 
+$accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
+
+try {
+    $api_instance->deletePolicy($policyId, $accept);
+} catch (Exception $e) {
+    echo 'Exception when calling A1PolicyManagementApi->deletePolicy: ', $e->getMessage(), PHP_EOL;
+}
+?>
+
+ +
+
use Data::Dumper;
+use WWW::OPenAPIClient::Configuration;
+use WWW::OPenAPIClient::A1PolicyManagementApi;
+
+# Create an instance of the API class
+my $api_instance = WWW::OPenAPIClient::A1PolicyManagementApi->new();
+my $policyId = policyId_example; # String | 
+my $accept = application/json; # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
+
+eval {
+    $api_instance->deletePolicy(policyId => $policyId, accept => $accept);
+};
+if ($@) {
+    warn "Exception when calling A1PolicyManagementApi->deletePolicy: $@\n";
+}
+
+ +
+
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.A1PolicyManagementApi()
+policyId = policyId_example # String |  (default to null)
+accept = application/json # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
+
+try:
+    # Delete an A1 Policy instance (deletePolicy)
+    api_instance.delete_policy(policyId, accept=accept)
+except ApiException as e:
+    print("Exception when calling A1PolicyManagementApi->deletePolicy: %s\n" % e)
+
+ +
+
extern crate A1PolicyManagementApi;
+
+pub fn main() {
+    let policyId = policyId_example; // String
+    let accept = application/json; // String
+
+    let mut context = A1PolicyManagementApi::Context::default();
+    let result = client.deletePolicy(policyId, accept, &context).wait();
+
+    println!("{:?}", result);
+}
+
+
+
+ +

Scopes

+ + +
+ +

Parameters

+ +
Path parameters
+ + + + + + + + + +
NameDescription
policyId* + + +
+
+
+ + String + + +
+
+ Required +
+
+
+
+ +
Header parameters
+ + + + + + + + + +
NameDescription
Accept + + +
+
+
+ + String + + +
+Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. +
+
+
+
+
+ + + + +

Responses

+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+

+

+ + + + + + +
+
+
+ +
+ +
+
+
+
+
+
+
+
+

getPolicy

+

Get an A1 Policy's policy data (getPolicy)

+
+
+
+

+

Get an A1 Policy instance's policy data using its policy ID


-
/policies/{policyId}
+
/policies/{policyId}

Usage and SDK Samples

-

-

-
-
+
+
-

getAllPolicies

-

Query policy identities

+

getPolicyIds

+

Query for A1 Policy instances (getPolicyIds)

-

Returns a list of A1 policies matching given search criteria. <br>If several query parameters are defined, the policies matching all conditions are returned.

+

Returns a collection of A1 Policy Instance IDs for policies that match given search criteria. If several query parameters are defined, the policies matching all conditions are returned. +


/policies
@@ -3528,29 +5168,29 @@ Specifies the content type that the client expects to receive in response to the

Usage and SDK Samples

-
+
curl -X GET \
  -H "Accept: application/json,application/problem+json" \
  "https://example.com/a1-policy-management/v1/policies?policyTypeId=policyTypeId_example&nearRtRicId=nearRtRicId_example&serviceId=serviceId_example&typeName=typeName_example"
 
-
+
import org.openapitools.client.*;
 import org.openapitools.client.auth.*;
 import org.openapitools.client.model.*;
@@ -3564,17 +5204,17 @@ public class A1PolicyManagementApiExample {
 
         // Create an instance of the API class
         A1PolicyManagementApi apiInstance = new A1PolicyManagementApi();
-        String policyTypeId = policyTypeId_example; // String | Select policies of a given policy type identity.
-        String nearRtRicId = nearRtRicId_example; // String | Select policies of a given Near-RT RIC identity.
-        String serviceId = serviceId_example; // String | Select policies owned by a given service.
-        String typeName = typeName_example; // String | Select policies of types with the given type name (type identity has the format )
+        String policyTypeId = policyTypeId_example; // String | Select policies with a given A1 Policy Type ID.
+        String nearRtRicId = nearRtRicId_example; // String | Select policies for a given Near-RT RIC identity.
+        String serviceId = serviceId_example; // String | Select policies owned by a given service (registered or unregistered).
+        String typeName = typeName_example; // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
         String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
         try {
-            array[PolicyInformation] result = apiInstance.getAllPolicies(policyTypeId, nearRtRicId, serviceId, typeName, accept);
+            array[PolicyInformation] result = apiInstance.getPolicyIds(policyTypeId, nearRtRicId, serviceId, typeName, accept);
             System.out.println(result);
         } catch (ApiException e) {
-            System.err.println("Exception when calling A1PolicyManagementApi#getAllPolicies");
+            System.err.println("Exception when calling A1PolicyManagementApi#getPolicyIds");
             e.printStackTrace();
         }
     }
@@ -3582,66 +5222,66 @@ public class A1PolicyManagementApiExample {
 
-
+
import 'package:openapi/api.dart';
 
 final api_instance = DefaultApi();
 
-final String policyTypeId = new String(); // String | Select policies of a given policy type identity.
-final String nearRtRicId = new String(); // String | Select policies of a given Near-RT RIC identity.
-final String serviceId = new String(); // String | Select policies owned by a given service.
-final String typeName = new String(); // String | Select policies of types with the given type name (type identity has the format )
+final String policyTypeId = new String(); // String | Select policies with a given A1 Policy Type ID.
+final String nearRtRicId = new String(); // String | Select policies for a given Near-RT RIC identity.
+final String serviceId = new String(); // String | Select policies owned by a given service (registered or unregistered).
+final String typeName = new String(); // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
 final String accept = new String(); // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 try {
-    final result = await api_instance.getAllPolicies(policyTypeId, nearRtRicId, serviceId, typeName, accept);
+    final result = await api_instance.getPolicyIds(policyTypeId, nearRtRicId, serviceId, typeName, accept);
     print(result);
 } catch (e) {
-    print('Exception when calling DefaultApi->getAllPolicies: $e\n');
+    print('Exception when calling DefaultApi->getPolicyIds: $e\n');
 }
 
 
-
+
import org.openapitools.client.api.A1PolicyManagementApi;
 
 public class A1PolicyManagementApiExample {
     public static void main(String[] args) {
         A1PolicyManagementApi apiInstance = new A1PolicyManagementApi();
-        String policyTypeId = policyTypeId_example; // String | Select policies of a given policy type identity.
-        String nearRtRicId = nearRtRicId_example; // String | Select policies of a given Near-RT RIC identity.
-        String serviceId = serviceId_example; // String | Select policies owned by a given service.
-        String typeName = typeName_example; // String | Select policies of types with the given type name (type identity has the format )
+        String policyTypeId = policyTypeId_example; // String | Select policies with a given A1 Policy Type ID.
+        String nearRtRicId = nearRtRicId_example; // String | Select policies for a given Near-RT RIC identity.
+        String serviceId = serviceId_example; // String | Select policies owned by a given service (registered or unregistered).
+        String typeName = typeName_example; // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
         String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
         try {
-            array[PolicyInformation] result = apiInstance.getAllPolicies(policyTypeId, nearRtRicId, serviceId, typeName, accept);
+            array[PolicyInformation] result = apiInstance.getPolicyIds(policyTypeId, nearRtRicId, serviceId, typeName, accept);
             System.out.println(result);
         } catch (ApiException e) {
-            System.err.println("Exception when calling A1PolicyManagementApi#getAllPolicies");
+            System.err.println("Exception when calling A1PolicyManagementApi#getPolicyIds");
             e.printStackTrace();
         }
     }
 }
-
+

 
 // Create an instance of the API class
 A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init];
-String *policyTypeId = policyTypeId_example; // Select policies of a given policy type identity. (optional) (default to null)
-String *nearRtRicId = nearRtRicId_example; // Select policies of a given Near-RT RIC identity. (optional) (default to null)
-String *serviceId = serviceId_example; // Select policies owned by a given service. (optional) (default to null)
-String *typeName = typeName_example; // Select policies of types with the given type name (type identity has the format ) (optional) (default to null)
+String *policyTypeId = policyTypeId_example; // Select policies with a given A1 Policy Type ID. (optional) (default to null)
+String *nearRtRicId = nearRtRicId_example; // Select policies for a given Near-RT RIC identity. (optional) (default to null)
+String *serviceId = serviceId_example; // Select policies owned by a given service (registered or unregistered). (optional) (default to null)
+String *typeName = typeName_example; // Select policies of a given A1 Policy Type name (type identity has the format 'typename_version'). (optional) (default to null)
 String *accept = application/json; // Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
 
-// Query policy identities
-[apiInstance getAllPoliciesWith:policyTypeId
+// Query for A1 Policy instances (getPolicyIds)
+[apiInstance getPolicyIdsWith:policyTypeId
     nearRtRicId:nearRtRicId
     serviceId:serviceId
     typeName:typeName
@@ -3657,16 +5297,16 @@ String *accept = application/json; // Specifies the content type that the client
 
-
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+                            
+
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementApi.A1PolicyManagementApi()
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
 var opts = {
-  'policyTypeId': policyTypeId_example, // {String} Select policies of a given policy type identity.
-  'nearRtRicId': nearRtRicId_example, // {String} Select policies of a given Near-RT RIC identity.
-  'serviceId': serviceId_example, // {String} Select policies owned by a given service.
-  'typeName': typeName_example, // {String} Select policies of types with the given type name (type identity has the format )
+  'policyTypeId': policyTypeId_example, // {String} Select policies with a given A1 Policy Type ID.
+  'nearRtRicId': nearRtRicId_example, // {String} Select policies for a given Near-RT RIC identity.
+  'serviceId': serviceId_example, // {String} Select policies owned by a given service (registered or unregistered).
+  'typeName': typeName_example, // {String} Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
   'accept': application/json // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 };
 
@@ -3677,14 +5317,14 @@ var callback = function(error, data, response) {
     console.log('API called successfully. Returned data: ' + data);
   }
 };
-api.getAllPolicies(opts, callback);
+api.getPolicyIds(opts, callback);
 
- -
+
using System;
 using System.Diagnostics;
 using Org.OpenAPITools.Api;
@@ -3693,25 +5333,25 @@ using Org.OpenAPITools.Model;
 
 namespace Example
 {
-    public class getAllPoliciesExample
+    public class getPolicyIdsExample
     {
         public void main()
         {
 
             // Create an instance of the API class
             var apiInstance = new A1PolicyManagementApi();
-            var policyTypeId = policyTypeId_example;  // String | Select policies of a given policy type identity. (optional)  (default to null)
-            var nearRtRicId = nearRtRicId_example;  // String | Select policies of a given Near-RT RIC identity. (optional)  (default to null)
-            var serviceId = serviceId_example;  // String | Select policies owned by a given service. (optional)  (default to null)
-            var typeName = typeName_example;  // String | Select policies of types with the given type name (type identity has the format ) (optional)  (default to null)
+            var policyTypeId = policyTypeId_example;  // String | Select policies with a given A1 Policy Type ID. (optional)  (default to null)
+            var nearRtRicId = nearRtRicId_example;  // String | Select policies for a given Near-RT RIC identity. (optional)  (default to null)
+            var serviceId = serviceId_example;  // String | Select policies owned by a given service (registered or unregistered). (optional)  (default to null)
+            var typeName = typeName_example;  // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version'). (optional)  (default to null)
             var accept = application/json;  // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional)  (default to null)
 
             try {
-                // Query policy identities
-                array[PolicyInformation] result = apiInstance.getAllPolicies(policyTypeId, nearRtRicId, serviceId, typeName, accept);
+                // Query for A1 Policy instances (getPolicyIds)
+                array[PolicyInformation] result = apiInstance.getPolicyIds(policyTypeId, nearRtRicId, serviceId, typeName, accept);
                 Debug.WriteLine(result);
             } catch (Exception e) {
-                Debug.Print("Exception when calling A1PolicyManagementApi.getAllPolicies: " + e.Message );
+                Debug.Print("Exception when calling A1PolicyManagementApi.getPolicyIds: " + e.Message );
             }
         }
     }
@@ -3719,50 +5359,50 @@ namespace Example
 
-
+
<?php
 require_once(__DIR__ . '/vendor/autoload.php');
 
 // Create an instance of the API class
 $api_instance = new OpenAPITools\Client\Api\A1PolicyManagementApi();
-$policyTypeId = policyTypeId_example; // String | Select policies of a given policy type identity.
-$nearRtRicId = nearRtRicId_example; // String | Select policies of a given Near-RT RIC identity.
-$serviceId = serviceId_example; // String | Select policies owned by a given service.
-$typeName = typeName_example; // String | Select policies of types with the given type name (type identity has the format )
+$policyTypeId = policyTypeId_example; // String | Select policies with a given A1 Policy Type ID.
+$nearRtRicId = nearRtRicId_example; // String | Select policies for a given Near-RT RIC identity.
+$serviceId = serviceId_example; // String | Select policies owned by a given service (registered or unregistered).
+$typeName = typeName_example; // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
 $accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 try {
-    $result = $api_instance->getAllPolicies($policyTypeId, $nearRtRicId, $serviceId, $typeName, $accept);
+    $result = $api_instance->getPolicyIds($policyTypeId, $nearRtRicId, $serviceId, $typeName, $accept);
     print_r($result);
 } catch (Exception $e) {
-    echo 'Exception when calling A1PolicyManagementApi->getAllPolicies: ', $e->getMessage(), PHP_EOL;
+    echo 'Exception when calling A1PolicyManagementApi->getPolicyIds: ', $e->getMessage(), PHP_EOL;
 }
 ?>
-
+
use Data::Dumper;
 use WWW::OPenAPIClient::Configuration;
 use WWW::OPenAPIClient::A1PolicyManagementApi;
 
 # Create an instance of the API class
 my $api_instance = WWW::OPenAPIClient::A1PolicyManagementApi->new();
-my $policyTypeId = policyTypeId_example; # String | Select policies of a given policy type identity.
-my $nearRtRicId = nearRtRicId_example; # String | Select policies of a given Near-RT RIC identity.
-my $serviceId = serviceId_example; # String | Select policies owned by a given service.
-my $typeName = typeName_example; # String | Select policies of types with the given type name (type identity has the format )
+my $policyTypeId = policyTypeId_example; # String | Select policies with a given A1 Policy Type ID.
+my $nearRtRicId = nearRtRicId_example; # String | Select policies for a given Near-RT RIC identity.
+my $serviceId = serviceId_example; # String | Select policies owned by a given service (registered or unregistered).
+my $typeName = typeName_example; # String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
 my $accept = application/json; # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 eval {
-    my $result = $api_instance->getAllPolicies(policyTypeId => $policyTypeId, nearRtRicId => $nearRtRicId, serviceId => $serviceId, typeName => $typeName, accept => $accept);
+    my $result = $api_instance->getPolicyIds(policyTypeId => $policyTypeId, nearRtRicId => $nearRtRicId, serviceId => $serviceId, typeName => $typeName, accept => $accept);
     print Dumper($result);
 };
 if ($@) {
-    warn "Exception when calling A1PolicyManagementApi->getAllPolicies: $@\n";
+    warn "Exception when calling A1PolicyManagementApi->getPolicyIds: $@\n";
 }
-
+
from __future__ import print_statement
 import time
 import openapi_client
@@ -3771,21 +5411,21 @@ from pprint import pprint
 
 # Create an instance of the API class
 api_instance = openapi_client.A1PolicyManagementApi()
-policyTypeId = policyTypeId_example # String | Select policies of a given policy type identity. (optional) (default to null)
-nearRtRicId = nearRtRicId_example # String | Select policies of a given Near-RT RIC identity. (optional) (default to null)
-serviceId = serviceId_example # String | Select policies owned by a given service. (optional) (default to null)
-typeName = typeName_example # String | Select policies of types with the given type name (type identity has the format ) (optional) (default to null)
+policyTypeId = policyTypeId_example # String | Select policies with a given A1 Policy Type ID. (optional) (default to null)
+nearRtRicId = nearRtRicId_example # String | Select policies for a given Near-RT RIC identity. (optional) (default to null)
+serviceId = serviceId_example # String | Select policies owned by a given service (registered or unregistered). (optional) (default to null)
+typeName = typeName_example # String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version'). (optional) (default to null)
 accept = application/json # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
 
 try:
-    # Query policy identities
-    api_response = api_instance.get_all_policies(policyTypeId=policyTypeId, nearRtRicId=nearRtRicId, serviceId=serviceId, typeName=typeName, accept=accept)
+    # Query for A1 Policy instances (getPolicyIds)
+    api_response = api_instance.get_policy_ids(policyTypeId=policyTypeId, nearRtRicId=nearRtRicId, serviceId=serviceId, typeName=typeName, accept=accept)
     pprint(api_response)
 except ApiException as e:
-    print("Exception when calling A1PolicyManagementApi->getAllPolicies: %s\n" % e)
+ print("Exception when calling A1PolicyManagementApi->getPolicyIds: %s\n" % e)
-
+
extern crate A1PolicyManagementApi;
 
 pub fn main() {
@@ -3796,7 +5436,7 @@ pub fn main() {
     let accept = application/json; // String
 
     let mut context = A1PolicyManagementApi::Context::default();
-    let result = client.getAllPolicies(policyTypeId, nearRtRicId, serviceId, typeName, accept, &context).wait();
+    let result = client.getPolicyIds(policyTypeId, nearRtRicId, serviceId, typeName, accept, &context).wait();
 
     println!("{:?}", result);
 }
@@ -3822,7 +5462,7 @@ pub fn main() {
 
 
 
-    
+
@@ -3852,7 +5492,7 @@ Specifies the content type that the client expects to receive in response to the -
+
@@ -3860,7 +5500,7 @@ Specifies the content type that the client expects to receive in response to the
-Select policies of a given policy type identity. +Select policies with a given A1 Policy Type ID.
@@ -3872,7 +5512,7 @@ Select policies of a given policy type identity. -
+
@@ -3880,7 +5520,7 @@ Select policies of a given policy type identity.
-Select policies of a given Near-RT RIC identity. +Select policies for a given Near-RT RIC identity.
@@ -3892,7 +5532,7 @@ Select policies of a given Near-RT RIC identity. -
+
@@ -3900,7 +5540,7 @@ Select policies of a given Near-RT RIC identity.
-Select policies owned by a given service. +Select policies owned by a given service (registered or unregistered).
@@ -3912,7 +5552,7 @@ Select policies owned by a given service. -
+
@@ -3920,7 +5560,7 @@ Select policies owned by a given service.
-Select policies of types with the given type name (type identity has the format <typename_version>) +Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
@@ -3931,23 +5571,23 @@ Select policies of types with the given type name (type identity has the format

Responses

-

-

+

+

-

-
-
+
+
-

getPolicy

-

+

getPolicyStatus

+

Get an A1 Policy Instance's status (getPolicyStatus)

-

Returns a policy

+

Retrieve the status information for an A1 Policy Instance using its policy ID.


-
/policies/{policyId}
+
/policies/{policyId}/status

Usage and SDK Samples

-
+
curl -X GET \
  -H "Accept: application/json,application/problem+json" \
- "https://example.com/a1-policy-management/v1/policies/{policyId}"
+ "https://example.com/a1-policy-management/v1/policies/{policyId}/status"
 
-
+
import org.openapitools.client.*;
 import org.openapitools.client.auth.*;
 import org.openapitools.client.model.*;
@@ -4754,10 +6394,10 @@ public class A1PolicyManagementApiExample {
         String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
         try {
-            Object result = apiInstance.getPolicy(policyId, accept);
+            Object result = apiInstance.getPolicyStatus(policyId, accept);
             System.out.println(result);
         } catch (ApiException e) {
-            System.err.println("Exception when calling A1PolicyManagementApi#getPolicy");
+            System.err.println("Exception when calling A1PolicyManagementApi#getPolicyStatus");
             e.printStackTrace();
         }
     }
@@ -4765,7 +6405,7 @@ public class A1PolicyManagementApiExample {
 
-
+
import 'package:openapi/api.dart';
 
 final api_instance = DefaultApi();
@@ -4774,16 +6414,16 @@ final String policyId = new String(); // String |
 final String accept = new String(); // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 try {
-    final result = await api_instance.getPolicy(policyId, accept);
+    final result = await api_instance.getPolicyStatus(policyId, accept);
     print(result);
 } catch (e) {
-    print('Exception when calling DefaultApi->getPolicy: $e\n');
+    print('Exception when calling DefaultApi->getPolicyStatus: $e\n');
 }
 
 
-
+
import org.openapitools.client.api.A1PolicyManagementApi;
 
 public class A1PolicyManagementApiExample {
@@ -4793,20 +6433,20 @@ public class A1PolicyManagementApiExample {
         String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
         try {
-            Object result = apiInstance.getPolicy(policyId, accept);
+            Object result = apiInstance.getPolicyStatus(policyId, accept);
             System.out.println(result);
         } catch (ApiException e) {
-            System.err.println("Exception when calling A1PolicyManagementApi#getPolicy");
+            System.err.println("Exception when calling A1PolicyManagementApi#getPolicyStatus");
             e.printStackTrace();
         }
     }
 }
-
+

 
 // Create an instance of the API class
@@ -4814,7 +6454,8 @@ A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init];
 String *policyId = policyId_example; //  (default to null)
 String *accept = application/json; // Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
 
-[apiInstance getPolicyWith:policyId
+// Get an A1 Policy Instance's status (getPolicyStatus)
+[apiInstance getPolicyStatusWith:policyId
     accept:accept
               completionHandler: ^(Object output, NSError* error) {
     if (output) {
@@ -4827,11 +6468,11 @@ String *accept = application/json; // Specifies the content type that the client
 
-
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+                            
+
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementApi.A1PolicyManagementApi()
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
 var policyId = policyId_example; // {String} 
 var opts = {
   'accept': application/json // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
@@ -4844,14 +6485,14 @@ var callback = function(error, data, response) {
     console.log('API called successfully. Returned data: ' + data);
   }
 };
-api.getPolicy(policyId, opts, callback);
+api.getPolicyStatus(policyId, opts, callback);
 
- -
+
using System;
 using System.Diagnostics;
 using Org.OpenAPITools.Api;
@@ -4860,7 +6501,7 @@ using Org.OpenAPITools.Model;
 
 namespace Example
 {
-    public class getPolicyExample
+    public class getPolicyStatusExample
     {
         public void main()
         {
@@ -4871,10 +6512,11 @@ namespace Example
             var accept = application/json;  // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional)  (default to null)
 
             try {
-                Object result = apiInstance.getPolicy(policyId, accept);
+                // Get an A1 Policy Instance's status (getPolicyStatus)
+                Object result = apiInstance.getPolicyStatus(policyId, accept);
                 Debug.WriteLine(result);
             } catch (Exception e) {
-                Debug.Print("Exception when calling A1PolicyManagementApi.getPolicy: " + e.Message );
+                Debug.Print("Exception when calling A1PolicyManagementApi.getPolicyStatus: " + e.Message );
             }
         }
     }
@@ -4882,7 +6524,7 @@ namespace Example
 
-
+
<?php
 require_once(__DIR__ . '/vendor/autoload.php');
 
@@ -4892,15 +6534,15 @@ $policyId = policyId_example; // String |
 $accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 try {
-    $result = $api_instance->getPolicy($policyId, $accept);
+    $result = $api_instance->getPolicyStatus($policyId, $accept);
     print_r($result);
 } catch (Exception $e) {
-    echo 'Exception when calling A1PolicyManagementApi->getPolicy: ', $e->getMessage(), PHP_EOL;
+    echo 'Exception when calling A1PolicyManagementApi->getPolicyStatus: ', $e->getMessage(), PHP_EOL;
 }
 ?>
-
+
use Data::Dumper;
 use WWW::OPenAPIClient::Configuration;
 use WWW::OPenAPIClient::A1PolicyManagementApi;
@@ -4911,15 +6553,15 @@ my $policyId = policyId_example; # String |
 my $accept = application/json; # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 eval {
-    my $result = $api_instance->getPolicy(policyId => $policyId, accept => $accept);
+    my $result = $api_instance->getPolicyStatus(policyId => $policyId, accept => $accept);
     print Dumper($result);
 };
 if ($@) {
-    warn "Exception when calling A1PolicyManagementApi->getPolicy: $@\n";
+    warn "Exception when calling A1PolicyManagementApi->getPolicyStatus: $@\n";
 }
-
+
from __future__ import print_statement
 import time
 import openapi_client
@@ -4932,13 +6574,14 @@ policyId = policyId_example # String |  (default to null)
 accept = application/json # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
 
 try:
-    api_response = api_instance.get_policy(policyId, accept=accept)
+    # Get an A1 Policy Instance's status (getPolicyStatus)
+    api_response = api_instance.get_policy_status(policyId, accept=accept)
     pprint(api_response)
 except ApiException as e:
-    print("Exception when calling A1PolicyManagementApi->getPolicy: %s\n" % e)
+ print("Exception when calling A1PolicyManagementApi->getPolicyStatus: %s\n" % e)
-
+
extern crate A1PolicyManagementApi;
 
 pub fn main() {
@@ -4946,7 +6589,7 @@ pub fn main() {
     let accept = application/json; // String
 
     let mut context = A1PolicyManagementApi::Context::default();
-    let result = client.getPolicy(policyId, accept, &context).wait();
+    let result = client.getPolicyStatus(policyId, accept, &context).wait();
 
     println!("{:?}", result);
 }
@@ -4971,7 +6614,7 @@ pub fn main() {
 
 
 
-    
+
@@ -4999,7 +6642,7 @@ pub fn main() { -
+
@@ -5021,23 +6664,23 @@ Specifies the content type that the client expects to receive in response to the

Responses

-

-

+

+

-
@@ -5793,12 +7431,12 @@ Specifies the content type that the client expects to receive in response to the

getPolicyTypeDefinition

-

+

Get an A1 Policy Type definition (getPolicyTypeDefinition)

-

Returns a policy type definition

+

Get an A1 Policy Type definition using its policy type ID


/policy-types/{policyTypeId}
@@ -5846,7 +7484,7 @@ public class A1PolicyManagementApiExample { String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. try { - Object result = apiInstance.getPolicyTypeDefinition(policyTypeId, accept); + PolicyTypeObject result = apiInstance.getPolicyTypeDefinition(policyTypeId, accept); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling A1PolicyManagementApi#getPolicyTypeDefinition"); @@ -5885,7 +7523,7 @@ public class A1PolicyManagementApiExample { String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. try { - Object result = apiInstance.getPolicyTypeDefinition(policyTypeId, accept); + PolicyTypeObject result = apiInstance.getPolicyTypeDefinition(policyTypeId, accept); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling A1PolicyManagementApi#getPolicyTypeDefinition"); @@ -5906,9 +7544,10 @@ A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init]; String *policyTypeId = policyTypeId_example; // (default to null) String *accept = application/json; // Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null) +// Get an A1 Policy Type definition (getPolicyTypeDefinition) [apiInstance getPolicyTypeDefinitionWith:policyTypeId accept:accept - completionHandler: ^(Object output, NSError* error) { + completionHandler: ^(PolicyTypeObject output, NSError* error) { if (output) { NSLog(@"%@", output); } @@ -5920,10 +7559,10 @@ String *accept = application/json; // Specifies the content type that the client
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+                              
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementApi.A1PolicyManagementApi()
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
 var policyTypeId = policyTypeId_example; // {String} 
 var opts = {
   'accept': application/json // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
@@ -5963,7 +7602,8 @@ namespace Example
             var accept = application/json;  // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional)  (default to null)
 
             try {
-                Object result = apiInstance.getPolicyTypeDefinition(policyTypeId, accept);
+                // Get an A1 Policy Type definition (getPolicyTypeDefinition)
+                PolicyTypeObject result = apiInstance.getPolicyTypeDefinition(policyTypeId, accept);
                 Debug.WriteLine(result);
             } catch (Exception e) {
                 Debug.Print("Exception when calling A1PolicyManagementApi.getPolicyTypeDefinition: " + e.Message );
@@ -6024,6 +7664,7 @@ policyTypeId = policyTypeId_example # String |  (default to null)
 accept = application/json # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
 
 try:
+    # Get an A1 Policy Type definition (getPolicyTypeDefinition)
     api_response = api_instance.get_policy_type_definition(policyTypeId, accept=accept)
     pprint(api_response)
 except ApiException as e:
@@ -6116,7 +7757,7 @@ Specifies the content type that the client expects to receive in response to the
                             

-
+
@@ -8383,23 +10045,23 @@ $(document).ready(function() {

Responses

-

-

+

+

-
@@ -9462,12 +11124,12 @@ $(document).ready(function() {

getConfiguration

-

+

Get the Application Configuration (getConfiguration)

-

Returns the contents of the application configuration

+

Returns the entire contents of the Application Configuration.


/configuration
@@ -9567,6 +11229,7 @@ public class ConfigurationApiExample { // Create an instance of the API class ConfigurationApi *apiInstance = [[ConfigurationApi alloc] init]; +// Get the Application Configuration (getConfiguration) [apiInstance getConfigurationWithCompletionHandler: ^('String' output, NSError* error) { if (output) { @@ -9580,10 +11243,10 @@ ConfigurationApi *apiInstance = [[ConfigurationApi alloc] init];
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+                              
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementApi.ConfigurationApi()
+var api = new OscA1PolicyManagementApi.ConfigurationApi()
 var callback = function(error, data, response) {
   if (error) {
     console.error(error);
@@ -9616,6 +11279,7 @@ namespace Example
             var apiInstance = new ConfigurationApi();
 
             try {
+                // Get the Application Configuration (getConfiguration)
                 'String' result = apiInstance.getConfiguration();
                 Debug.WriteLine(result);
             } catch (Exception e) {
@@ -9671,6 +11335,7 @@ from pprint import pprint
 api_instance = openapi_client.ConfigurationApi()
 
 try:
+    # Get the Application Configuration (getConfiguration)
     api_response = api_instance.get_configuration()
     pprint(api_response)
 except ApiException as e:
@@ -9863,12 +11528,13 @@ pub fn main() {
                       

putConfiguration

-

+

Set/Replace the Application Configuration (putConfiguration)

-

Replace the current configuration file with the given configuration

+

Replace the current Application Configuration with a new configuration. The new configuration, if accepted, will take effect after a short delay. The new configuration must comply with the Application Configuration schema, which can be found from the the Application Documentation (Developer Guide) +


/configuration
@@ -9894,7 +11560,7 @@ pub fn main() {
curl -X PUT \
- -H "Accept: */*,application/problem+json" \
+ -H "Accept: application/json,application/problem+json" \
  -H "Content-Type: application/json" \
  "https://example.com/a1-policy-management/v1/configuration" \
  -d ''
@@ -9974,6 +11640,7 @@ public class ConfigurationApiExample {
 ConfigurationApi *apiInstance = [[ConfigurationApi alloc] init];
 Object *body = Object; // 
 
+// Set/Replace the Application Configuration (putConfiguration)
 [apiInstance putConfigurationWith:body
               completionHandler: ^(Object output, NSError* error) {
     if (output) {
@@ -9987,10 +11654,10 @@ Object *body = Object; //
                             
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+                              
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementApi.ConfigurationApi()
+var api = new OscA1PolicyManagementApi.ConfigurationApi()
 var body = Object; // {Object} 
 
 var callback = function(error, data, response) {
@@ -10026,6 +11693,7 @@ namespace Example
             var body = Object;  // Object | 
 
             try {
+                // Set/Replace the Application Configuration (putConfiguration)
                 Object result = apiInstance.putConfiguration(body);
                 Debug.WriteLine(result);
             } catch (Exception e) {
@@ -10084,6 +11752,7 @@ api_instance = openapi_client.ConfigurationApi()
 body = Object # Object | 
 
 try:
+    # Set/Replace the Application Configuration (putConfiguration)
     api_response = api_instance.put_configuration(body)
     pprint(api_response)
 except ApiException as e:
@@ -10199,7 +11868,7 @@ $(document).ready(function() {
                                       var schemaWrapper = {
   "description" : "OK - Configuration updated",
   "content" : {
-    "*/*" : {
+    "application/json" : {
       "schema" : {
         "$ref" : "#/components/schemas/void"
       }
@@ -10328,7 +11997,7 @@ $(document).ready(function() {
                       

getStatus

-

+

Get Status (getStatus)

@@ -10359,7 +12028,7 @@ $(document).ready(function() {
curl -X GET \
- -H "Accept: application/json" \
+ -H "Accept: application/json,application/problem+json" \
  "https://example.com/a1-policy-management/v1/status"
 
@@ -10433,6 +12102,7 @@ public class HealthCheckApiExample { // Create an instance of the API class HealthCheckApi *apiInstance = [[HealthCheckApi alloc] init]; +// Get Status (getStatus) [apiInstance getStatusWithCompletionHandler: ^(StatusInfo output, NSError* error) { if (output) { @@ -10446,10 +12116,10 @@ HealthCheckApi *apiInstance = [[HealthCheckApi alloc] init];
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+                              
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementApi.HealthCheckApi()
+var api = new OscA1PolicyManagementApi.HealthCheckApi()
 var callback = function(error, data, response) {
   if (error) {
     console.error(error);
@@ -10482,6 +12152,7 @@ namespace Example
             var apiInstance = new HealthCheckApi();
 
             try {
+                // Get Status (getStatus)
                 StatusInfo result = apiInstance.getStatus();
                 Debug.WriteLine(result);
             } catch (Exception e) {
@@ -10537,6 +12208,7 @@ from pprint import pprint
 api_instance = openapi_client.HealthCheckApi()
 
 try:
+    # Get Status (getStatus)
     api_response = api_instance.get_status()
     pprint(api_response)
 except ApiException as e:
@@ -10651,6 +12323,82 @@ pub fn main() {
                                 
                               
+

+

+ + + + + + +
+
+
+ +
+ +
+

@@ -10661,15 +12409,15 @@ pub fn main() {

getRic

-

Returns info for one Near-RT RIC

+

Get a Near-RT RIC (getRic)

-

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).

+

Get information about a Near-RT RIC


-
/rics/ric
+
/rics/{ricId}

Usage and SDK Samples

@@ -10693,7 +12441,7 @@ pub fn main() {
curl -X GET \
  -H "Accept: application/json,application/problem+json" \
- "https://example.com/a1-policy-management/v1/rics/ric?managedElementId=managedElementId_example&ricId=ricId_example"
+ "https://example.com/a1-policy-management/v1/rics/{ricId}"
 
@@ -10710,12 +12458,11 @@ public class NearRTRICRepositoryApiExample { // Create an instance of the API class NearRTRICRepositoryApi apiInstance = new NearRTRICRepositoryApi(); - String managedElementId = managedElementId_example; // String | The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned. String ricId = ricId_example; // String | The identity of a Near-RT RIC to get information for. String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. try { - RicInfo result = apiInstance.getRic(managedElementId, ricId, accept); + RicInfo result = apiInstance.getRic(ricId, accept); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling NearRTRICRepositoryApi#getRic"); @@ -10731,12 +12478,11 @@ public class NearRTRICRepositoryApiExample { final api_instance = DefaultApi(); -final String managedElementId = new String(); // String | The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned. final String ricId = new String(); // String | The identity of a Near-RT RIC to get information for. final String accept = new String(); // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. try { - final result = await api_instance.getRic(managedElementId, ricId, accept); + final result = await api_instance.getRic(ricId, accept); print(result); } catch (e) { print('Exception when calling DefaultApi->getRic: $e\n'); @@ -10751,12 +12497,11 @@ try { public class NearRTRICRepositoryApiExample { public static void main(String[] args) { NearRTRICRepositoryApi apiInstance = new NearRTRICRepositoryApi(); - String managedElementId = managedElementId_example; // String | The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned. String ricId = ricId_example; // String | The identity of a Near-RT RIC to get information for. String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. try { - RicInfo result = apiInstance.getRic(managedElementId, ricId, accept); + RicInfo result = apiInstance.getRic(ricId, accept); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling NearRTRICRepositoryApi#getRic"); @@ -10774,13 +12519,11 @@ public class NearRTRICRepositoryApiExample { // Create an instance of the API class 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) +String *ricId = ricId_example; // The identity of a Near-RT RIC to get information for. (default to null) String *accept = application/json; // Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null) -// Returns info for one Near-RT RIC -[apiInstance getRicWith:managedElementId - ricId:ricId +// Get a Near-RT RIC (getRic) +[apiInstance getRicWith:ricId accept:accept completionHandler: ^(RicInfo output, NSError* error) { if (output) { @@ -10794,13 +12537,12 @@ String *accept = application/json; // Specifies the content type that the client
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+                              
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementApi.NearRTRICRepositoryApi()
+var api = new OscA1PolicyManagementApi.NearRTRICRepositoryApi()
+var ricId = ricId_example; // {String} The identity of a Near-RT RIC to get information for.
 var opts = {
-  'managedElementId': managedElementId_example, // {String} The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.
-  'ricId': ricId_example, // {String} The identity of a Near-RT RIC to get information for.
   'accept': application/json // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 };
 
@@ -10811,7 +12553,7 @@ var callback = function(error, data, response) {
     console.log('API called successfully. Returned data: ' + data);
   }
 };
-api.getRic(opts, callback);
+api.getRic(ricId, opts, callback);
 
@@ -10834,13 +12576,12 @@ namespace Example // Create an instance of the API class var apiInstance = new NearRTRICRepositoryApi(); - var managedElementId = managedElementId_example; // String | The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned. (optional) (default to null) - var ricId = ricId_example; // String | The identity of a Near-RT RIC to get information for. (optional) (default to null) + var ricId = ricId_example; // String | The identity of a Near-RT RIC to get information for. (default to null) var accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null) try { - // Returns info for one Near-RT RIC - RicInfo result = apiInstance.getRic(managedElementId, ricId, accept); + // Get a Near-RT RIC (getRic) + RicInfo result = apiInstance.getRic(ricId, accept); Debug.WriteLine(result); } catch (Exception e) { Debug.Print("Exception when calling NearRTRICRepositoryApi.getRic: " + e.Message ); @@ -10857,12 +12598,11 @@ require_once(__DIR__ . '/vendor/autoload.php'); // Create an instance of the API class $api_instance = new OpenAPITools\Client\Api\NearRTRICRepositoryApi(); -$managedElementId = managedElementId_example; // String | The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned. $ricId = ricId_example; // String | The identity of a Near-RT RIC to get information for. $accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. try { - $result = $api_instance->getRic($managedElementId, $ricId, $accept); + $result = $api_instance->getRic($ricId, $accept); print_r($result); } catch (Exception $e) { echo 'Exception when calling NearRTRICRepositoryApi->getRic: ', $e->getMessage(), PHP_EOL; @@ -10877,12 +12617,11 @@ use WWW::OPenAPIClient::NearRTRICRepositoryApi; # Create an instance of the API class my $api_instance = WWW::OPenAPIClient::NearRTRICRepositoryApi->new(); -my $managedElementId = managedElementId_example; # String | The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned. my $ricId = ricId_example; # String | The identity of a Near-RT RIC to get information for. my $accept = application/json; # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. eval { - my $result = $api_instance->getRic(managedElementId => $managedElementId, ricId => $ricId, accept => $accept); + my $result = $api_instance->getRic(ricId => $ricId, accept => $accept); print Dumper($result); }; if ($@) { @@ -10899,13 +12638,12 @@ from pprint import pprint # Create an instance of the API class api_instance = openapi_client.NearRTRICRepositoryApi() -managedElementId = managedElementId_example # String | The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned. (optional) (default to null) -ricId = ricId_example # String | The identity of a Near-RT RIC to get information for. (optional) (default to null) +ricId = ricId_example # String | The identity of a Near-RT RIC to get information for. (default to null) accept = application/json # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null) try: - # Returns info for one Near-RT RIC - api_response = api_instance.get_ric(managedElementId=managedElementId, ricId=ricId, accept=accept) + # Get a Near-RT RIC (getRic) + api_response = api_instance.get_ric(ricId, accept=accept) pprint(api_response) except ApiException as e: print("Exception when calling NearRTRICRepositoryApi->getRic: %s\n" % e) @@ -10915,12 +12653,11 @@ except ApiException as e:
extern crate NearRTRICRepositoryApi;
 
 pub fn main() {
-    let managedElementId = managedElementId_example; // String
     let ricId = ricId_example; // String
     let accept = application/json; // String
 
     let mut context = NearRTRICRepositoryApi::Context::default();
-    let result = client.getRic(managedElementId, ricId, accept, &context).wait();
+    let result = client.getRic(ricId, accept, &context).wait();
 
     println!("{:?}", result);
 }
@@ -10935,18 +12672,17 @@ pub fn main() {
 
                           

Parameters

- -
Header parameters
+
Path parameters
- - - - - + + + + + @@ -10964,19 +12703,17 @@ Specifies the content type that the client expects to receive in response to the
NameDescription
Accept
NameDescription
ricId* -
+
@@ -10954,9 +12690,12 @@ pub fn main() {
-Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. +The identity of a Near-RT RIC to get information for.
+
+ Required +
- - -
Query parameters
+
Header parameters
- + - -
Name Description
managedElementId
Accept -
+
@@ -10984,7 +12721,7 @@ Specifies the content type that the client expects to receive in response to the
-The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned. +Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
@@ -10992,27 +12729,10 @@ The identity of a Managed Element. If given, the Near-RT RIC managing the ME is
ricId - +
-
-
-
- - String - -
-The identity of a Near-RT RIC to get information for. -
-
-
-
- - -

Responses

@@ -11179,12 +12899,12 @@ The identity of a Near-RT RIC to get information for.

getRics

-

Query Near-RT RIC information

+

Get Near-RT RICs for A1 Policy Type (getRics)

-

The call returns all Near-RT RICs that supports a given policy type identity

+

Get all Near-RT RICs that supports a given A1 Policy Type ID


/rics
@@ -11228,7 +12948,8 @@ public class NearRTRICRepositoryApiExample { // Create an instance of the API class NearRTRICRepositoryApi apiInstance = new NearRTRICRepositoryApi(); - String policyTypeId = policyTypeId_example; // String | The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned + String policyTypeId = policyTypeId_example; // String | The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned. + String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. try { @@ -11248,7 +12969,8 @@ public class NearRTRICRepositoryApiExample { final api_instance = DefaultApi(); -final String policyTypeId = new String(); // String | The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned +final String policyTypeId = new String(); // String | The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned. + final String accept = new String(); // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. try { @@ -11267,7 +12989,8 @@ try { public class NearRTRICRepositoryApiExample { public static void main(String[] args) { NearRTRICRepositoryApi apiInstance = new NearRTRICRepositoryApi(); - String policyTypeId = policyTypeId_example; // String | The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned + String policyTypeId = policyTypeId_example; // String | The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned. + String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. try { @@ -11289,10 +13012,11 @@ public class NearRTRICRepositoryApiExample { // Create an instance of the API class NearRTRICRepositoryApi *apiInstance = [[NearRTRICRepositoryApi alloc] init]; -String *policyTypeId = policyTypeId_example; // The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned (optional) (default to null) +String *policyTypeId = policyTypeId_example; // The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned. + (optional) (default to null) String *accept = application/json; // Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null) -// Query Near-RT RIC information +// Get Near-RT RICs for A1 Policy Type (getRics) [apiInstance getRicsWith:policyTypeId accept:accept completionHandler: ^(RicInfoList output, NSError* error) { @@ -11307,12 +13031,13 @@ String *accept = application/json; // Specifies the content type that the client
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+                              
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementApi.NearRTRICRepositoryApi()
+var api = new OscA1PolicyManagementApi.NearRTRICRepositoryApi()
 var opts = {
-  'policyTypeId': policyTypeId_example, // {String} The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned
+  'policyTypeId': policyTypeId_example, // {String} The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned.
+
   'accept': application/json // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 };
 
@@ -11346,11 +13071,12 @@ namespace Example
 
             // Create an instance of the API class
             var apiInstance = new NearRTRICRepositoryApi();
-            var policyTypeId = policyTypeId_example;  // String | The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned (optional)  (default to null)
+            var policyTypeId = policyTypeId_example;  // String | The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned.
+ (optional)  (default to null)
             var accept = application/json;  // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional)  (default to null)
 
             try {
-                // Query Near-RT RIC information
+                // Get Near-RT RICs for A1 Policy Type (getRics)
                 RicInfoList result = apiInstance.getRics(policyTypeId, accept);
                 Debug.WriteLine(result);
             } catch (Exception e) {
@@ -11368,7 +13094,8 @@ require_once(__DIR__ . '/vendor/autoload.php');
 
 // Create an instance of the API class
 $api_instance = new OpenAPITools\Client\Api\NearRTRICRepositoryApi();
-$policyTypeId = policyTypeId_example; // String | The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned
+$policyTypeId = policyTypeId_example; // String | The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned.
+
 $accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 try {
@@ -11387,7 +13114,8 @@ use WWW::OPenAPIClient::NearRTRICRepositoryApi;
 
 # Create an instance of the API class
 my $api_instance = WWW::OPenAPIClient::NearRTRICRepositoryApi->new();
-my $policyTypeId = policyTypeId_example; # String | The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned
+my $policyTypeId = policyTypeId_example; # String | The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned.
+
 my $accept = application/json; # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 eval {
@@ -11408,11 +13136,12 @@ from pprint import pprint
 
 # Create an instance of the API class
 api_instance = openapi_client.NearRTRICRepositoryApi()
-policyTypeId = policyTypeId_example # String | The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned (optional) (default to null)
+policyTypeId = policyTypeId_example # String | The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned.
+ (optional) (default to null)
 accept = application/json # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
 
 try:
-    # Query Near-RT RIC information
+    # Get Near-RT RICs for A1 Policy Type (getRics)
     api_response = api_instance.get_rics(policyTypeId=policyTypeId, accept=accept)
     pprint(api_response)
 except ApiException as e:
@@ -11491,7 +13220,8 @@ Specifies the content type that the client expects to receive in response to the
                 
 
                     
-The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned +The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned. +
@@ -11669,12 +13399,13 @@ The identity of a policy type. If given, all Near-RT RICs supporting the policy

deleteService

-

+

Unregister a Service (deleteService)

-

Unregister a service

+

Unregister a registered Service using its service ID. Only registered services can be unregistered. All A1 Policy Instances for the previously registered service will be removed. +


/services/{serviceId}
@@ -11700,7 +13431,7 @@ The identity of a policy type. If given, all Near-RT RICs supporting the policy
curl -X DELETE \
- -H "Accept: */*,application/problem+json" \
+ -H "Accept: application/json,application/problem+json" \
  "https://example.com/a1-policy-management/v1/services/{serviceId}"
 
@@ -11782,6 +13513,7 @@ ServiceRegistryAndSupervisionApi *apiInstance = [[ServiceRegistryAndSupervisionA String *serviceId = serviceId_example; // (default to null) String *accept = application/json; // Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null) +// Unregister a Service (deleteService) [apiInstance deleteServiceWith:serviceId accept:accept completionHandler: ^(Object output, NSError* error) { @@ -11796,10 +13528,10 @@ String *accept = application/json; // Specifies the content type that the client
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+                              
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementApi.ServiceRegistryAndSupervisionApi()
+var api = new OscA1PolicyManagementApi.ServiceRegistryAndSupervisionApi()
 var serviceId = serviceId_example; // {String} 
 var opts = {
   'accept': application/json // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
@@ -11839,6 +13571,7 @@ namespace Example
             var accept = application/json;  // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional)  (default to null)
 
             try {
+                // Unregister a Service (deleteService)
                 Object result = apiInstance.deleteService(serviceId, accept);
                 Debug.WriteLine(result);
             } catch (Exception e) {
@@ -11900,6 +13633,7 @@ serviceId = serviceId_example # String |  (default to null)
 accept = application/json # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
 
 try:
+    # Unregister a Service (deleteService)
     api_response = api_instance.delete_service(serviceId, accept=accept)
     pprint(api_response)
 except ApiException as e:
@@ -12022,7 +13756,7 @@ Specifies the content type that the client expects to receive in response to the
                                       var schemaWrapper = {
   "description" : "No Content - Service unregistered",
   "content" : {
-    "*/*" : {
+    "application/json" : {
       "schema" : {
         "type" : "object"
       }
@@ -12148,12 +13882,13 @@ Specifies the content type that the client expects to receive in response to the
                       

getServices

-

Returns service information

+

Get Services (getServices)

-

Either information about a registered service with given identity or all registered services are returned.

+

Get information about all registered services, or a single registered service. If the service ID of a registered service is included in the query, information about that service is returned. Otherwise Information about all registered is returned. This operation does not retrieve information about unregistered services. +


/services
@@ -12197,7 +13932,7 @@ public class ServiceRegistryAndSupervisionApiExample { // Create an instance of the API class ServiceRegistryAndSupervisionApi apiInstance = new ServiceRegistryAndSupervisionApi(); - String serviceId = serviceId_example; // String | The identity of the service + String serviceId = serviceId_example; // String | The identity of the registered service String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. try { @@ -12217,7 +13952,7 @@ public class ServiceRegistryAndSupervisionApiExample { final api_instance = DefaultApi(); -final String serviceId = new String(); // String | The identity of the service +final String serviceId = new String(); // String | The identity of the registered service final String accept = new String(); // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. try { @@ -12236,7 +13971,7 @@ try { public class ServiceRegistryAndSupervisionApiExample { public static void main(String[] args) { ServiceRegistryAndSupervisionApi apiInstance = new ServiceRegistryAndSupervisionApi(); - String serviceId = serviceId_example; // String | The identity of the service + String serviceId = serviceId_example; // String | The identity of the registered service String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. try { @@ -12258,10 +13993,10 @@ public class ServiceRegistryAndSupervisionApiExample { // Create an instance of the API class ServiceRegistryAndSupervisionApi *apiInstance = [[ServiceRegistryAndSupervisionApi alloc] init]; -String *serviceId = serviceId_example; // The identity of the service (optional) (default to null) +String *serviceId = serviceId_example; // The identity of the registered service (optional) (default to null) String *accept = application/json; // Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null) -// Returns service information +// Get Services (getServices) [apiInstance getServicesWith:serviceId accept:accept completionHandler: ^(ServiceStatusList output, NSError* error) { @@ -12276,12 +14011,12 @@ String *accept = application/json; // Specifies the content type that the client
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+                              
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementApi.ServiceRegistryAndSupervisionApi()
+var api = new OscA1PolicyManagementApi.ServiceRegistryAndSupervisionApi()
 var opts = {
-  'serviceId': serviceId_example, // {String} The identity of the service
+  'serviceId': serviceId_example, // {String} The identity of the registered service
   'accept': application/json // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 };
 
@@ -12315,11 +14050,11 @@ namespace Example
 
             // Create an instance of the API class
             var apiInstance = new ServiceRegistryAndSupervisionApi();
-            var serviceId = serviceId_example;  // String | The identity of the service (optional)  (default to null)
+            var serviceId = serviceId_example;  // String | The identity of the registered service (optional)  (default to null)
             var accept = application/json;  // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional)  (default to null)
 
             try {
-                // Returns service information
+                // Get Services (getServices)
                 ServiceStatusList result = apiInstance.getServices(serviceId, accept);
                 Debug.WriteLine(result);
             } catch (Exception e) {
@@ -12337,7 +14072,7 @@ require_once(__DIR__ . '/vendor/autoload.php');
 
 // Create an instance of the API class
 $api_instance = new OpenAPITools\Client\Api\ServiceRegistryAndSupervisionApi();
-$serviceId = serviceId_example; // String | The identity of the service
+$serviceId = serviceId_example; // String | The identity of the registered service
 $accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 try {
@@ -12356,7 +14091,7 @@ use WWW::OPenAPIClient::ServiceRegistryAndSupervisionApi;
 
 # Create an instance of the API class
 my $api_instance = WWW::OPenAPIClient::ServiceRegistryAndSupervisionApi->new();
-my $serviceId = serviceId_example; # String | The identity of the service
+my $serviceId = serviceId_example; # String | The identity of the registered service
 my $accept = application/json; # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 
 eval {
@@ -12377,11 +14112,11 @@ from pprint import pprint
 
 # Create an instance of the API class
 api_instance = openapi_client.ServiceRegistryAndSupervisionApi()
-serviceId = serviceId_example # String | The identity of the service (optional) (default to null)
+serviceId = serviceId_example # String | The identity of the registered service (optional) (default to null)
 accept = application/json # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
 
 try:
-    # Returns service information
+    # Get Services (getServices)
     api_response = api_instance.get_services(serviceId=serviceId, accept=accept)
     pprint(api_response)
 except ApiException as e:
@@ -12460,7 +14195,7 @@ Specifies the content type that the client expects to receive in response to the
                 
 
                     
-The identity of the service +The identity of the registered service
@@ -12635,12 +14370,12 @@ The identity of the service

keepAliveService

-

Heartbeat indicates that the service is running

+

Heartbeat message from a service (keepAliveService)

-

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)

+

A registered service should invoke this operation regularly to indicate that it is still alive. If a registered service fails to invoke some operation, or this operation, before the end of a timeout period the service will be deregistered and all its A1 policies wil be removed and the service is deleted. This operation is only intended for registered services. (This timeout can be set or disabled when each service is initially registered). Unregistered services do not need to invoke this operation, since the optional keep-alive monitoring feature can only be enabled for registered services.


/services/{serviceId}/keepalive
@@ -12666,10 +14401,8 @@ The identity of the service
curl -X PUT \
- -H "Accept: */*,application/problem+json" \
- -H "Content-Type: application/json" \
- "https://example.com/a1-policy-management/v1/services/{serviceId}/keepalive" \
- -d ''
+ -H "Accept: application/json,application/problem+json" \
+ "https://example.com/a1-policy-management/v1/services/{serviceId}/keepalive"
 
@@ -12688,10 +14421,9 @@ public class ServiceRegistryAndSupervisionApiExample { ServiceRegistryAndSupervisionApi apiInstance = new ServiceRegistryAndSupervisionApi(); String serviceId = serviceId_example; // String | String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. - String body = body_example; // String | try { - Object result = apiInstance.keepAliveService(serviceId, accept, body); + Object result = apiInstance.keepAliveService(serviceId, accept); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling ServiceRegistryAndSupervisionApi#keepAliveService"); @@ -12709,10 +14441,9 @@ final api_instance = DefaultApi(); final String serviceId = new String(); // String | final String accept = new String(); // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. -final String body = new String(); // String | try { - final result = await api_instance.keepAliveService(serviceId, accept, body); + final result = await api_instance.keepAliveService(serviceId, accept); print(result); } catch (e) { print('Exception when calling DefaultApi->keepAliveService: $e\n'); @@ -12729,10 +14460,9 @@ public class ServiceRegistryAndSupervisionApiExample { ServiceRegistryAndSupervisionApi apiInstance = new ServiceRegistryAndSupervisionApi(); String serviceId = serviceId_example; // String | String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. - String body = body_example; // String | try { - Object result = apiInstance.keepAliveService(serviceId, accept, body); + Object result = apiInstance.keepAliveService(serviceId, accept); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling ServiceRegistryAndSupervisionApi#keepAliveService"); @@ -12752,12 +14482,10 @@ public class ServiceRegistryAndSupervisionApiExample { ServiceRegistryAndSupervisionApi *apiInstance = [[ServiceRegistryAndSupervisionApi alloc] init]; String *serviceId = serviceId_example; // (default to null) String *accept = application/json; // Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null) -String *body = body_example; // (optional) -// Heartbeat indicates that the service is running +// Heartbeat message from a service (keepAliveService) [apiInstance keepAliveServiceWith:serviceId accept:accept - body:body completionHandler: ^(Object output, NSError* error) { if (output) { NSLog(@"%@", output); @@ -12770,14 +14498,13 @@ String *body = body_example; // (optional)
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+                              
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementApi.ServiceRegistryAndSupervisionApi()
+var api = new OscA1PolicyManagementApi.ServiceRegistryAndSupervisionApi()
 var serviceId = serviceId_example; // {String} 
 var opts = {
-  'accept': application/json, // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
-  'body': body_example // {String} 
+  'accept': application/json // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
 };
 
 var callback = function(error, data, response) {
@@ -12812,11 +14539,10 @@ namespace Example
             var apiInstance = new ServiceRegistryAndSupervisionApi();
             var serviceId = serviceId_example;  // String |  (default to null)
             var accept = application/json;  // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional)  (default to null)
-            var body = body_example;  // String |  (optional) 
 
             try {
-                // Heartbeat indicates that the service is running
-                Object result = apiInstance.keepAliveService(serviceId, accept, body);
+                // Heartbeat message from a service (keepAliveService)
+                Object result = apiInstance.keepAliveService(serviceId, accept);
                 Debug.WriteLine(result);
             } catch (Exception e) {
                 Debug.Print("Exception when calling ServiceRegistryAndSupervisionApi.keepAliveService: " + e.Message );
@@ -12835,10 +14561,9 @@ require_once(__DIR__ . '/vendor/autoload.php');
 $api_instance = new OpenAPITools\Client\Api\ServiceRegistryAndSupervisionApi();
 $serviceId = serviceId_example; // String | 
 $accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
-$body = body_example; // String | 
 
 try {
-    $result = $api_instance->keepAliveService($serviceId, $accept, $body);
+    $result = $api_instance->keepAliveService($serviceId, $accept);
     print_r($result);
 } catch (Exception $e) {
     echo 'Exception when calling ServiceRegistryAndSupervisionApi->keepAliveService: ', $e->getMessage(), PHP_EOL;
@@ -12855,10 +14580,9 @@ use WWW::OPenAPIClient::ServiceRegistryAndSupervisionApi;
 my $api_instance = WWW::OPenAPIClient::ServiceRegistryAndSupervisionApi->new();
 my $serviceId = serviceId_example; # String | 
 my $accept = application/json; # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
-my $body = WWW::OPenAPIClient::Object::String->new(); # String | 
 
 eval {
-    my $result = $api_instance->keepAliveService(serviceId => $serviceId, accept => $accept, body => $body);
+    my $result = $api_instance->keepAliveService(serviceId => $serviceId, accept => $accept);
     print Dumper($result);
 };
 if ($@) {
@@ -12877,11 +14601,10 @@ from pprint import pprint
 api_instance = openapi_client.ServiceRegistryAndSupervisionApi()
 serviceId = serviceId_example # String |  (default to null)
 accept = application/json # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
-body = body_example # String |  (optional)
 
 try:
-    # Heartbeat indicates that the service is running
-    api_response = api_instance.keep_alive_service(serviceId, accept=accept, body=body)
+    # Heartbeat message from a service (keepAliveService)
+    api_response = api_instance.keep_alive_service(serviceId, accept=accept)
     pprint(api_response)
 except ApiException as e:
     print("Exception when calling ServiceRegistryAndSupervisionApi->keepAliveService: %s\n" % e)
@@ -12893,10 +14616,9 @@ except ApiException as e: pub fn main() { let serviceId = serviceId_example; // String let accept = application/json; // String - let body = body_example; // String let mut context = ServiceRegistryAndSupervisionApi::Context::default(); - let result = client.keepAliveService(serviceId, accept, body, &context).wait(); + let result = client.keepAliveService(serviceId, accept, &context).wait(); println!("{:?}", result); } @@ -12967,54 +14689,6 @@ Specifies the content type that the client expects to receive in response to the -
Body parameters
- - - - - - - - - -
NameDescription
body -

- -
-
@@ -13052,7 +14726,7 @@ $(document).ready(function() { var schemaWrapper = { "description" : "OK - Service supervision timer refreshed, OK", "content" : { - "*/*" : { + "application/json" : { "schema" : { "type" : "object" } @@ -13178,12 +14852,13 @@ $(document).ready(function() {

putService

-

Register a service

+

Register or update a Service (putService)

-

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.

+

Register a single service, or update a previous registration. Service registration is required to get callbacks about available NearRT RICs and to enable supervision of the service's active status. If a registered service becomes inactive, its policies can be automatically deleted. A1 Policy instances can also be created for unregistered services. If an unregistered service is later registered, the service's policies are retained when the service becomes registered. This feature is optional to use. +


/services
@@ -13209,7 +14884,7 @@ $(document).ready(function() {
curl -X PUT \
- -H "Accept: */*,application/problem+json" \
+ -H "Accept: application/json,application/problem+json" \
  -H "Content-Type: application/json" \
  "https://example.com/a1-policy-management/v1/services" \
  -d '{
@@ -13293,7 +14968,7 @@ public class ServiceRegistryAndSupervisionApiExample {
 ServiceRegistryAndSupervisionApi *apiInstance = [[ServiceRegistryAndSupervisionApi alloc] init];
 ServiceRegistrationInfo *serviceRegistrationInfo = ; // 
 
-// Register a service
+// Register or update a Service (putService)
 [apiInstance putServiceWith:serviceRegistrationInfo
               completionHandler: ^(Object output, NSError* error) {
     if (output) {
@@ -13307,10 +14982,10 @@ ServiceRegistrationInfo *serviceRegistrationInfo = ; //
                             
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+                              
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
 
 // Create an instance of the API class
-var api = new A1PolicyManagementApi.ServiceRegistryAndSupervisionApi()
+var api = new OscA1PolicyManagementApi.ServiceRegistryAndSupervisionApi()
 var serviceRegistrationInfo = ; // {ServiceRegistrationInfo} 
 
 var callback = function(error, data, response) {
@@ -13346,7 +15021,7 @@ namespace Example
             var serviceRegistrationInfo = new ServiceRegistrationInfo(); // ServiceRegistrationInfo | 
 
             try {
-                // Register a service
+                // Register or update a Service (putService)
                 Object result = apiInstance.putService(serviceRegistrationInfo);
                 Debug.WriteLine(result);
             } catch (Exception e) {
@@ -13405,7 +15080,7 @@ api_instance = openapi_client.ServiceRegistryAndSupervisionApi()
 serviceRegistrationInfo =  # ServiceRegistrationInfo | 
 
 try:
-    # Register a service
+    # Register or update a Service (putService)
     api_response = api_instance.put_service(serviceRegistrationInfo)
     pprint(api_response)
 except ApiException as e:
@@ -13521,7 +15196,7 @@ $(document).ready(function() {
                                       var schemaWrapper = {
   "description" : "OK - Service updated",
   "content" : {
-    "*/*" : {
+    "application/json" : {
       "schema" : {
         "type" : "object"
       }
@@ -13597,7 +15272,7 @@ $(document).ready(function() {
                                       var schemaWrapper = {
   "description" : "Created - Service created",
   "content" : {
-    "*/*" : {
+    "application/json" : {
       "schema" : {
         "type" : "object"
       }
@@ -13724,10 +15399,10 @@ $(document).ready(function() {
           
diff --git a/docs/offeredapis/swagger/a1pms-api-v3.json b/docs/offeredapis/swagger/a1pms-api-v3.json
index c844073..38f3c62 100644
--- a/docs/offeredapis/swagger/a1pms-api-v3.json
+++ b/docs/offeredapis/swagger/a1pms-api-v3.json
@@ -2,44 +2,46 @@
   "openapi" : "3.0.3",
   "info" : {
     "contact" : {
-      "email" : "discuss-list@onap.com",
-      "url" : "https://www.onap.org/"
+      "email" : "discuss@lists.o-ran-sc.org",
+      "url" : "https://o-ran-sc.org//"
     },
-    "description" : "

General

The O-RAN Non-RT RIC Policy Management Service provides a REST API for managemecnt of A1 policies.
The main tasks of the service are:

  • A1 Policy creation, modification and deletion.
  • Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs
  • Maintaining a view of supported Near-RT RIC policy types
  • Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.

APIs provided or defined by the service

A1 Policy Management

This is an API for management of A1 Policies.

  • A1 Policy retrieval, creation, modification and deletion.
  • Retrieval of supported A1 Policy types for a Near-RT RIC
  • Retrieval of status for existing A1 policies

Management of configuration

API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.

Service callbacks

These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.

NearRT-RIC Repository

This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.

Health Check

API used for supervision of the PMS component.

Service Registry and Supervision

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.

Authorization API

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.

", + "description" : "

General

The ORAN SC A1 Policy Management Service provides a REST API for managing A1 policies.
This document describes the latest API set to perform tasks for:

  • A1 Policy creation, modification and deletion.
  • Monitoring and maintaining consistency of the SMO view of A1 Policies and the Near-RT RICs
  • Maintaining a view of each Near-RT RIC's supported A1 Policy Types
  • Supervision of registered services (rApps). When a registered service is unavailable, its policies are removed.

APIs provided or defined by the service

Note: parts of this API are strongly based on extracts of the O-RAN Alliance R1 Interface specification for A1 Policy Management, and those parts should be considered '© O-RAN ALLIANCE - All rights reserved.'

A1 Policy Management

This is the latest API for managing A1 Policies. This API is partially compliant with O-RAN Alliance R1 Interface specifications for A1 Policy Management:

  • A1 Policy retrieval, creation, modification and deletion.
  • Retrieval of supported A1 Policy Types for a Near-RT RIC
  • Retrieval of status for existing A1 policies

Management of configuration

API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.

Service Callbacks

These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.

NearRT-RIC Repository (Older version)

This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted towards one Near-RT RIC.

Health Check

API used for supervision of the A1 Policy Management Service.

Service Registry and Supervision

API used for registering services/clients/rApps. Each A1 Policy can be tagged with an owner. If the owner service is registered, then the service can be optionally monitored by a heart-beat supervision mechanism, and if the registered service becomes unavailable, then it is removed and all its A1 Policies are deleted. Note that services do not need to be registered to create A1 Policies, but unregistered services are not supervised. This is a feature that is optional to use.

", "license" : { - "name" : "Copyright (C) 2024 OpenInfra Foundation Europe. Licensed under the Apache License.", + "name" : "Copyright (C) 2024 - 2025 OpenInfra Foundation Europe. Licensed under the Apache 2 License.", "url" : "http://www.apache.org/licenses/LICENSE-2.0" }, - "title" : "A1 policy management API", + "title" : "OSC - A1 Policy Management API", "version" : "1.0.0", - "x-api-id" : "a31c510b-20e6-4a08-af16-368c44d7fba8", + "x-api-id" : "e9776a07-0813-4fca-9801-6f892f0a7c13", "x-audience" : "external-public" }, + "externalDocs" : { + "description" : "Based on parts of O-RAN ALLIANCE specification: O-RAN.WG2.R1AP-v07.00", + "url" : "https://www.o-ran.org/specifications" + }, "servers" : [ { "url" : "{apiRoot}/a1-policy-management/v1", "variables" : { "apiRoot" : { "default" : "https://example.com", - "description" : "This is the Host:Port or Address where the A1-Policy Management Service can be accessed" + "description" : "This is the Host:Port or Address where the A1-Policy Management Service can be accessed. Note: This URL path format aligns with the O-RAN Alliance R1-AP specifications for A1 Policy Management" } } } ], "tags" : [ { - "description" : "API used to create polices, Policy Instances and get them as individual using an ID or get all policies/Instances.", + "description" : "API used to get, create, update and delete A1 Policy Instances. Also used to query A1 Policy Types.\n", "name" : "A1 Policy Management" }, { - "description" : "API used to get the NearRT-RIC for the managed element.", + "description" : "API used to get information about registered Near-RT RICs.\n", "name" : "NearRT-RIC Repository" }, { - "description" : "API used to keep the service Alive with in the timeout period", + "description" : "API used to manage registered services, and control their keep-alive status via heart-beat messages.\n", "name" : "Service Registry and Supervision" }, { - "description" : "API used to get the health status and statistics of this service", + "description" : "API used to get the health status and statistics of this service.\n", "name" : "Health Check" }, { - "name" : "Service callbacks" - }, { - "description" : "API used to create or fetch the application configuration.", + "description" : "API used to create or fetch the application configuration.\n", "name" : "Configuration" } ], "paths" : { @@ -62,35 +64,37 @@ } }, "description" : "OK- Service is living Ok" + }, + "404" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Not Found" } }, + "summary" : "Get Status (getStatus)", "tags" : [ "Health Check" ] } }, - "/rics/ric" : { + "/rics/{ricId}" : { "get" : { - "description" : "Either a Near-RT RIC identity or a Managed Element identity can be specified.
The intention with Managed Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU).", + "description" : "Get information about a Near-RT RIC", "operationId" : "getRic", "parameters" : [ { - "description" : "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.", - "explode" : true, - "in" : "query", - "name" : "managedElementId", - "required" : false, - "schema" : { - "type" : "string" - }, - "style" : "form" - }, { "description" : "The identity of a Near-RT RIC to get information for.", "explode" : true, - "in" : "query", + "in" : "path", "name" : "ricId", - "required" : false, + "required" : true, "schema" : { + "nullable" : false, "type" : "string" }, - "style" : "form" + "style" : "simple" }, { "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.", "explode" : false, @@ -130,16 +134,16 @@ "description" : "Not Found" } }, - "summary" : "Returns info for one Near-RT RIC", + "summary" : "Get a Near-RT RIC (getRic)", "tags" : [ "NearRT-RIC Repository" ] } }, "/rics" : { "get" : { - "description" : "The call returns all Near-RT RICs that supports a given policy type identity", + "description" : "Get all Near-RT RICs that supports a given A1 Policy Type ID", "operationId" : "getRics", "parameters" : [ { - "description" : "The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned", + "description" : "The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned.\n", "explode" : true, "in" : "query", "name" : "policyTypeId", @@ -187,13 +191,13 @@ "description" : "Not Found" } }, - "summary" : "Query Near-RT RIC information", + "summary" : "Get Near-RT RICs for A1 Policy Type (getRics)", "tags" : [ "NearRT-RIC Repository" ] } }, "/policy-types" : { "get" : { - "description" : "Query policy type identities", + "description" : "Query A1 Policy Type identities using query parameters", "operationId" : "getPolicyTypes", "parameters" : [ { "description" : "Select types for the given Near-RT RIC identity.", @@ -206,7 +210,7 @@ }, "style" : "form" }, { - "description" : "Select types with the given type name (type identity has the format )", + "description" : "Select types compatible with the given type name (type identity has the format 'typename_version')", "explode" : true, "in" : "query", "name" : "typeName", @@ -216,7 +220,7 @@ }, "style" : "form" }, { - "description" : "Select types that are compatible with the given version. This parameter is only applicable in conjunction with type_name. As an example version 1.9.1 is compatible with 1.0.0 but not the other way around. Matching types will be returned sorted in ascending order.", + "description" : "Select types that are compatible with the given version. This parameter is only applicable in conjunction with typeName. 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.\n", "explode" : true, "in" : "query", "name" : "compatibleWithVersion", @@ -241,6 +245,11 @@ "200" : { "content" : { "application/json" : { + "examples" : { + "PolicyTypeInformation" : { + "$ref" : "#/components/examples/PolicyTypeInformation" + } + }, "schema" : { "items" : { "$ref" : "#/components/schemas/PolicyTypeInformation" @@ -309,7 +318,7 @@ } } }, - "description" : "Too Many Request" + "description" : "Too Many Requests" }, "500" : { "content" : { @@ -342,12 +351,13 @@ "description" : "Service Unavailable" } }, + "summary" : "Get A1 Policy Types (getPolicyTypes)", "tags" : [ "A1 Policy Management" ] } }, "/policy-types/{policyTypeId}" : { "get" : { - "description" : "Returns a policy type definition", + "description" : "Get an A1 Policy Type definition using its policy type ID", "operationId" : "getPolicyTypeDefinition", "parameters" : [ { "explode" : false, @@ -375,16 +385,16 @@ "content" : { "application/json" : { "examples" : { - "policyObject" : { - "$ref" : "#/components/examples/PolicyObject" + "PolicyTypeObject" : { + "$ref" : "#/components/examples/PolicyTypeObject" } }, "schema" : { - "$ref" : "#/components/schemas/PolicyObject" + "$ref" : "#/components/schemas/PolicyTypeObject" } } }, - "description" : "OK - schema of the given policy type" + "description" : "OK - details and schema of the requested A1 Policy Type" }, "400" : { "content" : { @@ -444,7 +454,7 @@ } } }, - "description" : "Too Many Request" + "description" : "Too Many Requests" }, "500" : { "content" : { @@ -477,12 +487,13 @@ "description" : "Service Unavailable" } }, + "summary" : "Get an A1 Policy Type definition (getPolicyTypeDefinition)", "tags" : [ "A1 Policy Management" ] } }, "/policies/{policyId}" : { "delete" : { - "description" : "Deleting the policy using policyId.", + "description" : "Delete an existing A1 Policy instance using its policy ID.", "operationId" : "deletePolicy", "parameters" : [ { "explode" : false, @@ -507,7 +518,7 @@ } ], "responses" : { "204" : { - "description" : "The created A1 policy was deleted" + "description" : "No Content" }, "400" : { "content" : { @@ -549,13 +560,33 @@ }, "description" : "Not Found" }, + "405" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Method Not Allowed" + }, + "406" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Not Acceptable" + }, "423" : { "content" : { "application/problem+json" : { "example" : { "status" : 423, "title" : "Locked", - "detail" : "State is Locked in the provided request." + "detail" : "State is Locked in the provided request." }, "schema" : { "$ref" : "#/components/schemas/ErrorInformation" @@ -572,7 +603,7 @@ } } }, - "description" : "Too Many Request" + "description" : "Too Many Requests" }, "500" : { "content" : { @@ -605,11 +636,11 @@ "description" : "Service Unavailable" } }, - "summary" : "Delete a policy", + "summary" : "Delete an A1 Policy instance (deletePolicy)", "tags" : [ "A1 Policy Management" ] }, "get" : { - "description" : "Returns a policy", + "description" : "Get an A1 Policy instance's policy data using its policy ID", "operationId" : "getPolicy", "parameters" : [ { "explode" : false, @@ -706,7 +737,7 @@ } } }, - "description" : "Too Many Request" + "description" : "Too Many Requests" }, "500" : { "content" : { @@ -739,11 +770,12 @@ "description" : "Service Unavailable" } }, + "summary" : "Get an A1 Policy's policy data (getPolicy)", "tags" : [ "A1 Policy Management" ] }, "put" : { - "description" : "update a policy", - "operationId" : "putPolicy", + "description" : "Update an existing A1 Policy instance's policy data using its policy ID.", + "operationId" : "updatePolicy", "parameters" : [ { "explode" : false, "in" : "path", @@ -866,7 +898,7 @@ "example" : { "status" : 423, "title" : "Locked", - "detail" : "State is Locked in the provided request." + "detail" : "State is Locked in the provided request." }, "schema" : { "$ref" : "#/components/schemas/ErrorInformation" @@ -883,7 +915,138 @@ } } }, - "description" : "Too Many Request" + "description" : "Too Many Requests" + }, + "500" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Internal Server Error" + }, + "502" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Bad Gateway" + }, + "503" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Service Unavailable" + } + }, + "summary" : "Update an A1 Policy's policy data (updatePolicy)", + "tags" : [ "A1 Policy Management" ] + } + }, + "/policies/{policyId}/status" : { + "get" : { + "description" : "Retrieve the status information for an A1 Policy Instance using its policy ID.", + "operationId" : "getPolicyStatus", + "parameters" : [ { + "explode" : false, + "in" : "path", + "name" : "policyId", + "required" : true, + "schema" : { + "type" : "string" + }, + "style" : "simple" + }, { + "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.", + "explode" : false, + "in" : "header", + "name" : "Accept", + "required" : false, + "schema" : { + "example" : "application/json", + "type" : "string" + }, + "style" : "simple" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PolicyStatusObject" + } + } + }, + "description" : "OK" + }, + "400" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Bad Request" + }, + "401" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Unauthorized" + }, + "403" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Forbidden" + }, + "404" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Not Found" + }, + "406" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Not Acceptable" + }, + "429" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Too Many Requests" }, "500" : { "content" : { @@ -916,15 +1079,16 @@ "description" : "Service Unavailable" } }, + "summary" : "Get an A1 Policy Instance's status (getPolicyStatus)", "tags" : [ "A1 Policy Management" ] } }, "/policies" : { "get" : { - "description" : "Returns a list of A1 policies matching given search criteria.
If several query parameters are defined, the policies matching all conditions are returned.", - "operationId" : "getAllPolicies", + "description" : "Returns a collection of A1 Policy Instance IDs for policies that match given search criteria. If several query parameters are defined, the policies matching all conditions are returned.\n", + "operationId" : "getPolicyIds", "parameters" : [ { - "description" : "Select policies of a given policy type identity.", + "description" : "Select policies with a given A1 Policy Type ID.", "explode" : true, "in" : "query", "name" : "policyTypeId", @@ -934,7 +1098,7 @@ }, "style" : "form" }, { - "description" : "Select policies of a given Near-RT RIC identity.", + "description" : "Select policies for a given Near-RT RIC identity.", "explode" : true, "in" : "query", "name" : "nearRtRicId", @@ -944,7 +1108,7 @@ }, "style" : "form" }, { - "description" : "Select policies owned by a given service.", + "description" : "Select policies owned by a given service (registered or unregistered).", "explode" : true, "in" : "query", "name" : "serviceId", @@ -954,7 +1118,7 @@ }, "style" : "form" }, { - "description" : "Select policies of types with the given type name (type identity has the format )", + "description" : "Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').", "explode" : true, "in" : "query", "name" : "typeName", @@ -1047,7 +1211,7 @@ } } }, - "description" : "Too Many Request" + "description" : "Too Many Requests" }, "500" : { "content" : { @@ -1080,11 +1244,11 @@ "description" : "Service Unavailable" } }, - "summary" : "Query policy identities", + "summary" : "Query for A1 Policy instances (getPolicyIds)", "tags" : [ "A1 Policy Management" ] }, "post" : { - "description" : "To create A1 policies", + "description" : "Create an A1 Policy Instance", "operationId" : "createPolicy", "requestBody" : { "content" : { @@ -1105,16 +1269,25 @@ } } }, - "description" : "Success case 201 created", + "description" : "Created", "headers" : { "Location" : { - "description" : "Contains the URI of the newly created resource", + "description" : "Contains the URI of the newly created A1 Policy Instances. This URI includes the A1 Policy Instance ID for the newly created policy instance.\n", "explode" : false, "required" : true, "schema" : { "type" : "string" }, "style" : "simple" + }, + "Content-Type" : { + "description" : "Media Type of the response", + "explode" : false, + "schema" : { + "example" : "application/json", + "type" : "string" + }, + "style" : "simple" } } }, @@ -1158,6 +1331,16 @@ }, "description" : "Not Found" }, + "405" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Method Not Allowed" + }, "406" : { "content" : { "application/problem+json" : { @@ -1168,13 +1351,43 @@ }, "description" : "Not Acceptable" }, + "409" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Conflict" + }, + "413" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Payload Too Large" + }, + "415" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Unsupported Media Type" + }, "423" : { "content" : { "application/problem+json" : { "example" : { "status" : 423, "title" : "Locked", - "detail" : "State is Locked in the provided request." + "detail" : "State is Locked in the provided request." }, "schema" : { "$ref" : "#/components/schemas/ErrorInformation" @@ -1191,7 +1404,7 @@ } } }, - "description" : "Too Many Request" + "description" : "Too Many Requests" }, "500" : { "content" : { @@ -1224,12 +1437,13 @@ "description" : "Service Unavailable" } }, + "summary" : "Create an A1 Policy Instance (createPolicy)", "tags" : [ "A1 Policy Management" ] } }, "/configuration" : { "get" : { - "description" : "Returns the contents of the application configuration", + "description" : "Returns the entire contents of the Application Configuration.", "operationId" : "getConfiguration", "responses" : { "200" : { @@ -1253,10 +1467,11 @@ "description" : "Not Found" } }, + "summary" : "Get the Application Configuration (getConfiguration)", "tags" : [ "Configuration" ] }, "put" : { - "description" : "Replace the current configuration file with the given configuration", + "description" : "Replace the current Application Configuration with a new configuration. The new configuration, if accepted, will take effect after a short delay. The new configuration must comply with the Application Configuration schema, which can be found from the the Application Documentation (Developer Guide)\n", "operationId" : "putConfiguration", "requestBody" : { "content" : { @@ -1271,7 +1486,7 @@ "responses" : { "200" : { "content" : { - "*/*" : { + "application/json" : { "schema" : { "$ref" : "#/components/schemas/void" } @@ -1290,12 +1505,13 @@ "description" : "Bad Request" } }, + "summary" : "Set/Replace the Application Configuration (putConfiguration)", "tags" : [ "Configuration" ] } }, "/services/{serviceId}/keepalive" : { "put" : { - "description" : "A registered service should invoke this operation regularly to indicate that it is still alive. If a registered service fails to invoke this operation before the end of a timeout period the service will be deregistered and all its A1 policies wil be removed. (This timeout can be set or disabled when each service is initially registered)", + "description" : "A registered service should invoke this operation regularly to indicate that it is still alive. If a registered service fails to invoke some operation, or this operation, before the end of a timeout period the service will be deregistered and all its A1 policies wil be removed and the service is deleted. This operation is only intended for registered services. (This timeout can be set or disabled when each service is initially registered). Unregistered services do not need to invoke this operation, since the optional keep-alive monitoring feature can only be enabled for registered services.", "operationId" : "keepAliveService", "parameters" : [ { "explode" : false, @@ -1318,20 +1534,10 @@ }, "style" : "simple" } ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "type" : "string" - } - } - }, - "required" : false - }, "responses" : { "200" : { "content" : { - "*/*" : { + "application/json" : { "schema" : { "type" : "object" } @@ -1350,16 +1556,16 @@ "description" : "Not Found" } }, - "summary" : "Heartbeat indicates that the service is running", + "summary" : "Heartbeat message from a service (keepAliveService)", "tags" : [ "Service Registry and Supervision" ] } }, "/services" : { "get" : { - "description" : "Either information about a registered service with given identity or all registered services are returned.", + "description" : "Get information about all registered services, or a single registered service. If the service ID of a registered service is included in the query, information about that service is returned. Otherwise Information about all registered is returned. This operation does not retrieve information about unregistered services.\n", "operationId" : "getServices", "parameters" : [ { - "description" : "The identity of the service", + "description" : "The identity of the registered service", "explode" : true, "in" : "query", "name" : "serviceId", @@ -1407,7 +1613,7 @@ "description" : "Not Found" } }, - "summary" : "Returns service information", + "summary" : "Get Services (getServices)", "tags" : [ "Service Registry and Supervision" ] }, "put" : { @@ -1415,7 +1621,7 @@ "RICStatus" : { "{$request.body#/callback_url}" : { "post" : { - "description" : "The URL to this call is registered at Service registration.", + "description" : "Callouts to indicate Near-RT RIC status changes relevant for Services. \nThe URL invoked by this callback is provided at Service registration.\n", "operationId" : "serviceCallback", "requestBody" : { "content" : { @@ -1449,13 +1655,14 @@ "description" : "Not Found" } }, - "summary" : "Callback for Near-RT RIC status", - "tags" : [ "Service callbacks" ] + "summary" : "Callback for Near-RT RIC status (serviceCallback)", + "tags" : [ "Service Registry and Supervision" ], + "x-callback-request" : true } } } }, - "description" : "Registering a service is needed to:
  • Get callbacks about available NearRT RICs.
  • Activate supervision of the service. If a service is inactive, its policies will automatically be deleted.
Policies can be created even if the service is not registerred. This is a feature which it is optional to use.", + "description" : "Register a single service, or update a previous registration. Service registration is required to get callbacks about available NearRT RICs and to enable supervision of the service's active status. If a registered service becomes inactive, its policies can be automatically deleted. A1 Policy instances can also be created for unregistered services. If an unregistered service is later registered, the service's policies are retained when the service becomes registered. This feature is optional to use.\n", "operationId" : "putService", "requestBody" : { "content" : { @@ -1470,7 +1677,7 @@ "responses" : { "200" : { "content" : { - "*/*" : { + "application/json" : { "schema" : { "type" : "object" } @@ -1480,7 +1687,7 @@ }, "201" : { "content" : { - "*/*" : { + "application/json" : { "schema" : { "type" : "object" } @@ -1499,13 +1706,13 @@ "description" : "Bad Request" } }, - "summary" : "Register a service", + "summary" : "Register or update a Service (putService)", "tags" : [ "Service Registry and Supervision" ] } }, "/services/{serviceId}" : { "delete" : { - "description" : "Unregister a service", + "description" : "Unregister a registered Service using its service ID. Only registered services can be unregistered. All A1 Policy Instances for the previously registered service will be removed.\n", "operationId" : "deleteService", "parameters" : [ { "explode" : false, @@ -1531,7 +1738,7 @@ "responses" : { "204" : { "content" : { - "*/*" : { + "application/json" : { "schema" : { "type" : "object" } @@ -1550,67 +1757,91 @@ "description" : "Not Found" } }, + "summary" : "Unregister a Service (deleteService)", "tags" : [ "Service Registry and Supervision" ] } } }, "components" : { "examples" : { - "ServiceStatusList" : { - "description" : "List of service information", - "value" : { - "serviceList" : [ { - "callbackUrl" : "callbackUrl", - "serviceId" : "serviceId", - "keepAliveIntervalSeconds" : 0, - "timeSinceLastActivitySeconds" : 6 - }, { - "callbackUrl" : "callbackUrl", - "serviceId" : "serviceId", - "keepAliveIntervalSeconds" : 0, - "timeSinceLastActivitySeconds" : 6 - } ] - } - }, - "PolicyStatusInfo" : { - "description" : "Status for one A1-P Policy", - "value" : { - "lastModified" : "last_modified", - "status" : { - "value" : { - "status" : "status" - } - } - } - }, "StatusInfo" : { "value" : { - "status" : "status" + "status" : "success" } }, "RicInfo" : { "value" : { - "ricId" : "ricId", - "managedElementIds" : [ "managedElementId", "managedElementId" ], + "ricId" : "ricId1", + "managedElementIds" : [ "Note #1", "Athlone small cells", "Some optional string" ], "state" : "UNAVAILABLE", - "policyTypeIds" : [ "policyTypeId", "policyTypeId" ] + "policyTypeIds" : [ "policyTypeId1", "policyTypeId2" ] } }, "RicInfoList" : { "value" : { "rics" : [ { - "ricId" : "ricId", - "managedElementIds" : [ "managedElementId", "managedElementId" ], + "ricId" : "ricId1", + "managedElementIds" : [ "Note #1", "Athlone small cells", "Fake Cells" ], "state" : "UNAVAILABLE", - "policyTypeIds" : [ "policyTypeId", "policyTypeId" ] + "policyTypeIds" : [ "policyTypeId1", "policyTypeId2" ] }, { - "ricId" : "ricId", - "managedElementIds" : [ "managedElementId", "managedElementId" ], + "ricId" : "ricId2", + "managedElementIds" : [ "My test element", "Another test element" ], "state" : "UNAVAILABLE", - "policyTypeIds" : [ "policyTypeId", "policyTypeId" ] + "policyTypeIds" : [ "policyTypeId3", "policyTypeId4" ] } ] } }, + "PolicyTypeInformation" : { + "value" : [ { + "policyTypeId" : "STD_QOS2_0.1.0", + "nearRtRicId" : "ric_g3_2" + }, { + "policyTypeId" : "STD_QOS_0_2_0", + "nearRtRicId" : "ric_g3_2" + }, { + "policyTypeId" : "STD_QOS2_0.1.0", + "nearRtRicId" : "ric_g3_1" + }, { + "policyTypeId" : "STD_QOS_0_2_0", + "nearRtRicId" : "ric_g3_1" + } ] + }, + "PolicyTypeObject" : { + "value" : { + "policySchema" : { + "$schema" : "http://json-schema.org/draft-07/schema#", + "title" : "STD_QOS_0_2_0", + "description" : "STD QOS2 policy type", + "type" : "object", + "properties" : { + "scope" : { + "type" : "object", + "properties" : { + "ueId" : { + "type" : "string" + }, + "qosId" : { + "type" : "string" + } + }, + "additionalProperties" : false, + "required" : [ "ueId", "qosId" ] + }, + "qosObjectives" : { + "type" : "object", + "properties" : { + "priorityLevel" : { + "type" : "number" + } + }, + "additionalProperties" : false, + "required" : [ "priorityLevel" ] + } + } + } + } + }, "PolicyObject" : { "value" : { "scope" : { @@ -1652,10 +1883,26 @@ "pdb" : 50 } } + }, + "ServiceStatusList" : { + "description" : "List of service information", + "value" : { + "serviceList" : [ { + "callbackUrl" : "http://callback.url", + "serviceId" : "serviceId1", + "keepAliveIntervalSeconds" : 0, + "timeSinceLastActivitySeconds" : 6 + }, { + "callbackUrl" : "http://callback.url", + "serviceId" : "serviceId2", + "keepAliveIntervalSeconds" : 500, + "timeSinceLastActivitySeconds" : 401 + } ] + } } }, "responses" : { - "400" : { + "404" : { "content" : { "application/problem+json" : { "schema" : { @@ -1663,9 +1910,9 @@ } } }, - "description" : "Bad Request" + "description" : "Not Found" }, - "401" : { + "400" : { "content" : { "application/problem+json" : { "schema" : { @@ -1673,9 +1920,9 @@ } } }, - "description" : "Unauthorized" + "description" : "Bad Request" }, - "403" : { + "401" : { "content" : { "application/problem+json" : { "schema" : { @@ -1683,9 +1930,9 @@ } } }, - "description" : "Forbidden" + "description" : "Unauthorized" }, - "404" : { + "403" : { "content" : { "application/problem+json" : { "schema" : { @@ -1693,9 +1940,9 @@ } } }, - "description" : "Not Found" + "description" : "Forbidden" }, - "405" : { + "406" : { "content" : { "application/problem+json" : { "schema" : { @@ -1703,9 +1950,9 @@ } } }, - "description" : "Method Not Allowed" + "description" : "Not Acceptable" }, - "406" : { + "429" : { "content" : { "application/problem+json" : { "schema" : { @@ -1713,9 +1960,9 @@ } } }, - "description" : "Not Acceptable" + "description" : "Too Many Requests" }, - "409" : { + "500" : { "content" : { "application/problem+json" : { "schema" : { @@ -1723,9 +1970,9 @@ } } }, - "description" : "Conflict" + "description" : "Internal Server Error" }, - "411" : { + "502" : { "content" : { "application/problem+json" : { "schema" : { @@ -1733,9 +1980,9 @@ } } }, - "description" : "Length Required" + "description" : "Bad Gateway" }, - "413" : { + "503" : { "content" : { "application/problem+json" : { "schema" : { @@ -1743,9 +1990,9 @@ } } }, - "description" : "Payload Too Large" + "description" : "Service Unavailable" }, - "415" : { + "411" : { "content" : { "application/problem+json" : { "schema" : { @@ -1753,9 +2000,9 @@ } } }, - "description" : "Unsupported Media Type" + "description" : "Length Required" }, - "429" : { + "413" : { "content" : { "application/problem+json" : { "schema" : { @@ -1763,9 +2010,9 @@ } } }, - "description" : "Too Many Request" + "description" : "Payload Too Large" }, - "500" : { + "415" : { "content" : { "application/problem+json" : { "schema" : { @@ -1773,19 +2020,24 @@ } } }, - "description" : "Internal Server Error" + "description" : "Unsupported Media Type" }, - "502" : { + "Locked" : { "content" : { "application/problem+json" : { + "example" : { + "status" : 423, + "title" : "Locked", + "detail" : "State is Locked in the provided request." + }, "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" + "$ref" : "#/components/schemas/ErrorInformation" } } }, - "description" : "Bad Gateway" + "description" : "Locked - HTTP Status code which can be used when the state is Locked" }, - "503" : { + "405" : { "content" : { "application/problem+json" : { "schema" : { @@ -1793,152 +2045,88 @@ } } }, - "description" : "Service Unavailable" + "description" : "Method Not Allowed" }, - "Locked" : { + "409" : { "content" : { "application/problem+json" : { - "example" : { - "status" : 423, - "title" : "Locked", - "detail" : "State is Locked in the provided request." - }, "schema" : { - "$ref" : "#/components/schemas/ErrorInformation" + "$ref" : "#/components/schemas/ProblemDetails" } } }, - "description" : "Locked - HTTP Status code which can be used when the state is Locked" + "description" : "Conflict" } }, "schemas" : { - "PolicyTypeInformation" : { - "description" : "Available policy types and for each policy type identifier the Near-RT RIC identifiers of those Near-RT RICs that support the related A1 policy type", + "StatusInfo" : { + "example" : { + "status" : "status" + }, "properties" : { - "policyTypeId" : { - "description" : "Identity of the policy type", + "status" : { + "description" : "Status text", "type" : "string" - }, - "nearRtRicId" : { - "$ref" : "#/components/schemas/NearRtRicId" } }, - "required" : [ "nearRtRicId", "policyTypeId" ], "type" : "object" }, - "PolicyObjectInformation" : { - "description" : "Information related to the creation of the policy", + "ProblemDetails" : { + "description" : "Object to carry details about a problem in an HTTP response according to IETF RFC 7807", "properties" : { - "nearRtRicId" : { - "description" : "identity of the target Near-RT RIC", - "example" : "Near-RT-Ric-ID", - "type" : "string" - }, - "transient" : { - "default" : false, - "description" : "if true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.", - "nullable" : false, - "type" : "boolean" - }, - "policyId" : { - "description" : "identity of the Policy", - "example" : "POLICY-ID", + "type" : { + "description" : "URI reference according to IETF RFC 3986 that identifies the problem type", "type" : "string" }, - "serviceId" : { - "description" : "the identity of the service owning the policy. This can be used to group the policies (it is possible to get all policies associated to a service). Note that the service does not need to be registered.", - "example" : "rApp ID", + "title" : { + "description" : "Human-readable summary of the problem type", "type" : "string" }, - "policyObject" : { - "$ref" : "#/components/schemas/PolicyObject" + "status" : { + "description" : "HTTP status code", + "type" : "number" }, - "policyTypeId" : { - "description" : "identity of the policy type", - "example" : "ORAN_QOS_1.0.0(typeName_SemVersion)", - "type" : "string" - } - }, - "required" : [ "nearRtRicId", "policyObject", "policyTypeId" ], - "type" : "object" - }, - "ErrorInformation" : { - "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807", - "properties" : { "detail" : { - "description" : " A human-readable explanation specific to this occurrence of the problem.", - "example" : "Policy type not found", + "description" : "Human-readable explanation", "type" : "string" }, - "title" : { - "description" : "A specific error name", - "example" : "Not Found", - "type" : "string" - }, - "status" : { - "description" : "The HTTP status code generated by the origin server for this occurrence of the problem. ", - "example" : 404, - "format" : "int32", - "type" : "integer" - } - }, - "type" : "object" - }, - "PolicyObject" : { - "description" : "Policy Object is a JSON representation of an A1 policy", - "type" : "object" - }, - "void" : { - "description" : "Void/empty", - "type" : "object" - }, - "StatusInfo" : { - "properties" : { - "status" : { - "description" : "status text", + "instance" : { + "description" : "URI reference that identifies the specific occurrence of the problem", "type" : "string" } }, "type" : "object" }, - "AuthorizationResult" : { - "description" : "Result of authorization", - "example" : { - "result" : true - }, - "properties" : { - "result" : { - "description" : "If true, the access is granted", - "type" : "boolean" - } - }, - "required" : [ "result" ], - "type" : "object" - }, "RicInfo" : { "description" : "Information for a Near-RT RIC", + "example" : { + "ricId" : "ricId", + "policyTypeIds" : [ "policyTypeIds", "policyTypeIds" ], + "managedElementIds" : [ "managedElementIds", "managedElementIds" ], + "state" : "UNAVAILABLE" + }, "properties" : { "ricId" : { - "description" : "identity of the Near-RT RIC", + "description" : "Identity of the Near-RT RIC", "type" : "string" }, "managedElementIds" : { - "description" : "O1 identities for managed entities", + "description" : "Identities for managed entities", "items" : { - "description" : "O1 identities for managed entities", + "description" : "Identity for a managed entity", "type" : "string" }, "type" : "array" }, "state" : { - "description" : "Represents the states for a Near-RT RIC", + "description" : "Represents the state of a Near-RT RIC", "enum" : [ "UNAVAILABLE", "AVAILABLE", "SYNCHRONIZING", "CONSISTENCY_CHECK" ], "type" : "string" }, "policyTypeIds" : { - "description" : "supported policy types", + "description" : "Supported A1 Policy Types", "items" : { - "description" : "supported policy types", + "description" : "Supported A1 Policy Type ID", "type" : "string" }, "type" : "array" @@ -1946,128 +2134,243 @@ }, "type" : "object" }, - "ServiceRegistrationInfo" : { - "description" : "Information for one service", + "RicInfoList" : { + "description" : "Collection of Near-RT RIC information objects", + "example" : { + "rics" : [ { + "ricId" : "ricId", + "policyTypeIds" : [ "policyTypeIds", "policyTypeIds" ], + "managedElementIds" : [ "managedElementIds", "managedElementIds" ], + "state" : "UNAVAILABLE" + }, { + "ricId" : "ricId", + "policyTypeIds" : [ "policyTypeIds", "policyTypeIds" ], + "managedElementIds" : [ "managedElementIds", "managedElementIds" ], + "state" : "UNAVAILABLE" + } ] + }, "properties" : { - "callbackUrl" : { - "description" : "callback for notifying of Near-RT RIC state changes", + "rics" : { + "description" : "List of Near-RT RIC information objects", + "items" : { + "$ref" : "#/components/schemas/RicInfo" + }, + "type" : "array" + } + }, + "type" : "object" + }, + "PolicyTypeInformation" : { + "description" : "A data tuple to indicate that an identified A1 Policy Type is supported at an identified Near-RT RIC.", + "example" : { + "policyTypeId" : "STD_QOS2_0.1.0", + "nearRtRicId" : "ric_g3_2" + }, + "properties" : { + "policyTypeId" : { + "description" : "A1 Policy Type identifier", "type" : "string" }, - "serviceId" : { - "description" : "identity of the service", + "nearRtRicId" : { + "description" : "Identity of the Near-RT RIC", "type" : "string" - }, - "keepAliveIntervalSeconds" : { - "description" : "keep alive interval for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled.", - "format" : "int64", - "type" : "integer" } }, - "required" : [ "serviceId" ], + "required" : [ "nearRtRicId", "policyTypeId" ], "type" : "object" }, - "PolicyStatusInfo" : { - "description" : "Status for one A1-P Policy", + "NearRtRicId" : { + "description" : "Identity of the Near-RT RIC", + "type" : "string" + }, + "PolicyTypeObject" : { + "description" : "An A1 Policy Type, as defined in O-RAN Alliance A1TD", + "example" : { + "policySchema" : { + "$schema" : "http://json-schema.org/draft-07/schema#", + "title" : "STD_QOS_0_2_0", + "description" : "Policy data schema for STD_QOS_0.2.0 A1 Policy Instances.", + "type" : "object", + "properties" : { + "scope" : { + "type" : "object", + "properties" : { + "ueId" : { + "type" : "string" + }, + "qosId" : { + "type" : "string" + } + }, + "additionalProperties" : false, + "required" : [ "ueId", "qosId" ] + }, + "qosObjectives" : { + "type" : "object", + "properties" : { + "priorityLevel" : { + "type" : "number" + } + }, + "additionalProperties" : false, + "required" : [ "priorityLevel" ] + } + } + }, + "statusSchema" : { + "$schema" : "http://json-schema.org/draft-07/schema#", + "title" : "STD_QOS_0.2.0", + "description" : "Status schema for STD_QOS_0.2.0 A1 Policy Instances.", + "type" : "object", + "properties" : { + "enforceStatus" : { + "type" : "string" + }, + "enforceReason" : { + "type" : "string" + }, + "additionalProperties" : false, + "required" : [ "enforceStatus" ] + } + } + }, "properties" : { - "lastModified" : { - "description" : "timestamp, last modification time", - "type" : "string" + "policySchema" : { + "description" : "A schema to define the policy data contents of A1 Policy Instances. Policy data schemas are Policy Type specific. All A1 Policy Instances of an A1 Policy Type should comply with the type's policy data schema.\n", + "type" : "object" }, - "status" : { - "description" : "the Policy status", + "statusSchema" : { + "description" : "A schema to define the contents of the status information for A1 Policy Instances. Status schemas are Policy Type specific. All status information for all A1 Policy Instances of an A1 Policy Type should comply with the type's status schema.\n", "type" : "object" } }, + "required" : [ "policySchema" ], "type" : "object" }, - "ServiceStatus" : { + "PolicySchema" : { + "description" : "A schema to define the policy data contents of A1 Policy Instances. Policy data schemas are Policy Type specific. All A1 Policy Instances of an A1 Policy Type should comply with the type's policy data schema.\n", + "type" : "object" + }, + "StatusSchema" : { + "description" : "A schema to define the contents of the status information for A1 Policy Instances. Status schemas are Policy Type specific. All status information for all A1 Policy Instances of an A1 Policy Type should comply with the type's status schema.\n", + "type" : "object" + }, + "PolicyObject" : { + "description" : "Policy Object is a JSON representation policy data for an A1 Policy Instance. The schema for this policy data is defined in the corresponding A1 Policy Type.\n", + "type" : "object" + }, + "ErrorInformation" : { + "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807", "properties" : { - "callbackUrl" : { - "description" : "callback for notifying of RIC synchronization", + "detail" : { + "description" : "A human-readable explanation specific to this occurrence of the problem.", + "example" : "Policy type not found", "type" : "string" }, - "serviceId" : { - "description" : "identity of the service", + "title" : { + "description" : "A specific error name", + "example" : "Not Found", "type" : "string" }, - "keepAliveIntervalSeconds" : { - "description" : "policy keep alive timeout", - "format" : "int64", - "type" : "integer" - }, - "timeSinceLastActivitySeconds" : { - "description" : "time since last invocation by the service", - "format" : "int64", + "status" : { + "description" : "The HTTP status code generated by the origin server for this occurrence of the problem.\n", + "example" : 404, + "format" : "int32", "type" : "integer" } }, "type" : "object" }, - "RicInfoList" : { - "description" : "List of Near-RT RIC information", - "properties" : { - "rics" : { - "description" : "List of Near-RT RIC information", - "items" : { - "$ref" : "#/components/schemas/RicInfo" - }, - "type" : "array" - } - }, + "PolicyStatusObject" : { + "description" : "A generic policy status object that can be used to transport any policy status. Additionally, a schema for policy status can be defined in the corresponding A1 Policy Type.\n", "type" : "object" }, - "input" : { - "description" : "input", + "PolicyInformation" : { + "description" : "Information tuple for a single A1 Policy Instance. Contains the A1 Policy Instance ID, and the ID of the Near-RT RIC where the policy is created.\n", + "example" : { + "policyId" : "policyId", + "nearRtRicId" : "nearRtRicId" + }, "properties" : { - "accessType" : { - "description" : "Access type", - "enum" : [ "READ", "WRITE", "DELETE" ], - "type" : "string" - }, - "authToken" : { - "description" : "Authorization token", + "policyId" : { + "description" : "Identity of the A1 Policy Instance", "type" : "string" }, - "policyTypeId" : { - "description" : "Policy type identifier", + "nearRtRicId" : { + "description" : "Identity of the Near-RT RIC", "type" : "string" } }, - "required" : [ "accessType", "authToken", "policyTypeId" ], + "required" : [ "nearRtRicId", "policyId" ], "type" : "object" }, - "PolicyAuthorization" : { - "description" : "Authorization request for A1 policy requests", - "properties" : { - "input" : { - "$ref" : "#/components/schemas/input" - } + "PolicyObjectInformation" : { + "description" : "Information to create an A1 Policy Instance", + "example" : { + "policyId" : "POLICY-ID1", + "nearRtRicId" : "Near-RT-Ric-ID1", + "transient" : false, + "policyObject" : "{}", + "serviceId" : "rApp 1", + "policyTypeId" : "ORAN_QOS_1.0.0 '(typeName_SemVersion)'" }, - "required" : [ "input" ], - "type" : "object" - }, - "NearRtRicId" : { - "description" : "Identity of the policy", - "type" : "string" - }, - "PolicyInformation" : { - "description" : "Near-RT RIC identifiers where A1 policies exist and for each Near-RT RIC identifier the policy identifiers of those policies that exist in that Near-RT RIC", "properties" : { + "nearRtRicId" : { + "description" : "Identity of the target Near-RT RIC", + "example" : "Near-RT-Ric-ID1", + "type" : "string" + }, + "transient" : { + "default" : false, + "description" : "If true, the policy is automatically deleted if the targeted Near-RT RIC restarts or recovers. If false, the A1 Policy Instance remains, and is re-pushed to the targeted Near-RT RIC after a restart or recovery. If false, the A1 Policy Instance is maintained and must be deleted separately in the event of Near-RT RIC restart or recovery. Default is false.\n", + "nullable" : false, + "type" : "boolean" + }, "policyId" : { - "description" : "Identity of the policy", + "description" : "An optional identity to be used for the new A1 Policy Instance. If this value is present, it must be unique. If not present the new A1 Policy Instance will be assigned a newly generated unique ID, and the new ID can be extracted from the 'Location' header in the response.\n", + "example" : "POLICY-ID1", "type" : "string" }, - "nearRtRicId" : { - "$ref" : "#/components/schemas/NearRtRicId" + "serviceId" : { + "default" : "", + "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. If the service is registered, the newly created A1 Policy Instance will be subject to the same supervision rules as the the service's other policies.", + "example" : "rApp 1", + "type" : "string" + }, + "policyObject" : { + "description" : "Policy Object is a JSON representation policy data for an A1 Policy Instance. The schema for this policy data is defined in the corresponding A1 Policy Type.\n", + "type" : "object" + }, + "policyTypeId" : { + "description" : "A1 Policy Type identity", + "example" : "ORAN_QOS_1.0.0 '(typeName_SemVersion)'", + "type" : "string" } }, - "required" : [ "nearRtRicId", "policyId" ], + "required" : [ "nearRtRicId", "policyObject", "policyTypeId" ], + "type" : "object" + }, + "void" : { + "description" : "Void/empty", "type" : "object" }, "ServiceStatusList" : { + "example" : { + "serviceList" : [ { + "keepAliveIntervalSeconds" : 0, + "callbackUrl" : "callbackUrl", + "timeSinceLastActivitySeconds" : 6, + "serviceId" : "serviceId" + }, { + "keepAliveIntervalSeconds" : 0, + "callbackUrl" : "callbackUrl", + "timeSinceLastActivitySeconds" : 6, + "serviceId" : "serviceId" + } ] + }, "properties" : { "serviceList" : { - "description" : "List of service information", + "description" : "List of Service Status objects, describing a collection of registered services.", "items" : { "$ref" : "#/components/schemas/ServiceStatus" }, @@ -2076,57 +2379,79 @@ }, "type" : "object" }, - "ServiceCallbackInfo" : { - "description" : "Information transferred as in Service callbacks (callback_url)", + "ServiceStatus" : { + "description" : "Information about a previously registered service", + "example" : { + "keepAliveIntervalSeconds" : 0, + "callbackUrl" : "callbackUrl", + "timeSinceLastActivitySeconds" : 6, + "serviceId" : "serviceId" + }, "properties" : { - "ricId" : { - "description" : "identity of a Near-RT RIC", + "callbackUrl" : { + "description" : "Callback URL for notifying of Near-RT RIC state changes", "type" : "string" }, - "eventType" : { - "description" : "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management", - "enum" : [ "AVAILABLE" ], + "serviceId" : { + "description" : "Identity of the service", "type" : "string" + }, + "keepAliveIntervalSeconds" : { + "description" : "Keep alive interval (seconds) 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.\n", + "format" : "int64", + "type" : "integer" + }, + "timeSinceLastActivitySeconds" : { + "description" : "Time (seconds) since last recorded operation by the service", + "format" : "int64", + "type" : "integer" } }, - "required" : [ "eventType", "ricId" ], "type" : "object" }, - "Link" : { + "ServiceRegistrationInfo" : { + "description" : "Information for a service to be registered", + "example" : { + "keepAliveIntervalSeconds" : 0, + "callbackUrl" : "callbackUrl", + "serviceId" : "serviceId" + }, "properties" : { - "templated" : { - "type" : "boolean" + "callbackUrl" : { + "description" : "Callback URL for notifying of Near-RT RIC state changes", + "type" : "string" }, - "href" : { + "serviceId" : { + "description" : "Identity of the service", "type" : "string" + }, + "keepAliveIntervalSeconds" : { + "description" : "Keep alive interval for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled.\n", + "format" : "int64", + "type" : "integer" } }, + "required" : [ "serviceId" ], "type" : "object" }, - "ProblemDetails" : { - "description" : "A problem detail to carry details in an HTTP response according to RFC 7807", + "ServiceCallbackInfo" : { + "description" : "Information transferred in Service callbacks, \nif a callback URL was provided for a registered service\n", + "example" : { + "ricId" : "ricId", + "eventType" : "AVAILABLE" + }, "properties" : { - "type" : { - "description" : "a URI reference according to IETF RFC 3986 that identifies the problem type", - "type" : "string" - }, - "title" : { - "description" : "human-readable summary of the problem type", - "type" : "string" - }, - "status" : { - "description" : "the HTTP status code", - "type" : "number" - }, - "detail" : { - "description" : "human-readable explanation ", + "ricId" : { + "description" : "Identity of a Near-RT RIC", "type" : "string" }, - "instance" : { - "description" : "URI reference that identifies the specific occurrence of the problem", + "eventType" : { + "description" : "values: \n AVAILABLE: the Near-RT RIC has become available for A1 Policy management\n", + "enum" : [ "AVAILABLE" ], "type" : "string" } }, + "required" : [ "eventType", "ricId" ], "type" : "object" } } diff --git a/docs/offeredapis/swagger/pms-api-v3.json b/docs/offeredapis/swagger/pms-api-v3.json index c844073..38f3c62 100644 --- a/docs/offeredapis/swagger/pms-api-v3.json +++ b/docs/offeredapis/swagger/pms-api-v3.json @@ -2,44 +2,46 @@ "openapi" : "3.0.3", "info" : { "contact" : { - "email" : "discuss-list@onap.com", - "url" : "https://www.onap.org/" + "email" : "discuss@lists.o-ran-sc.org", + "url" : "https://o-ran-sc.org//" }, - "description" : "

General

The O-RAN Non-RT RIC Policy Management Service provides a REST API for managemecnt of A1 policies.
The main tasks of the service are:

  • A1 Policy creation, modification and deletion.
  • Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs
  • Maintaining a view of supported Near-RT RIC policy types
  • Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.

APIs provided or defined by the service

A1 Policy Management

This is an API for management of A1 Policies.

  • A1 Policy retrieval, creation, modification and deletion.
  • Retrieval of supported A1 Policy types for a Near-RT RIC
  • Retrieval of status for existing A1 policies

Management of configuration

API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.

Service callbacks

These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.

NearRT-RIC Repository

This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.

Health Check

API used for supervision of the PMS component.

Service Registry and Supervision

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.

Authorization API

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.

", + "description" : "

General

The ORAN SC A1 Policy Management Service provides a REST API for managing A1 policies.
This document describes the latest API set to perform tasks for:

  • A1 Policy creation, modification and deletion.
  • Monitoring and maintaining consistency of the SMO view of A1 Policies and the Near-RT RICs
  • Maintaining a view of each Near-RT RIC's supported A1 Policy Types
  • Supervision of registered services (rApps). When a registered service is unavailable, its policies are removed.

APIs provided or defined by the service

Note: parts of this API are strongly based on extracts of the O-RAN Alliance R1 Interface specification for A1 Policy Management, and those parts should be considered '© O-RAN ALLIANCE - All rights reserved.'

A1 Policy Management

This is the latest API for managing A1 Policies. This API is partially compliant with O-RAN Alliance R1 Interface specifications for A1 Policy Management:

  • A1 Policy retrieval, creation, modification and deletion.
  • Retrieval of supported A1 Policy Types for a Near-RT RIC
  • Retrieval of status for existing A1 policies

Management of configuration

API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.

Service Callbacks

These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.

NearRT-RIC Repository (Older version)

This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted towards one Near-RT RIC.

Health Check

API used for supervision of the A1 Policy Management Service.

Service Registry and Supervision

API used for registering services/clients/rApps. Each A1 Policy can be tagged with an owner. If the owner service is registered, then the service can be optionally monitored by a heart-beat supervision mechanism, and if the registered service becomes unavailable, then it is removed and all its A1 Policies are deleted. Note that services do not need to be registered to create A1 Policies, but unregistered services are not supervised. This is a feature that is optional to use.

", "license" : { - "name" : "Copyright (C) 2024 OpenInfra Foundation Europe. Licensed under the Apache License.", + "name" : "Copyright (C) 2024 - 2025 OpenInfra Foundation Europe. Licensed under the Apache 2 License.", "url" : "http://www.apache.org/licenses/LICENSE-2.0" }, - "title" : "A1 policy management API", + "title" : "OSC - A1 Policy Management API", "version" : "1.0.0", - "x-api-id" : "a31c510b-20e6-4a08-af16-368c44d7fba8", + "x-api-id" : "e9776a07-0813-4fca-9801-6f892f0a7c13", "x-audience" : "external-public" }, + "externalDocs" : { + "description" : "Based on parts of O-RAN ALLIANCE specification: O-RAN.WG2.R1AP-v07.00", + "url" : "https://www.o-ran.org/specifications" + }, "servers" : [ { "url" : "{apiRoot}/a1-policy-management/v1", "variables" : { "apiRoot" : { "default" : "https://example.com", - "description" : "This is the Host:Port or Address where the A1-Policy Management Service can be accessed" + "description" : "This is the Host:Port or Address where the A1-Policy Management Service can be accessed. Note: This URL path format aligns with the O-RAN Alliance R1-AP specifications for A1 Policy Management" } } } ], "tags" : [ { - "description" : "API used to create polices, Policy Instances and get them as individual using an ID or get all policies/Instances.", + "description" : "API used to get, create, update and delete A1 Policy Instances. Also used to query A1 Policy Types.\n", "name" : "A1 Policy Management" }, { - "description" : "API used to get the NearRT-RIC for the managed element.", + "description" : "API used to get information about registered Near-RT RICs.\n", "name" : "NearRT-RIC Repository" }, { - "description" : "API used to keep the service Alive with in the timeout period", + "description" : "API used to manage registered services, and control their keep-alive status via heart-beat messages.\n", "name" : "Service Registry and Supervision" }, { - "description" : "API used to get the health status and statistics of this service", + "description" : "API used to get the health status and statistics of this service.\n", "name" : "Health Check" }, { - "name" : "Service callbacks" - }, { - "description" : "API used to create or fetch the application configuration.", + "description" : "API used to create or fetch the application configuration.\n", "name" : "Configuration" } ], "paths" : { @@ -62,35 +64,37 @@ } }, "description" : "OK- Service is living Ok" + }, + "404" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Not Found" } }, + "summary" : "Get Status (getStatus)", "tags" : [ "Health Check" ] } }, - "/rics/ric" : { + "/rics/{ricId}" : { "get" : { - "description" : "Either a Near-RT RIC identity or a Managed Element identity can be specified.
The intention with Managed Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU).", + "description" : "Get information about a Near-RT RIC", "operationId" : "getRic", "parameters" : [ { - "description" : "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.", - "explode" : true, - "in" : "query", - "name" : "managedElementId", - "required" : false, - "schema" : { - "type" : "string" - }, - "style" : "form" - }, { "description" : "The identity of a Near-RT RIC to get information for.", "explode" : true, - "in" : "query", + "in" : "path", "name" : "ricId", - "required" : false, + "required" : true, "schema" : { + "nullable" : false, "type" : "string" }, - "style" : "form" + "style" : "simple" }, { "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.", "explode" : false, @@ -130,16 +134,16 @@ "description" : "Not Found" } }, - "summary" : "Returns info for one Near-RT RIC", + "summary" : "Get a Near-RT RIC (getRic)", "tags" : [ "NearRT-RIC Repository" ] } }, "/rics" : { "get" : { - "description" : "The call returns all Near-RT RICs that supports a given policy type identity", + "description" : "Get all Near-RT RICs that supports a given A1 Policy Type ID", "operationId" : "getRics", "parameters" : [ { - "description" : "The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned", + "description" : "The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned.\n", "explode" : true, "in" : "query", "name" : "policyTypeId", @@ -187,13 +191,13 @@ "description" : "Not Found" } }, - "summary" : "Query Near-RT RIC information", + "summary" : "Get Near-RT RICs for A1 Policy Type (getRics)", "tags" : [ "NearRT-RIC Repository" ] } }, "/policy-types" : { "get" : { - "description" : "Query policy type identities", + "description" : "Query A1 Policy Type identities using query parameters", "operationId" : "getPolicyTypes", "parameters" : [ { "description" : "Select types for the given Near-RT RIC identity.", @@ -206,7 +210,7 @@ }, "style" : "form" }, { - "description" : "Select types with the given type name (type identity has the format )", + "description" : "Select types compatible with the given type name (type identity has the format 'typename_version')", "explode" : true, "in" : "query", "name" : "typeName", @@ -216,7 +220,7 @@ }, "style" : "form" }, { - "description" : "Select types that are compatible with the given version. This parameter is only applicable in conjunction with type_name. As an example version 1.9.1 is compatible with 1.0.0 but not the other way around. Matching types will be returned sorted in ascending order.", + "description" : "Select types that are compatible with the given version. This parameter is only applicable in conjunction with typeName. 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.\n", "explode" : true, "in" : "query", "name" : "compatibleWithVersion", @@ -241,6 +245,11 @@ "200" : { "content" : { "application/json" : { + "examples" : { + "PolicyTypeInformation" : { + "$ref" : "#/components/examples/PolicyTypeInformation" + } + }, "schema" : { "items" : { "$ref" : "#/components/schemas/PolicyTypeInformation" @@ -309,7 +318,7 @@ } } }, - "description" : "Too Many Request" + "description" : "Too Many Requests" }, "500" : { "content" : { @@ -342,12 +351,13 @@ "description" : "Service Unavailable" } }, + "summary" : "Get A1 Policy Types (getPolicyTypes)", "tags" : [ "A1 Policy Management" ] } }, "/policy-types/{policyTypeId}" : { "get" : { - "description" : "Returns a policy type definition", + "description" : "Get an A1 Policy Type definition using its policy type ID", "operationId" : "getPolicyTypeDefinition", "parameters" : [ { "explode" : false, @@ -375,16 +385,16 @@ "content" : { "application/json" : { "examples" : { - "policyObject" : { - "$ref" : "#/components/examples/PolicyObject" + "PolicyTypeObject" : { + "$ref" : "#/components/examples/PolicyTypeObject" } }, "schema" : { - "$ref" : "#/components/schemas/PolicyObject" + "$ref" : "#/components/schemas/PolicyTypeObject" } } }, - "description" : "OK - schema of the given policy type" + "description" : "OK - details and schema of the requested A1 Policy Type" }, "400" : { "content" : { @@ -444,7 +454,7 @@ } } }, - "description" : "Too Many Request" + "description" : "Too Many Requests" }, "500" : { "content" : { @@ -477,12 +487,13 @@ "description" : "Service Unavailable" } }, + "summary" : "Get an A1 Policy Type definition (getPolicyTypeDefinition)", "tags" : [ "A1 Policy Management" ] } }, "/policies/{policyId}" : { "delete" : { - "description" : "Deleting the policy using policyId.", + "description" : "Delete an existing A1 Policy instance using its policy ID.", "operationId" : "deletePolicy", "parameters" : [ { "explode" : false, @@ -507,7 +518,7 @@ } ], "responses" : { "204" : { - "description" : "The created A1 policy was deleted" + "description" : "No Content" }, "400" : { "content" : { @@ -549,13 +560,33 @@ }, "description" : "Not Found" }, + "405" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Method Not Allowed" + }, + "406" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Not Acceptable" + }, "423" : { "content" : { "application/problem+json" : { "example" : { "status" : 423, "title" : "Locked", - "detail" : "State is Locked in the provided request." + "detail" : "State is Locked in the provided request." }, "schema" : { "$ref" : "#/components/schemas/ErrorInformation" @@ -572,7 +603,7 @@ } } }, - "description" : "Too Many Request" + "description" : "Too Many Requests" }, "500" : { "content" : { @@ -605,11 +636,11 @@ "description" : "Service Unavailable" } }, - "summary" : "Delete a policy", + "summary" : "Delete an A1 Policy instance (deletePolicy)", "tags" : [ "A1 Policy Management" ] }, "get" : { - "description" : "Returns a policy", + "description" : "Get an A1 Policy instance's policy data using its policy ID", "operationId" : "getPolicy", "parameters" : [ { "explode" : false, @@ -706,7 +737,7 @@ } } }, - "description" : "Too Many Request" + "description" : "Too Many Requests" }, "500" : { "content" : { @@ -739,11 +770,12 @@ "description" : "Service Unavailable" } }, + "summary" : "Get an A1 Policy's policy data (getPolicy)", "tags" : [ "A1 Policy Management" ] }, "put" : { - "description" : "update a policy", - "operationId" : "putPolicy", + "description" : "Update an existing A1 Policy instance's policy data using its policy ID.", + "operationId" : "updatePolicy", "parameters" : [ { "explode" : false, "in" : "path", @@ -866,7 +898,7 @@ "example" : { "status" : 423, "title" : "Locked", - "detail" : "State is Locked in the provided request." + "detail" : "State is Locked in the provided request." }, "schema" : { "$ref" : "#/components/schemas/ErrorInformation" @@ -883,7 +915,138 @@ } } }, - "description" : "Too Many Request" + "description" : "Too Many Requests" + }, + "500" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Internal Server Error" + }, + "502" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Bad Gateway" + }, + "503" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Service Unavailable" + } + }, + "summary" : "Update an A1 Policy's policy data (updatePolicy)", + "tags" : [ "A1 Policy Management" ] + } + }, + "/policies/{policyId}/status" : { + "get" : { + "description" : "Retrieve the status information for an A1 Policy Instance using its policy ID.", + "operationId" : "getPolicyStatus", + "parameters" : [ { + "explode" : false, + "in" : "path", + "name" : "policyId", + "required" : true, + "schema" : { + "type" : "string" + }, + "style" : "simple" + }, { + "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.", + "explode" : false, + "in" : "header", + "name" : "Accept", + "required" : false, + "schema" : { + "example" : "application/json", + "type" : "string" + }, + "style" : "simple" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/PolicyStatusObject" + } + } + }, + "description" : "OK" + }, + "400" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Bad Request" + }, + "401" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Unauthorized" + }, + "403" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Forbidden" + }, + "404" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Not Found" + }, + "406" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Not Acceptable" + }, + "429" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Too Many Requests" }, "500" : { "content" : { @@ -916,15 +1079,16 @@ "description" : "Service Unavailable" } }, + "summary" : "Get an A1 Policy Instance's status (getPolicyStatus)", "tags" : [ "A1 Policy Management" ] } }, "/policies" : { "get" : { - "description" : "Returns a list of A1 policies matching given search criteria.
If several query parameters are defined, the policies matching all conditions are returned.", - "operationId" : "getAllPolicies", + "description" : "Returns a collection of A1 Policy Instance IDs for policies that match given search criteria. If several query parameters are defined, the policies matching all conditions are returned.\n", + "operationId" : "getPolicyIds", "parameters" : [ { - "description" : "Select policies of a given policy type identity.", + "description" : "Select policies with a given A1 Policy Type ID.", "explode" : true, "in" : "query", "name" : "policyTypeId", @@ -934,7 +1098,7 @@ }, "style" : "form" }, { - "description" : "Select policies of a given Near-RT RIC identity.", + "description" : "Select policies for a given Near-RT RIC identity.", "explode" : true, "in" : "query", "name" : "nearRtRicId", @@ -944,7 +1108,7 @@ }, "style" : "form" }, { - "description" : "Select policies owned by a given service.", + "description" : "Select policies owned by a given service (registered or unregistered).", "explode" : true, "in" : "query", "name" : "serviceId", @@ -954,7 +1118,7 @@ }, "style" : "form" }, { - "description" : "Select policies of types with the given type name (type identity has the format )", + "description" : "Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').", "explode" : true, "in" : "query", "name" : "typeName", @@ -1047,7 +1211,7 @@ } } }, - "description" : "Too Many Request" + "description" : "Too Many Requests" }, "500" : { "content" : { @@ -1080,11 +1244,11 @@ "description" : "Service Unavailable" } }, - "summary" : "Query policy identities", + "summary" : "Query for A1 Policy instances (getPolicyIds)", "tags" : [ "A1 Policy Management" ] }, "post" : { - "description" : "To create A1 policies", + "description" : "Create an A1 Policy Instance", "operationId" : "createPolicy", "requestBody" : { "content" : { @@ -1105,16 +1269,25 @@ } } }, - "description" : "Success case 201 created", + "description" : "Created", "headers" : { "Location" : { - "description" : "Contains the URI of the newly created resource", + "description" : "Contains the URI of the newly created A1 Policy Instances. This URI includes the A1 Policy Instance ID for the newly created policy instance.\n", "explode" : false, "required" : true, "schema" : { "type" : "string" }, "style" : "simple" + }, + "Content-Type" : { + "description" : "Media Type of the response", + "explode" : false, + "schema" : { + "example" : "application/json", + "type" : "string" + }, + "style" : "simple" } } }, @@ -1158,6 +1331,16 @@ }, "description" : "Not Found" }, + "405" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Method Not Allowed" + }, "406" : { "content" : { "application/problem+json" : { @@ -1168,13 +1351,43 @@ }, "description" : "Not Acceptable" }, + "409" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Conflict" + }, + "413" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Payload Too Large" + }, + "415" : { + "content" : { + "application/problem+json" : { + "schema" : { + "$ref" : "#/components/schemas/ProblemDetails" + } + } + }, + "description" : "Unsupported Media Type" + }, "423" : { "content" : { "application/problem+json" : { "example" : { "status" : 423, "title" : "Locked", - "detail" : "State is Locked in the provided request." + "detail" : "State is Locked in the provided request." }, "schema" : { "$ref" : "#/components/schemas/ErrorInformation" @@ -1191,7 +1404,7 @@ } } }, - "description" : "Too Many Request" + "description" : "Too Many Requests" }, "500" : { "content" : { @@ -1224,12 +1437,13 @@ "description" : "Service Unavailable" } }, + "summary" : "Create an A1 Policy Instance (createPolicy)", "tags" : [ "A1 Policy Management" ] } }, "/configuration" : { "get" : { - "description" : "Returns the contents of the application configuration", + "description" : "Returns the entire contents of the Application Configuration.", "operationId" : "getConfiguration", "responses" : { "200" : { @@ -1253,10 +1467,11 @@ "description" : "Not Found" } }, + "summary" : "Get the Application Configuration (getConfiguration)", "tags" : [ "Configuration" ] }, "put" : { - "description" : "Replace the current configuration file with the given configuration", + "description" : "Replace the current Application Configuration with a new configuration. The new configuration, if accepted, will take effect after a short delay. The new configuration must comply with the Application Configuration schema, which can be found from the the Application Documentation (Developer Guide)\n", "operationId" : "putConfiguration", "requestBody" : { "content" : { @@ -1271,7 +1486,7 @@ "responses" : { "200" : { "content" : { - "*/*" : { + "application/json" : { "schema" : { "$ref" : "#/components/schemas/void" } @@ -1290,12 +1505,13 @@ "description" : "Bad Request" } }, + "summary" : "Set/Replace the Application Configuration (putConfiguration)", "tags" : [ "Configuration" ] } }, "/services/{serviceId}/keepalive" : { "put" : { - "description" : "A registered service should invoke this operation regularly to indicate that it is still alive. If a registered service fails to invoke this operation before the end of a timeout period the service will be deregistered and all its A1 policies wil be removed. (This timeout can be set or disabled when each service is initially registered)", + "description" : "A registered service should invoke this operation regularly to indicate that it is still alive. If a registered service fails to invoke some operation, or this operation, before the end of a timeout period the service will be deregistered and all its A1 policies wil be removed and the service is deleted. This operation is only intended for registered services. (This timeout can be set or disabled when each service is initially registered). Unregistered services do not need to invoke this operation, since the optional keep-alive monitoring feature can only be enabled for registered services.", "operationId" : "keepAliveService", "parameters" : [ { "explode" : false, @@ -1318,20 +1534,10 @@ }, "style" : "simple" } ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "type" : "string" - } - } - }, - "required" : false - }, "responses" : { "200" : { "content" : { - "*/*" : { + "application/json" : { "schema" : { "type" : "object" } @@ -1350,16 +1556,16 @@ "description" : "Not Found" } }, - "summary" : "Heartbeat indicates that the service is running", + "summary" : "Heartbeat message from a service (keepAliveService)", "tags" : [ "Service Registry and Supervision" ] } }, "/services" : { "get" : { - "description" : "Either information about a registered service with given identity or all registered services are returned.", + "description" : "Get information about all registered services, or a single registered service. If the service ID of a registered service is included in the query, information about that service is returned. Otherwise Information about all registered is returned. This operation does not retrieve information about unregistered services.\n", "operationId" : "getServices", "parameters" : [ { - "description" : "The identity of the service", + "description" : "The identity of the registered service", "explode" : true, "in" : "query", "name" : "serviceId", @@ -1407,7 +1613,7 @@ "description" : "Not Found" } }, - "summary" : "Returns service information", + "summary" : "Get Services (getServices)", "tags" : [ "Service Registry and Supervision" ] }, "put" : { @@ -1415,7 +1621,7 @@ "RICStatus" : { "{$request.body#/callback_url}" : { "post" : { - "description" : "The URL to this call is registered at Service registration.", + "description" : "Callouts to indicate Near-RT RIC status changes relevant for Services. \nThe URL invoked by this callback is provided at Service registration.\n", "operationId" : "serviceCallback", "requestBody" : { "content" : { @@ -1449,13 +1655,14 @@ "description" : "Not Found" } }, - "summary" : "Callback for Near-RT RIC status", - "tags" : [ "Service callbacks" ] + "summary" : "Callback for Near-RT RIC status (serviceCallback)", + "tags" : [ "Service Registry and Supervision" ], + "x-callback-request" : true } } } }, - "description" : "Registering a service is needed to:
  • Get callbacks about available NearRT RICs.
  • Activate supervision of the service. If a service is inactive, its policies will automatically be deleted.
Policies can be created even if the service is not registerred. This is a feature which it is optional to use.", + "description" : "Register a single service, or update a previous registration. Service registration is required to get callbacks about available NearRT RICs and to enable supervision of the service's active status. If a registered service becomes inactive, its policies can be automatically deleted. A1 Policy instances can also be created for unregistered services. If an unregistered service is later registered, the service's policies are retained when the service becomes registered. This feature is optional to use.\n", "operationId" : "putService", "requestBody" : { "content" : { @@ -1470,7 +1677,7 @@ "responses" : { "200" : { "content" : { - "*/*" : { + "application/json" : { "schema" : { "type" : "object" } @@ -1480,7 +1687,7 @@ }, "201" : { "content" : { - "*/*" : { + "application/json" : { "schema" : { "type" : "object" } @@ -1499,13 +1706,13 @@ "description" : "Bad Request" } }, - "summary" : "Register a service", + "summary" : "Register or update a Service (putService)", "tags" : [ "Service Registry and Supervision" ] } }, "/services/{serviceId}" : { "delete" : { - "description" : "Unregister a service", + "description" : "Unregister a registered Service using its service ID. Only registered services can be unregistered. All A1 Policy Instances for the previously registered service will be removed.\n", "operationId" : "deleteService", "parameters" : [ { "explode" : false, @@ -1531,7 +1738,7 @@ "responses" : { "204" : { "content" : { - "*/*" : { + "application/json" : { "schema" : { "type" : "object" } @@ -1550,67 +1757,91 @@ "description" : "Not Found" } }, + "summary" : "Unregister a Service (deleteService)", "tags" : [ "Service Registry and Supervision" ] } } }, "components" : { "examples" : { - "ServiceStatusList" : { - "description" : "List of service information", - "value" : { - "serviceList" : [ { - "callbackUrl" : "callbackUrl", - "serviceId" : "serviceId", - "keepAliveIntervalSeconds" : 0, - "timeSinceLastActivitySeconds" : 6 - }, { - "callbackUrl" : "callbackUrl", - "serviceId" : "serviceId", - "keepAliveIntervalSeconds" : 0, - "timeSinceLastActivitySeconds" : 6 - } ] - } - }, - "PolicyStatusInfo" : { - "description" : "Status for one A1-P Policy", - "value" : { - "lastModified" : "last_modified", - "status" : { - "value" : { - "status" : "status" - } - } - } - }, "StatusInfo" : { "value" : { - "status" : "status" + "status" : "success" } }, "RicInfo" : { "value" : { - "ricId" : "ricId", - "managedElementIds" : [ "managedElementId", "managedElementId" ], + "ricId" : "ricId1", + "managedElementIds" : [ "Note #1", "Athlone small cells", "Some optional string" ], "state" : "UNAVAILABLE", - "policyTypeIds" : [ "policyTypeId", "policyTypeId" ] + "policyTypeIds" : [ "policyTypeId1", "policyTypeId2" ] } }, "RicInfoList" : { "value" : { "rics" : [ { - "ricId" : "ricId", - "managedElementIds" : [ "managedElementId", "managedElementId" ], + "ricId" : "ricId1", + "managedElementIds" : [ "Note #1", "Athlone small cells", "Fake Cells" ], "state" : "UNAVAILABLE", - "policyTypeIds" : [ "policyTypeId", "policyTypeId" ] + "policyTypeIds" : [ "policyTypeId1", "policyTypeId2" ] }, { - "ricId" : "ricId", - "managedElementIds" : [ "managedElementId", "managedElementId" ], + "ricId" : "ricId2", + "managedElementIds" : [ "My test element", "Another test element" ], "state" : "UNAVAILABLE", - "policyTypeIds" : [ "policyTypeId", "policyTypeId" ] + "policyTypeIds" : [ "policyTypeId3", "policyTypeId4" ] } ] } }, + "PolicyTypeInformation" : { + "value" : [ { + "policyTypeId" : "STD_QOS2_0.1.0", + "nearRtRicId" : "ric_g3_2" + }, { + "policyTypeId" : "STD_QOS_0_2_0", + "nearRtRicId" : "ric_g3_2" + }, { + "policyTypeId" : "STD_QOS2_0.1.0", + "nearRtRicId" : "ric_g3_1" + }, { + "policyTypeId" : "STD_QOS_0_2_0", + "nearRtRicId" : "ric_g3_1" + } ] + }, + "PolicyTypeObject" : { + "value" : { + "policySchema" : { + "$schema" : "http://json-schema.org/draft-07/schema#", + "title" : "STD_QOS_0_2_0", + "description" : "STD QOS2 policy type", + "type" : "object", + "properties" : { + "scope" : { + "type" : "object", + "properties" : { + "ueId" : { + "type" : "string" + }, + "qosId" : { + "type" : "string" + } + }, + "additionalProperties" : false, + "required" : [ "ueId", "qosId" ] + }, + "qosObjectives" : { + "type" : "object", + "properties" : { + "priorityLevel" : { + "type" : "number" + } + }, + "additionalProperties" : false, + "required" : [ "priorityLevel" ] + } + } + } + } + }, "PolicyObject" : { "value" : { "scope" : { @@ -1652,10 +1883,26 @@ "pdb" : 50 } } + }, + "ServiceStatusList" : { + "description" : "List of service information", + "value" : { + "serviceList" : [ { + "callbackUrl" : "http://callback.url", + "serviceId" : "serviceId1", + "keepAliveIntervalSeconds" : 0, + "timeSinceLastActivitySeconds" : 6 + }, { + "callbackUrl" : "http://callback.url", + "serviceId" : "serviceId2", + "keepAliveIntervalSeconds" : 500, + "timeSinceLastActivitySeconds" : 401 + } ] + } } }, "responses" : { - "400" : { + "404" : { "content" : { "application/problem+json" : { "schema" : { @@ -1663,9 +1910,9 @@ } } }, - "description" : "Bad Request" + "description" : "Not Found" }, - "401" : { + "400" : { "content" : { "application/problem+json" : { "schema" : { @@ -1673,9 +1920,9 @@ } } }, - "description" : "Unauthorized" + "description" : "Bad Request" }, - "403" : { + "401" : { "content" : { "application/problem+json" : { "schema" : { @@ -1683,9 +1930,9 @@ } } }, - "description" : "Forbidden" + "description" : "Unauthorized" }, - "404" : { + "403" : { "content" : { "application/problem+json" : { "schema" : { @@ -1693,9 +1940,9 @@ } } }, - "description" : "Not Found" + "description" : "Forbidden" }, - "405" : { + "406" : { "content" : { "application/problem+json" : { "schema" : { @@ -1703,9 +1950,9 @@ } } }, - "description" : "Method Not Allowed" + "description" : "Not Acceptable" }, - "406" : { + "429" : { "content" : { "application/problem+json" : { "schema" : { @@ -1713,9 +1960,9 @@ } } }, - "description" : "Not Acceptable" + "description" : "Too Many Requests" }, - "409" : { + "500" : { "content" : { "application/problem+json" : { "schema" : { @@ -1723,9 +1970,9 @@ } } }, - "description" : "Conflict" + "description" : "Internal Server Error" }, - "411" : { + "502" : { "content" : { "application/problem+json" : { "schema" : { @@ -1733,9 +1980,9 @@ } } }, - "description" : "Length Required" + "description" : "Bad Gateway" }, - "413" : { + "503" : { "content" : { "application/problem+json" : { "schema" : { @@ -1743,9 +1990,9 @@ } } }, - "description" : "Payload Too Large" + "description" : "Service Unavailable" }, - "415" : { + "411" : { "content" : { "application/problem+json" : { "schema" : { @@ -1753,9 +2000,9 @@ } } }, - "description" : "Unsupported Media Type" + "description" : "Length Required" }, - "429" : { + "413" : { "content" : { "application/problem+json" : { "schema" : { @@ -1763,9 +2010,9 @@ } } }, - "description" : "Too Many Request" + "description" : "Payload Too Large" }, - "500" : { + "415" : { "content" : { "application/problem+json" : { "schema" : { @@ -1773,19 +2020,24 @@ } } }, - "description" : "Internal Server Error" + "description" : "Unsupported Media Type" }, - "502" : { + "Locked" : { "content" : { "application/problem+json" : { + "example" : { + "status" : 423, + "title" : "Locked", + "detail" : "State is Locked in the provided request." + }, "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" + "$ref" : "#/components/schemas/ErrorInformation" } } }, - "description" : "Bad Gateway" + "description" : "Locked - HTTP Status code which can be used when the state is Locked" }, - "503" : { + "405" : { "content" : { "application/problem+json" : { "schema" : { @@ -1793,152 +2045,88 @@ } } }, - "description" : "Service Unavailable" + "description" : "Method Not Allowed" }, - "Locked" : { + "409" : { "content" : { "application/problem+json" : { - "example" : { - "status" : 423, - "title" : "Locked", - "detail" : "State is Locked in the provided request." - }, "schema" : { - "$ref" : "#/components/schemas/ErrorInformation" + "$ref" : "#/components/schemas/ProblemDetails" } } }, - "description" : "Locked - HTTP Status code which can be used when the state is Locked" + "description" : "Conflict" } }, "schemas" : { - "PolicyTypeInformation" : { - "description" : "Available policy types and for each policy type identifier the Near-RT RIC identifiers of those Near-RT RICs that support the related A1 policy type", + "StatusInfo" : { + "example" : { + "status" : "status" + }, "properties" : { - "policyTypeId" : { - "description" : "Identity of the policy type", + "status" : { + "description" : "Status text", "type" : "string" - }, - "nearRtRicId" : { - "$ref" : "#/components/schemas/NearRtRicId" } }, - "required" : [ "nearRtRicId", "policyTypeId" ], "type" : "object" }, - "PolicyObjectInformation" : { - "description" : "Information related to the creation of the policy", + "ProblemDetails" : { + "description" : "Object to carry details about a problem in an HTTP response according to IETF RFC 7807", "properties" : { - "nearRtRicId" : { - "description" : "identity of the target Near-RT RIC", - "example" : "Near-RT-Ric-ID", - "type" : "string" - }, - "transient" : { - "default" : false, - "description" : "if true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.", - "nullable" : false, - "type" : "boolean" - }, - "policyId" : { - "description" : "identity of the Policy", - "example" : "POLICY-ID", + "type" : { + "description" : "URI reference according to IETF RFC 3986 that identifies the problem type", "type" : "string" }, - "serviceId" : { - "description" : "the identity of the service owning the policy. This can be used to group the policies (it is possible to get all policies associated to a service). Note that the service does not need to be registered.", - "example" : "rApp ID", + "title" : { + "description" : "Human-readable summary of the problem type", "type" : "string" }, - "policyObject" : { - "$ref" : "#/components/schemas/PolicyObject" + "status" : { + "description" : "HTTP status code", + "type" : "number" }, - "policyTypeId" : { - "description" : "identity of the policy type", - "example" : "ORAN_QOS_1.0.0(typeName_SemVersion)", - "type" : "string" - } - }, - "required" : [ "nearRtRicId", "policyObject", "policyTypeId" ], - "type" : "object" - }, - "ErrorInformation" : { - "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807", - "properties" : { "detail" : { - "description" : " A human-readable explanation specific to this occurrence of the problem.", - "example" : "Policy type not found", + "description" : "Human-readable explanation", "type" : "string" }, - "title" : { - "description" : "A specific error name", - "example" : "Not Found", - "type" : "string" - }, - "status" : { - "description" : "The HTTP status code generated by the origin server for this occurrence of the problem. ", - "example" : 404, - "format" : "int32", - "type" : "integer" - } - }, - "type" : "object" - }, - "PolicyObject" : { - "description" : "Policy Object is a JSON representation of an A1 policy", - "type" : "object" - }, - "void" : { - "description" : "Void/empty", - "type" : "object" - }, - "StatusInfo" : { - "properties" : { - "status" : { - "description" : "status text", + "instance" : { + "description" : "URI reference that identifies the specific occurrence of the problem", "type" : "string" } }, "type" : "object" }, - "AuthorizationResult" : { - "description" : "Result of authorization", - "example" : { - "result" : true - }, - "properties" : { - "result" : { - "description" : "If true, the access is granted", - "type" : "boolean" - } - }, - "required" : [ "result" ], - "type" : "object" - }, "RicInfo" : { "description" : "Information for a Near-RT RIC", + "example" : { + "ricId" : "ricId", + "policyTypeIds" : [ "policyTypeIds", "policyTypeIds" ], + "managedElementIds" : [ "managedElementIds", "managedElementIds" ], + "state" : "UNAVAILABLE" + }, "properties" : { "ricId" : { - "description" : "identity of the Near-RT RIC", + "description" : "Identity of the Near-RT RIC", "type" : "string" }, "managedElementIds" : { - "description" : "O1 identities for managed entities", + "description" : "Identities for managed entities", "items" : { - "description" : "O1 identities for managed entities", + "description" : "Identity for a managed entity", "type" : "string" }, "type" : "array" }, "state" : { - "description" : "Represents the states for a Near-RT RIC", + "description" : "Represents the state of a Near-RT RIC", "enum" : [ "UNAVAILABLE", "AVAILABLE", "SYNCHRONIZING", "CONSISTENCY_CHECK" ], "type" : "string" }, "policyTypeIds" : { - "description" : "supported policy types", + "description" : "Supported A1 Policy Types", "items" : { - "description" : "supported policy types", + "description" : "Supported A1 Policy Type ID", "type" : "string" }, "type" : "array" @@ -1946,128 +2134,243 @@ }, "type" : "object" }, - "ServiceRegistrationInfo" : { - "description" : "Information for one service", + "RicInfoList" : { + "description" : "Collection of Near-RT RIC information objects", + "example" : { + "rics" : [ { + "ricId" : "ricId", + "policyTypeIds" : [ "policyTypeIds", "policyTypeIds" ], + "managedElementIds" : [ "managedElementIds", "managedElementIds" ], + "state" : "UNAVAILABLE" + }, { + "ricId" : "ricId", + "policyTypeIds" : [ "policyTypeIds", "policyTypeIds" ], + "managedElementIds" : [ "managedElementIds", "managedElementIds" ], + "state" : "UNAVAILABLE" + } ] + }, "properties" : { - "callbackUrl" : { - "description" : "callback for notifying of Near-RT RIC state changes", + "rics" : { + "description" : "List of Near-RT RIC information objects", + "items" : { + "$ref" : "#/components/schemas/RicInfo" + }, + "type" : "array" + } + }, + "type" : "object" + }, + "PolicyTypeInformation" : { + "description" : "A data tuple to indicate that an identified A1 Policy Type is supported at an identified Near-RT RIC.", + "example" : { + "policyTypeId" : "STD_QOS2_0.1.0", + "nearRtRicId" : "ric_g3_2" + }, + "properties" : { + "policyTypeId" : { + "description" : "A1 Policy Type identifier", "type" : "string" }, - "serviceId" : { - "description" : "identity of the service", + "nearRtRicId" : { + "description" : "Identity of the Near-RT RIC", "type" : "string" - }, - "keepAliveIntervalSeconds" : { - "description" : "keep alive interval for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled.", - "format" : "int64", - "type" : "integer" } }, - "required" : [ "serviceId" ], + "required" : [ "nearRtRicId", "policyTypeId" ], "type" : "object" }, - "PolicyStatusInfo" : { - "description" : "Status for one A1-P Policy", + "NearRtRicId" : { + "description" : "Identity of the Near-RT RIC", + "type" : "string" + }, + "PolicyTypeObject" : { + "description" : "An A1 Policy Type, as defined in O-RAN Alliance A1TD", + "example" : { + "policySchema" : { + "$schema" : "http://json-schema.org/draft-07/schema#", + "title" : "STD_QOS_0_2_0", + "description" : "Policy data schema for STD_QOS_0.2.0 A1 Policy Instances.", + "type" : "object", + "properties" : { + "scope" : { + "type" : "object", + "properties" : { + "ueId" : { + "type" : "string" + }, + "qosId" : { + "type" : "string" + } + }, + "additionalProperties" : false, + "required" : [ "ueId", "qosId" ] + }, + "qosObjectives" : { + "type" : "object", + "properties" : { + "priorityLevel" : { + "type" : "number" + } + }, + "additionalProperties" : false, + "required" : [ "priorityLevel" ] + } + } + }, + "statusSchema" : { + "$schema" : "http://json-schema.org/draft-07/schema#", + "title" : "STD_QOS_0.2.0", + "description" : "Status schema for STD_QOS_0.2.0 A1 Policy Instances.", + "type" : "object", + "properties" : { + "enforceStatus" : { + "type" : "string" + }, + "enforceReason" : { + "type" : "string" + }, + "additionalProperties" : false, + "required" : [ "enforceStatus" ] + } + } + }, "properties" : { - "lastModified" : { - "description" : "timestamp, last modification time", - "type" : "string" + "policySchema" : { + "description" : "A schema to define the policy data contents of A1 Policy Instances. Policy data schemas are Policy Type specific. All A1 Policy Instances of an A1 Policy Type should comply with the type's policy data schema.\n", + "type" : "object" }, - "status" : { - "description" : "the Policy status", + "statusSchema" : { + "description" : "A schema to define the contents of the status information for A1 Policy Instances. Status schemas are Policy Type specific. All status information for all A1 Policy Instances of an A1 Policy Type should comply with the type's status schema.\n", "type" : "object" } }, + "required" : [ "policySchema" ], "type" : "object" }, - "ServiceStatus" : { + "PolicySchema" : { + "description" : "A schema to define the policy data contents of A1 Policy Instances. Policy data schemas are Policy Type specific. All A1 Policy Instances of an A1 Policy Type should comply with the type's policy data schema.\n", + "type" : "object" + }, + "StatusSchema" : { + "description" : "A schema to define the contents of the status information for A1 Policy Instances. Status schemas are Policy Type specific. All status information for all A1 Policy Instances of an A1 Policy Type should comply with the type's status schema.\n", + "type" : "object" + }, + "PolicyObject" : { + "description" : "Policy Object is a JSON representation policy data for an A1 Policy Instance. The schema for this policy data is defined in the corresponding A1 Policy Type.\n", + "type" : "object" + }, + "ErrorInformation" : { + "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807", "properties" : { - "callbackUrl" : { - "description" : "callback for notifying of RIC synchronization", + "detail" : { + "description" : "A human-readable explanation specific to this occurrence of the problem.", + "example" : "Policy type not found", "type" : "string" }, - "serviceId" : { - "description" : "identity of the service", + "title" : { + "description" : "A specific error name", + "example" : "Not Found", "type" : "string" }, - "keepAliveIntervalSeconds" : { - "description" : "policy keep alive timeout", - "format" : "int64", - "type" : "integer" - }, - "timeSinceLastActivitySeconds" : { - "description" : "time since last invocation by the service", - "format" : "int64", + "status" : { + "description" : "The HTTP status code generated by the origin server for this occurrence of the problem.\n", + "example" : 404, + "format" : "int32", "type" : "integer" } }, "type" : "object" }, - "RicInfoList" : { - "description" : "List of Near-RT RIC information", - "properties" : { - "rics" : { - "description" : "List of Near-RT RIC information", - "items" : { - "$ref" : "#/components/schemas/RicInfo" - }, - "type" : "array" - } - }, + "PolicyStatusObject" : { + "description" : "A generic policy status object that can be used to transport any policy status. Additionally, a schema for policy status can be defined in the corresponding A1 Policy Type.\n", "type" : "object" }, - "input" : { - "description" : "input", + "PolicyInformation" : { + "description" : "Information tuple for a single A1 Policy Instance. Contains the A1 Policy Instance ID, and the ID of the Near-RT RIC where the policy is created.\n", + "example" : { + "policyId" : "policyId", + "nearRtRicId" : "nearRtRicId" + }, "properties" : { - "accessType" : { - "description" : "Access type", - "enum" : [ "READ", "WRITE", "DELETE" ], - "type" : "string" - }, - "authToken" : { - "description" : "Authorization token", + "policyId" : { + "description" : "Identity of the A1 Policy Instance", "type" : "string" }, - "policyTypeId" : { - "description" : "Policy type identifier", + "nearRtRicId" : { + "description" : "Identity of the Near-RT RIC", "type" : "string" } }, - "required" : [ "accessType", "authToken", "policyTypeId" ], + "required" : [ "nearRtRicId", "policyId" ], "type" : "object" }, - "PolicyAuthorization" : { - "description" : "Authorization request for A1 policy requests", - "properties" : { - "input" : { - "$ref" : "#/components/schemas/input" - } + "PolicyObjectInformation" : { + "description" : "Information to create an A1 Policy Instance", + "example" : { + "policyId" : "POLICY-ID1", + "nearRtRicId" : "Near-RT-Ric-ID1", + "transient" : false, + "policyObject" : "{}", + "serviceId" : "rApp 1", + "policyTypeId" : "ORAN_QOS_1.0.0 '(typeName_SemVersion)'" }, - "required" : [ "input" ], - "type" : "object" - }, - "NearRtRicId" : { - "description" : "Identity of the policy", - "type" : "string" - }, - "PolicyInformation" : { - "description" : "Near-RT RIC identifiers where A1 policies exist and for each Near-RT RIC identifier the policy identifiers of those policies that exist in that Near-RT RIC", "properties" : { + "nearRtRicId" : { + "description" : "Identity of the target Near-RT RIC", + "example" : "Near-RT-Ric-ID1", + "type" : "string" + }, + "transient" : { + "default" : false, + "description" : "If true, the policy is automatically deleted if the targeted Near-RT RIC restarts or recovers. If false, the A1 Policy Instance remains, and is re-pushed to the targeted Near-RT RIC after a restart or recovery. If false, the A1 Policy Instance is maintained and must be deleted separately in the event of Near-RT RIC restart or recovery. Default is false.\n", + "nullable" : false, + "type" : "boolean" + }, "policyId" : { - "description" : "Identity of the policy", + "description" : "An optional identity to be used for the new A1 Policy Instance. If this value is present, it must be unique. If not present the new A1 Policy Instance will be assigned a newly generated unique ID, and the new ID can be extracted from the 'Location' header in the response.\n", + "example" : "POLICY-ID1", "type" : "string" }, - "nearRtRicId" : { - "$ref" : "#/components/schemas/NearRtRicId" + "serviceId" : { + "default" : "", + "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. If the service is registered, the newly created A1 Policy Instance will be subject to the same supervision rules as the the service's other policies.", + "example" : "rApp 1", + "type" : "string" + }, + "policyObject" : { + "description" : "Policy Object is a JSON representation policy data for an A1 Policy Instance. The schema for this policy data is defined in the corresponding A1 Policy Type.\n", + "type" : "object" + }, + "policyTypeId" : { + "description" : "A1 Policy Type identity", + "example" : "ORAN_QOS_1.0.0 '(typeName_SemVersion)'", + "type" : "string" } }, - "required" : [ "nearRtRicId", "policyId" ], + "required" : [ "nearRtRicId", "policyObject", "policyTypeId" ], + "type" : "object" + }, + "void" : { + "description" : "Void/empty", "type" : "object" }, "ServiceStatusList" : { + "example" : { + "serviceList" : [ { + "keepAliveIntervalSeconds" : 0, + "callbackUrl" : "callbackUrl", + "timeSinceLastActivitySeconds" : 6, + "serviceId" : "serviceId" + }, { + "keepAliveIntervalSeconds" : 0, + "callbackUrl" : "callbackUrl", + "timeSinceLastActivitySeconds" : 6, + "serviceId" : "serviceId" + } ] + }, "properties" : { "serviceList" : { - "description" : "List of service information", + "description" : "List of Service Status objects, describing a collection of registered services.", "items" : { "$ref" : "#/components/schemas/ServiceStatus" }, @@ -2076,57 +2379,79 @@ }, "type" : "object" }, - "ServiceCallbackInfo" : { - "description" : "Information transferred as in Service callbacks (callback_url)", + "ServiceStatus" : { + "description" : "Information about a previously registered service", + "example" : { + "keepAliveIntervalSeconds" : 0, + "callbackUrl" : "callbackUrl", + "timeSinceLastActivitySeconds" : 6, + "serviceId" : "serviceId" + }, "properties" : { - "ricId" : { - "description" : "identity of a Near-RT RIC", + "callbackUrl" : { + "description" : "Callback URL for notifying of Near-RT RIC state changes", "type" : "string" }, - "eventType" : { - "description" : "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management", - "enum" : [ "AVAILABLE" ], + "serviceId" : { + "description" : "Identity of the service", "type" : "string" + }, + "keepAliveIntervalSeconds" : { + "description" : "Keep alive interval (seconds) 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.\n", + "format" : "int64", + "type" : "integer" + }, + "timeSinceLastActivitySeconds" : { + "description" : "Time (seconds) since last recorded operation by the service", + "format" : "int64", + "type" : "integer" } }, - "required" : [ "eventType", "ricId" ], "type" : "object" }, - "Link" : { + "ServiceRegistrationInfo" : { + "description" : "Information for a service to be registered", + "example" : { + "keepAliveIntervalSeconds" : 0, + "callbackUrl" : "callbackUrl", + "serviceId" : "serviceId" + }, "properties" : { - "templated" : { - "type" : "boolean" + "callbackUrl" : { + "description" : "Callback URL for notifying of Near-RT RIC state changes", + "type" : "string" }, - "href" : { + "serviceId" : { + "description" : "Identity of the service", "type" : "string" + }, + "keepAliveIntervalSeconds" : { + "description" : "Keep alive interval for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled.\n", + "format" : "int64", + "type" : "integer" } }, + "required" : [ "serviceId" ], "type" : "object" }, - "ProblemDetails" : { - "description" : "A problem detail to carry details in an HTTP response according to RFC 7807", + "ServiceCallbackInfo" : { + "description" : "Information transferred in Service callbacks, \nif a callback URL was provided for a registered service\n", + "example" : { + "ricId" : "ricId", + "eventType" : "AVAILABLE" + }, "properties" : { - "type" : { - "description" : "a URI reference according to IETF RFC 3986 that identifies the problem type", - "type" : "string" - }, - "title" : { - "description" : "human-readable summary of the problem type", - "type" : "string" - }, - "status" : { - "description" : "the HTTP status code", - "type" : "number" - }, - "detail" : { - "description" : "human-readable explanation ", + "ricId" : { + "description" : "Identity of a Near-RT RIC", "type" : "string" }, - "instance" : { - "description" : "URI reference that identifies the specific occurrence of the problem", + "eventType" : { + "description" : "values: \n AVAILABLE: the Near-RT RIC has become available for A1 Policy management\n", + "enum" : [ "AVAILABLE" ], "type" : "string" } }, + "required" : [ "eventType", "ricId" ], "type" : "object" } } diff --git a/docs/offeredapis/swagger/pms-api-v3.yaml b/docs/offeredapis/swagger/pms-api-v3.yaml index 46f881e..b0f3226 100644 --- a/docs/offeredapis/swagger/pms-api-v3.yaml +++ b/docs/offeredapis/swagger/pms-api-v3.yaml @@ -1,5 +1,6 @@ # ============LICENSE_START======================================================= -# Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved. +# Copyright (C) 2020-2023 Nordix Foundation. All rights reserved. +# Copyright (C) 2023-2025 OpenInfra Foundation Europe. All rights reserved. # ================================================================================ # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -18,689 +19,1114 @@ openapi: 3.0.3 info: - title: 'A1 policy management API' - version: 1.0.0 - x-api-id: a31c510b-20e6-4a08-af16-368c44d7fba8 - x-audience: external-public - description: "

General

The O-RAN Non-RT RIC Policy Management Service\ - \ provides a REST API for managemecnt of A1 policies.
The main tasks of the\ - \ service are:

  • A1 Policy creation, modification and deletion.
  • Monitoring\ - \ and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs
  • Maintaining\ - \ a view of supported Near-RT RIC policy types
  • Supervision of using services\ - \ (R-APPs). When a service is unavailable, its policies are removed.

APIs\ - \ provided or defined by the service

A1 Policy Management

This\ - \ is an API for management of A1 Policies.

  • A1 Policy retrieval, creation,\ - \ modification and deletion.
  • Retrieval of supported A1 Policy types for\ - \ a Near-RT RIC
  • Retrieval of status for existing A1 policies

Management\ - \ of configuration

API for updating and retrieval of the component configuration.\ - \ Note that there other ways to maintain the configuration.

Service callbacks

These\ - \ are endpoints that are invoked by this service. The callbacks are registered\ - \ in this service at service registration.

NearRT-RIC Repository

This\ - \ is an API that provides support for looking up a NearRT-RIC. Each A1 policy\ - \ is targeted for one Near-RT RIC.

Health Check

API used for supervision\ - \ of the PMS component.

Service Registry and Supervision

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.

Authorization API

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.

" + contact: + email: discuss@lists.o-ran-sc.org + url: https://o-ran-sc.org// + description: "

General

The ORAN SC A1 Policy Management Service provides\ + \ a REST API for managing A1 policies.
This document describes the latest\ + \ API set to perform tasks for:

  • A1 Policy creation, modification\ + \ and deletion.
  • Monitoring and maintaining consistency of the SMO view\ + \ of A1 Policies and the Near-RT RICs
  • Maintaining a view of each Near-RT\ + \ RIC's supported A1 Policy Types
  • Supervision of registered services (rApps).\ + \ When a registered service is unavailable, its policies are removed.

APIs\ + \ provided or defined by the service

Note: parts of this API are strongly\ + \ based on extracts of the O-RAN Alliance R1 Interface specification for A1 Policy\ + \ Management, and those parts should be considered '\xA9 O-RAN ALLIANCE - All\ + \ rights reserved.'

A1 Policy Management

This is the latest API\ + \ for managing A1 Policies. This API is partially compliant with O-RAN Alliance\ + \ R1 Interface specifications for A1 Policy Management:

  • A1 Policy retrieval,\ + \ creation, modification and deletion.
  • Retrieval of supported A1 Policy\ + \ Types for a Near-RT RIC
  • Retrieval of status for existing A1 policies

Management\ + \ of configuration

API for updating and retrieval of the component configuration.\ + \ Note that there other ways to maintain the configuration.

Service Callbacks

These\ + \ are endpoints that are invoked by this service. The callbacks are registered\ + \ in this service at service registration.

NearRT-RIC Repository (Older\ + \ version)

This is an API that provides support for looking up a NearRT-RIC.\ + \ Each A1 policy is targeted towards one Near-RT RIC.

Health Check

API\ + \ used for supervision of the A1 Policy Management Service.

Service Registry\ + \ and Supervision

API used for registering services/clients/rApps. Each\ + \ A1 Policy can be tagged with an owner. If the owner service is registered, then\ + \ the service can be optionally monitored by a heart-beat supervision mechanism,\ + \ and if the registered service becomes unavailable, then it is removed and all\ + \ its A1 Policies are deleted. Note that services do not need to be registered\ + \ to create A1 Policies, but unregistered services are not supervised. This\ + \ is a feature that is optional to use.

" license: - name: Copyright (C) 2024 OpenInfra Foundation Europe. Licensed under the Apache License. + name: Copyright (C) 2024 - 2025 OpenInfra Foundation Europe. Licensed under the + Apache 2 License. url: http://www.apache.org/licenses/LICENSE-2.0 - contact: - url: https://www.onap.org/ - email: discuss-list@onap.com + title: OSC - A1 Policy Management API + version: 1.0.0 + x-api-id: e9776a07-0813-4fca-9801-6f892f0a7c13 + x-audience: external-public +externalDocs: + description: "Based on parts of O-RAN ALLIANCE specification: O-RAN.WG2.R1AP-v07.00" + url: https://www.o-ran.org/specifications servers: - - url: '{apiRoot}/a1-policy-management/v1' - variables: - apiRoot: - default: 'https://example.com' - description: 'This is the Host:Port or Address where the A1-Policy Management Service can be accessed' +- url: "{apiRoot}/a1-policy-management/v1" + variables: + apiRoot: + default: https://example.com + description: "This is the Host:Port or Address where the A1-Policy Management\ + \ Service can be accessed. Note: This URL path format aligns with the O-RAN\ + \ Alliance R1-AP specifications for A1 Policy Management" tags: - - name: A1 Policy Management - description: "API used to create polices, Policy Instances and get \ them as individual using an ID or get all policies/Instances." - - name: NearRT-RIC Repository - description: "API used to get the NearRT-RIC for the managed element." - - name: Service Registry and Supervision - description: "API used to keep the service Alive with in the timeout period" - - name: Health Check - description: "API used to get the health status and statistics of this service" - - name: Service callbacks - - name: Configuration - description: "API used to create or fetch the application configuration." +- description: | + API used to get, create, update and delete A1 Policy Instances. Also used to query A1 Policy Types. + name: A1 Policy Management +- description: | + API used to get information about registered Near-RT RICs. + name: NearRT-RIC Repository +- description: | + API used to manage registered services, and control their keep-alive status via heart-beat messages. + name: Service Registry and Supervision +- description: | + API used to get the health status and statistics of this service. + name: Health Check +- description: | + API used to create or fetch the application configuration. + name: Configuration paths: /status: get: + description: Returns status and statistics of this service operationId: getStatus responses: "200": content: application/json: - schema: - $ref: '#/components/schemas/StatusInfo' examples: status_info: $ref: '#/components/examples/StatusInfo' + schema: + $ref: '#/components/schemas/StatusInfo' description: OK- Service is living Ok - description: Returns status and statistics of this service + "404": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + summary: Get Status (getStatus) tags: - - Health Check - /rics/ric: + - Health Check + /rics/{ricId}: get: - description: Either a Near-RT RIC identity or a Managed Element identity can - be specified.
The intention with Managed Element identity is the ID used - in O1 for accessing the traffical element (such as the ID of CU). + description: Get information about a Near-RT RIC operationId: getRic parameters: - - description: "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned." - explode: true - in: query - name: managedElementId - required: false - schema: - type: string - style: form - - description: The identity of a Near-RT RIC to get information for. - explode: true - in: query - name: ricId - required: false - schema: - type: string - style: form - - description: Specifies the content type that the client expects to receive in response to the request. - Only application/json is allowed. - in: header - name: Accept - schema: - type: string - example: application/json + - description: The identity of a Near-RT RIC to get information for. + explode: true + in: path + name: ricId + required: true + schema: + nullable: false + type: string + - description: Specifies the content type that the client expects to receive + in response to the request. Only application/json is allowed. + in: header + name: Accept + schema: + example: application/json + type: string responses: "200": content: application/json: - schema: - $ref: '#/components/schemas/RicInfo' examples: ric_info: $ref: '#/components/examples/RicInfo' + schema: + $ref: '#/components/schemas/RicInfo' description: OK - Near-RT RIC is found OK "404": - $ref: '#/components/responses/404' - summary: Returns info for one Near-RT RIC + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + summary: Get a Near-RT RIC (getRic) tags: - - NearRT-RIC Repository + - NearRT-RIC Repository /rics: get: - description: The call returns all Near-RT RICs that supports a given policy - type identity + description: Get all Near-RT RICs that supports a given A1 Policy Type ID operationId: getRics parameters: - - description: "The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned" - explode: true - in: query - name: policyTypeId - required: false - schema: - type: string - style: form - - description: Specifies the content type that the client expects to receive in response to the request. - Only application/json is allowed. - in: header - name: Accept - schema: - type: string - example: application/json + - description: | + The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned. + explode: true + in: query + name: policyTypeId + required: false + schema: + type: string + style: form + - description: Specifies the content type that the client expects to receive + in response to the request. Only application/json is allowed. + in: header + name: Accept + schema: + example: application/json + type: string responses: "200": content: application/json: - schema: - $ref: '#/components/schemas/RicInfoList' examples: ric_info_list: $ref: '#/components/examples/RicInfoList' + schema: + $ref: '#/components/schemas/RicInfoList' description: OK "404": - $ref: '#/components/responses/404' - summary: Query Near-RT RIC information + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + summary: Get Near-RT RICs for A1 Policy Type (getRics) tags: - - NearRT-RIC Repository + - NearRT-RIC Repository /policy-types: get: + description: Query A1 Policy Type identities using query parameters operationId: getPolicyTypes parameters: - - description: Select types for the given Near-RT RIC identity. - explode: true - in: query - name: nearRtRicId - required: false - schema: - type: string - style: form - - description: Select types with the given type name (type identity has the - format ) - explode: true - in: query - name: typeName - required: false - schema: - type: string - style: form - - description: Select types that are compatible with the given version. This - parameter is only applicable in conjunction with type_name. As an example - version 1.9.1 is compatible with 1.0.0 but not the other way around. Matching - types will be returned sorted in ascending order. - explode: true - in: query - name: compatibleWithVersion - required: false - schema: - type: string - style: form - - description: Specifies the content type that the client expects to receive in response to the request. - Only application/json is allowed. - in: header - name: Accept - schema: - type: string - example: application/json + - description: Select types for the given Near-RT RIC identity. + explode: true + in: query + name: nearRtRicId + required: false + schema: + type: string + style: form + - description: Select types compatible with the given type name (type identity + has the format 'typename_version') + explode: true + in: query + name: typeName + required: false + schema: + type: string + style: form + - description: | + Select types that are compatible with the given version. This parameter is only applicable in conjunction with typeName. As an example version 1.9.1 is compatible with 1.0.0 but not the other way around. Matching types will be returned sorted in ascending order. + explode: true + in: query + name: compatibleWithVersion + required: false + schema: + type: string + style: form + - description: Specifies the content type that the client expects to receive + in response to the request. Only application/json is allowed. + in: header + name: Accept + schema: + example: application/json + type: string responses: - '200': + "200": content: application/json: + examples: + PolicyTypeInformation: + $ref: '#/components/examples/PolicyTypeInformation' schema: items: $ref: '#/components/schemas/PolicyTypeInformation' type: array - description: OK - Policy Type IDs found Ok - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '429': - $ref: '#/components/responses/429' - '500': - $ref: '#/components/responses/500' - '502': - $ref: '#/components/responses/502' - '503': - $ref: '#/components/responses/503' - description: Query policy type identities + "400": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Request + "401": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Unauthorized + "403": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Forbidden + "404": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + "406": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Acceptable + "429": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Too Many Requests + "500": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Internal Server Error + "502": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Gateway + "503": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Service Unavailable + summary: Get A1 Policy Types (getPolicyTypes) tags: - - A1 Policy Management + - A1 Policy Management /policy-types/{policyTypeId}: get: + description: Get an A1 Policy Type definition using its policy type ID operationId: getPolicyTypeDefinition parameters: - - explode: false - in: path - name: policyTypeId - required: true - schema: - type: string - style: simple - - description: Specifies the content type that the client expects to receive in response to the request. - Only application/json is allowed. - in: header - name: Accept - schema: - type: string - example: application/json + - explode: false + in: path + name: policyTypeId + required: true + schema: + type: string + style: simple + - description: Specifies the content type that the client expects to receive + in response to the request. Only application/json is allowed. + in: header + name: Accept + schema: + example: application/json + type: string responses: - '200': + "200": content: application/json: - schema: - $ref: '#/components/schemas/PolicyObject' examples: - policyObject: - $ref: '#/components/examples/PolicyObject' - description: OK - schema of the given policy type - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '429': - $ref: '#/components/responses/429' - '500': - $ref: '#/components/responses/500' - '502': - $ref: '#/components/responses/502' - '503': - $ref: '#/components/responses/503' - description: Returns a policy type definition - tags: - - A1 Policy Management - /policies/{policyId}: - put: - operationId: putPolicy - parameters: - - name: policyId - in: path - required: true - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/PolicyObject' - examples: - policyObject: - $ref: '#/components/examples/PolicyObject' - responses: - '200': + PolicyTypeObject: + $ref: '#/components/examples/PolicyTypeObject' + schema: + $ref: '#/components/schemas/PolicyTypeObject' + description: OK - details and schema of the requested A1 Policy Type + "400": content: - application/json: + application/problem+json: schema: - $ref: '#/components/schemas/PolicyObject' - description: OK - Policy updated - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '411': - $ref: '#/components/responses/411' - '413': - $ref: '#/components/responses/413' - '415': - $ref: '#/components/responses/415' - '423': - $ref: '#/components/responses/Locked' - '429': - $ref: '#/components/responses/429' - '500': - $ref: '#/components/responses/500' - '502': - $ref: '#/components/responses/502' - '503': - $ref: '#/components/responses/503' - description: update a policy + $ref: '#/components/schemas/ProblemDetails' + description: Bad Request + "401": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Unauthorized + "403": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Forbidden + "404": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + "406": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Acceptable + "429": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Too Many Requests + "500": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Internal Server Error + "502": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Gateway + "503": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Service Unavailable + summary: Get an A1 Policy Type definition (getPolicyTypeDefinition) tags: - - A1 Policy Management + - A1 Policy Management + /policies/{policyId}: delete: - description: Deleting the policy using policyId. + description: Delete an existing A1 Policy instance using its policy ID. operationId: deletePolicy parameters: - - explode: false - in: path - name: policyId - required: true - schema: - type: string - style: simple - - description: Specifies the content type that the client expects to receive in response to the request. - Only application/json is allowed. - in: header - name: Accept - schema: - type: string - example: application/json + - explode: false + in: path + name: policyId + required: true + schema: + type: string + style: simple + - description: Specifies the content type that the client expects to receive + in response to the request. Only application/json is allowed. + in: header + name: Accept + schema: + example: application/json + type: string responses: - '204': - description: 'The created A1 policy was deleted' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '423': - $ref: '#/components/responses/Locked' - '429': - $ref: '#/components/responses/429' - '500': - $ref: '#/components/responses/500' - '502': - $ref: '#/components/responses/502' - '503': - $ref: '#/components/responses/503' - summary: Delete a policy + "204": + description: No Content + "400": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Request + "401": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Unauthorized + "403": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Forbidden + "404": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + "405": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Method Not Allowed + "406": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Acceptable + "423": + content: + application/problem+json: + example: + status: 423 + title: Locked + detail: State is Locked in the provided request. + schema: + $ref: '#/components/schemas/ErrorInformation' + description: Locked - HTTP Status code which can be used when the state + is Locked + "429": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Too Many Requests + "500": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Internal Server Error + "502": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Gateway + "503": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Service Unavailable + summary: Delete an A1 Policy instance (deletePolicy) tags: - - A1 Policy Management + - A1 Policy Management get: + description: Get an A1 Policy instance's policy data using its policy ID operationId: getPolicy parameters: - - explode: false - in: path - name: policyId - required: true - schema: - type: string - style: simple - - description: Specifies the content type that the client expects to receive in response to the request. - Only application/json is allowed. - in: header - name: Accept - schema: - type: string - example: application/json + - explode: false + in: path + name: policyId + required: true + schema: + type: string + style: simple + - description: Specifies the content type that the client expects to receive + in response to the request. Only application/json is allowed. + in: header + name: Accept + schema: + example: application/json + type: string responses: - '200': + "200": content: application/json: - schema: - $ref: '#/components/schemas/PolicyObject' examples: policyObject: $ref: '#/components/examples/PolicyObject' + schema: + $ref: '#/components/schemas/PolicyObject' description: OK - Policy found - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '429': - $ref: '#/components/responses/429' - '500': - $ref: '#/components/responses/500' - '502': - $ref: '#/components/responses/502' - '503': - $ref: '#/components/responses/503' - description: Returns a policy - tags: - - A1 Policy Management - /policies: - get: - description: "Returns a list of A1 policies matching given search criteria.\ - \
If several query parameters are defined, the policies matching all conditions\ - \ are returned." - operationId: getAllPolicies - parameters: - - description: Select policies of a given policy type identity. - explode: true - in: query - name: policyTypeId - required: false - schema: - type: string - style: form - - description: Select policies of a given Near-RT RIC identity. - explode: true - in: query - name: nearRtRicId - required: false - schema: - type: string - style: form - - description: Select policies owned by a given service. - explode: true - in: query - name: serviceId - required: false - schema: - type: string - style: form - - description: Select policies of types with the given type name (type identity - has the format ) - explode: true - in: query - name: typeName - required: false - schema: - type: string - style: form - - description: Specifies the content type that the client expects to receive in response to the request. - Only application/json is allowed. - in: header - name: Accept - schema: - type: string - example: application/json - responses: - '200': + "400": content: - application/json: + application/problem+json: schema: - items: - $ref: '#/components/schemas/PolicyInformation' - type: array - description: OK - Policy identities - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '429': - $ref: '#/components/responses/429' - '500': - $ref: '#/components/responses/500' - '502': - $ref: '#/components/responses/502' - '503': - $ref: '#/components/responses/503' - summary: Query policy identities - tags: - - A1 Policy Management - post: - operationId: createPolicy - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/PolicyObjectInformation' - responses: - '201': - description: 'Success case 201 created' + $ref: '#/components/schemas/ProblemDetails' + description: Bad Request + "401": content: - application/json: - schema: - $ref: '#/components/schemas/PolicyObjectInformation' - headers: - Location: - description: 'Contains the URI of the newly created resource' - required: true + application/problem+json: schema: - type: string - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' - '403': - $ref: '#/components/responses/403' - '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' - '423': - $ref: '#/components/responses/Locked' - '429': - $ref: '#/components/responses/429' - '500': - $ref: '#/components/responses/500' - '502': - $ref: '#/components/responses/502' - '503': - $ref: '#/components/responses/503' - description: 'To create A1 policies' - tags: - - A1 Policy Management - /configuration: - get: - operationId: getConfiguration - responses: - "200": + $ref: '#/components/schemas/ProblemDetails' + description: Unauthorized + "403": content: - application/json: + application/problem+json: schema: - type: string - description: OK - Application configuration received + $ref: '#/components/schemas/ProblemDetails' + description: Forbidden "404": - $ref: '#/components/responses/404' - - description: Returns the contents of the application configuration + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + "406": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Acceptable + "429": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Too Many Requests + "500": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Internal Server Error + "502": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Gateway + "503": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Service Unavailable + summary: Get an A1 Policy's policy data (getPolicy) tags: - - Configuration + - A1 Policy Management put: - operationId: putConfiguration + description: Update an existing A1 Policy instance's policy data using its policy + ID. + operationId: updatePolicy + parameters: + - in: path + name: policyId + required: true + schema: + type: string requestBody: content: application/json: + examples: + policyObject: + $ref: '#/components/examples/PolicyObject' schema: - type: object + $ref: '#/components/schemas/PolicyObject' required: true responses: "200": content: - '*/*': + application/json: schema: - $ref: '#/components/schemas/void' - description: OK - Configuration updated + $ref: '#/components/schemas/PolicyObject' + description: OK - Policy updated "400": - $ref: '#/components/responses/400' - description: Replace the current configuration file with the given configuration - tags: - - Configuration - /services/{serviceId}/keepalive: - put: - description: A registered service should invoke this operation regularly to - indicate that it is still alive. If a registered service fails to invoke this - operation before the end of a timeout period the service will be deregistered - and all its A1 policies wil be removed. (This timeout can be set or disabled - when each service is initially registered) - operationId: keepAliveService - parameters: - - explode: false - in: path - name: serviceId - required: true - schema: - type: string - style: simple - - description: Specifies the content type that the client expects to receive in response to the request. - Only application/json is allowed. - in: header - name: Accept - schema: - type: string - example: application/json - requestBody: + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Request + "401": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Unauthorized + "403": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Forbidden + "404": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + "406": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Acceptable + "411": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Length Required + "413": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Payload Too Large + "415": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Unsupported Media Type + "423": + content: + application/problem+json: + example: + status: 423 + title: Locked + detail: State is Locked in the provided request. + schema: + $ref: '#/components/schemas/ErrorInformation' + description: Locked - HTTP Status code which can be used when the state + is Locked + "429": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Too Many Requests + "500": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Internal Server Error + "502": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Gateway + "503": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Service Unavailable + summary: Update an A1 Policy's policy data (updatePolicy) + tags: + - A1 Policy Management + /policies/{policyId}/status: + get: + description: Retrieve the status information for an A1 Policy Instance using + its policy ID. + operationId: getPolicyStatus + parameters: + - explode: false + in: path + name: policyId + required: true + schema: + type: string + style: simple + - description: Specifies the content type that the client expects to receive + in response to the request. Only application/json is allowed. + in: header + name: Accept + schema: + example: application/json + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/PolicyStatusObject' + description: OK + "400": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Request + "401": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Unauthorized + "403": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Forbidden + "404": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + "406": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Acceptable + "429": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Too Many Requests + "500": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Internal Server Error + "502": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Gateway + "503": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Service Unavailable + summary: Get an A1 Policy Instance's status (getPolicyStatus) + tags: + - A1 Policy Management + /policies: + get: + description: | + Returns a collection of A1 Policy Instance IDs for policies that match given search criteria. If several query parameters are defined, the policies matching all conditions are returned. + operationId: getPolicyIds + parameters: + - description: Select policies with a given A1 Policy Type ID. + explode: true + in: query + name: policyTypeId + required: false + schema: + type: string + style: form + - description: Select policies for a given Near-RT RIC identity. + explode: true + in: query + name: nearRtRicId + required: false + schema: + type: string + style: form + - description: Select policies owned by a given service (registered or unregistered). + explode: true + in: query + name: serviceId required: false + schema: + type: string + style: form + - description: Select policies of a given A1 Policy Type name (type identity + has the format 'typename_version'). + explode: true + in: query + name: typeName + required: false + schema: + type: string + style: form + - description: Specifies the content type that the client expects to receive + in response to the request. Only application/json is allowed. + in: header + name: Accept + schema: + example: application/json + type: string + responses: + "200": + content: + application/json: + schema: + items: + $ref: '#/components/schemas/PolicyInformation' + type: array + description: OK - Policy identities + "400": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Request + "401": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Unauthorized + "403": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Forbidden + "404": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + "406": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Acceptable + "429": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Too Many Requests + "500": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Internal Server Error + "502": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Gateway + "503": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Service Unavailable + summary: Query for A1 Policy instances (getPolicyIds) + tags: + - A1 Policy Management + post: + description: Create an A1 Policy Instance + operationId: createPolicy + requestBody: content: application/json: schema: - type: string + $ref: '#/components/schemas/PolicyObjectInformation' + required: true responses: - "200": + "201": content: - '*/*': + application/json: schema: - type: object - description: "OK - Service supervision timer refreshed, OK" + $ref: '#/components/schemas/PolicyObjectInformation' + description: Created + headers: + Location: + description: | + Contains the URI of the newly created A1 Policy Instances. This URI includes the A1 Policy Instance ID for the newly created policy instance. + required: true + schema: + type: string + Content-Type: + description: Media Type of the response + schema: + example: application/json + type: string + "400": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Request + "401": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Unauthorized + "403": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Forbidden "404": - $ref: '#/components/responses/404' - summary: Heartbeat indicates that the service is running + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + "405": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Method Not Allowed + "406": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Acceptable + "409": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Conflict + "413": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Payload Too Large + "415": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Unsupported Media Type + "423": + content: + application/problem+json: + example: + status: 423 + title: Locked + detail: State is Locked in the provided request. + schema: + $ref: '#/components/schemas/ErrorInformation' + description: Locked - HTTP Status code which can be used when the state + is Locked + "429": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Too Many Requests + "500": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Internal Server Error + "502": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Gateway + "503": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Service Unavailable + summary: Create an A1 Policy Instance (createPolicy) tags: - - Service Registry and Supervision - /services: + - A1 Policy Management + /configuration: get: - description: Either information about a registered service with given identity - or all registered services are returned. - operationId: getServices - parameters: - - description: The identity of the service - explode: true - in: query - name: serviceId - required: false - schema: - type: string - style: form - - description: Specifies the content type that the client expects to receive in response to the request. - Only application/json is allowed. - in: header - name: Accept - schema: - type: string - example: application/json + description: Returns the entire contents of the Application Configuration. + operationId: getConfiguration responses: "200": content: application/json: schema: - $ref: '#/components/schemas/ServiceStatusList' - examples: - service_status_list: - $ref: '#/components/examples/ServiceStatusList' - description: OK + type: string + description: OK - Application configuration received "404": - $ref: '#/components/responses/404' - summary: Returns service information + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + summary: Get the Application Configuration (getConfiguration) tags: - - Service Registry and Supervision + - Configuration put: - description: "Registering a service is needed to:
  • Get callbacks about\ - \ available NearRT RICs.
  • Activate supervision of the service. If a\ - \ service is inactive, its policies will automatically be deleted.
Policies\ - \ can be created even if the service is not registerred. This is a feature\ - \ which it is optional to use." - operationId: putService + description: | + Replace the current Application Configuration with a new configuration. The new configuration, if accepted, will take effect after a short delay. The new configuration must comply with the Application Configuration schema, which can be found from the the Application Documentation (Developer Guide) + operationId: putConfiguration requestBody: content: application/json: schema: - $ref: '#/components/schemas/ServiceRegistrationInfo' + type: object required: true responses: "200": content: - '*/*': + application/json: schema: - type: object - description: OK - Service updated - "201": + $ref: '#/components/schemas/void' + description: OK - Configuration updated + "400": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Request + summary: Set/Replace the Application Configuration (putConfiguration) + tags: + - Configuration + /services/{serviceId}/keepalive: + put: + description: "A registered service should invoke this operation regularly to\ + \ indicate that it is still alive. If a registered service fails to invoke\ + \ some operation, or this operation, before the end of a timeout period the\ + \ service will be deregistered and all its A1 policies wil be removed and\ + \ the service is deleted. This operation is only intended for registered services.\ + \ (This timeout can be set or disabled when each service is initially registered).\ + \ Unregistered services do not need to invoke this operation, since the optional\ + \ keep-alive monitoring feature can only be enabled for registered services." + operationId: keepAliveService + parameters: + - explode: false + in: path + name: serviceId + required: true + schema: + type: string + style: simple + - description: Specifies the content type that the client expects to receive + in response to the request. Only application/json is allowed. + in: header + name: Accept + schema: + example: application/json + type: string + responses: + "200": content: - '*/*': + application/json: schema: type: object - description: Created - Service created - "400": - $ref: '#/components/responses/400' - summary: Register a service + description: "OK - Service supervision timer refreshed, OK" + "404": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + summary: Heartbeat message from a service (keepAliveService) + tags: + - Service Registry and Supervision + /services: + get: + description: | + Get information about all registered services, or a single registered service. If the service ID of a registered service is included in the query, information about that service is returned. Otherwise Information about all registered is returned. This operation does not retrieve information about unregistered services. + operationId: getServices + parameters: + - description: The identity of the registered service + explode: true + in: query + name: serviceId + required: false + schema: + type: string + style: form + - description: Specifies the content type that the client expects to receive + in response to the request. Only application/json is allowed. + in: header + name: Accept + schema: + example: application/json + type: string + responses: + "200": + content: + application/json: + examples: + service_status_list: + $ref: '#/components/examples/ServiceStatusList' + schema: + $ref: '#/components/schemas/ServiceStatusList' + description: OK + "404": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + summary: Get Services (getServices) tags: - - Service Registry and Supervision + - Service Registry and Supervision + put: callbacks: RICStatus: - "{$request.body#/callback_url}": + '{$request.body#/callback_url}': post: - description: The URL to this call is registered at Service registration. + description: "Callouts to indicate Near-RT RIC status changes relevant\ + \ for Services. \nThe URL invoked by this callback is provided at\ + \ Service registration.\n" operationId: serviceCallback requestBody: content: @@ -716,93 +1142,155 @@ paths: $ref: '#/components/schemas/void' description: OK "404": - $ref: '#/components/responses/404' - summary: Callback for Near-RT RIC status + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + summary: Callback for Near-RT RIC status (serviceCallback) tags: - - Service callbacks + - Service Registry and Supervision + x-callback-request: true + description: | + Register a single service, or update a previous registration. Service registration is required to get callbacks about available NearRT RICs and to enable supervision of the service's active status. If a registered service becomes inactive, its policies can be automatically deleted. A1 Policy instances can also be created for unregistered services. If an unregistered service is later registered, the service's policies are retained when the service becomes registered. This feature is optional to use. + operationId: putService + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceRegistrationInfo' + required: true + responses: + "200": + content: + application/json: + schema: + type: object + description: OK - Service updated + "201": + content: + application/json: + schema: + type: object + description: Created - Service created + "400": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Request + summary: Register or update a Service (putService) + tags: + - Service Registry and Supervision /services/{serviceId}: delete: + description: | + Unregister a registered Service using its service ID. Only registered services can be unregistered. All A1 Policy Instances for the previously registered service will be removed. operationId: deleteService parameters: - - explode: false - in: path - name: serviceId - required: true - schema: - type: string - style: simple - - description: Specifies the content type that the client expects to receive in response to the request. - Only application/json is allowed. - in: header - name: Accept - schema: - type: string - example: application/json + - explode: false + in: path + name: serviceId + required: true + schema: + type: string + style: simple + - description: Specifies the content type that the client expects to receive + in response to the request. Only application/json is allowed. + in: header + name: Accept + schema: + example: application/json + type: string responses: "204": content: - '*/*': + application/json: schema: type: object description: No Content - Service unregistered "404": - $ref: '#/components/responses/404' - description: Unregister a service + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + summary: Unregister a Service (deleteService) tags: - - Service Registry and Supervision + - Service Registry and Supervision components: examples: - ServiceStatusList: - description: List of service information - value: - serviceList: - - callbackUrl: callbackUrl - serviceId: serviceId - keepAliveIntervalSeconds: 0 - timeSinceLastActivitySeconds: 6 - - callbackUrl: callbackUrl - serviceId: serviceId - keepAliveIntervalSeconds: 0 - timeSinceLastActivitySeconds: 6 - PolicyStatusInfo: - description: Status for one A1-P Policy - value: - lastModified: last_modified - status: - value: - status: status StatusInfo: value: - status: status + status: success RicInfo: value: - ricId: ricId + ricId: ricId1 managedElementIds: - - managedElementId - - managedElementId + - "Note #1" + - Athlone small cells + - Some optional string state: UNAVAILABLE policyTypeIds: - - policyTypeId - - policyTypeId + - policyTypeId1 + - policyTypeId2 RicInfoList: value: rics: - - ricId: ricId - managedElementIds: - - managedElementId - - managedElementId - state: UNAVAILABLE - policyTypeIds: - - policyTypeId - - policyTypeId - - ricId: ricId - managedElementIds: - - managedElementId - - managedElementId - state: UNAVAILABLE - policyTypeIds: - - policyTypeId - - policyTypeId + - ricId: ricId1 + managedElementIds: + - "Note #1" + - Athlone small cells + - Fake Cells + state: UNAVAILABLE + policyTypeIds: + - policyTypeId1 + - policyTypeId2 + - ricId: ricId2 + managedElementIds: + - My test element + - Another test element + state: UNAVAILABLE + policyTypeIds: + - policyTypeId3 + - policyTypeId4 + PolicyTypeInformation: + value: + - policyTypeId: STD_QOS2_0.1.0 + nearRtRicId: ric_g3_2 + - policyTypeId: STD_QOS_0_2_0 + nearRtRicId: ric_g3_2 + - policyTypeId: STD_QOS2_0.1.0 + nearRtRicId: ric_g3_1 + - policyTypeId: STD_QOS_0_2_0 + nearRtRicId: ric_g3_1 + PolicyTypeObject: + value: + policySchema: + $schema: http://json-schema.org/draft-07/schema# + title: STD_QOS_0_2_0 + description: STD QOS2 policy type + type: object + properties: + scope: + type: object + properties: + ueId: + type: string + qosId: + type: string + additionalProperties: false + required: + - ueId + - qosId + qosObjectives: + type: object + properties: + priorityLevel: + type: number + additionalProperties: false + required: + - priorityLevel PolicyObject: value: scope: @@ -815,11 +1303,11 @@ components: gnbId: gnbIdLength: 24 gnbIdValue: 12345678 - RanUeId: 'a31c510b20e64a74' + RanUeId: a31c510b20e64a74 groupId: spId: 123 qosId: - 5qI: 1 + "5qI": 1 cellId: plmnId: mcc: "123" @@ -831,380 +1319,464 @@ components: mfbr: 200 priorityLevel: 3 pdb: 50 - schemas: - PolicyTypeInformation: - description: >- - Available policy types and for each policy type identifier the Near-RT - RIC identifiers of those Near-RT RICs that support the related A1 policy - type - type: object - properties: - policyTypeId: - description: Identity of the policy type - type: string - nearRtRicId: - $ref: '#/components/schemas/NearRtRicId' - required: - - policyTypeId - - nearRtRicId - PolicyObjectInformation: - description: Information related to the creation of the policy - type: object - properties: - nearRtRicId: - description: identity of the target Near-RT RIC - type: string - example: - 'Near-RT-Ric-ID' - transient: - default: false - description: "if true, the policy is deleted at RIC restart. If false, its\ - \ value is maintained by this service until explicitly deleted. Default\ - \ false." - nullable: false - type: boolean - policyId: - description: identity of the Policy - type: string - example: - 'POLICY-ID' - serviceId: - description: the identity of the service owning the policy. This can be - used to group the policies (it is possible to get all policies associated - to a service). Note that the service does not need to be registered. - type: string + ServiceStatusList: + description: List of service information + value: + serviceList: + - callbackUrl: http://callback.url + serviceId: serviceId1 + keepAliveIntervalSeconds: 0 + timeSinceLastActivitySeconds: 6 + - callbackUrl: http://callback.url + serviceId: serviceId2 + keepAliveIntervalSeconds: 500 + timeSinceLastActivitySeconds: 401 + responses: + "404": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Found + "400": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Request + "401": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Unauthorized + "403": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Forbidden + "406": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Not Acceptable + "429": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Too Many Requests + "500": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Internal Server Error + "502": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Bad Gateway + "503": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Service Unavailable + "411": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Length Required + "413": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Payload Too Large + "415": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Unsupported Media Type + Locked: + content: + application/problem+json: example: - 'rApp ID' - policyObject: - $ref: '#/components/schemas/PolicyObject' - policyTypeId: - description: identity of the policy type + status: 423 + title: Locked + detail: State is Locked in the provided request. + schema: + $ref: '#/components/schemas/ErrorInformation' + description: Locked - HTTP Status code which can be used when the state is Locked + "405": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Method Not Allowed + "409": + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + description: Conflict + schemas: + StatusInfo: + example: + status: status + properties: + status: + description: Status text type: string - example: 'ORAN_QOS_1.0.0(typeName_SemVersion)' - required: - - nearRtRicId - - policyObject - - policyTypeId - ErrorInformation: - description: Problem as defined in https://tools.ietf.org/html/rfc7807 + type: object + ProblemDetails: + description: Object to carry details about a problem in an HTTP response according + to IETF RFC 7807 properties: - detail: - description: ' A human-readable explanation specific to this occurrence - of the problem.' - example: Policy type not found + type: + description: URI reference according to IETF RFC 3986 that identifies the + problem type type: string title: - description: 'A specific error name' + description: Human-readable summary of the problem type type: string - example: Not Found - status: - description: 'The HTTP status code generated by the origin server for this - occurrence of the problem. ' - example: 404 - format: int32 - type: integer - type: object - PolicyObject: - description: 'Policy Object is a JSON representation of an A1 policy' - type: object - void: - description: Void/empty - type: object - StatusInfo: - properties: status: - description: status text + description: HTTP status code + type: number + detail: + description: Human-readable explanation + type: string + instance: + description: URI reference that identifies the specific occurrence of the + problem type: string - type: object - AuthorizationResult: - description: Result of authorization - example: - result: true - properties: - result: - description: "If true, the access is granted" - type: boolean - required: - - result type: object RicInfo: description: Information for a Near-RT RIC + example: + ricId: ricId + policyTypeIds: + - policyTypeIds + - policyTypeIds + managedElementIds: + - managedElementIds + - managedElementIds + state: UNAVAILABLE properties: ricId: - description: identity of the Near-RT RIC + description: Identity of the Near-RT RIC type: string managedElementIds: - description: O1 identities for managed entities + description: Identities for managed entities items: - description: O1 identities for managed entities + description: Identity for a managed entity type: string type: array state: - description: Represents the states for a Near-RT RIC + description: Represents the state of a Near-RT RIC enum: - - UNAVAILABLE - - AVAILABLE - - SYNCHRONIZING - - CONSISTENCY_CHECK + - UNAVAILABLE + - AVAILABLE + - SYNCHRONIZING + - CONSISTENCY_CHECK type: string policyTypeIds: - description: supported policy types + description: Supported A1 Policy Types items: - description: supported policy types + description: Supported A1 Policy Type ID type: string type: array type: object - ServiceRegistrationInfo: - description: Information for one service + RicInfoList: + description: Collection of Near-RT RIC information objects + example: + rics: + - ricId: ricId + policyTypeIds: + - policyTypeIds + - policyTypeIds + managedElementIds: + - managedElementIds + - managedElementIds + state: UNAVAILABLE + - ricId: ricId + policyTypeIds: + - policyTypeIds + - policyTypeIds + managedElementIds: + - managedElementIds + - managedElementIds + state: UNAVAILABLE properties: - callbackUrl: - description: callback for notifying of Near-RT RIC state changes + rics: + description: List of Near-RT RIC information objects + items: + $ref: '#/components/schemas/RicInfo' + type: array + type: object + PolicyTypeInformation: + description: A data tuple to indicate that an identified A1 Policy Type is supported + at an identified Near-RT RIC. + example: + policyTypeId: STD_QOS2_0.1.0 + nearRtRicId: ric_g3_2 + properties: + policyTypeId: + description: A1 Policy Type identifier type: string - serviceId: - description: identity of the service + nearRtRicId: + description: Identity of the Near-RT RIC type: string - keepAliveIntervalSeconds: - description: "keep alive interval for the service. This is used to enable\ - \ optional heartbeat supervision of the service. If set (> 0) the registered\ - \ service should regularly invoke a 'keepalive' REST call. When a service\ - \ fails to invoke this 'keepalive' call within the configured time, the\ - \ service is considered unavailable. An unavailable service will be automatically\ - \ deregistered and its policies will be deleted. Value 0 means timeout\ - \ supervision is disabled." - format: int64 - type: integer required: - - serviceId + - nearRtRicId + - policyTypeId type: object - PolicyStatusInfo: - description: Status for one A1-P Policy + NearRtRicId: + description: Identity of the Near-RT RIC + type: string + PolicyTypeObject: + description: "An A1 Policy Type, as defined in O-RAN Alliance A1TD" + example: + policySchema: + $schema: http://json-schema.org/draft-07/schema# + title: STD_QOS_0_2_0 + description: Policy data schema for STD_QOS_0.2.0 A1 Policy Instances. + type: object + properties: + scope: + type: object + properties: + ueId: + type: string + qosId: + type: string + additionalProperties: false + required: + - ueId + - qosId + qosObjectives: + type: object + properties: + priorityLevel: + type: number + additionalProperties: false + required: + - priorityLevel + statusSchema: + $schema: http://json-schema.org/draft-07/schema# + title: STD_QOS_0.2.0 + description: Status schema for STD_QOS_0.2.0 A1 Policy Instances. + type: object + properties: + enforceStatus: + type: string + enforceReason: + type: string + additionalProperties: false + required: + - enforceStatus properties: - lastModified: - description: "timestamp, last modification time" - type: string - status: - description: the Policy status + policySchema: + description: | + A schema to define the policy data contents of A1 Policy Instances. Policy data schemas are Policy Type specific. All A1 Policy Instances of an A1 Policy Type should comply with the type's policy data schema. type: object + statusSchema: + description: | + A schema to define the contents of the status information for A1 Policy Instances. Status schemas are Policy Type specific. All status information for all A1 Policy Instances of an A1 Policy Type should comply with the type's status schema. + type: object + required: + - policySchema type: object - ServiceStatus: + PolicySchema: + description: | + A schema to define the policy data contents of A1 Policy Instances. Policy data schemas are Policy Type specific. All A1 Policy Instances of an A1 Policy Type should comply with the type's policy data schema. + type: object + StatusSchema: + description: | + A schema to define the contents of the status information for A1 Policy Instances. Status schemas are Policy Type specific. All status information for all A1 Policy Instances of an A1 Policy Type should comply with the type's status schema. + type: object + PolicyObject: + description: | + Policy Object is a JSON representation policy data for an A1 Policy Instance. The schema for this policy data is defined in the corresponding A1 Policy Type. + type: object + ErrorInformation: + description: Problem as defined in https://tools.ietf.org/html/rfc7807 properties: - callbackUrl: - description: callback for notifying of RIC synchronization + detail: + description: A human-readable explanation specific to this occurrence of + the problem. + example: Policy type not found type: string - serviceId: - description: identity of the service + title: + description: A specific error name + example: Not Found type: string - keepAliveIntervalSeconds: - description: policy keep alive timeout - format: int64 - type: integer - timeSinceLastActivitySeconds: - description: time since last invocation by the service - format: int64 + status: + description: | + The HTTP status code generated by the origin server for this occurrence of the problem. + example: 404 + format: int32 type: integer type: object - RicInfoList: - description: List of Near-RT RIC information - properties: - rics: - description: List of Near-RT RIC information - items: - $ref: '#/components/schemas/RicInfo' - type: array + PolicyStatusObject: + description: | + A generic policy status object that can be used to transport any policy status. Additionally, a schema for policy status can be defined in the corresponding A1 Policy Type. type: object - input: - description: input + PolicyInformation: + description: | + Information tuple for a single A1 Policy Instance. Contains the A1 Policy Instance ID, and the ID of the Near-RT RIC where the policy is created. + example: + policyId: policyId + nearRtRicId: nearRtRicId properties: - accessType: - description: Access type - enum: - - READ - - WRITE - - DELETE - type: string - authToken: - description: Authorization token + policyId: + description: Identity of the A1 Policy Instance type: string - policyTypeId: - description: Policy type identifier + nearRtRicId: + description: Identity of the Near-RT RIC type: string required: - - accessType - - authToken - - policyTypeId - type: object - PolicyAuthorization: - description: Authorization request for A1 policy requests - properties: - input: - $ref: '#/components/schemas/input' - required: - - input - type: object - NearRtRicId: - description: Identity of the policy - type: string - PolicyInformation: - description: >- - Near-RT RIC identifiers where A1 policies exist and for each Near-RT RIC - identifier the policy identifiers of those policies that exist in that - Near-RT RIC + - nearRtRicId + - policyId type: object + PolicyObjectInformation: + description: Information to create an A1 Policy Instance + example: + policyId: POLICY-ID1 + nearRtRicId: Near-RT-Ric-ID1 + transient: false + policyObject: "{}" + serviceId: rApp 1 + policyTypeId: ORAN_QOS_1.0.0 '(typeName_SemVersion)' properties: + nearRtRicId: + description: Identity of the target Near-RT RIC + example: Near-RT-Ric-ID1 + type: string + transient: + default: false + description: | + If true, the policy is automatically deleted if the targeted Near-RT RIC restarts or recovers. If false, the A1 Policy Instance remains, and is re-pushed to the targeted Near-RT RIC after a restart or recovery. If false, the A1 Policy Instance is maintained and must be deleted separately in the event of Near-RT RIC restart or recovery. Default is false. + nullable: false + type: boolean policyId: - description: Identity of the policy + description: | + An optional identity to be used for the new A1 Policy Instance. If this value is present, it must be unique. If not present the new A1 Policy Instance will be assigned a newly generated unique ID, and the new ID can be extracted from the 'Location' header in the response. + example: POLICY-ID1 + type: string + serviceId: + default: "" + 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.\ + \ If the service is registered, the newly created A1 Policy Instance will\ + \ be subject to the same supervision rules as the the service's other\ + \ policies." + example: rApp 1 + type: string + policyObject: + description: | + Policy Object is a JSON representation policy data for an A1 Policy Instance. The schema for this policy data is defined in the corresponding A1 Policy Type. + type: object + policyTypeId: + description: A1 Policy Type identity + example: ORAN_QOS_1.0.0 '(typeName_SemVersion)' type: string - nearRtRicId: - $ref: '#/components/schemas/NearRtRicId' required: - - policyId - - nearRtRicId + - nearRtRicId + - policyObject + - policyTypeId + type: object + void: + description: Void/empty + type: object ServiceStatusList: + example: + serviceList: + - keepAliveIntervalSeconds: 0 + callbackUrl: callbackUrl + timeSinceLastActivitySeconds: 6 + serviceId: serviceId + - keepAliveIntervalSeconds: 0 + callbackUrl: callbackUrl + timeSinceLastActivitySeconds: 6 + serviceId: serviceId properties: serviceList: - description: List of service information + description: "List of Service Status objects, describing a collection of\ + \ registered services." items: $ref: '#/components/schemas/ServiceStatus' type: array type: object - ServiceCallbackInfo: - description: Information transferred as in Service callbacks (callback_url) + ServiceStatus: + description: Information about a previously registered service + example: + keepAliveIntervalSeconds: 0 + callbackUrl: callbackUrl + timeSinceLastActivitySeconds: 6 + serviceId: serviceId properties: - ricId: - description: identity of a Near-RT RIC + callbackUrl: + description: Callback URL for notifying of Near-RT RIC state changes type: string - eventType: - description: "values:\nAVAILABLE: the Near-RT RIC has become available\ - \ for A1 Policy management" - enum: - - AVAILABLE + serviceId: + description: Identity of the service type: string - required: - - eventType - - ricId + keepAliveIntervalSeconds: + description: | + Keep alive interval (seconds) for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled. + format: int64 + type: integer + timeSinceLastActivitySeconds: + description: Time (seconds) since last recorded operation by the service + format: int64 + type: integer type: object - Link: + ServiceRegistrationInfo: + description: Information for a service to be registered + example: + keepAliveIntervalSeconds: 0 + callbackUrl: callbackUrl + serviceId: serviceId properties: - templated: - type: boolean - href: + callbackUrl: + description: Callback URL for notifying of Near-RT RIC state changes type: string + serviceId: + description: Identity of the service + type: string + keepAliveIntervalSeconds: + description: | + Keep alive interval for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled. + format: int64 + type: integer + required: + - serviceId type: object - ProblemDetails: - description: >- - A problem detail to carry details in an HTTP response according to RFC - 7807 - type: object + ServiceCallbackInfo: + description: "Information transferred in Service callbacks, \nif a callback\ + \ URL was provided for a registered service\n" + example: + ricId: ricId + eventType: AVAILABLE properties: - type: - description: >- - a URI reference according to IETF RFC 3986 that identifies the - problem type - type: string - title: - description: human-readable summary of the problem type - type: string - status: - description: the HTTP status code - type: number - detail: - description: 'human-readable explanation ' + ricId: + description: Identity of a Near-RT RIC type: string - instance: - description: URI reference that identifies the specific occurrence of the problem + eventType: + description: "values: \n AVAILABLE: the Near-RT RIC has become available\ + \ for A1 Policy management\n" + enum: + - AVAILABLE type: string - responses: - '400': - description: Bad Request - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - '401': - description: Unauthorized - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - '403': - description: Forbidden - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - '404': - description: Not Found - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - '405': - description: Method Not Allowed - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - '406': - description: Not Acceptable - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - '409': - description: Conflict - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - '411': - description: Length Required - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - '413': - description: Payload Too Large - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - '415': - description: Unsupported Media Type - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - '429': - description: Too Many Request - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - '500': - description: Internal Server Error - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - '502': - description: Bad Gateway - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - '503': - description: Service Unavailable - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - Locked: - description: "Locked - HTTP Status code which can be used when the state is Locked" - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ErrorInformation' - example: - status: 423 - title: Locked - detail: State is Locked in the provided request. + required: + - eventType + - ricId + type: object diff --git a/docs/offeredapis/swagger/pms-api.json b/docs/offeredapis/swagger/pms-api.json index deb5743..8e20aa4 100644 --- a/docs/offeredapis/swagger/pms-api.json +++ b/docs/offeredapis/swagger/pms-api.json @@ -2,205 +2,70 @@ "openapi" : "3.0.3", "info" : { "contact" : { - "email" : "discuss-list@onap.com", - "url" : "https://www.onap.org/" + "email" : "discuss@lists.o-ran-sc.org", + "url" : "https://o-ran-sc.org//" }, - "description" : "

General

The O-RAN Non-RT RIC Policy Management Service provides a REST API for managemecnt of A1 policies.
The main tasks of the service are:

  • A1 Policy creation, modification and deletion.
  • Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs
  • Maintaining a view of supported Near-RT RIC policy types
  • Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.

APIs provided or defined by the service

A1 Policy Management

This is an API for management of A1 Policies.

  • A1 Policy retrieval, creation, modification and deletion.
  • Retrieval of supported A1 Policy types for a Near-RT RIC
  • Retrieval of status for existing A1 policies

Management of configuration

API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.

Service callbacks

These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.

NearRT-RIC Repository

This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.

Health Check

API used for supervision of the PMS component.

Service Registry and Supervision

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.

Authorization API

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.

Spring Boot Actuator

Provides generic functions used to monitor and manage the Spring web application.

", + "description" : "

General

The ORAN SC A1 Policy Management Service provides a REST API for managing A1 policies.
This document describes the latest API set to perform tasks for:

  • A1 Policy creation, modification and deletion.
  • Monitoring and maintaining consistency of the SMO view of A1 Policies and the Near-RT RICs
  • Maintaining a view of each Near-RT RIC's supported A1 Policy Types
  • Supervision of registered services (rApps). When a registered service is unavailable, its policies are removed.

APIs provided or defined by the service

Note: parts of this API are strongly based on extracts of the O-RAN Alliance R1 Interface specification for A1 Policy Management, and those parts should be considered '© O-RAN ALLIANCE - All rights reserved.'

A1 Policy Management

This is the latest API for managing A1 Policies. This API is partially compliant with O-RAN Alliance R1 Interface specifications for A1 Policy Management:

  • A1 Policy retrieval, creation, modification and deletion.
  • Retrieval of supported A1 Policy Types for a Near-RT RIC
  • Retrieval of status for existing A1 policies

Management of configuration

API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.

Service Callbacks

These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.

NearRT-RIC Repository (Older version)

This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted towards one Near-RT RIC.

Health Check

API used for supervision of the A1 Policy Management Service.

Service Registry and Supervision

API used for registering services/clients/rApps. Each A1 Policy can be tagged with an owner. If the owner service is registered, then the service can be optionally monitored by a heart-beat supervision mechanism, and if the registered service becomes unavailable, then it is removed and all its A1 Policies are deleted. Note that services do not need to be registered to create A1 Policies, but unregistered services are not supervised. This is a feature that is optional to use.

", "license" : { - "name" : "Copyright (C) 2020-2023 Nordix Foundation. Licensed under the Apache License.", + "name" : "Copyright (C) 2024 - 2025 OpenInfra Foundation Europe. Licensed under the Apache 2 License.", "url" : "http://www.apache.org/licenses/LICENSE-2.0" }, - "title" : "A1 Policy Management Service", - "version" : "1.3.0", - "x-api-id" : "a31c510b-20e6-4a08-af16-368c44d7fba8", + "title" : "OSC - A1 Policy Management API", + "version" : "1.0.0", + "x-api-id" : "e9776a07-0813-4fca-9801-6f892f0a7c13", "x-audience" : "external-public" }, "servers" : [ { "url" : "/" } ], "tags" : [ { - "description" : "API used to create polices, Policy Instances and get them as individual using an ID or get all policies/Instances.", + "description" : "Older pre-spec API used to get, create, update and delete A1 Policy Instances. Also used to query A1 Policy Types.\n", "name" : "A1 Policy Management" }, { - "description" : "API used to get the NearRT-RIC for the managed element.", + "description" : "Older API used to get information about registered Near-RT RICs.\n", "name" : "NearRT-RIC Repository" }, { - "description" : "API used to keep the service Alive with in the timeout period", + "description" : "Older API used to manage registered services, and control their keep-alive status via heart-beat messages.\n", "name" : "Service Registry and Supervision" }, { - "description" : "API used to get the health status and statistics of this service", + "description" : "API used to get the health status and statistics of this service\n", "name" : "Health Check" }, { - "name" : "Service callbacks" + "description" : "Callout to registered services to indicate a status changes for a Near-RT RIC. Note that these operations are called by the A1 Policy Management Service, not provided.\n", + "name" : "Service Callbacks" }, { - "description" : "API used for authorization of information A1 policy access (this is provided by an authorization producer such as OPA).
Note that this API is called by PMS, it is not provided.", + "description" : "API used for authorization of information A1 policy access (this is provided by an authorization producer such as OPA). Note that these operations are called by the A1 Policy Management Service, not provided.\n", "name" : "Authorization API" }, { - "description" : "API used to create or fetch the application configuration.", + "description" : "API used to create or fetch the application configuration.\n", "name" : "Configuration" }, { - "description" : "Monitor and interact", + "description" : "API used to monitor and configure the A1-PMS Springboot Service.\n", "externalDocs" : { "description" : "Spring Boot Actuator Web API Documentation", - "url" : "https://docs.spring.io/spring-boot/docs/current/actuator-api/html/" + "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html" }, - "name" : "Actuator" + "name" : "Actuator API" } ], "paths" : { - "/a1-policy/v2/policy-instances" : { - "get" : { - "description" : "Returns a list of A1 policies matching given search criteria.
If several query parameters are defined, the policies matching all conditions are returned.", - "operationId" : "getPolicyInstances", - "parameters" : [ { - "description" : "Select policies with a given type identity.", - "explode" : true, - "in" : "query", - "name" : "policytype_id", - "required" : false, - "schema" : { - "type" : "string" - }, - "style" : "form" - }, { - "description" : "Select policies for a given Near-RT RIC identity.", - "explode" : true, - "in" : "query", - "name" : "ric_id", - "required" : false, - "schema" : { - "type" : "string" - }, - "style" : "form" - }, { - "description" : "Select policies owned by a given service.", - "explode" : true, - "in" : "query", - "name" : "service_id", - "required" : false, - "schema" : { - "type" : "string" - }, - "style" : "form" - }, { - "description" : "Select policies of a given type name (type identity has the format )", - "explode" : true, - "in" : "query", - "name" : "type_name", - "required" : false, - "schema" : { - "type" : "string" - }, - "style" : "form" - } ], - "responses" : { - "200" : { - "content" : { - "application/json" : { - "examples" : { - "policy_info_list" : { - "$ref" : "#/components/examples/policy_info_list" - } - }, - "schema" : { - "$ref" : "#/components/schemas/policy_info_list" - } - } - }, - "description" : "OK - Returns A1 Policies which matches the criteria" - }, - "404" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/error_information" - } - } - }, - "description" : "Not Found - Near-RT RIC, policy type or service not found" - } - }, - "summary" : "Query for A1 policy instances", - "tags" : [ "A1 Policy Management" ] - } - }, - "/example-authz-check" : { - "post" : { - "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" : { - "content" : { - "application/json" : { - "schema" : { - "$ref" : "#/components/schemas/authorization_result" - } - } - }, - "description" : "OK" - }, - "403" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : 403, - "title" : "Forbidden", - "detail" : "Your role does not allow to perform this action. Contact System Administrator to change your access rights." - }, - "schema" : { - "$ref" : "#/components/schemas/error_information" - } - } - }, - "description" : "Forbidden" - } - }, - "summary" : "Request for access authorization.", - "tags" : [ "Authorization API" ] - } - }, - "/actuator/threaddump" : { + "/status" : { "get" : { - "operationId" : "threaddump", + "description" : "Returns status and statistics of this service", + "operationId" : "getStatusV1", "responses" : { "200" : { "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" + "type" : "string" } } }, - "description" : "OK" + "description" : "OK - Service is living" } }, - "summary" : "Actuator web endpoint 'threaddump'", - "tags" : [ "Actuator" ], - "x-internal" : true + "summary" : "Get Status (getStatusV1)", + "tags" : [ "Health Check" ] } }, "/a1-policy/v2/status" : { @@ -224,75 +89,16 @@ "description" : "OK- Service is living Ok" } }, + "summary" : "Get Status (getStatus)", "tags" : [ "Health Check" ] } }, - "/actuator/loggers" : { - "get" : { - "operationId" : "loggers", - "responses" : { - "200" : { - "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" - } - } - }, - "description" : "OK" - } - }, - "summary" : "Actuator web endpoint 'loggers'", - "tags" : [ "Actuator" ], - "x-internal" : true - } - }, - "/actuator/health/**" : { - "get" : { - "operationId" : "health-path", - "responses" : { - "200" : { - "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" - } - } - }, - "description" : "OK" - } - }, - "summary" : "Actuator web endpoint 'health-path'", - "tags" : [ "Actuator" ], - "x-internal" : true - } - }, "/a1-policy/v2/rics/ric" : { "get" : { - "description" : "Either a Near-RT RIC identity or a Managed Element identity can be specified.
The intention with Managed Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU).", + "description" : "Query information about a Near-RT RIC. Either a Near-RT RIC identity or a Managed Element identity can be specified. The intention with Managed Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU).\n", "operationId" : "getRic", "parameters" : [ { - "description" : "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.", + "description" : "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.\n", "explode" : true, "in" : "query", "name" : "managed_element_id", @@ -337,43 +143,13 @@ "description" : "Not Found" } }, - "summary" : "Returns info of Near-RT RIC queried by the ric-id and managed-element-id", + "summary" : "Get a Near-RT RIC (getRic)", "tags" : [ "NearRT-RIC Repository" ] } }, - "/actuator/shutdown" : { - "post" : { - "operationId" : "shutdown", - "responses" : { - "200" : { - "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" - } - } - }, - "description" : "OK" - } - }, - "summary" : "Actuator web endpoint 'shutdown'", - "tags" : [ "Actuator" ], - "x-internal" : true - } - }, "/a1-policy/v2/policy-types" : { "get" : { - "description" : "Query policy type identities", + "description" : "Query A1 Policy Type identities using query parameters", "operationId" : "getPolicyTypes", "parameters" : [ { "description" : "Select types for the given Near-RT RIC identity.", @@ -386,7 +162,7 @@ }, "style" : "form" }, { - "description" : "Select types with the given type name (type identity has the format )", + "description" : "Select types compatible with the given type name (type identity has the format 'typename_version')", "explode" : true, "in" : "query", "name" : "type_name", @@ -431,12 +207,13 @@ "description" : "Not Found" } }, + "summary" : "Get A1 Policy Types (getPolicyTypes)", "tags" : [ "A1 Policy Management" ] } }, "/a1-policy/v2/policies/{policy_id}" : { "delete" : { - "description" : "Deleting the policy using the Policy's Policy ID.", + "description" : "Delete an A1 Policy instance using its policy ID.", "operationId" : "deletePolicy", "parameters" : [ { "explode" : false, @@ -475,11 +252,11 @@ "description" : "Locked - HTTP Status code which can be used when the state is Locked" } }, - "summary" : "Delete a policy", + "summary" : "Delete an A1 Policy instance (deletePolicy)", "tags" : [ "A1 Policy Management" ] }, "get" : { - "description" : "Returns a policy", + "description" : "Get an A1 Policy instance using its policy ID", "operationId" : "getPolicy", "parameters" : [ { "explode" : false, @@ -516,16 +293,18 @@ "description" : "Not Found" } }, + "summary" : "Get an A1 Policy instance (getPolicy)", "tags" : [ "A1 Policy Management" ] } }, - "/actuator/metrics/{requiredMetricName}" : { - "get" : { - "operationId" : "metrics-requiredMetricName", + "/a1-policy/v2/services/{service_id}/keepalive" : { + "put" : { + "description" : "A registered service should invoke this operation regularly to indicate that it is still alive. If a registered service fails to invoke some operation, or this operation, before the end of a timeout period the service will be deregistered and all its A1 policies wil be removed. This operation is only intended for registered services. (This timeout can be set or disabled when each service is initially registered)", + "operationId" : "keepAliveService", "parameters" : [ { "explode" : false, "in" : "path", - "name" : "requiredMetricName", + "name" : "service_id", "required" : true, "schema" : { "type" : "string" @@ -535,299 +314,33 @@ "responses" : { "200" : { "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" } } }, - "description" : "OK" + "description" : "OK - Service supervision timer refreshed, OK" + }, + "404" : { + "content" : { + "application/problem+json" : { + "example" : [ ] + } + }, + "description" : "Not Found" } }, - "summary" : "Actuator web endpoint 'metrics-requiredMetricName'", - "tags" : [ "Actuator" ], - "x-internal" : true + "summary" : "Heartbeat message from a service (keepAliveService)", + "tags" : [ "Service Registry and Supervision" ] } }, - "/a1-policy/v2/configuration" : { + "/a1-policy/v2/rics" : { "get" : { - "description" : "Returns the contents of the application configuration file", - "operationId" : "getConfiguration", - "responses" : { - "200" : { - "content" : { - "application/json" : { - "schema" : { - "type" : "string" - } - } - }, - "description" : "OK - Configuration" - }, - "404" : { - "content" : { - "application/problem+json" : { - "example" : [ ] - } - }, - "description" : "Not Found" - } - }, - "tags" : [ "Configuration" ] - }, - "put" : { - "description" : "Replace the current configuration with the given configuration", - "operationId" : "putConfiguration", - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "type" : "object" - } - } - }, - "required" : true - }, - "responses" : { - "200" : { - "content" : { - "*/*" : { - "schema" : { - "$ref" : "#/components/schemas/void" - } - } - }, - "description" : "OK - Configuration updated" - }, - "400" : { - "content" : { - "application/problem+json" : { - "example" : { - "status" : 400, - "title" : "Bad Request", - "detail" : "The provided request is not valid." - }, - "schema" : { - "$ref" : "#/components/schemas/error_information" - } - } - }, - "description" : "Bad Request" - } - }, - "tags" : [ "Configuration" ] - } - }, - "/actuator" : { - "get" : { - "operationId" : "links", - "responses" : { - "200" : { - "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" - } - } - }, - "description" : "OK" - } - }, - "summary" : "Actuator root web endpoint", - "tags" : [ "Actuator" ], - "x-internal" : true - } - }, - "/actuator/loggers/{name}" : { - "get" : { - "operationId" : "loggers-name", - "parameters" : [ { - "explode" : false, - "in" : "path", - "name" : "name", - "required" : true, - "schema" : { - "type" : "string" - }, - "style" : "simple" - } ], - "responses" : { - "200" : { - "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" - } - } - }, - "description" : "OK" - } - }, - "summary" : "Actuator web endpoint 'loggers-name'", - "tags" : [ "Actuator" ], - "x-internal" : true - }, - "post" : { - "operationId" : "loggers-name_2", - "parameters" : [ { - "explode" : false, - "in" : "path", - "name" : "name", - "required" : true, - "schema" : { - "type" : "string" - }, - "style" : "simple" - } ], - "requestBody" : { - "content" : { - "application/json" : { - "schema" : { - "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", "OFF" ], - "type" : "string" - } - } - } - }, - "responses" : { - "200" : { - "content" : { - "*/*" : { - "schema" : { - "type" : "object" - } - } - }, - "description" : "OK" - } - }, - "summary" : "Actuator web endpoint 'loggers-name'", - "tags" : [ "Actuator" ], - "x-internal" : true - } - }, - "/a1-policy/v2/services/{service_id}/keepalive" : { - "put" : { - "description" : "A registered service should invoke this operation regularly to indicate that it is still alive. If a registered service fails to invoke this operation before the end of a timeout period the service will be deregistered and all its A1 policies wil be removed. (This timeout can be set or disabled when each service is initially registered)", - "operationId" : "keepAliveService", - "parameters" : [ { - "explode" : false, - "in" : "path", - "name" : "service_id", - "required" : true, - "schema" : { - "type" : "string" - }, - "style" : "simple" - } ], - "responses" : { - "200" : { - "content" : { - "*/*" : { - "schema" : { - "type" : "object" - } - } - }, - "description" : "OK - Service supervision timer refreshed, OK" - }, - "404" : { - "content" : { - "application/problem+json" : { - "example" : [ ] - } - }, - "description" : "Not Found" - } - }, - "summary" : "Heartbeat indicates that the service is running", - "tags" : [ "Service Registry and Supervision" ] - } - }, - "/actuator/metrics" : { - "get" : { - "operationId" : "metrics", - "responses" : { - "200" : { - "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" - } - } - }, - "description" : "OK" - } - }, - "summary" : "Actuator web endpoint 'metrics'", - "tags" : [ "Actuator" ], - "x-internal" : true - } - }, - "/a1-policy/v2/rics" : { - "get" : { - "description" : "The call returns all Near-RT RICs that supports a given policy type identity", + "description" : "Get all Near-RT RICs that supports a given A1 Policy Type ID", "operationId" : "getRics", "parameters" : [ { - "description" : "The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned", + "description" : "The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned.\n", "explode" : true, "in" : "query", "name" : "policytype_id", @@ -862,16 +375,16 @@ "description" : "Not Found" } }, - "summary" : "Query Near-RT RIC information", + "summary" : "Get Near-RT RICs for A1 Policy Type (getRics)", "tags" : [ "NearRT-RIC Repository" ] } }, "/a1-policy/v2/services" : { "get" : { - "description" : "Either information about a registered service with given identity or all registered services are returned.", + "description" : "Get information about all registered services, or a single registered service. If the service ID of a registered service is included in the query, information about that service is returned. Otherwise Information about all registered is returned. This operation does not retrieve information about unregistered services.\n", "operationId" : "getServices", "parameters" : [ { - "description" : "The identity of the service", + "description" : "The identity of the registered service", "explode" : true, "in" : "query", "name" : "service_id", @@ -906,7 +419,7 @@ "description" : "Not Found" } }, - "summary" : "Returns service information", + "summary" : "Get Services (getServices)", "tags" : [ "Service Registry and Supervision" ] }, "put" : { @@ -914,7 +427,7 @@ "RICStatus" : { "{$request.body#/callback_url}" : { "post" : { - "description" : "The URL to this call is registered at Service registration.", + "description" : "Callouts to indicate Near-RT RIC status changes relevant for Services. \nThe URL invoked by this callback is provided at Service registration.\n", "operationId" : "serviceCallback", "requestBody" : { "content" : { @@ -946,13 +459,14 @@ "description" : "Not Found" } }, - "summary" : "Callback for Near-RT RIC status", - "tags" : [ "Service callbacks" ] + "summary" : "Callback for Near-RT RIC status (serviceCallback)", + "tags" : [ "Service Registry and Supervision", "Service Callbacks" ], + "x-callback-request" : true } } } }, - "description" : "Registering a service is needed to:
  • Get callbacks about available NearRT RICs.
  • Activate supervision of the service. If a service is inactive, its policies will automatically be deleted.
Policies can be created even if the service is not registerred. This is a feature which it is optional to use.", + "description" : "Register a single service, or update a previous registtration. Service registration is required to get callbacks about available NearRT RICs and to enable supervision of the service's active status. If a registered service becomes inactive, its policies can be automatically deleted. A1 Policy instances can also be created for unregistered services. If an unregistered service is later registered, the service's policies are retained when the service becomes registered. This feature is optional to use.\n", "operationId" : "putService", "requestBody" : { "content" : { @@ -1001,62 +515,13 @@ "description" : "Bad Request" } }, - "summary" : "Register a service", + "summary" : "Register or update a Service (putService)", "tags" : [ "Service Registry and Supervision" ] } }, - "/actuator/info" : { + "/a1-policy/v2/policy-types/{policytype_id}" : { "get" : { - "operationId" : "info", - "responses" : { - "200" : { - "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" - } - } - }, - "description" : "OK" - } - }, - "summary" : "Actuator web endpoint 'info'", - "tags" : [ "Actuator" ], - "x-internal" : true - } - }, - "/status" : { - "get" : { - "description" : "Returns status and statistics of this service", - "operationId" : "getStatusV1", - "responses" : { - "200" : { - "content" : { - "*/*" : { - "schema" : { - "type" : "string" - } - } - }, - "description" : "OK - Service is living" - } - }, - "tags" : [ "Health Check" ] - } - }, - "/a1-policy/v2/policy-types/{policytype_id}" : { - "get" : { - "description" : "Returns a policy type definition", + "description" : "Get an A1 Policy Type definition using its policy type ID", "operationId" : "getPolicyTypeDefinition", "parameters" : [ { "explode" : false, @@ -1082,7 +547,7 @@ } } }, - "description" : "OK - schema of the given policy type" + "description" : "OK - schema of the requested A1 Policy Type" }, "404" : { "content" : { @@ -1093,65 +558,16 @@ "description" : "Not Found" } }, + "summary" : "Get an A1 Policy Type definition (getPolicyTypeDefinition)", "tags" : [ "A1 Policy Management" ] } }, - "/actuator/logfile" : { - "get" : { - "operationId" : "logfile", - "responses" : { - "200" : { - "content" : { - "text/plain;charset=UTF-8" : { - "schema" : { - "type" : "object" - } - } - }, - "description" : "OK" - } - }, - "summary" : "Actuator web endpoint 'logfile'", - "tags" : [ "Actuator" ], - "x-internal" : true - } - }, - "/actuator/health" : { - "get" : { - "operationId" : "health", - "responses" : { - "200" : { - "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" - } - } - }, - "description" : "OK" - } - }, - "summary" : "Actuator web endpoint 'health'", - "tags" : [ "Actuator" ], - "x-internal" : true - } - }, "/a1-policy/v2/policies" : { "get" : { - "description" : "Returns a list of A1 policies matching given search criteria.
If several query parameters are defined, the policies matching all conditions are returned.", + "description" : "Retrieve a list of A1 Policy Instance IDs for policies that match given search criteria. If multiple query parameters are given, the policies matching all conditions are returned.\n", "operationId" : "getPolicyIds", "parameters" : [ { - "description" : "Select policies of a given policy type identity.", + "description" : "Select policies of a given A1 Policy Type ID.", "explode" : true, "in" : "query", "name" : "policytype_id", @@ -1171,7 +587,7 @@ }, "style" : "form" }, { - "description" : "Select policies owned by a given service.", + "description" : "Select policies owned by a given service. (Both registered and unregistered services)", "explode" : true, "in" : "query", "name" : "service_id", @@ -1181,7 +597,7 @@ }, "style" : "form" }, { - "description" : "Select policies of types with the given type name (type identity has the format )", + "description" : "Select policies of types with the given A1 Policy Type name (type names have the format 'typename_version')\n", "explode" : true, "in" : "query", "name" : "type_name", @@ -1216,11 +632,11 @@ "description" : "Not Found" } }, - "summary" : "Query policy identities", + "summary" : "Query A1 Policy Instances (getPolicyIds)", "tags" : [ "A1 Policy Management" ] }, "put" : { - "description" : "Create or update a policy", + "description" : "Create or Update an A1 Policy Instance", "operationId" : "putPolicy", "requestBody" : { "content" : { @@ -1269,12 +685,89 @@ "description" : "Locked - HTTP Status code which can be used when the state is Locked" } }, + "summary" : "Create or Update an A1 Policy Instance (putPolicy)", + "tags" : [ "A1 Policy Management" ] + } + }, + "/a1-policy/v2/policy-instances" : { + "get" : { + "description" : "Returns a collection of A1 Policy Instance information for policies that match given search criteria. If several query parameters are defined, the policies matching all conditions are returned.\n", + "operationId" : "getPolicyInstances", + "parameters" : [ { + "description" : "Select policies with a given A1 Policy Type ID.", + "explode" : true, + "in" : "query", + "name" : "policytype_id", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "form" + }, { + "description" : "Select policies for a given Near-RT RIC identity.", + "explode" : true, + "in" : "query", + "name" : "ric_id", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "form" + }, { + "description" : "Select policies owned by a given service (registered or unregistered).", + "explode" : true, + "in" : "query", + "name" : "service_id", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "form" + }, { + "description" : "Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').", + "explode" : true, + "in" : "query", + "name" : "type_name", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "form" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "examples" : { + "policy_info_list" : { + "$ref" : "#/components/examples/policy_info_list" + } + }, + "schema" : { + "$ref" : "#/components/schemas/policy_info_list" + } + } + }, + "description" : "OK - Returns A1 Policy Instances which match the criteria" + }, + "404" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/error_information" + } + } + }, + "description" : "Not Found - Near-RT RIC, A1 Policy Type or service was not found" + } + }, + "summary" : "Query for A1 Policy instances (getPolicyInstances)", "tags" : [ "A1 Policy Management" ] } }, "/a1-policy/v2/services/{service_id}" : { "delete" : { - "description" : "Unregister a service", + "description" : "Unregister a registered Service using its service ID. Only registered services can be unregistered. All A1 Policy Instances for the previously registered service will be removed.\n", "operationId" : "deleteService", "parameters" : [ { "explode" : false, @@ -1306,32 +799,13 @@ "description" : "Not Found" } }, + "summary" : "Unregister a Service (deleteService)", "tags" : [ "Service Registry and Supervision" ] } }, - "/actuator/heapdump" : { - "get" : { - "operationId" : "heapdump", - "responses" : { - "200" : { - "content" : { - "application/octet-stream" : { - "schema" : { - "type" : "object" - } - } - }, - "description" : "OK" - } - }, - "summary" : "Actuator web endpoint 'heapdump'", - "tags" : [ "Actuator" ], - "x-internal" : true - } - }, "/a1-policy/v2/policies/{policy_id}/status" : { "get" : { - "description" : "Returns a policy status", + "description" : "Retrieve the status information for an A1 Policy Instance.", "operationId" : "getPolicyStatus", "parameters" : [ { "explode" : false, @@ -1368,100 +842,614 @@ "description" : "Not Found" } }, + "summary" : "Get an A1 Policy Instance's status (getPolicyStatus)", "tags" : [ "A1 Policy Management" ] } - } - }, - "components" : { - "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" - } + }, + "/a1-policy/v2/configuration" : { + "get" : { + "description" : "Returns the entire contents of the Application Configuration.", + "operationId" : "getConfiguration", + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "string" + } + } + }, + "description" : "OK - Configuration" + }, + "404" : { + "content" : { + "application/problem+json" : { + "example" : [ ] + } + }, + "description" : "Not Found" + } + }, + "summary" : "Get the Application Configuration (getConfiguration)", + "tags" : [ "Configuration" ] }, - "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" ] - } + "put" : { + "description" : "Replace the current Application Configuration with a new configuration. The new configuration, if accepted, will take effect after a short delay. The new configuration must comply with the Application Configuration schema, which can be found from the the Application Documentation (Developer Guide)\n", + "operationId" : "putConfiguration", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "object" + } + } + }, + "required" : true + }, + "responses" : { + "200" : { + "content" : { + "*/*" : { + "schema" : { + "$ref" : "#/components/schemas/void" + } + } + }, + "description" : "OK - Configuration updated" + }, + "400" : { + "content" : { + "application/problem+json" : { + "example" : { + "status" : 400, + "title" : "Bad Request", + "detail" : "The provided request is not valid." + }, + "schema" : { + "$ref" : "#/components/schemas/error_information" + } + } + }, + "description" : "Bad Request" + } + }, + "summary" : "Set/Replace the Application Configuration (putConfiguration)", + "tags" : [ "Configuration" ] + } + }, + "/example-authz-check" : { + "post" : { + "description" : "A template endpoint for callout requests to an external authorization function. The authorization function, if enabled, decides if individual operations are permitted.\n", + "operationId" : "performAccessControl", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/policy_authorization" + } + } + }, + "required" : true + }, + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/authorization_result" + } + } + }, + "description" : "OK" + }, + "403" : { + "content" : { + "application/problem+json" : { + "example" : { + "status" : 403, + "title" : "Forbidden", + "detail" : "Your role does not allow to perform this action. Contact System Administrator to change your access rights." + }, + "schema" : { + "$ref" : "#/components/schemas/error_information" + } + } + }, + "description" : "Forbidden" + } + }, + "summary" : "Callout request for access authorization (performAccessControl)", + "tags" : [ "Authorization API" ] + } + }, + "/actuator" : { + "get" : { + "description" : "A1-PMS Springboot Service Actuator web endpoint. Returns a set of links to available/enabled actuator endpoints.\n", + "externalDocs" : { + "description" : "Spring Boot Actuator Web API Documentation", + "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html" + }, + "operationId" : "actuatorLinks", + "responses" : { + "200" : { + "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" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator endpoint - Root (actuatorLinks)", + "tags" : [ "Actuator API" ], + "x-internal" : true + } + }, + "/actuator/heapdump" : { + "get" : { + "description" : "A1-PMS Springboot Service Actuator web endpoint - HeapDump.\n", + "externalDocs" : { + "description" : "Spring Boot Actuator Web API Documentation", + "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html" + }, + "operationId" : "actuatorHeapdump", + "responses" : { + "200" : { + "content" : { + "application/octet-stream" : { + "schema" : { + "type" : "object" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator endpoint - Heapdump (actuatorHeapdump)", + "tags" : [ "Actuator API" ], + "x-internal" : true + } + }, + "/actuator/info" : { + "get" : { + "description" : "A1-PMS Springboot Service Actuator web endpoint - Info.\n", + "externalDocs" : { + "description" : "Spring Boot Actuator Web API Documentation", + "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html" + }, + "operationId" : "actuatorInfo", + "responses" : { + "200" : { + "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" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator endpoint - Info (actuatorInfo)", + "tags" : [ "Actuator API" ], + "x-internal" : true + } + }, + "/actuator/threaddump" : { + "get" : { + "description" : "A1-PMS Springboot Service Actuator web endpoint - ThreadDump.\n", + "externalDocs" : { + "description" : "Spring Boot Actuator Web API Documentation", + "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html" + }, + "operationId" : "actuatorThreaddump", + "responses" : { + "200" : { + "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" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator endpoint - Threaddump (actuatorThreaddump)", + "tags" : [ "Actuator API" ], + "x-internal" : true + } + }, + "/actuator/loggers" : { + "get" : { + "description" : "A1-PMS Springboot Service Actuator web endpoint - Get a list of Loggers.\n", + "externalDocs" : { + "description" : "Spring Boot Actuator Web API Documentation", + "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html" + }, + "operationId" : "actuatorLoggers", + "responses" : { + "200" : { + "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" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator endpoint - Get Loggers (actuatorLoggers)", + "tags" : [ "Actuator API" ], + "x-internal" : true + } + }, + "/actuator/loggers/{name}" : { + "get" : { + "description" : "A1-PMS Springboot Service Actuator web endpoint - Get a single named Logger.\n", + "externalDocs" : { + "description" : "Spring Boot Actuator Web API Documentation", + "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html" + }, + "operationId" : "actuatorGetLogger", + "parameters" : [ { + "explode" : false, + "in" : "path", + "name" : "name", + "required" : true, + "schema" : { + "type" : "string" + }, + "style" : "simple" + } ], + "responses" : { + "200" : { + "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" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator endpoint - Get Logger (actuatorGetLogger)", + "tags" : [ "Actuator API" ], + "x-internal" : true }, - "policy_status_info" : { - "description" : "Status for one A1-P Policy", - "value" : { - "last_modified" : "last_modified", - "status" : { - "value" : { - "status" : "status" + "post" : { + "description" : "A1-PMS Springboot Service Actuator web endpoint - Create or Update single named Logger.\n", + "externalDocs" : { + "description" : "Spring Boot Actuator Web API Documentation", + "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html" + }, + "operationId" : "actuatorSetlogger", + "parameters" : [ { + "explode" : false, + "in" : "path", + "name" : "name", + "required" : true, + "schema" : { + "type" : "string" + }, + "style" : "simple" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", "OFF" ], + "type" : "string" + } } } - } - }, + }, + "responses" : { + "200" : { + "content" : { + "*/*" : { + "schema" : { + "type" : "object" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator endpoint - Set Logger (actuatorSetlogger)", + "tags" : [ "Actuator API" ], + "x-internal" : true + } + }, + "/actuator/logfile" : { + "get" : { + "description" : "A1-PMS Springboot Service Actuator web endpoint - Get the Log file.\n", + "externalDocs" : { + "description" : "Spring Boot Actuator Web API Documentation", + "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html" + }, + "operationId" : "actuatorGetLogFile", + "responses" : { + "200" : { + "content" : { + "text/plain;charset=UTF-8" : { + "schema" : { + "type" : "object" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator endpoint - Log File (actuatorGetLogFile)", + "tags" : [ "Actuator API" ], + "x-internal" : true + } + }, + "/actuator/health" : { + "get" : { + "description" : "A1-PMS Springboot Service Actuator web endpoint - Health Check.\n", + "externalDocs" : { + "description" : "Spring Boot Actuator Web API Documentation", + "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html" + }, + "operationId" : "actuatorHealth", + "responses" : { + "200" : { + "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" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator endpoint - Health (actuatorHealth)", + "tags" : [ "Actuator API" ], + "x-internal" : true + } + }, + "/actuator/health/**" : { + "get" : { + "description" : "A1-PMS Springboot Service Actuator web endpoint - Health Status for an Application Component.\n", + "externalDocs" : { + "description" : "Spring Boot Actuator Web API Documentation", + "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html" + }, + "operationId" : "actuatorHealthComponent", + "responses" : { + "200" : { + "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" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator endpoint - Component Health (actuatorHealthComponent)", + "tags" : [ "Actuator API" ], + "x-internal" : true + } + }, + "/actuator/shutdown" : { + "post" : { + "description" : "A1-PMS Springboot Service Actuator web endpoint - Shutdown the Application.\n", + "externalDocs" : { + "description" : "Spring Boot Actuator Web API Documentation", + "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html" + }, + "operationId" : "actuatorShutdown", + "responses" : { + "200" : { + "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" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator endpoint - Shutdown (actuatorShutdown)", + "tags" : [ "Actuator API" ], + "x-internal" : true + } + }, + "/actuator/metrics" : { + "get" : { + "description" : "A1-PMS Springboot Service Actuator web endpoint - Get a list of Application metrics names.\n", + "externalDocs" : { + "description" : "Spring Boot Actuator Web API Documentation", + "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html" + }, + "operationId" : "actuatorMetrics", + "responses" : { + "200" : { + "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" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator endpoint - Metrics (actuatorMetrics)", + "tags" : [ "Actuator API" ], + "x-internal" : true + } + }, + "/actuator/metrics/{requiredMetricName}" : { + "get" : { + "description" : "A1-PMS Springboot Service Actuator web endpoint - Get the value for a named Application metric.\n", + "externalDocs" : { + "description" : "Spring Boot Actuator Web API Documentation", + "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html" + }, + "operationId" : "actuatorGetMetric", + "parameters" : [ { + "explode" : false, + "in" : "path", + "name" : "requiredMetricName", + "required" : true, + "schema" : { + "type" : "string" + }, + "style" : "simple" + } ], + "responses" : { + "200" : { + "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" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator endpoint - Get Metric (actuatorGetMetric)", + "x-internal" : true + } + } + }, + "components" : { + "examples" : { "status_info" : { "value" : { "status" : "status" @@ -1475,6 +1463,24 @@ "policytype_ids" : [ "some_policytype_id", "some_policytype_id" ] } }, + "policy_type_id_list" : { + "description" : "Array of A1 Policy Type id's", + "value" : { + "policy_type_id_list" : [ "policytype_id", "policytype_id" ] + } + }, + "policy_info" : { + "description" : "Information for an A1 Policy Instance", + "value" : { + "ric_id" : "ric_id1", + "policy_id" : "policy_id1", + "transient" : false, + "service_id" : "service_id1", + "policy_data" : "{}", + "status_notification_uri" : "status_notification_uri", + "policytype_id" : "policytype_id1" + } + }, "ric_info_list" : { "value" : { "rics" : [ { @@ -1489,9 +1495,78 @@ "policytype_ids" : [ "policytype_ids", "policytype_ids" ] } ] } + }, + "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 A1 Policy Type", + "value" : { + "policy_schema" : "{}" + } + }, + "policy_id_list" : { + "description" : "A list of policy identities", + "value" : { + "policy_ids" : [ "some_policy_id", "some_policy_id" ] + } + }, + "policy_info_list" : { + "description" : "List of policy information", + "value" : { + "policies" : [ { + "ric_id" : "ric_id1", + "policy_id" : "policy_id1", + "transient" : false, + "service_id" : "service_id1", + "policy_data" : "{}", + "status_notification_uri" : "status_notification_uri", + "policytype_id" : "policytype_id1" + }, { + "ric_id" : "ric_id2", + "policy_id" : "policy_id2", + "transient" : true, + "service_id" : "service_id2", + "policy_data" : "{}", + "status_notification_uri" : "status_notification_uri", + "policytype_id" : "policytype_id2" + } ] + } + }, + "policy_status_info" : { + "description" : "Status for one A1-P Policy", + "value" : { + "last_modified" : "last_modified", + "status" : { + "value" : { + "status" : "status" + } + } + } } }, "responses" : { + "NotFound" : { + "content" : { + "application/problem+json" : { + "example" : [ ] + } + }, + "description" : "Not Found" + }, "Locked" : { "content" : { "application/problem+json" : { @@ -1536,54 +1611,13 @@ } }, "description" : "Forbidden" - }, - "NotFound" : { - "content" : { - "application/problem+json" : { - "example" : [ ] - } - }, - "description" : "Not Found" } }, "schemas" : { - "policy_type_definition" : { - "description" : "Contains policy type schema definition", - "properties" : { - "policy_schema" : { - "description" : "Policy type json schema. The schema is a json object following http://json-schema.org/draft-07/schema", - "type" : "object" - } - }, - "type" : "object" - }, - "error_information" : { - "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807", - "properties" : { - "detail" : { - "description" : " A human-readable explanation specific to this occurrence of the problem.", - "example" : "Policy type not found", - "type" : "string" - }, - "title" : { - "description" : "A specific error name", - "example" : "Not Found", - "type" : "string" - }, - "status" : { - "description" : "The HTTP status code generated by the origin server for this occurrence of the problem. ", - "example" : 404, - "format" : "int32", - "type" : "integer" - } - }, - "type" : "object" - }, - "void" : { - "description" : "Void/empty", - "type" : "object" - }, "status_info" : { + "example" : { + "status" : "status" + }, "properties" : { "status" : { "description" : "status text", @@ -1592,22 +1626,14 @@ }, "type" : "object" }, - "authorization_result" : { - "description" : "Result of authorization", - "example" : { - "result" : true - }, - "properties" : { - "result" : { - "description" : "If true, the access is granted", - "type" : "boolean" - } - }, - "required" : [ "result" ], - "type" : "object" - }, "ric_info" : { "description" : "Information for a Near-RT RIC", + "example" : { + "ric_id" : "ric_id", + "managed_element_ids" : [ "managed_element_ids", "managed_element_ids" ], + "state" : "UNAVAILABLE", + "policytype_ids" : [ "policytype_ids", "policytype_ids" ] + }, "properties" : { "ric_id" : { "description" : "identity of the Near-RT RIC", @@ -1627,9 +1653,26 @@ "type" : "string" }, "policytype_ids" : { - "description" : "supported policy types", + "description" : "supported A1 Policy Types", + "items" : { + "description" : "supported A1 Policy Types", + "type" : "string" + }, + "type" : "array" + } + }, + "type" : "object" + }, + "policy_type_id_list" : { + "description" : "Information about A1 Policy Types", + "example" : { + "policytype_ids" : [ "policytype_ids", "policytype_ids" ] + }, + "properties" : { + "policytype_ids" : { + "description" : "A1 Policy Type identities", "items" : { - "description" : "supported policy types", + "description" : "A1 Policy Type identities", "type" : "string" }, "type" : "array" @@ -1637,54 +1680,143 @@ }, "type" : "object" }, - "service_registration_info" : { - "description" : "Information for one service", + "policy_info" : { + "description" : "Information for one A1-P Policy", + "example" : { + "ric_id" : "ric_id", + "policy_id" : "policy_id", + "transient" : false, + "service_id" : "", + "policy_data" : "{}", + "status_notification_uri" : "status_notification_uri", + "policytype_id" : "policytype_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 automatically deleted if the targeted Near-RT RIC restarts or recovers. If false, the A1 Policy Instance remains, and is re-pushed to the targeted Near-RT RIC after a restart or recovery. If false, the A1 Policy Instance is maintained and must be deleted separately in the event of Near-RT RIC restart or recovery. Default is false.\n", + "example" : false, + "nullable" : false, + "type" : "boolean" + }, + "service_id" : { + "default" : "", + "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. If the service is registered, the A1 Policy Instance will be subject to the same supervision rules as the the service's other policies.\n", + "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 A1 Policy Type", + "type" : "string" + } + }, + "required" : [ "policy_data", "policy_id", "policytype_id", "ric_id" ], + "type" : "object" + }, + "void" : { + "description" : "Void/empty", + "type" : "object" + }, + "error_information" : { + "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807", + "example" : { + "detail" : "A1 Policy Type not found", + "title" : "Not Found", + "status" : 404 + }, "properties" : { - "callback_url" : { - "description" : "callback for notifying of Near-RT RIC state changes", + "detail" : { + "description" : " A human-readable explanation specific to this occurrence of the problem.", + "example" : "A1 Policy Type not found", "type" : "string" }, - "service_id" : { - "description" : "identity of the service", + "title" : { + "description" : "A specific error name", + "example" : "Not Found", "type" : "string" }, - "keep_alive_interval_seconds" : { - "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", + "status" : { + "description" : "The HTTP status code generated by the origin server for this occurrence of the problem. ", + "example" : 404, + "format" : "int32", "type" : "integer" } }, - "required" : [ "service_id" ], "type" : "object" }, - "policy_info_list" : { - "description" : "List of policy information", + "ric_info_list" : { + "description" : "List of Near-RT RIC information", + "example" : { + "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" ] + } ] + }, "properties" : { - "policies" : { - "description" : "List of policy information", + "rics" : { + "description" : "List of Near-RT RIC information", "items" : { - "$ref" : "#/components/schemas/policy_info" + "$ref" : "#/components/schemas/ric_info" }, "type" : "array" } }, "type" : "object" }, - "policy_status_info" : { - "description" : "Status for one A1-P Policy", + "service_status_list" : { + "example" : { + "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 + } ] + }, "properties" : { - "last_modified" : { - "description" : "timestamp, last modification time", - "type" : "string" - }, - "status" : { - "description" : "the Policy status", - "type" : "object" + "service_list" : { + "description" : "List of service information", + "items" : { + "$ref" : "#/components/schemas/service_status" + }, + "type" : "array" } }, "type" : "object" }, "service_status" : { + "example" : { + "callback_url" : "callback_url", + "service_id" : "service_id", + "keep_alive_interval_seconds" : 0, + "time_since_last_activity_seconds" : 6 + }, "properties" : { "callback_url" : { "description" : "callback for notifying of RIC synchronization", @@ -1707,100 +1839,53 @@ }, "type" : "object" }, - "ric_info_list" : { - "description" : "List of Near-RT RIC information", - "properties" : { - "rics" : { - "description" : "List of Near-RT RIC information", - "items" : { - "$ref" : "#/components/schemas/ric_info" - }, - "type" : "array" - } - }, - "type" : "object" - }, - "input" : { - "description" : "input", + "service_registration_info" : { + "description" : "Information for one service", "properties" : { - "access_type" : { - "description" : "Access type", - "enum" : [ "READ", "WRITE", "DELETE" ], + "callback_url" : { + "description" : "Callback for notifying of Near-RT RIC state changes", "type" : "string" }, - "auth_token" : { - "description" : "Authorization token", + "service_id" : { + "description" : "identity of the service", "type" : "string" }, - "policy_type_id" : { - "description" : "Policy type identifier", - "type" : "string" + "keep_alive_interval_seconds" : { + "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.\n", + "format" : "int64", + "type" : "integer" } }, - "required" : [ "access_type", "auth_token", "policy_type_id" ], + "required" : [ "service_id" ], "type" : "object" }, - "policy_authorization" : { - "description" : "Authorization request for A1 policy requests", + "service_callback_info_v2" : { + "description" : "Information transferred in Service callbacks, \nif a callback URL was provided for a registered service\n", "properties" : { - "input" : { - "$ref" : "#/components/schemas/input" + "ric_id" : { + "description" : "identity of a Near-RT RIC", + "type" : "string" + }, + "event_type" : { + "description" : "values: \n AVAILABLE: the Near-RT RIC has become available for A1 Policy management\n", + "enum" : [ "AVAILABLE" ], + "type" : "string" } }, - "required" : [ "input" ], + "required" : [ "event_type", "ric_id" ], "type" : "object" }, - "policy_type_id_list" : { - "description" : "Information about policy types", - "properties" : { - "policytype_ids" : { - "description" : "Policy type identities", - "items" : { - "description" : "Policy type identities", - "type" : "string" - }, - "type" : "array" - } + "policy_type_definition" : { + "description" : "Contains A1 Policy Type schema definition", + "example" : { + "policy_schema" : "{}" }, - "type" : "object" - }, - "policy_info" : { - "description" : "Information for one A1-P Policy", "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.", - "example" : false, - "nullable" : false, - "type" : "boolean" - }, - "service_id" : { - "default" : "", - "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", + "policy_schema" : { + "description" : "A1 Policy Type json schema. The schema is a json object following http://json-schema.org/draft-07/schema", "type" : "object" - }, - "status_notification_uri" : { - "description" : "Callback URI for policy status updates", - "type" : "string" - }, - "policytype_id" : { - "description" : "identity of the policy type", - "type" : "string" } }, - "required" : [ "policy_data", "policy_id", "policytype_id", "ric_id" ], "type" : "object" }, "policy_id_list" : { @@ -1820,32 +1905,98 @@ }, "type" : "object" }, - "service_status_list" : { + "policy_info_list" : { + "description" : "List of policy information", + "example" : { + "policies" : [ { + "ric_id" : "ric_id", + "policy_id" : "policy_id", + "transient" : false, + "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" : "", + "policy_data" : "{}", + "status_notification_uri" : "status_notification_uri", + "policytype_id" : "policytype_id" + } ] + }, "properties" : { - "service_list" : { - "description" : "List of service information", + "policies" : { + "description" : "List of policy information", "items" : { - "$ref" : "#/components/schemas/service_status" + "$ref" : "#/components/schemas/policy_info" }, "type" : "array" } }, "type" : "object" }, - "service_callback_info_v2" : { - "description" : "Information transferred as in Service callbacks (callback_url)", + "policy_status_info" : { + "description" : "Status for one A1-P Policy", + "example" : { + "last_modified" : "last_modified", + "status" : "{}" + }, "properties" : { - "ric_id" : { - "description" : "identity of a Near-RT RIC", + "last_modified" : { + "description" : "timestamp, last modification time", "type" : "string" }, - "event_type" : { - "description" : "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management", - "enum" : [ "AVAILABLE" ], + "status" : { + "description" : "the Policy status", + "type" : "object" + } + }, + "type" : "object" + }, + "policy_authorization" : { + "description" : "Authorization request for A1 policy requests", + "properties" : { + "input" : { + "$ref" : "#/components/schemas/input" + } + }, + "required" : [ "input" ], + "type" : "object" + }, + "input" : { + "description" : "input", + "properties" : { + "access_type" : { + "description" : "Access type", + "enum" : [ "READ", "WRITE", "DELETE" ], + "type" : "string" + }, + "auth_token" : { + "description" : "Authorization token", + "type" : "string" + }, + "policy_type_id" : { + "description" : "A1 Policy Type identifier", "type" : "string" } }, - "required" : [ "event_type", "ric_id" ], + "required" : [ "access_type", "auth_token", "policy_type_id" ], + "type" : "object" + }, + "authorization_result" : { + "description" : "Result of authorization", + "example" : { + "result" : true + }, + "properties" : { + "result" : { + "description" : "If true, the access is granted", + "type" : "boolean" + } + }, + "required" : [ "result" ], "type" : "object" }, "Link" : { diff --git a/docs/offeredapis/swagger/pms-api.yaml b/docs/offeredapis/swagger/pms-api.yaml index c0b50d4..16ecd88 100644 --- a/docs/offeredapis/swagger/pms-api.yaml +++ b/docs/offeredapis/swagger/pms-api.yaml @@ -1,8 +1,6 @@ # ============LICENSE_START======================================================= -# Copyright (C) 2020-2023 Nordix Foundation -# Copyright (C) 2023-2024 OpenInfra Foundation Europe. All rights reserved. -# Modifications Copyright (C) 2021 Pantheon.tech -# Modifications Copyright (C) 2021 Bell Canada +# Copyright (C) 2020-2023 Nordix Foundation. All rights reserved. +# Copyright (C) 2023-2025 OpenInfra Foundation Europe. All rights reserved. # ================================================================================ # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -21,319 +19,182 @@ openapi: 3.0.3 info: - x-api-id: a31c510b-20e6-4a08-af16-368c44d7fba8 - x-audience: external-public - description: "

General

The O-RAN Non-RT RIC Policy Management Service\ - \ provides a REST API for managemecnt of A1 policies.
The main tasks of the\ - \ service are:

  • A1 Policy creation, modification and deletion.
  • Monitoring\ - \ and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs
  • Maintaining\ - \ a view of supported Near-RT RIC policy types
  • Supervision of using services\ - \ (R-APPs). When a service is unavailable, its policies are removed.

APIs\ - \ provided or defined by the service

A1 Policy Management

This\ - \ is an API for management of A1 Policies.

  • A1 Policy retrieval, creation,\ - \ modification and deletion.
  • Retrieval of supported A1 Policy types for\ - \ a Near-RT RIC
  • Retrieval of status for existing A1 policies

Management\ + contact: + email: discuss@lists.o-ran-sc.org + url: https://o-ran-sc.org// + description: "

General

The ORAN SC A1 Policy Management Service provides\ + \ a REST API for managing A1 policies.
This document describes the latest\ + \ API set to perform tasks for:

  • A1 Policy creation, modification\ + \ and deletion.
  • Monitoring and maintaining consistency of the SMO view\ + \ of A1 Policies and the Near-RT RICs
  • Maintaining a view of each Near-RT\ + \ RIC's supported A1 Policy Types
  • Supervision of registered services (rApps).\ + \ When a registered service is unavailable, its policies are removed.

APIs\ + \ provided or defined by the service

Note: parts of this API are strongly\ + \ based on extracts of the O-RAN Alliance R1 Interface specification for A1 Policy\ + \ Management, and those parts should be considered '\xA9 O-RAN ALLIANCE - All\ + \ rights reserved.'

A1 Policy Management

This is the latest API\ + \ for managing A1 Policies. This API is partially compliant with O-RAN Alliance\ + \ R1 Interface specifications for A1 Policy Management:

  • A1 Policy retrieval,\ + \ creation, modification and deletion.
  • Retrieval of supported A1 Policy\ + \ Types for a Near-RT RIC
  • Retrieval of status for existing A1 policies

Management\ \ of configuration

API for updating and retrieval of the component configuration.\ - \ Note that there other ways to maintain the configuration.

Service callbacks

These\ + \ Note that there other ways to maintain the configuration.

Service Callbacks

These\ \ are endpoints that are invoked by this service. The callbacks are registered\ - \ in this service at service registration.

NearRT-RIC Repository

This\ - \ is an API that provides support for looking up a NearRT-RIC. Each A1 policy\ - \ is targeted for one Near-RT RIC.

Health Check

API used for supervision\ - \ of the PMS component.

Service Registry and Supervision

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.

Authorization API

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.

Spring Boot\ - \ Actuator

Provides generic functions used to monitor and manage the Spring\ - \ web application.

" + \ in this service at service registration.

NearRT-RIC Repository (Older\ + \ version)

This is an API that provides support for looking up a NearRT-RIC.\ + \ Each A1 policy is targeted towards one Near-RT RIC.

Health Check

API\ + \ used for supervision of the A1 Policy Management Service.

Service Registry\ + \ and Supervision

API used for registering services/clients/rApps. Each\ + \ A1 Policy can be tagged with an owner. If the owner service is registered, then\ + \ the service can be optionally monitored by a heart-beat supervision mechanism,\ + \ and if the registered service becomes unavailable, then it is removed and all\ + \ its A1 Policies are deleted. Note that services do not need to be registered\ + \ to create A1 Policies, but unregistered services are not supervised. This\ + \ is a feature that is optional to use.

" license: - name: Copyright (C) 2020-2023 Nordix Foundation. Licensed under the Apache License. + name: Copyright (C) 2024 - 2025 OpenInfra Foundation Europe. Licensed under the + Apache 2 License. url: http://www.apache.org/licenses/LICENSE-2.0 - title: A1 Policy Management Service - version: 1.3.0 - contact: - url: https://www.onap.org/ - email: discuss-list@onap.com + title: OSC - A1 Policy Management API + version: 1.0.0 + x-api-id: e9776a07-0813-4fca-9801-6f892f0a7c13 + x-audience: external-public servers: - - url: / +- 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).
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/ +- description: | + Older pre-spec API used to get, create, update and delete A1 Policy Instances. Also used to query A1 Policy Types. + name: A1 Policy Management +- description: | + Older API used to get information about registered Near-RT RICs. + name: NearRT-RIC Repository +- description: | + Older API used to manage registered services, and control their keep-alive status via heart-beat messages. + name: Service Registry and Supervision +- description: | + API used to get the health status and statistics of this service + name: Health Check +- description: | + Callout to registered services to indicate a status changes for a Near-RT RIC. Note that these operations are called by the A1 Policy Management Service, not provided. + name: Service Callbacks +- description: | + API used for authorization of information A1 policy access (this is provided by an authorization producer such as OPA). Note that these operations are called by the A1 Policy Management Service, not provided. + name: Authorization API +- description: | + API used to create or fetch the application configuration. + name: Configuration +- description: | + API used to monitor and configure the A1-PMS Springboot Service. + externalDocs: + description: Spring Boot Actuator Web API Documentation + url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html + name: Actuator API paths: - /a1-policy/v2/policy-instances: - get: - description: "Returns a list of A1 policies matching given search criteria.\ - \
If several query parameters are defined, the policies matching all conditions\ - \ are returned." - operationId: getPolicyInstances - parameters: - - description: Select policies with a given type identity. - explode: true - in: query - name: policytype_id - required: false - schema: - type: string - style: form - - description: Select policies for a given Near-RT RIC identity. - explode: true - in: query - name: ric_id - required: false - schema: - type: string - style: form - - description: Select policies owned by a given service. - explode: true - in: query - name: service_id - required: false - schema: - type: string - style: form - - description: Select policies of a given type name (type identity has the format - ) - explode: true - in: query - name: type_name - required: false - schema: - type: string - style: form - responses: - "200": - content: - application/json: - examples: - policy_info_list: - $ref: '#/components/examples/policy_info_list' - schema: - $ref: '#/components/schemas/policy_info_list' - description: OK - Returns A1 Policies which matches the criteria - "404": - content: - application/json: - schema: - $ref: '#/components/schemas/error_information' - description: "Not Found - Near-RT RIC, policy type or service not found" - summary: Query for A1 policy instances - tags: - - A1 Policy Management - /example-authz-check: - post: - 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": - content: - application/json: - schema: - $ref: '#/components/schemas/authorization_result' - description: OK - "403": - $ref: '#/components/responses/Forbidden' - summary: Request for access authorization. - tags: - - Authorization API - /actuator/threaddump: + /status: get: - x-internal: true - operationId: threaddump + description: Returns status and statistics of this service + operationId: getStatusV1 responses: "200": 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 - description: OK - summary: Actuator web endpoint 'threaddump' + type: string + description: OK - Service is living + summary: Get Status (getStatusV1) tags: - - Actuator + - Health Check /a1-policy/v2/status: get: + description: Returns status and statistics of this service operationId: getStatus responses: "200": content: application/json: - schema: - $ref: '#/components/schemas/status_info' examples: status_info: $ref: '#/components/examples/status_info' - 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": - 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 - description: OK - summary: Actuator web endpoint 'loggers' - tags: - - Actuator - /actuator/health/**: - get: - x-internal: true - operationId: health-path - responses: - "200": - 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 - description: OK - summary: Actuator web endpoint 'health-path' + $ref: '#/components/schemas/status_info' + description: OK- Service is living Ok + summary: Get Status (getStatus) tags: - - Actuator + - Health Check /a1-policy/v2/rics/ric: get: - description: Either a Near-RT RIC identity or a Managed Element identity can - be specified.
The intention with Managed Element identity is the ID used - in O1 for accessing the traffical element (such as the ID of CU). + description: | + Query information about a Near-RT RIC. Either a Near-RT RIC identity or a Managed Element identity can be specified. The intention with Managed Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU). operationId: getRic parameters: - - description: "The identity of a Managed Element. If given, the Near-RT RIC\ - \ managing the ME is returned." - explode: true - in: query - name: managed_element_id - required: false - schema: - type: string - style: form - - description: The identity of a Near-RT RIC to get information for. - explode: true - in: query - name: ric_id - required: false - schema: - type: string - style: form + - description: | + The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned. + explode: true + in: query + name: managed_element_id + required: false + schema: + type: string + style: form + - description: The identity of a Near-RT RIC to get information for. + explode: true + in: query + name: ric_id + required: false + schema: + type: string + style: form responses: "200": content: application/json: - schema: - $ref: '#/components/schemas/ric_info' examples: ric_info: $ref: '#/components/examples/ric_info' + schema: + $ref: '#/components/schemas/ric_info' description: OK - Near-RT RIC is found "404": - $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": 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 - description: OK - summary: Actuator web endpoint 'shutdown' + application/problem+json: + example: [] + description: Not Found + summary: Get a Near-RT RIC (getRic) tags: - - Actuator + - NearRT-RIC Repository /a1-policy/v2/policy-types: get: + description: Query A1 Policy Type identities using query parameters operationId: getPolicyTypes parameters: - - description: Select types for the given Near-RT RIC identity. - explode: true - in: query - name: ric_id - required: false - schema: - type: string - style: form - - description: Select types with the given type name (type identity has the - format ) - explode: true - in: query - name: type_name - required: false - schema: - type: string - style: form - - description: Select types that are compatible with the given version. This - parameter is only applicable in conjunction with type_name. As an example - version 1.9.1 is compatible with 1.0.0 but not the other way around. Matching - types will be returned sorted in ascending order. - explode: true - in: query - name: compatible_with_version - required: false - schema: - type: string - style: form + - description: Select types for the given Near-RT RIC identity. + explode: true + in: query + name: ric_id + required: false + schema: + type: string + style: form + - description: Select types compatible with the given type name (type identity + has the format 'typename_version') + explode: true + in: query + name: type_name + required: false + schema: + type: string + style: form + - description: Select types that are compatible with the given version. This + parameter is only applicable in conjunction with type_name. As an example + version 1.9.1 is compatible with 1.0.0 but not the other way around. Matching + types will be returned sorted in ascending order. + explode: true + in: query + name: compatible_with_version + required: false + schema: + type: string + style: form responses: "200": content: @@ -345,23 +206,25 @@ paths: $ref: '#/components/schemas/policy_type_id_list' description: OK - Policy Type IDs Found "404": - $ref: '#/components/responses/NotFound' - description: 'Not Found - Requested Policy Type IDs Not Found' - description: Query policy type identities + content: + application/problem+json: + example: [] + description: Not Found + summary: Get A1 Policy Types (getPolicyTypes) tags: - - A1 Policy Management + - A1 Policy Management /a1-policy/v2/policies/{policy_id}: delete: - description: Deleting the policy using the Policy's Policy ID. + description: Delete an A1 Policy instance using its policy ID. operationId: deletePolicy parameters: - - explode: false - in: path - name: policy_id - required: true - schema: - type: string - style: simple + - explode: false + in: path + name: policy_id + required: true + schema: + type: string + style: simple responses: "200": content: @@ -370,434 +233,650 @@ paths: $ref: '#/components/schemas/void' description: OK - Policy deleted "423": - $ref: '#/components/responses/Locked' - description: 'The requested policy using policy_id is Locked' - summary: Delete a policy + content: + application/problem+json: + example: + status: 423 + title: Locked + detail: Requested resource is in a locked state. + schema: + $ref: '#/components/schemas/error_information' + description: Locked - HTTP Status code which can be used when the state + is Locked + summary: Delete an A1 Policy instance (deletePolicy) tags: - - A1 Policy Management + - A1 Policy Management get: + description: Get an A1 Policy instance using its policy ID operationId: getPolicy parameters: - - explode: false - in: path - name: policy_id - required: true - schema: - type: string - style: simple + - explode: false + in: path + name: policy_id + required: true + schema: + type: string + style: simple responses: "200": content: application/json: - schema: - $ref: '#/components/schemas/policy_info' examples: policy_info: $ref: '#/components/examples/policy_info' + schema: + $ref: '#/components/schemas/policy_info' description: OK - Policy found "404": - $ref: '#/components/responses/NotFound' - description: 'Not Found - Requested Policy using policy_id is not found' - description: Returns a policy + content: + application/problem+json: + example: [] + description: Not Found + summary: Get an A1 Policy instance (getPolicy) tags: - - A1 Policy Management - /actuator/metrics/{requiredMetricName}: - get: - x-internal: true - operationId: metrics-requiredMetricName + - A1 Policy Management + /a1-policy/v2/services/{service_id}/keepalive: + put: + description: "A registered service should invoke this operation regularly to\ + \ indicate that it is still alive. If a registered service fails to invoke\ + \ some operation, or this operation, before the end of a timeout period the\ + \ service will be deregistered and all its A1 policies wil be removed. This\ + \ operation is only intended for registered services. (This timeout can be\ + \ set or disabled when each service is initially registered)" + operationId: keepAliveService parameters: - - explode: false - in: path - name: requiredMetricName - required: true - schema: - type: string - style: simple + - explode: false + in: path + name: service_id + required: true + schema: + type: string + style: simple responses: "200": content: - application/vnd.spring-boot.actuator.v3+json: + '*/*': schema: type: object + description: "OK - Service supervision timer refreshed, OK" + "404": + content: + application/problem+json: + example: [] + description: Not Found + summary: Heartbeat message from a service (keepAliveService) + tags: + - Service Registry and Supervision + /a1-policy/v2/rics: + get: + description: Get all Near-RT RICs that supports a given A1 Policy Type ID + operationId: getRics + parameters: + - description: | + The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned. + explode: true + in: query + name: policytype_id + required: false + schema: + type: string + style: form + responses: + "200": + content: application/json: + examples: + ric_info_list: + $ref: '#/components/examples/ric_info_list' schema: - type: object - application/vnd.spring-boot.actuator.v2+json: - schema: - type: object + $ref: '#/components/schemas/ric_info_list' description: OK - summary: Actuator web endpoint 'metrics-requiredMetricName' + "404": + content: + application/problem+json: + example: [] + description: Not Found + summary: Get Near-RT RICs for A1 Policy Type (getRics) tags: - - Actuator - /a1-policy/v2/configuration: + - NearRT-RIC Repository + /a1-policy/v2/services: get: - operationId: getConfiguration + description: | + Get information about all registered services, or a single registered service. If the service ID of a registered service is included in the query, information about that service is returned. Otherwise Information about all registered is returned. This operation does not retrieve information about unregistered services. + operationId: getServices + parameters: + - description: The identity of the registered service + explode: true + in: query + name: service_id + required: false + schema: + type: string + style: form responses: "200": content: application/json: + examples: + service_status_list: + $ref: '#/components/examples/service_status_list' schema: - type: string - description: OK - Configuration + $ref: '#/components/schemas/service_status_list' + description: OK "404": - $ref: '#/components/responses/NotFound' - description: Not Found - Configuration is not found or readable - description: Returns the contents of the application configuration file + content: + application/problem+json: + example: [] + description: Not Found + summary: Get Services (getServices) tags: - - Configuration + - Service Registry and Supervision put: - operationId: putConfiguration + callbacks: + RICStatus: + '{$request.body#/callback_url}': + post: + description: "Callouts to indicate Near-RT RIC status changes relevant\ + \ for Services. \nThe URL invoked by this callback is provided at\ + \ Service registration.\n" + operationId: serviceCallback + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/service_callback_info_v2' + required: true + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/void' + description: OK + "404": + content: + application/problem+json: + example: [] + description: Not Found + summary: Callback for Near-RT RIC status (serviceCallback) + tags: + - Service Registry and Supervision + - Service Callbacks + x-callback-request: true + description: | + Register a single service, or update a previous registtration. Service registration is required to get callbacks about available NearRT RICs and to enable supervision of the service's active status. If a registered service becomes inactive, its policies can be automatically deleted. A1 Policy instances can also be created for unregistered services. If an unregistered service is later registered, the service's policies are retained when the service becomes registered. This feature is optional to use. + operationId: putService requestBody: content: application/json: schema: - type: object + $ref: '#/components/schemas/service_registration_info' required: true responses: "200": content: '*/*': schema: - $ref: '#/components/schemas/void' - description: OK - Configuration updated + type: object + description: OK - Service updated + "201": + content: + '*/*': + schema: + type: object + description: Created - Service created "400": - $ref: '#/components/responses/BadRequest' - description: Replace the current configuration with the given configuration + content: + application/problem+json: + example: + status: 400 + title: Bad Request + detail: The provided request is not valid. + schema: + $ref: '#/components/schemas/error_information' + description: Bad Request + summary: Register or update a Service (putService) tags: - - Configuration - /actuator: + - Service Registry and Supervision + /a1-policy/v2/policy-types/{policytype_id}: get: - x-internal: true - operationId: links + description: Get an A1 Policy Type definition using its policy type ID + operationId: getPolicyTypeDefinition + parameters: + - explode: false + in: path + name: policytype_id + required: true + schema: + type: string + style: simple responses: "200": content: - application/vnd.spring-boot.actuator.v3+json: - schema: - additionalProperties: - additionalProperties: - $ref: '#/components/schemas/Link' - type: object - type: object application/json: + examples: + policy_type_definition: + $ref: '#/components/examples/policy_type_definition' 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 - description: OK - summary: Actuator root web endpoint + $ref: '#/components/schemas/policy_type_definition' + description: OK - schema of the requested A1 Policy Type + "404": + content: + application/problem+json: + example: [] + description: Not Found + summary: Get an A1 Policy Type definition (getPolicyTypeDefinition) tags: - - Actuator - /actuator/loggers/{name}: + - A1 Policy Management + /a1-policy/v2/policies: get: - x-internal: true - operationId: loggers-name + description: | + Retrieve a list of A1 Policy Instance IDs for policies that match given search criteria. If multiple query parameters are given, the policies matching all conditions are returned. + operationId: getPolicyIds parameters: - - explode: false - in: path - name: name - required: true - schema: - type: string - style: simple + - description: Select policies of a given A1 Policy Type ID. + explode: true + in: query + name: policytype_id + required: false + schema: + type: string + style: form + - description: Select policies of a given Near-RT RIC identity. + explode: true + in: query + name: ric_id + required: false + schema: + type: string + style: form + - description: Select policies owned by a given service. (Both registered and + unregistered services) + explode: true + in: query + name: service_id + required: false + schema: + type: string + style: form + - description: | + Select policies of types with the given A1 Policy Type name (type names have the format 'typename_version') + explode: true + in: query + name: type_name + required: false + schema: + type: string + style: form responses: "200": content: - application/vnd.spring-boot.actuator.v3+json: - schema: - type: object application/json: + examples: + policy_id_list: + $ref: '#/components/examples/policy_id_list' schema: - type: object - application/vnd.spring-boot.actuator.v2+json: - schema: - type: object - description: OK - summary: Actuator web endpoint 'loggers-name' + $ref: '#/components/schemas/policy_id_list' + description: OK - Policy identities + "404": + content: + application/problem+json: + example: [] + description: Not Found + summary: Query A1 Policy Instances (getPolicyIds) tags: - - Actuator - post: - x-internal: true - operationId: loggers-name_2 - parameters: - - explode: false - in: path - name: name - required: true - schema: - type: string - style: simple + - A1 Policy Management + put: + description: Create or Update an A1 Policy Instance + operationId: putPolicy requestBody: content: application/json: schema: - enum: - - TRACE - - DEBUG - - INFO - - WARN - - ERROR - - FATAL - - "OFF" - type: string + $ref: '#/components/schemas/policy_info' + required: true responses: "200": content: - '*/*': + application/json: schema: - type: object - description: OK - summary: Actuator web endpoint 'loggers-name' - tags: - - Actuator - /a1-policy/v2/services/{service_id}/keepalive: - put: - description: A registered service should invoke this operation regularly to - indicate that it is still alive. If a registered service fails to invoke this - operation before the end of a timeout period the service will be deregistered - and all its A1 policies wil be removed. (This timeout can be set or disabled - when each service is initially registered) - operationId: keepAliveService - parameters: - - explode: false - in: path - name: service_id - required: true - schema: - type: string - style: simple - responses: - "200": + $ref: '#/components/schemas/void' + description: OK - Policy updated + "201": content: - '*/*': + application/json: schema: - type: object - description: "OK - Service supervision timer refreshed, OK" - "404": - $ref: '#/components/responses/NotFound' - summary: Heartbeat indicates that the service is running + $ref: '#/components/schemas/void' + description: Created - Policy created + "423": + content: + application/problem+json: + example: + status: 423 + title: Locked + detail: Requested resource is in a locked state. + schema: + $ref: '#/components/schemas/error_information' + description: Locked - HTTP Status code which can be used when the state + is Locked + summary: Create or Update an A1 Policy Instance (putPolicy) tags: - - Service Registry and Supervision - /actuator/metrics: + - A1 Policy Management + /a1-policy/v2/policy-instances: get: - x-internal: true - operationId: metrics + description: | + Returns a collection of A1 Policy Instance information for policies that match given search criteria. If several query parameters are defined, the policies matching all conditions are returned. + operationId: getPolicyInstances + parameters: + - description: Select policies with a given A1 Policy Type ID. + explode: true + in: query + name: policytype_id + required: false + schema: + type: string + style: form + - description: Select policies for a given Near-RT RIC identity. + explode: true + in: query + name: ric_id + required: false + schema: + type: string + style: form + - description: Select policies owned by a given service (registered or unregistered). + explode: true + in: query + name: service_id + required: false + schema: + type: string + style: form + - description: Select policies of a given A1 Policy Type name (type identity + has the format 'typename_version'). + explode: true + in: query + name: type_name + required: false + schema: + type: string + style: form responses: "200": content: - application/vnd.spring-boot.actuator.v3+json: + application/json: + examples: + policy_info_list: + $ref: '#/components/examples/policy_info_list' schema: - type: object + $ref: '#/components/schemas/policy_info_list' + description: OK - Returns A1 Policy Instances which match the criteria + "404": + content: application/json: schema: - type: object - application/vnd.spring-boot.actuator.v2+json: + $ref: '#/components/schemas/error_information' + description: "Not Found - Near-RT RIC, A1 Policy Type or service was not\ + \ found" + summary: Query for A1 Policy instances (getPolicyInstances) + tags: + - A1 Policy Management + /a1-policy/v2/services/{service_id}: + delete: + description: | + Unregister a registered Service using its service ID. Only registered services can be unregistered. All A1 Policy Instances for the previously registered service will be removed. + operationId: deleteService + parameters: + - explode: false + in: path + name: service_id + required: true + schema: + type: string + style: simple + responses: + "204": + content: + '*/*': schema: type: object - description: OK - summary: Actuator web endpoint 'metrics' + description: No Content - Service unregistered + "404": + content: + application/problem+json: + example: [] + description: Not Found + summary: Unregister a Service (deleteService) tags: - - Actuator - /a1-policy/v2/rics: + - Service Registry and Supervision + /a1-policy/v2/policies/{policy_id}/status: get: - description: The call returns all Near-RT RICs that supports a given policy - type identity - operationId: getRics + description: Retrieve the status information for an A1 Policy Instance. + operationId: getPolicyStatus parameters: - - description: "The identity of a policy type. If given, all Near-RT RICs supporting\ - \ the policy type are returned" - explode: true - in: query - name: policytype_id - required: false - schema: - type: string - style: form + - explode: false + in: path + name: policy_id + required: true + schema: + type: string + style: simple responses: "200": content: application/json: - schema: - $ref: '#/components/schemas/ric_info_list' examples: - ric_info_list: - $ref: '#/components/examples/ric_info_list' - description: OK + policy_status_info: + $ref: '#/components/examples/policy_status_info' + schema: + $ref: '#/components/schemas/policy_status_info' + description: OK - Policy status "404": - $ref: '#/components/responses/NotFound' - summary: Query Near-RT RIC information + content: + application/problem+json: + example: [] + description: Not Found + summary: Get an A1 Policy Instance's status (getPolicyStatus) tags: - - NearRT-RIC Repository - /a1-policy/v2/services: + - A1 Policy Management + /a1-policy/v2/configuration: get: - description: Either information about a registered service with given identity - or all registered services are returned. - operationId: getServices - parameters: - - description: The identity of the service - explode: true - in: query - name: service_id - required: false - schema: - type: string - style: form + description: Returns the entire contents of the Application Configuration. + operationId: getConfiguration responses: "200": content: application/json: schema: - $ref: '#/components/schemas/service_status_list' - examples: - service_status_list: - $ref: '#/components/examples/service_status_list' - description: OK + type: string + description: OK - Configuration "404": - $ref: '#/components/responses/NotFound' - summary: Returns service information + content: + application/problem+json: + example: [] + description: Not Found + summary: Get the Application Configuration (getConfiguration) tags: - - Service Registry and Supervision + - Configuration put: - description: "Registering a service is needed to:
  • Get callbacks about\ - \ available NearRT RICs.
  • Activate supervision of the service. If a\ - \ service is inactive, its policies will automatically be deleted.
Policies\ - \ can be created even if the service is not registerred. This is a feature\ - \ which it is optional to use." - operationId: putService + description: | + Replace the current Application Configuration with a new configuration. The new configuration, if accepted, will take effect after a short delay. The new configuration must comply with the Application Configuration schema, which can be found from the the Application Documentation (Developer Guide) + operationId: putConfiguration requestBody: content: application/json: schema: - $ref: '#/components/schemas/service_registration_info' + type: object required: true responses: "200": content: '*/*': schema: - type: object - description: OK - Service updated - "201": + $ref: '#/components/schemas/void' + description: OK - Configuration updated + "400": content: - '*/*': + application/problem+json: + example: + status: 400 + title: Bad Request + detail: The provided request is not valid. schema: - type: object - description: Created - Service created - "400": - $ref: '#/components/responses/BadRequest' - summary: Register a service + $ref: '#/components/schemas/error_information' + description: Bad Request + summary: Set/Replace the Application Configuration (putConfiguration) 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": - 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: + - Configuration + /example-authz-check: + post: + description: | + A template endpoint for callout requests to an external authorization function. The authorization function, if enabled, decides if individual operations are permitted. + operationId: performAccessControl + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy_authorization' + required: true + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/authorization_result' + description: OK + "403": + content: + application/problem+json: + example: + status: 403 + title: Forbidden + detail: Your role does not allow to perform this action. Contact System + Administrator to change your access rights. + schema: + $ref: '#/components/schemas/error_information' + description: Forbidden + summary: Callout request for access authorization (performAccessControl) + tags: + - Authorization API + /actuator: get: - x-internal: true - operationId: info + description: | + A1-PMS Springboot Service Actuator web endpoint. Returns a set of links to available/enabled actuator endpoints. + externalDocs: + description: Spring Boot Actuator Web API Documentation + url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html + operationId: actuatorLinks responses: "200": 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 description: OK - summary: Actuator web endpoint 'info' + summary: Actuator endpoint - Root (actuatorLinks) tags: - - Actuator - /status: + - Actuator API + x-internal: true + /actuator/heapdump: get: - operationId: getStatusV1 + description: | + A1-PMS Springboot Service Actuator web endpoint - HeapDump. + externalDocs: + description: Spring Boot Actuator Web API Documentation + url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html + operationId: actuatorHeapdump responses: "200": content: - '*/*': + application/octet-stream: schema: - type: string - description: OK - Service is living - description: Returns status and statistics of this service + type: object + description: OK + summary: Actuator endpoint - Heapdump (actuatorHeapdump) tags: - - Health Check - /a1-policy/v2/policy-types/{policytype_id}: + - Actuator API + x-internal: true + /actuator/info: get: - operationId: getPolicyTypeDefinition - parameters: - - explode: false - in: path - name: policytype_id - required: true - schema: - type: string - style: simple + description: | + A1-PMS Springboot Service Actuator web endpoint - Info. + externalDocs: + description: Spring Boot Actuator Web API Documentation + url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html + operationId: actuatorInfo responses: "200": content: + application/vnd.spring-boot.actuator.v3+json: + schema: + type: object application/json: schema: - $ref: '#/components/schemas/policy_type_definition' - examples: - policy_type_definition: - $ref: '#/components/examples/policy_type_definition' - description: OK - schema of the given policy type - "404": - $ref: '#/components/responses/NotFound' - description: Returns a policy type definition - tags: - - A1 Policy Management - /actuator/logfile: - get: - x-internal: true - operationId: logfile + type: object + application/vnd.spring-boot.actuator.v2+json: + schema: + type: object + description: OK + summary: Actuator endpoint - Info (actuatorInfo) + tags: + - Actuator API + x-internal: true + /actuator/threaddump: + get: + description: | + A1-PMS Springboot Service Actuator web endpoint - ThreadDump. + externalDocs: + description: Spring Boot Actuator Web API Documentation + url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html + operationId: actuatorThreaddump responses: "200": 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 description: OK - summary: Actuator web endpoint 'logfile' + summary: Actuator endpoint - Threaddump (actuatorThreaddump) tags: - - Actuator - /actuator/health: - get: + - Actuator API x-internal: true - operationId: health + /actuator/loggers: + get: + description: | + A1-PMS Springboot Service Actuator web endpoint - Get a list of Loggers. + externalDocs: + description: Spring Boot Actuator Web API Documentation + url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html + operationId: actuatorLoggers responses: "200": content: @@ -811,257 +890,322 @@ paths: schema: type: object description: OK - summary: Actuator web endpoint 'health' + summary: Actuator endpoint - Get Loggers (actuatorLoggers) tags: - - Actuator - /a1-policy/v2/policies: + - Actuator API + x-internal: true + /actuator/loggers/{name}: get: - description: "Returns a list of A1 policies matching given search criteria.\ - \
If several query parameters are defined, the policies matching all conditions\ - \ are returned." - operationId: getPolicyIds + description: | + A1-PMS Springboot Service Actuator web endpoint - Get a single named Logger. + externalDocs: + description: Spring Boot Actuator Web API Documentation + url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html + operationId: actuatorGetLogger parameters: - - description: Select policies of a given policy type identity. - explode: true - in: query - name: policytype_id - required: false - schema: - type: string - style: form - - description: Select policies of a given Near-RT RIC identity. - explode: true - in: query - name: ric_id - required: false - schema: - type: string - style: form - - description: Select policies owned by a given service. - explode: true - in: query - name: service_id - required: false - schema: - type: string - style: form - - description: Select policies of types with the given type name (type identity - has the format ) - explode: true - in: query - name: type_name - required: false - schema: - type: string - style: form + - explode: false + in: path + name: name + required: true + schema: + type: string + style: simple responses: "200": content: + application/vnd.spring-boot.actuator.v3+json: + schema: + type: object application/json: - examples: - policy_id_list: - $ref: '#/components/examples/policy_id_list' schema: - $ref: '#/components/schemas/policy_id_list' - description: OK - Policy identities - "404": - $ref: '#/components/responses/NotFound' - summary: Query policy identities + type: object + application/vnd.spring-boot.actuator.v2+json: + schema: + type: object + description: OK + summary: Actuator endpoint - Get Logger (actuatorGetLogger) tags: - - A1 Policy Management - put: - operationId: putPolicy + - Actuator API + x-internal: true + post: + description: | + A1-PMS Springboot Service Actuator web endpoint - Create or Update single named Logger. + externalDocs: + description: Spring Boot Actuator Web API Documentation + url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html + operationId: actuatorSetlogger + parameters: + - explode: false + in: path + name: name + required: true + schema: + type: string + style: simple requestBody: content: application/json: schema: - $ref: '#/components/schemas/policy_info' - required: true + enum: + - TRACE + - DEBUG + - INFO + - WARN + - ERROR + - FATAL + - "OFF" + type: string responses: "200": content: + '*/*': + schema: + type: object + description: OK + summary: Actuator endpoint - Set Logger (actuatorSetlogger) + tags: + - Actuator API + x-internal: true + /actuator/logfile: + get: + description: | + A1-PMS Springboot Service Actuator web endpoint - Get the Log file. + externalDocs: + description: Spring Boot Actuator Web API Documentation + url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html + operationId: actuatorGetLogFile + responses: + "200": + content: + text/plain;charset=UTF-8: + schema: + type: object + description: OK + summary: Actuator endpoint - Log File (actuatorGetLogFile) + tags: + - Actuator API + x-internal: true + /actuator/health: + get: + description: | + A1-PMS Springboot Service Actuator web endpoint - Health Check. + externalDocs: + description: Spring Boot Actuator Web API Documentation + url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html + operationId: actuatorHealth + responses: + "200": + content: + application/vnd.spring-boot.actuator.v3+json: + schema: + type: object application/json: schema: - $ref: '#/components/schemas/void' - description: OK - Policy updated - "201": + type: object + application/vnd.spring-boot.actuator.v2+json: + schema: + type: object + description: OK + summary: Actuator endpoint - Health (actuatorHealth) + tags: + - Actuator API + x-internal: true + /actuator/health/**: + get: + description: | + A1-PMS Springboot Service Actuator web endpoint - Health Status for an Application Component. + externalDocs: + description: Spring Boot Actuator Web API Documentation + url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html + operationId: actuatorHealthComponent + responses: + "200": content: + application/vnd.spring-boot.actuator.v3+json: + schema: + type: object application/json: schema: - $ref: '#/components/schemas/void' - description: Created - Policy created - "423": - $ref: '#/components/responses/Locked' - description: Create or update a policy + type: object + application/vnd.spring-boot.actuator.v2+json: + schema: + type: object + description: OK + summary: Actuator endpoint - Component Health (actuatorHealthComponent) tags: - - A1 Policy Management - /a1-policy/v2/services/{service_id}: - delete: - operationId: deleteService - parameters: - - explode: false - in: path - name: service_id - required: true - schema: - type: string - style: simple + - Actuator API + x-internal: true + /actuator/shutdown: + post: + description: | + A1-PMS Springboot Service Actuator web endpoint - Shutdown the Application. + externalDocs: + description: Spring Boot Actuator Web API Documentation + url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html + operationId: actuatorShutdown responses: - "204": + "200": content: - '*/*': + application/vnd.spring-boot.actuator.v3+json: schema: type: object - description: No Content - Service unregistered - "404": - $ref: '#/components/responses/NotFound' - description: Unregister a service + application/json: + schema: + type: object + application/vnd.spring-boot.actuator.v2+json: + schema: + type: object + description: OK + summary: Actuator endpoint - Shutdown (actuatorShutdown) tags: - - Service Registry and Supervision - /actuator/heapdump: - get: + - Actuator API x-internal: true - operationId: heapdump + /actuator/metrics: + get: + description: | + A1-PMS Springboot Service Actuator web endpoint - Get a list of Application metrics names. + externalDocs: + description: Spring Boot Actuator Web API Documentation + url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html + operationId: actuatorMetrics responses: "200": content: - application/octet-stream: + 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 description: OK - summary: Actuator web endpoint 'heapdump' + summary: Actuator endpoint - Metrics (actuatorMetrics) tags: - - Actuator - /a1-policy/v2/policies/{policy_id}/status: + - Actuator API + x-internal: true + /actuator/metrics/{requiredMetricName}: get: - operationId: getPolicyStatus + description: | + A1-PMS Springboot Service Actuator web endpoint - Get the value for a named Application metric. + externalDocs: + description: Spring Boot Actuator Web API Documentation + url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html + operationId: actuatorGetMetric parameters: - - explode: false - in: path - name: policy_id - required: true - schema: - type: string - style: simple + - explode: false + in: path + name: requiredMetricName + required: true + schema: + type: string + style: simple responses: "200": content: + application/vnd.spring-boot.actuator.v3+json: + schema: + type: object application/json: schema: - $ref: '#/components/schemas/policy_status_info' - examples: - policy_status_info: - $ref: '#/components/examples/policy_status_info' - description: OK - Policy status - "404": - $ref: '#/components/responses/NotFound' - description: Returns a policy status - tags: - - A1 Policy Management + type: object + application/vnd.spring-boot.actuator.v2+json: + schema: + type: object + description: OK + summary: Actuator endpoint - Get Metric (actuatorGetMetric) + x-internal: true 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 - 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 + status_info: 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 + status: status + ric_info: value: - policy_schema: "{}" + 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 policy_type_id_list: - description: Array of policy type id's + description: Array of A1 Policy Type id's value: policy_type_id_list: - - policytype_id - - policytype_id + - policytype_id + - policytype_id policy_info: - description: Policy information of one A1-P policy + description: Information for an A1 Policy Instance value: - ric_id: ric_id - policy_id: policy_id + ric_id: ric_id1 + policy_id: policy_id1 transient: false - service_id: service_id + service_id: service_id1 policy_data: "{}" status_notification_uri: status_notification_uri - policytype_id: policytype_id - policy_info_list: - description: List of policy information + policytype_id: policytype_id1 + ric_info_list: 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 + 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 + 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 A1 Policy Type + value: + policy_schema: "{}" policy_id_list: description: A list of policy identities value: policy_ids: - - some_policy_id - - some_policy_id + - some_policy_id + - some_policy_id + policy_info_list: + description: List of policy information + value: + policies: + - ric_id: ric_id1 + policy_id: policy_id1 + transient: false + service_id: service_id1 + policy_data: "{}" + status_notification_uri: status_notification_uri + policytype_id: policytype_id1 + - ric_id: ric_id2 + policy_id: policy_id2 + transient: true + service_id: service_id2 + policy_data: "{}" + status_notification_uri: status_notification_uri + policytype_id: policytype_id2 policy_status_info: description: Status for one A1-P Policy value: @@ -1069,89 +1213,63 @@ components: status: value: status: status + responses: + NotFound: + content: + application/problem+json: + example: [] + description: Not Found + Locked: + content: + application/problem+json: + example: + status: 423 + title: Locked + detail: Requested resource is in a locked state. + schema: + $ref: '#/components/schemas/error_information' + description: Locked - HTTP Status code which can be used when the state is Locked + BadRequest: + content: + application/problem+json: + example: + status: 400 + title: Bad Request + detail: The provided request is not valid. + schema: + $ref: '#/components/schemas/error_information' + description: Bad Request + Forbidden: + content: + application/problem+json: + example: + status: 403 + title: Forbidden + detail: Your role does not allow to perform this action. Contact System + Administrator to change your access rights. + schema: + $ref: '#/components/schemas/error_information' + description: Forbidden + schemas: 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 - - schemas: - policy_type_definition: - description: Contains policy type schema definition - 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 - error_information: - description: Problem as defined in https://tools.ietf.org/html/rfc7807 - properties: - detail: - description: ' A human-readable explanation specific to this occurrence - of the problem.' - example: Policy type not found - type: string - title: - description: 'A specific error name' - type: string - example: Not Found - status: - description: 'The HTTP status code generated by the origin server for this - occurrence of the problem. ' - example: 404 - format: int32 - type: integer - type: object - void: - description: Void/empty - type: object - status_info: + example: + status: status properties: status: description: status text type: string type: object - authorization_result: - description: Result of authorization - example: - result: true - properties: - result: - description: "If true, the access is granted" - type: boolean - required: - - result - type: object ric_info: description: Information for a Near-RT RIC + example: + ric_id: ric_id + managed_element_ids: + - managed_element_ids + - managed_element_ids + state: UNAVAILABLE + policytype_ids: + - policytype_ids + - policytype_ids properties: ric_id: description: identity of the Near-RT RIC @@ -1165,60 +1283,153 @@ components: state: description: Represents the states for a Near-RT RIC enum: - - UNAVAILABLE - - AVAILABLE - - SYNCHRONIZING - - CONSISTENCY_CHECK + - UNAVAILABLE + - AVAILABLE + - SYNCHRONIZING + - CONSISTENCY_CHECK type: string policytype_ids: - description: supported policy types + description: supported A1 Policy Types items: - description: supported policy types + description: supported A1 Policy Types type: string type: array type: object - service_registration_info: - description: Information for one service + policy_type_id_list: + description: Information about A1 Policy Types + example: + policytype_ids: + - policytype_ids + - policytype_ids properties: - callback_url: - description: callback for notifying of Near-RT RIC state changes + policytype_ids: + description: A1 Policy Type identities + items: + description: A1 Policy Type identities + type: string + type: array + type: object + policy_info: + description: Information for one A1-P Policy + example: + ric_id: ric_id + policy_id: policy_id + transient: false + service_id: "" + policy_data: "{}" + status_notification_uri: status_notification_uri + policytype_id: policytype_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 automatically deleted if the targeted Near-RT RIC restarts or recovers. If false, the A1 Policy Instance remains, and is re-pushed to the targeted Near-RT RIC after a restart or recovery. If false, the A1 Policy Instance is maintained and must be deleted separately in the event of Near-RT RIC restart or recovery. Default is false. + example: false + nullable: false + type: boolean service_id: - description: identity of the service + default: "" + 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. If the service is registered, the A1 Policy Instance will be subject to the same supervision rules as the the service's other policies. + 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 A1 Policy Type type: string - keep_alive_interval_seconds: - description: "keep alive interval for the service. This is used to enable\ - \ optional heartbeat supervision of the service. If set (> 0) the registered\ - \ service should regularly invoke a 'keepalive' REST call. When a service\ - \ fails to invoke this 'keepalive' call within the configured time, the\ - \ service is considered unavailable. An unavailable service will be automatically\ - \ deregistered and its policies will be deleted. Value 0 means timeout\ - \ supervision is disabled." - format: int64 - type: integer required: - - service_id + - policy_data + - policy_id + - policytype_id + - ric_id type: object - policy_info_list: - description: List of policy information + void: + description: Void/empty + type: object + error_information: + description: Problem as defined in https://tools.ietf.org/html/rfc7807 + example: + detail: A1 Policy Type not found + title: Not Found + status: 404 properties: - policies: - description: List of policy information + detail: + description: ' A human-readable explanation specific to this occurrence + of the problem.' + example: A1 Policy Type not found + type: string + title: + description: A specific error name + example: Not Found + type: string + status: + description: 'The HTTP status code generated by the origin server for this + occurrence of the problem. ' + example: 404 + format: int32 + type: integer + type: object + ric_info_list: + description: List of Near-RT RIC information + example: + 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 + properties: + rics: + description: List of Near-RT RIC information items: - $ref: '#/components/schemas/policy_info' + $ref: '#/components/schemas/ric_info' type: array type: object - policy_status_info: - description: Status for one A1-P Policy + service_status_list: + example: + 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 properties: - last_modified: - description: "timestamp, last modification time" - type: string - status: - description: the Policy status - type: object + service_list: + description: List of service information + items: + $ref: '#/components/schemas/service_status' + type: array type: object service_status: + example: + callback_url: callback_url + service_id: service_id + keep_alive_interval_seconds: 0 + time_since_last_activity_seconds: 6 properties: callback_url: description: callback for notifying of RIC synchronization @@ -1235,98 +1446,56 @@ components: format: int64 type: integer type: object - ric_info_list: - description: List of Near-RT RIC information - properties: - rics: - description: List of Near-RT RIC information - items: - $ref: '#/components/schemas/ric_info' - type: array - type: object - input: - description: input + service_registration_info: + description: Information for one service properties: - access_type: - description: Access type - enum: - - READ - - WRITE - - DELETE - type: string - auth_token: - description: Authorization token + callback_url: + description: Callback for notifying of Near-RT RIC state changes type: string - policy_type_id: - description: Policy type identifier + service_id: + description: identity of the service type: string + keep_alive_interval_seconds: + description: | + Keep alive interval for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled. + format: int64 + type: integer required: - - access_type - - auth_token - - policy_type_id - type: object - policy_authorization: - description: Authorization request for A1 policy requests - properties: - input: - $ref: '#/components/schemas/input' - required: - - input - type: object - policy_type_id_list: - description: Information about policy types - properties: - policytype_ids: - description: Policy type identities - items: - description: Policy type identities - type: string - type: array + - service_id type: object - policy_info: - description: Information for one A1-P Policy + service_callback_info_v2: + description: "Information transferred in Service callbacks, \nif a callback\ + \ URL was provided for a registered service\n" 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." - example: false - nullable: false - type: boolean - 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 - default: "" - policy_data: - description: the configuration of the policy - type: object - status_notification_uri: - description: Callback URI for policy status updates + description: identity of a Near-RT RIC type: string - policytype_id: - description: identity of the policy type + event_type: + description: "values: \n AVAILABLE: the Near-RT RIC has become available\ + \ for A1 Policy management\n" + enum: + - AVAILABLE type: string required: - - ric_id - - policy_id - - policy_data - - policytype_id + - event_type + - ric_id + type: object + policy_type_definition: + description: Contains A1 Policy Type schema definition + example: + policy_schema: "{}" + properties: + policy_schema: + description: A1 Policy Type json schema. The schema is a json object following + http://json-schema.org/draft-07/schema + type: object type: object policy_id_list: description: A list of policy identities example: policy_ids: - - policy_ids - - policy_ids + - policy_ids + - policy_ids properties: policy_ids: description: Policy identities @@ -1335,29 +1504,83 @@ components: type: string type: array type: object - service_status_list: + policy_info_list: + description: List of policy information + example: + policies: + - ric_id: ric_id + policy_id: policy_id + transient: false + 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: "" + policy_data: "{}" + status_notification_uri: status_notification_uri + policytype_id: policytype_id properties: - service_list: - description: List of service information + policies: + description: List of policy information items: - $ref: '#/components/schemas/service_status' + $ref: '#/components/schemas/policy_info' type: array type: object - service_callback_info_v2: - description: Information transferred as in Service callbacks (callback_url) + policy_status_info: + description: Status for one A1-P Policy + example: + last_modified: last_modified + status: "{}" properties: - ric_id: - description: identity of a Near-RT RIC + last_modified: + description: "timestamp, last modification time" type: string - event_type: - description: "values:\nAVAILABLE: the Near-RT RIC has become available\ - \ for A1 Policy management" + status: + description: the Policy status + type: object + type: object + policy_authorization: + description: Authorization request for A1 policy requests + properties: + input: + $ref: '#/components/schemas/input' + required: + - input + type: object + input: + description: input + properties: + access_type: + description: Access type enum: - - AVAILABLE + - READ + - WRITE + - DELETE type: string + auth_token: + description: Authorization token + type: string + policy_type_id: + description: A1 Policy Type identifier + type: string + required: + - access_type + - auth_token + - policy_type_id + type: object + authorization_result: + description: Result of authorization + example: + result: true + properties: + result: + description: "If true, the access is granted" + type: boolean required: - - event_type - - ric_id + - result type: object Link: properties: @@ -1365,4 +1588,4 @@ components: type: boolean href: type: string - type: object \ No newline at end of file + type: object diff --git a/inject-info.py b/inject-info.py new file mode 100644 index 0000000..6d7428a --- /dev/null +++ b/inject-info.py @@ -0,0 +1,54 @@ +# +# ============LICENSE_START======================================================= +# Copyright (C) 2025 OpenInfra Foundation Europe. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# 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========================================================= +# + +import sys +import yaml +import re +from pathlib import Path + +if len(sys.argv) != 4: + print("Usage: inject-info.py ") + sys.exit(1) + +input_file = Path(sys.argv[1]) +output_file = Path(sys.argv[2]) +info_file = Path(sys.argv[3]) + +# Load info section normally +with open(info_file, "r") as f: + info_yaml = yaml.safe_load(f) + info_str = yaml.dump({"info": info_yaml}) + +# Read original YAML as text +with open(input_file, "r") as f: + original_text = f.read() + +# Replace the existing `info:` block using regex (simple, not perfect YAML parser) +new_text = re.sub( + r"(?ms)^info:\s+.*?(?=^\S|\Z)", # same pattern + lambda match: info_str, # safe way to inject text with backslashes + original_text, +) + + +# Write output +output_file.parent.mkdir(parents=True, exist_ok=True) +with open(output_file, "w") as f: + f.write(new_text) diff --git a/oas-info.yaml b/oas-info.yaml new file mode 100644 index 0000000..f8ff827 --- /dev/null +++ b/oas-info.yaml @@ -0,0 +1,36 @@ +title: OSC - A1 Policy Management API +version: 1.0.0 +x-api-id: e9776a07-0813-4fca-9801-6f892f0a7c13 +x-audience: external-public +description: "

General

The ORAN SC A1 Policy Management Service \ + \ provides a REST API for managing A1 policies.
This document describes the latest API set + \ to perform tasks for:

  • A1 Policy creation, modification and deletion.
  • Monitoring\ + \ and maintaining consistency of the SMO view of A1 Policies and the Near-RT RICs
  • Maintaining\ + \ a view of each Near-RT RIC's supported A1 Policy Types
  • Supervision of registered services\ + \ (rApps). When a registered service is unavailable, its policies are removed.

APIs\ + \ provided or defined by the service

\ + \

Note: parts of this API are strongly based on extracts of the O-RAN Alliance R1 Interface specification\ + \ for A1 Policy Management, and those parts should be considered '© O-RAN ALLIANCE - All rights reserved.'

\ + \

A1 Policy Management

\ + \

This is the latest API for managing A1 Policies. This API is partially compliant with O-RAN\ + \ Alliance R1 Interface specifications for A1 Policy Management:

  • A1 Policy retrieval, creation,\ + \ modification and deletion.
  • Retrieval of supported A1 Policy Types for\ + \ a Near-RT RIC
  • Retrieval of status for existing A1 policies

Management\ + \ of configuration

API for updating and retrieval of the component configuration.\ + \ Note that there other ways to maintain the configuration.

Service Callbacks

These\ + \ are endpoints that are invoked by this service. The callbacks are registered\ + \ in this service at service registration.

NearRT-RIC Repository (Older version)

\ + \

This is an API that provides support for looking up a NearRT-RIC. Each A1 policy\ + \ is targeted towards one Near-RT RIC.

Health Check

API used for supervision\ + \ of the A1 Policy Management Service.

Service Registry and Supervision

\ + \

API used for registering services/clients/rApps. Each A1 Policy can be tagged with an owner.\ + \ If the owner service is registered, then the service can be optionally monitored by a heart-beat supervision\ + \ mechanism, and if the registered service becomes unavailable, then it is removed and all its A1 Policies are \ + \ deleted. Note that services do not need to be registered to create A1 Policies, but unregistered \ + \ services are not supervised. This is a feature that is optional to use.

" +license: + name: Copyright (C) 2024 - 2025 OpenInfra Foundation Europe. Licensed under the Apache 2 License. + url: http://www.apache.org/licenses/LICENSE-2.0 +contact: + url: https://o-ran-sc.org// + email: discuss@lists.o-ran-sc.org \ No newline at end of file diff --git a/onap/oran b/onap/oran index 6adf110..52c3b2e 160000 --- a/onap/oran +++ b/onap/oran @@ -1 +1 @@ -Subproject commit 6adf1102bf55ac4b4e8f03ee75e09910e10846ab +Subproject commit 52c3b2e3ea9a2787ec01a6a1cb44b6ef163e9d2d diff --git a/pom.xml b/pom.xml index 1179f4a..08ba074 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ * O-RAN-SC * %% * Copyright (C) 2019-2023: Nordix Foundation -* Copyright (C) 2023-2024: OpenInfra Foundation Europe +* Copyright (C) 2023-2025: 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. @@ -27,7 +27,7 @@ org.springframework.boot spring-boot-starter-parent - 3.4.0 + 3.4.4 org.o-ran-sc.nonrtric.plt @@ -48,7 +48,7 @@ 17 - 2.29.15 + 2.30.11 20240303 2.16.1 33.3.0-jre @@ -63,11 +63,11 @@ 1.20.1 1.20.3 2.11.0 - 1.3.2 - 1.14.4 + 3.0.0 + 1.14.5 0.2.6 - 2.0.1.Final - 2.2.15 + 3.1.1 + 2.2.29 3.3.2 2.22.0 2.35.0 @@ -75,20 +75,24 @@ true 0.30.0 ${project.version} - 1.6.0 + 1.6.3 + + 1.41.0 + 2.7.0-alpha false false + 8.0 - javax.validation - validation-api + jakarta.validation + jakarta.validation-api ${validation-api.version} - javax.annotation - javax.annotation-api - ${javax.annotation-api.version} + jakarta.annotation + jakarta.annotation-api + ${jakarta.annotation-api.version} io.swagger.core.v3 @@ -287,20 +291,25 @@ spring-boot-actuator-autoconfigure 3.3.0 + + net.logstash.logback + logstash-logback-encoder + ${version.logback} + io.opentelemetry opentelemetry-bom - 1.41.0 + ${opentelemetry-bom.version} pom import io.opentelemetry.instrumentation opentelemetry-instrumentation-bom-alpha - 2.7.0-alpha + ${opentelemetry-instrumentation-bom-alpha.version} pom import @@ -381,6 +390,62 @@ + + org.codehaus.mojo + exec-maven-plugin + ${exec-maven-plugin.version} + + + git submodule update + initialize + + git + + submodule + update + --init + --recursive + + ${skipgitsubmodule} + + + exec + + + + preprocess-pms-api + generate-sources + + exec + + + python3 + + ${project.basedir}/inject-info.py + ${project.basedir}/api/pms-api.yaml + ${project.basedir}/api/pms-api.yaml + ${project.basedir}/oas-info.yaml + + + + + preprocess-pms-api-v3 + generate-sources + + exec + + + python3 + + ${project.basedir}/inject-info.py + ${project.basedir}/api/pms-api-v3.yaml + ${project.basedir}/api/pms-api-v3.yaml + ${project.basedir}/oas-info.yaml + + + + + org.openapitools openapi-generator-maven-plugin @@ -529,6 +594,7 @@ true false true + true @@ -558,6 +624,7 @@ true false true + true @@ -722,30 +789,6 @@ sonar-maven-plugin ${sonar-maven-plugin.version} - - org.codehaus.mojo - exec-maven-plugin - ${exec-maven-plugin.version} - - - git submodule update - validate - - git - - submodule - update - --init - --recursive - - ${skipgitsubmodule} - - - exec - - - - -- 2.16.6