aboutsummaryrefslogtreecommitdiffstats
path: root/docs/offeredapis/swagger
diff options
context:
space:
mode:
Diffstat (limited to 'docs/offeredapis/swagger')
-rw-r--r--docs/offeredapis/swagger/pms-api-v3.json2134
-rw-r--r--docs/offeredapis/swagger/pms-api-v3.yaml1210
-rw-r--r--docs/offeredapis/swagger/pms-api.json3728
-rw-r--r--docs/offeredapis/swagger/pms-api.yaml2
4 files changed, 5207 insertions, 1867 deletions
diff --git a/docs/offeredapis/swagger/pms-api-v3.json b/docs/offeredapis/swagger/pms-api-v3.json
new file mode 100644
index 00000000..c844073a
--- /dev/null
+++ b/docs/offeredapis/swagger/pms-api-v3.json
@@ -0,0 +1,2134 @@
+{
+ "openapi" : "3.0.3",
+ "info" : {
+ "contact" : {
+ "email" : "discuss-list@onap.com",
+ "url" : "https://www.onap.org/"
+ },
+ "description" : "<h2>General</h2><p>The O-RAN Non-RT RIC Policy Management Service provides a REST API for managemecnt of A1 policies. <br/>The main tasks of the service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining a view of supported Near-RT RIC policy types</li><li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.</li></ul><h2>APIs provided or defined by the service</h2><h3>A1 Policy Management</h3><p>This is an API for management of A1 Policies.</p><ul><li>A1 Policy retrieval, creation, modification and deletion.</li><li>Retrieval of supported A1 Policy types for a Near-RT RIC</li><li>Retrieval of status for existing A1 policies</li></ul><h3>Management of configuration</h3><p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.</p><h3>Service callbacks</h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.</p><h3>NearRT-RIC Repository</h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.</p><h3>Health Check</h3><p>API used for supervision of the PMS component.</p><h3>Service Registry and Supervision</h3><p>API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.</p><h3>Authorization API</h3><p>API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.</p>",
+ "license" : {
+ "name" : "Copyright (C) 2024 OpenInfra Foundation Europe. Licensed under the Apache License.",
+ "url" : "http://www.apache.org/licenses/LICENSE-2.0"
+ },
+ "title" : "A1 policy management API",
+ "version" : "1.0.0",
+ "x-api-id" : "a31c510b-20e6-4a08-af16-368c44d7fba8",
+ "x-audience" : "external-public"
+ },
+ "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"
+ }
+ }
+ } ],
+ "tags" : [ {
+ "description" : "API used to create polices, Policy Instances and get them as individual using an ID or get all policies/Instances.",
+ "name" : "A1 Policy Management"
+ }, {
+ "description" : "API used to get the NearRT-RIC for the managed element.",
+ "name" : "NearRT-RIC Repository"
+ }, {
+ "description" : "API used to keep the service Alive with in the timeout period",
+ "name" : "Service Registry and Supervision"
+ }, {
+ "description" : "API used to get the health status and statistics of this service",
+ "name" : "Health Check"
+ }, {
+ "name" : "Service callbacks"
+ }, {
+ "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" : {
+ "examples" : {
+ "status_info" : {
+ "$ref" : "#/components/examples/StatusInfo"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/components/schemas/StatusInfo"
+ }
+ }
+ },
+ "description" : "OK- Service is living Ok"
+ }
+ },
+ "tags" : [ "Health Check" ]
+ }
+ },
+ "/rics/ric" : {
+ "get" : {
+ "description" : "Either a Near-RT RIC identity or a Managed Element identity can be specified.<br>The intention with Managed Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU).",
+ "operationId" : "getRic",
+ "parameters" : [ {
+ "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.",
+ "explode" : false,
+ "in" : "header",
+ "name" : "Accept",
+ "required" : false,
+ "schema" : {
+ "example" : "application/json",
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "examples" : {
+ "ric_info" : {
+ "$ref" : "#/components/examples/RicInfo"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/components/schemas/RicInfo"
+ }
+ }
+ },
+ "description" : "OK - Near-RT RIC is found OK"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Found"
+ }
+ },
+ "summary" : "Returns info for one Near-RT RIC",
+ "tags" : [ "NearRT-RIC Repository" ]
+ }
+ },
+ "/rics" : {
+ "get" : {
+ "description" : "The call returns all Near-RT RICs that supports a given policy type identity",
+ "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.",
+ "explode" : false,
+ "in" : "header",
+ "name" : "Accept",
+ "required" : false,
+ "schema" : {
+ "example" : "application/json",
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "examples" : {
+ "ric_info_list" : {
+ "$ref" : "#/components/examples/RicInfoList"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/components/schemas/RicInfoList"
+ }
+ }
+ },
+ "description" : "OK"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Found"
+ }
+ },
+ "summary" : "Query Near-RT RIC information",
+ "tags" : [ "NearRT-RIC Repository" ]
+ }
+ },
+ "/policy-types" : {
+ "get" : {
+ "description" : "Query policy type identities",
+ "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 <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 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.",
+ "explode" : false,
+ "in" : "header",
+ "name" : "Accept",
+ "required" : false,
+ "schema" : {
+ "example" : "application/json",
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "items" : {
+ "$ref" : "#/components/schemas/PolicyTypeInformation"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "description" : "OK - Policy Type IDs found 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 Request"
+ },
+ "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"
+ }
+ },
+ "tags" : [ "A1 Policy Management" ]
+ }
+ },
+ "/policy-types/{policyTypeId}" : {
+ "get" : {
+ "description" : "Returns a policy type definition",
+ "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.",
+ "explode" : false,
+ "in" : "header",
+ "name" : "Accept",
+ "required" : false,
+ "schema" : {
+ "example" : "application/json",
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "examples" : {
+ "policyObject" : {
+ "$ref" : "#/components/examples/PolicyObject"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/components/schemas/PolicyObject"
+ }
+ }
+ },
+ "description" : "OK - schema of the given policy type"
+ },
+ "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 Request"
+ },
+ "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"
+ }
+ },
+ "tags" : [ "A1 Policy Management" ]
+ }
+ },
+ "/policies/{policyId}" : {
+ "delete" : {
+ "description" : "Deleting the policy using policyId.",
+ "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.",
+ "explode" : false,
+ "in" : "header",
+ "name" : "Accept",
+ "required" : false,
+ "schema" : {
+ "example" : "application/json",
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "responses" : {
+ "204" : {
+ "description" : "The created A1 policy was deleted"
+ },
+ "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"
+ },
+ "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 Request"
+ },
+ "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 a policy",
+ "tags" : [ "A1 Policy Management" ]
+ },
+ "get" : {
+ "description" : "Returns a policy",
+ "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.",
+ "explode" : false,
+ "in" : "header",
+ "name" : "Accept",
+ "required" : false,
+ "schema" : {
+ "example" : "application/json",
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "examples" : {
+ "policyObject" : {
+ "$ref" : "#/components/examples/PolicyObject"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/components/schemas/PolicyObject"
+ }
+ }
+ },
+ "description" : "OK - Policy 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"
+ },
+ "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 Request"
+ },
+ "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"
+ }
+ },
+ "tags" : [ "A1 Policy Management" ]
+ },
+ "put" : {
+ "description" : "update a policy",
+ "operationId" : "putPolicy",
+ "parameters" : [ {
+ "explode" : false,
+ "in" : "path",
+ "name" : "policyId",
+ "required" : true,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "examples" : {
+ "policyObject" : {
+ "$ref" : "#/components/examples/PolicyObject"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/components/schemas/PolicyObject"
+ }
+ }
+ },
+ "required" : true
+ },
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/PolicyObject"
+ }
+ }
+ },
+ "description" : "OK - Policy updated"
+ },
+ "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"
+ },
+ "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 Request"
+ },
+ "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"
+ }
+ },
+ "tags" : [ "A1 Policy Management" ]
+ }
+ },
+ "/policies" : {
+ "get" : {
+ "description" : "Returns a list of A1 policies matching given search criteria. <br>If several query parameters are defined, the policies matching all conditions are returned.",
+ "operationId" : "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 <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.",
+ "explode" : false,
+ "in" : "header",
+ "name" : "Accept",
+ "required" : false,
+ "schema" : {
+ "example" : "application/json",
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "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 Request"
+ },
+ "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 policy identities",
+ "tags" : [ "A1 Policy Management" ]
+ },
+ "post" : {
+ "description" : "To create A1 policies",
+ "operationId" : "createPolicy",
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/PolicyObjectInformation"
+ }
+ }
+ },
+ "required" : true
+ },
+ "responses" : {
+ "201" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/PolicyObjectInformation"
+ }
+ }
+ },
+ "description" : "Success case 201 created",
+ "headers" : {
+ "Location" : {
+ "description" : "Contains the URI of the newly created resource",
+ "explode" : false,
+ "required" : true,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "simple"
+ }
+ }
+ },
+ "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"
+ },
+ "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 Request"
+ },
+ "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"
+ }
+ },
+ "tags" : [ "A1 Policy Management" ]
+ }
+ },
+ "/configuration" : {
+ "get" : {
+ "description" : "Returns the contents of the application configuration",
+ "operationId" : "getConfiguration",
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "type" : "string"
+ }
+ }
+ },
+ "description" : "OK - Application configuration received"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Found"
+ }
+ },
+ "tags" : [ "Configuration" ]
+ },
+ "put" : {
+ "description" : "Replace the current configuration file 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" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Bad Request"
+ }
+ },
+ "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.",
+ "explode" : false,
+ "in" : "header",
+ "name" : "Accept",
+ "required" : false,
+ "schema" : {
+ "example" : "application/json",
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "type" : "string"
+ }
+ }
+ },
+ "required" : false
+ },
+ "responses" : {
+ "200" : {
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ },
+ "description" : "OK - Service supervision timer refreshed, OK"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Found"
+ }
+ },
+ "summary" : "Heartbeat indicates that the service is running",
+ "tags" : [ "Service Registry and Supervision" ]
+ }
+ },
+ "/services" : {
+ "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.",
+ "explode" : false,
+ "in" : "header",
+ "name" : "Accept",
+ "required" : false,
+ "schema" : {
+ "example" : "application/json",
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "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" : "Returns service information",
+ "tags" : [ "Service Registry and Supervision" ]
+ },
+ "put" : {
+ "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/ServiceCallbackInfo"
+ }
+ }
+ },
+ "required" : true
+ },
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/void"
+ }
+ }
+ },
+ "description" : "OK"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Found"
+ }
+ },
+ "summary" : "Callback for Near-RT RIC status",
+ "tags" : [ "Service callbacks" ]
+ }
+ }
+ }
+ },
+ "description" : "Registering a service is needed to:<ul><li>Get callbacks about available NearRT RICs.</li><li>Activate supervision of the service. If a service is inactive, its policies will automatically be deleted.</li></ul>Policies can be created even if the service is not registerred. This is a feature which it is optional to use.",
+ "operationId" : "putService",
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ServiceRegistrationInfo"
+ }
+ }
+ },
+ "required" : true
+ },
+ "responses" : {
+ "200" : {
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ },
+ "description" : "OK - Service updated"
+ },
+ "201" : {
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ },
+ "description" : "Created - Service created"
+ },
+ "400" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Bad Request"
+ }
+ },
+ "summary" : "Register a service",
+ "tags" : [ "Service Registry and Supervision" ]
+ }
+ },
+ "/services/{serviceId}" : {
+ "delete" : {
+ "description" : "Unregister a service",
+ "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.",
+ "explode" : false,
+ "in" : "header",
+ "name" : "Accept",
+ "required" : false,
+ "schema" : {
+ "example" : "application/json",
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "responses" : {
+ "204" : {
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ },
+ "description" : "No Content - Service unregistered"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Found"
+ }
+ },
+ "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"
+ }
+ },
+ "RicInfo" : {
+ "value" : {
+ "ricId" : "ricId",
+ "managedElementIds" : [ "managedElementId", "managedElementId" ],
+ "state" : "UNAVAILABLE",
+ "policyTypeIds" : [ "policyTypeId", "policyTypeId" ]
+ }
+ },
+ "RicInfoList" : {
+ "value" : {
+ "rics" : [ {
+ "ricId" : "ricId",
+ "managedElementIds" : [ "managedElementId", "managedElementId" ],
+ "state" : "UNAVAILABLE",
+ "policyTypeIds" : [ "policyTypeId", "policyTypeId" ]
+ }, {
+ "ricId" : "ricId",
+ "managedElementIds" : [ "managedElementId", "managedElementId" ],
+ "state" : "UNAVAILABLE",
+ "policyTypeIds" : [ "policyTypeId", "policyTypeId" ]
+ } ]
+ }
+ },
+ "PolicyObject" : {
+ "value" : {
+ "scope" : {
+ "ueId" : {
+ "guRanUeId" : {
+ "globalGnbId" : {
+ "plmnId" : {
+ "mcc" : "123",
+ "mnc" : "45"
+ },
+ "gnbId" : {
+ "gnbIdLength" : 24,
+ "gnbIdValue" : 12345678
+ }
+ },
+ "RanUeId" : "a31c510b20e64a74"
+ }
+ },
+ "groupId" : {
+ "spId" : 123
+ },
+ "qosId" : {
+ "5qI" : 1
+ },
+ "cellId" : {
+ "plmnId" : {
+ "mcc" : "123",
+ "mnc" : "45"
+ },
+ "cId" : {
+ "ncI" : 123
+ }
+ }
+ },
+ "qosObjectives" : {
+ "gfbr" : 100,
+ "mfbr" : 200,
+ "priorityLevel" : 3,
+ "pdb" : 50
+ }
+ }
+ }
+ },
+ "responses" : {
+ "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"
+ },
+ "409" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Conflict"
+ },
+ "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"
+ },
+ "429" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Too Many Request"
+ },
+ "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"
+ },
+ "Locked" : {
+ "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"
+ }
+ },
+ "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",
+ "properties" : {
+ "policyTypeId" : {
+ "description" : "Identity of the policy type",
+ "type" : "string"
+ },
+ "nearRtRicId" : {
+ "$ref" : "#/components/schemas/NearRtRicId"
+ }
+ },
+ "required" : [ "nearRtRicId", "policyTypeId" ],
+ "type" : "object"
+ },
+ "PolicyObjectInformation" : {
+ "description" : "Information related to the creation of the policy",
+ "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" : "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",
+ "type" : "string"
+ },
+ "policyObject" : {
+ "$ref" : "#/components/schemas/PolicyObject"
+ },
+ "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",
+ "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",
+ "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",
+ "properties" : {
+ "ricId" : {
+ "description" : "identity of the Near-RT RIC",
+ "type" : "string"
+ },
+ "managedElementIds" : {
+ "description" : "O1 identities for managed entities",
+ "items" : {
+ "description" : "O1 identities for managed entities",
+ "type" : "string"
+ },
+ "type" : "array"
+ },
+ "state" : {
+ "description" : "Represents the states for a Near-RT RIC",
+ "enum" : [ "UNAVAILABLE", "AVAILABLE", "SYNCHRONIZING", "CONSISTENCY_CHECK" ],
+ "type" : "string"
+ },
+ "policyTypeIds" : {
+ "description" : "supported policy types",
+ "items" : {
+ "description" : "supported policy types",
+ "type" : "string"
+ },
+ "type" : "array"
+ }
+ },
+ "type" : "object"
+ },
+ "ServiceRegistrationInfo" : {
+ "description" : "Information for one service",
+ "properties" : {
+ "callbackUrl" : {
+ "description" : "callback 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"
+ },
+ "PolicyStatusInfo" : {
+ "description" : "Status for one A1-P Policy",
+ "properties" : {
+ "lastModified" : {
+ "description" : "timestamp, last modification time",
+ "type" : "string"
+ },
+ "status" : {
+ "description" : "the Policy status",
+ "type" : "object"
+ }
+ },
+ "type" : "object"
+ },
+ "ServiceStatus" : {
+ "properties" : {
+ "callbackUrl" : {
+ "description" : "callback for notifying of RIC synchronization",
+ "type" : "string"
+ },
+ "serviceId" : {
+ "description" : "identity of the service",
+ "type" : "string"
+ },
+ "keepAliveIntervalSeconds" : {
+ "description" : "policy keep alive timeout",
+ "format" : "int64",
+ "type" : "integer"
+ },
+ "timeSinceLastActivitySeconds" : {
+ "description" : "time since last invocation by the service",
+ "format" : "int64",
+ "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"
+ }
+ },
+ "type" : "object"
+ },
+ "input" : {
+ "description" : "input",
+ "properties" : {
+ "accessType" : {
+ "description" : "Access type",
+ "enum" : [ "READ", "WRITE", "DELETE" ],
+ "type" : "string"
+ },
+ "authToken" : {
+ "description" : "Authorization token",
+ "type" : "string"
+ },
+ "policyTypeId" : {
+ "description" : "Policy type identifier",
+ "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",
+ "properties" : {
+ "policyId" : {
+ "description" : "Identity of the policy",
+ "type" : "string"
+ },
+ "nearRtRicId" : {
+ "$ref" : "#/components/schemas/NearRtRicId"
+ }
+ },
+ "required" : [ "nearRtRicId", "policyId" ],
+ "type" : "object"
+ },
+ "ServiceStatusList" : {
+ "properties" : {
+ "serviceList" : {
+ "description" : "List of service information",
+ "items" : {
+ "$ref" : "#/components/schemas/ServiceStatus"
+ },
+ "type" : "array"
+ }
+ },
+ "type" : "object"
+ },
+ "ServiceCallbackInfo" : {
+ "description" : "Information transferred as in Service callbacks (callback_url)",
+ "properties" : {
+ "ricId" : {
+ "description" : "identity of a Near-RT RIC",
+ "type" : "string"
+ },
+ "eventType" : {
+ "description" : "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management",
+ "enum" : [ "AVAILABLE" ],
+ "type" : "string"
+ }
+ },
+ "required" : [ "eventType", "ricId" ],
+ "type" : "object"
+ },
+ "Link" : {
+ "properties" : {
+ "templated" : {
+ "type" : "boolean"
+ },
+ "href" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "ProblemDetails" : {
+ "description" : "A problem detail to carry details in an HTTP response according to RFC 7807",
+ "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 ",
+ "type" : "string"
+ },
+ "instance" : {
+ "description" : "URI reference that identifies the specific occurrence of the problem",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/docs/offeredapis/swagger/pms-api-v3.yaml b/docs/offeredapis/swagger/pms-api-v3.yaml
new file mode 100644
index 00000000..46f881e5
--- /dev/null
+++ b/docs/offeredapis/swagger/pms-api-v3.yaml
@@ -0,0 +1,1210 @@
+# ============LICENSE_START=======================================================
+# Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+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: "<h2>General</h2><p>The O-RAN Non-RT RIC Policy Management Service\
+ \ provides a REST API for managemecnt of A1 policies. <br/>The main tasks of the\
+ \ service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring\
+ \ and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining\
+ \ a view of supported Near-RT RIC policy types</li><li>Supervision of using services\
+ \ (R-APPs). When a service is unavailable, its policies are removed.</li></ul><h2>APIs\
+ \ provided or defined by the service</h2><h3>A1 Policy Management</h3><p>This\
+ \ is an API for management of A1 Policies.</p><ul><li>A1 Policy retrieval, creation,\
+ \ modification and deletion.</li><li>Retrieval of supported A1 Policy types for\
+ \ a Near-RT RIC</li><li>Retrieval of status for existing A1 policies</li></ul><h3>Management\
+ \ of configuration</h3><p>API for updating and retrieval of the component configuration.\
+ \ Note that there other ways to maintain the configuration.</p><h3>Service callbacks</h3><p>These\
+ \ are endpoints that are invoked by this service. The callbacks are registered\
+ \ in this service at service registration.</p><h3>NearRT-RIC Repository</h3><p>This\
+ \ is an API that provides support for looking up a NearRT-RIC. Each A1 policy\
+ \ is targeted for one Near-RT RIC.</p><h3>Health Check</h3><p>API used for supervision\
+ \ of the PMS component.</p><h3>Service Registry and Supervision</h3><p>API used\
+ \ for registering services that uses PMS. Each A1 policy is optionally owned by\
+ \ a service. PMS can supervise each registered service by a heart-beat supervision\
+ \ and will automatically remove policies for unavailable services. Note that a\
+ \ service does not need to be registered in order to create A1 Policies. This\
+ \ is a feature that is optional to use.</p><h3>Authorization API</h3><p>API used\
+ \ for access control of A1 Policy access. If configured, an external authorization\
+ \ provider is requested to grant access to the A1 Policy type.</p>"
+ license:
+ name: Copyright (C) 2024 OpenInfra Foundation Europe. Licensed under the Apache License.
+ url: http://www.apache.org/licenses/LICENSE-2.0
+ contact:
+ url: https://www.onap.org/
+ email: discuss-list@onap.com
+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'
+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."
+paths:
+ /status:
+ get:
+ operationId: getStatus
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/StatusInfo'
+ examples:
+ status_info:
+ $ref: '#/components/examples/StatusInfo'
+ description: OK- Service is living Ok
+ description: Returns status and statistics of this service
+ tags:
+ - Health Check
+ /rics/ric:
+ get:
+ description: Either a Near-RT RIC identity or a Managed Element identity can
+ be specified.<br>The intention with Managed Element identity is the ID used
+ in O1 for accessing the traffical element (such as the ID of CU).
+ operationId: getRic
+ parameters:
+ - 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
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/RicInfo'
+ examples:
+ ric_info:
+ $ref: '#/components/examples/RicInfo'
+ description: OK - Near-RT RIC is found OK
+ "404":
+ $ref: '#/components/responses/404'
+ summary: Returns info for one Near-RT RIC
+ tags:
+ - NearRT-RIC Repository
+ /rics:
+ get:
+ description: The call returns all Near-RT RICs that supports a given policy
+ type identity
+ 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
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/RicInfoList'
+ examples:
+ ric_info_list:
+ $ref: '#/components/examples/RicInfoList'
+ description: OK
+ "404":
+ $ref: '#/components/responses/404'
+ summary: Query Near-RT RIC information
+ tags:
+ - NearRT-RIC Repository
+ /policy-types:
+ get:
+ 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 <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 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
+ responses:
+ '200':
+ content:
+ application/json:
+ 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
+ tags:
+ - A1 Policy Management
+ /policy-types/{policyTypeId}:
+ get:
+ 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
+ responses:
+ '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':
+ content:
+ application/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
+ tags:
+ - A1 Policy Management
+ delete:
+ description: Deleting the policy using policyId.
+ 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
+ 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
+ tags:
+ - A1 Policy Management
+ get:
+ 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
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/PolicyObject'
+ examples:
+ policyObject:
+ $ref: '#/components/examples/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.\
+ \ <br>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 <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:
+ type: string
+ example: application/json
+ responses:
+ '200':
+ content:
+ application/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'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/PolicyObjectInformation'
+ headers:
+ Location:
+ description: 'Contains the URI of the newly created resource'
+ required: true
+ 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":
+ content:
+ application/json:
+ schema:
+ type: string
+ description: OK - Application configuration received
+ "404":
+ $ref: '#/components/responses/404'
+
+ description: Returns the contents of the application configuration
+ tags:
+ - Configuration
+ put:
+ operationId: putConfiguration
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ required: true
+ responses:
+ "200":
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/void'
+ description: OK - Configuration 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:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: string
+ responses:
+ "200":
+ content:
+ '*/*':
+ schema:
+ type: object
+ description: "OK - Service supervision timer refreshed, OK"
+ "404":
+ $ref: '#/components/responses/404'
+ summary: Heartbeat indicates that the service is running
+ tags:
+ - Service Registry and Supervision
+ /services:
+ 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
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ServiceStatusList'
+ examples:
+ service_status_list:
+ $ref: '#/components/examples/ServiceStatusList'
+ description: OK
+ "404":
+ $ref: '#/components/responses/404'
+ summary: Returns service information
+ tags:
+ - Service Registry and Supervision
+ put:
+ description: "Registering a service is needed to:<ul><li>Get callbacks about\
+ \ available NearRT RICs.</li><li>Activate supervision of the service. If a\
+ \ service is inactive, its policies will automatically be deleted.</li></ul>Policies\
+ \ can be created even if the service is not registerred. This is a feature\
+ \ which it is optional to use."
+ operationId: putService
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ServiceRegistrationInfo'
+ required: true
+ responses:
+ "200":
+ content:
+ '*/*':
+ schema:
+ type: object
+ description: OK - Service updated
+ "201":
+ content:
+ '*/*':
+ schema:
+ type: object
+ description: Created - Service created
+ "400":
+ $ref: '#/components/responses/400'
+ summary: Register a service
+ tags:
+ - Service Registry and Supervision
+ callbacks:
+ RICStatus:
+ "{$request.body#/callback_url}":
+ post:
+ description: The URL to this call is registered at Service registration.
+ operationId: serviceCallback
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ServiceCallbackInfo'
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/void'
+ description: OK
+ "404":
+ $ref: '#/components/responses/404'
+ summary: Callback for Near-RT RIC status
+ tags:
+ - Service callbacks
+ /services/{serviceId}:
+ delete:
+ 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
+ responses:
+ "204":
+ content:
+ '*/*':
+ schema:
+ type: object
+ description: No Content - Service unregistered
+ "404":
+ $ref: '#/components/responses/404'
+ description: Unregister a service
+ 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
+ RicInfo:
+ value:
+ ricId: ricId
+ managedElementIds:
+ - managedElementId
+ - managedElementId
+ state: UNAVAILABLE
+ policyTypeIds:
+ - policyTypeId
+ - policyTypeId
+ RicInfoList:
+ value:
+ rics:
+ - ricId: ricId
+ managedElementIds:
+ - managedElementId
+ - managedElementId
+ state: UNAVAILABLE
+ policyTypeIds:
+ - policyTypeId
+ - policyTypeId
+ - ricId: ricId
+ managedElementIds:
+ - managedElementId
+ - managedElementId
+ state: UNAVAILABLE
+ policyTypeIds:
+ - policyTypeId
+ - policyTypeId
+ PolicyObject:
+ value:
+ scope:
+ ueId:
+ guRanUeId:
+ globalGnbId:
+ plmnId:
+ mcc: "123"
+ mnc: "45"
+ gnbId:
+ gnbIdLength: 24
+ gnbIdValue: 12345678
+ RanUeId: 'a31c510b20e64a74'
+ groupId:
+ spId: 123
+ qosId:
+ 5qI: 1
+ cellId:
+ plmnId:
+ mcc: "123"
+ mnc: "45"
+ cId:
+ ncI: 123
+ qosObjectives:
+ gfbr: 100
+ 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
+ example:
+ 'rApp ID'
+ policyObject:
+ $ref: '#/components/schemas/PolicyObject'
+ policyTypeId:
+ description: identity of the policy type
+ 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
+ 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
+ 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
+ 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
+ properties:
+ ricId:
+ description: identity of the Near-RT RIC
+ type: string
+ managedElementIds:
+ description: O1 identities for managed entities
+ items:
+ description: O1 identities for managed entities
+ type: string
+ type: array
+ state:
+ description: Represents the states for a Near-RT RIC
+ enum:
+ - UNAVAILABLE
+ - AVAILABLE
+ - SYNCHRONIZING
+ - CONSISTENCY_CHECK
+ type: string
+ policyTypeIds:
+ description: supported policy types
+ items:
+ description: supported policy types
+ type: string
+ type: array
+ type: object
+ ServiceRegistrationInfo:
+ description: Information for one service
+ properties:
+ callbackUrl:
+ description: callback 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
+ PolicyStatusInfo:
+ description: Status for one A1-P Policy
+ properties:
+ lastModified:
+ description: "timestamp, last modification time"
+ type: string
+ status:
+ description: the Policy status
+ type: object
+ type: object
+ ServiceStatus:
+ properties:
+ callbackUrl:
+ description: callback for notifying of RIC synchronization
+ type: string
+ serviceId:
+ description: identity of the service
+ type: string
+ keepAliveIntervalSeconds:
+ description: policy keep alive timeout
+ format: int64
+ type: integer
+ timeSinceLastActivitySeconds:
+ description: time since last invocation by the service
+ format: int64
+ 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
+ type: object
+ input:
+ description: input
+ properties:
+ accessType:
+ description: Access type
+ enum:
+ - READ
+ - WRITE
+ - DELETE
+ type: string
+ authToken:
+ description: Authorization token
+ type: string
+ policyTypeId:
+ description: Policy type identifier
+ 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
+ type: object
+ properties:
+ policyId:
+ description: Identity of the policy
+ type: string
+ nearRtRicId:
+ $ref: '#/components/schemas/NearRtRicId'
+ required:
+ - policyId
+ - nearRtRicId
+ ServiceStatusList:
+ properties:
+ serviceList:
+ description: List of service information
+ items:
+ $ref: '#/components/schemas/ServiceStatus'
+ type: array
+ type: object
+ ServiceCallbackInfo:
+ description: Information transferred as in Service callbacks (callback_url)
+ properties:
+ ricId:
+ description: identity of a Near-RT RIC
+ type: string
+ eventType:
+ description: "values:\nAVAILABLE: the Near-RT RIC has become available\
+ \ for A1 Policy management"
+ enum:
+ - AVAILABLE
+ type: string
+ required:
+ - eventType
+ - ricId
+ type: object
+ Link:
+ properties:
+ templated:
+ type: boolean
+ href:
+ type: string
+ type: object
+ ProblemDetails:
+ description: >-
+ A problem detail to carry details in an HTTP response according to RFC
+ 7807
+ type: object
+ 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 '
+ type: string
+ instance:
+ description: URI reference that identifies the specific occurrence of the problem
+ 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.
diff --git a/docs/offeredapis/swagger/pms-api.json b/docs/offeredapis/swagger/pms-api.json
index 5dd8b493..deb57430 100644
--- a/docs/offeredapis/swagger/pms-api.json
+++ b/docs/offeredapis/swagger/pms-api.json
@@ -1,1866 +1,1864 @@
-{
- "openapi" : "3.0.3",
- "info" : {
- "title" : "A1 Policy Management Service",
- "description" : "<h2>General</h2><p>The O-RAN Non-RT RIC Policy Management Service provides a REST API for managemecnt of A1 policies. <br/>The main tasks of the service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining a view of supported Near-RT RIC policy types</li><li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.</li></ul><h2>APIs provided or defined by the service</h2><h3>A1 Policy Management</h3><p>This is an API for management of A1 Policies.</p><ul><li>A1 Policy retrieval, creation, modification and deletion.</li><li>Retrieval of supported A1 Policy types for a Near-RT RIC</li><li>Retrieval of status for existing A1 policies</li></ul><h3>Management of configuration</h3><p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.</p><h3>Service callbacks</h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.</p><h3>NearRT-RIC Repository</h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.</p><h3>Health Check</h3><p>API used for supervision of the PMS component.</p><h3>Service Registry and Supervision</h3><p>API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.</p><h3>Authorization API</h3><p>API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.</p><h3>Spring Boot Actuator</h3><p>Provides generic functions used to monitor and manage the Spring web application.</p>",
- "contact" : {
- "url" : "https://www.onap.org/",
- "email" : "discuss-list@onap.com"
- },
- "license" : {
- "name" : "Copyright (C) 2020-2023 Nordix Foundation. Licensed under the Apache License.",
- "url" : "http://www.apache.org/licenses/LICENSE-2.0"
- },
- "version" : "1.3.0",
- "x-api-id" : "a31c510b-20e6-4a08-af16-368c44d7fba8",
- "x-audience" : "external-public"
- },
- "servers" : [ {
- "url" : "/"
- } ],
- "tags" : [ {
- "name" : "A1 Policy Management",
- "description" : "API used to create polices, Policy Instances and get them as individual using an ID or get all policies/Instances."
- }, {
- "name" : "NearRT-RIC Repository",
- "description" : "API used to get the NearRT-RIC for the managed element."
- }, {
- "name" : "Service Registry and Supervision",
- "description" : "API used to keep the service Alive with in the timeout period"
- }, {
- "name" : "Health Check",
- "description" : "API used to get the health status and statistics of this service"
- }, {
- "name" : "Service callbacks"
- }, {
- "name" : "Authorization API",
- "description" : "API used for authorization of information A1 policy access (this is provided by an authorization producer such as OPA). <br> Note that this API is called by PMS, it is not provided."
- }, {
- "name" : "Configuration",
- "description" : "API used to create or fetch the application configuration."
- }, {
- "name" : "Actuator",
- "description" : "Monitor and interact",
- "externalDocs" : {
- "description" : "Spring Boot Actuator Web API Documentation",
- "url" : "https://docs.spring.io/spring-boot/docs/current/actuator-api/html/"
- }
- } ],
- "paths" : {
- "/a1-policy/v2/policy-instances" : {
- "get" : {
- "tags" : [ "A1 Policy Management" ],
- "summary" : "Query for A1 policy instances",
- "description" : "Returns a list of A1 policies matching given search criteria. <br>If several query parameters are defined, the policies matching all conditions are returned.",
- "operationId" : "getPolicyInstances",
- "parameters" : [ {
- "name" : "policytype_id",
- "in" : "query",
- "description" : "Select policies with a given type identity.",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- }, {
- "name" : "ric_id",
- "in" : "query",
- "description" : "Select policies for a given Near-RT RIC identity.",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- }, {
- "name" : "service_id",
- "in" : "query",
- "description" : "Select policies owned by a given service.",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- }, {
- "name" : "type_name",
- "in" : "query",
- "description" : "Select policies of a given type name (type identity has the format <typename_version>)",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "OK - Returns A1 Policies which matches the criteria",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_info_list"
- },
- "examples" : {
- "policy_info_list" : {
- "$ref" : "#/components/examples/policy_info_list"
- }
- }
- }
- }
- },
- "404" : {
- "description" : "Not Found - Near-RT RIC, policy type or service not found",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
- }
- }
- }
- },
- "/example-authz-check" : {
- "post" : {
- "tags" : [ "Authorization API" ],
- "summary" : "Request for access authorization.",
- "description" : "The authorization function decides if access is granted.",
- "operationId" : "performAccessControl",
- "requestBody" : {
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_authorization"
- }
- }
- },
- "required" : true
- },
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/authorization_result"
- }
- }
- }
- },
- "403" : {
- "description" : "Forbidden",
- "content" : {
- "application/problem+json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- },
- "example" : {
- "status" : 403,
- "title" : "Forbidden",
- "detail" : "Your role does not allow to perform this action. Contact System Administrator to change your access rights."
- }
- }
- }
- }
- }
- }
- },
- "/actuator/threaddump" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'threaddump'",
- "operationId" : "threaddump",
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "text/plain;charset=UTF-8" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- },
- "x-internal" : true
- }
- },
- "/a1-policy/v2/status" : {
- "get" : {
- "tags" : [ "Health Check" ],
- "description" : "Returns status and statistics of this service",
- "operationId" : "getStatus",
- "responses" : {
- "200" : {
- "description" : "OK- Service is living Ok",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/status_info"
- },
- "examples" : {
- "status_info" : {
- "$ref" : "#/components/examples/status_info"
- }
- }
- }
- }
- }
- }
- }
- },
- "/actuator/loggers" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'loggers'",
- "operationId" : "loggers",
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- },
- "x-internal" : true
- }
- },
- "/actuator/health/**" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'health-path'",
- "operationId" : "health-path",
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- },
- "x-internal" : true
- }
- },
- "/a1-policy/v2/rics/ric" : {
- "get" : {
- "tags" : [ "NearRT-RIC Repository" ],
- "summary" : "Returns info of Near-RT RIC queried by the ric-id and managed-element-id",
- "description" : "Either a Near-RT RIC identity or a Managed Element identity can be specified.<br>The intention with Managed Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU).",
- "operationId" : "getRic",
- "parameters" : [ {
- "name" : "managed_element_id",
- "in" : "query",
- "description" : "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- }, {
- "name" : "ric_id",
- "in" : "query",
- "description" : "The identity of a Near-RT RIC to get information for.",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "OK - Near-RT RIC is found",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/ric_info"
- },
- "examples" : {
- "ric_info" : {
- "$ref" : "#/components/examples/ric_info"
- }
- }
- }
- }
- },
- "404" : {
- "description" : "Not Found",
- "content" : {
- "application/problem+json" : {
- "example" : [ ]
- }
- }
- }
- }
- }
- },
- "/actuator/shutdown" : {
- "post" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'shutdown'",
- "operationId" : "shutdown",
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- },
- "x-internal" : true
- }
- },
- "/a1-policy/v2/policy-types" : {
- "get" : {
- "tags" : [ "A1 Policy Management" ],
- "description" : "Query policy type identities",
- "operationId" : "getPolicyTypes",
- "parameters" : [ {
- "name" : "ric_id",
- "in" : "query",
- "description" : "Select types for the given Near-RT RIC identity.",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- }, {
- "name" : "type_name",
- "in" : "query",
- "description" : "Select types with the given type name (type identity has the format <typename_version>)",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- }, {
- "name" : "compatible_with_version",
- "in" : "query",
- "description" : "Select types that are compatible with the given version. This parameter is only applicable in conjunction with type_name. As an example version 1.9.1 is compatible with 1.0.0 but not the other way around. Matching types will be returned sorted in ascending order.",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "OK - Policy Type IDs Found",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_type_id_list"
- },
- "examples" : {
- "policy_type_id_list" : {
- "$ref" : "#/components/examples/policy_type_id_list"
- }
- }
- }
- }
- },
- "404" : {
- "description" : "Not Found",
- "content" : {
- "application/problem+json" : {
- "example" : [ ]
- }
- }
- }
- }
- }
- },
- "/a1-policy/v2/policies/{policy_id}" : {
- "get" : {
- "tags" : [ "A1 Policy Management" ],
- "description" : "Returns a policy",
- "operationId" : "getPolicy",
- "parameters" : [ {
- "name" : "policy_id",
- "in" : "path",
- "required" : true,
- "style" : "simple",
- "explode" : false,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "OK - Policy found",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_info"
- },
- "examples" : {
- "policy_info" : {
- "$ref" : "#/components/examples/policy_info"
- }
- }
- }
- }
- },
- "404" : {
- "description" : "Not Found",
- "content" : {
- "application/problem+json" : {
- "example" : [ ]
- }
- }
- }
- }
- },
- "delete" : {
- "tags" : [ "A1 Policy Management" ],
- "summary" : "Delete a policy",
- "description" : "Deleting the policy using the Policy's Policy ID.",
- "operationId" : "deletePolicy",
- "parameters" : [ {
- "name" : "policy_id",
- "in" : "path",
- "required" : true,
- "style" : "simple",
- "explode" : false,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "OK - Policy deleted",
- "content" : {
- "*/*" : {
- "schema" : {
- "$ref" : "#/components/schemas/void"
- }
- }
- }
- },
- "423" : {
- "description" : "Locked - HTTP Status code which can be used when the state is Locked",
- "content" : {
- "application/problem+json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- },
- "example" : {
- "status" : 423,
- "title" : "Locked",
- "detail" : "Requested resource is in a locked state."
- }
- }
- }
- }
- }
- }
- },
- "/actuator/metrics/{requiredMetricName}" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'metrics-requiredMetricName'",
- "operationId" : "metrics-requiredMetricName",
- "parameters" : [ {
- "name" : "requiredMetricName",
- "in" : "path",
- "required" : true,
- "style" : "simple",
- "explode" : false,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- },
- "x-internal" : true
- }
- },
- "/a1-policy/v2/configuration" : {
- "get" : {
- "tags" : [ "Configuration" ],
- "description" : "Returns the contents of the application configuration file",
- "operationId" : "getConfiguration",
- "responses" : {
- "200" : {
- "description" : "OK - Configuration",
- "content" : {
- "application/json" : {
- "schema" : {
- "type" : "string"
- }
- }
- }
- },
- "404" : {
- "description" : "Not Found",
- "content" : {
- "application/problem+json" : {
- "example" : [ ]
- }
- }
- }
- },
- "x-internal" : true
- },
- "put" : {
- "tags" : [ "Configuration" ],
- "description" : "Replace the current configuration with the given configuration",
- "operationId" : "putConfiguration",
- "requestBody" : {
- "content" : {
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- }
- },
- "required" : true
- },
- "responses" : {
- "200" : {
- "description" : "OK - Configuration updated",
- "content" : {
- "*/*" : {
- "schema" : {
- "$ref" : "#/components/schemas/void"
- }
- }
- }
- },
- "400" : {
- "description" : "Bad Request",
- "content" : {
- "application/problem+json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- },
- "example" : {
- "status" : 400,
- "title" : "Bad Request",
- "detail" : "The provided request is not valid."
- }
- }
- }
- }
- },
- "x-internal" : true
- }
- },
- "/actuator" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator root web endpoint",
- "operationId" : "links",
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object",
- "additionalProperties" : {
- "type" : "object",
- "additionalProperties" : {
- "$ref" : "#/components/schemas/Link"
- }
- }
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object",
- "additionalProperties" : {
- "type" : "object",
- "additionalProperties" : {
- "$ref" : "#/components/schemas/Link"
- }
- }
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object",
- "additionalProperties" : {
- "type" : "object",
- "additionalProperties" : {
- "$ref" : "#/components/schemas/Link"
- }
- }
- }
- }
- }
- }
- },
- "x-internal" : true
- }
- },
- "/actuator/loggers/{name}" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'loggers-name'",
- "operationId" : "loggers-name",
- "parameters" : [ {
- "name" : "name",
- "in" : "path",
- "required" : true,
- "style" : "simple",
- "explode" : false,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- },
- "x-internal" : true
- },
- "post" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'loggers-name'",
- "operationId" : "loggers-name_2",
- "parameters" : [ {
- "name" : "name",
- "in" : "path",
- "required" : true,
- "style" : "simple",
- "explode" : false,
- "schema" : {
- "type" : "string"
- }
- } ],
- "requestBody" : {
- "content" : {
- "application/json" : {
- "schema" : {
- "type" : "string",
- "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", "OFF" ]
- }
- }
- }
- },
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "*/*" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- },
- "x-internal" : true
- }
- },
- "/a1-policy/v2/services/{service_id}/keepalive" : {
- "put" : {
- "tags" : [ "Service Registry and Supervision" ],
- "summary" : "Heartbeat indicates that the service is running",
- "description" : "A registered service should invoke this operation regularly to indicate that it is still alive. If a registered service fails to invoke this operation before the end of a timeout period the service will be deregistered and all its A1 policies wil be removed. (This timeout can be set or disabled when each service is initially registered)",
- "operationId" : "keepAliveService",
- "parameters" : [ {
- "name" : "service_id",
- "in" : "path",
- "required" : true,
- "style" : "simple",
- "explode" : false,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "OK - Service supervision timer refreshed, OK",
- "content" : {
- "*/*" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- },
- "404" : {
- "description" : "Not Found",
- "content" : {
- "application/problem+json" : {
- "example" : [ ]
- }
- }
- }
- }
- }
- },
- "/actuator/metrics" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'metrics'",
- "operationId" : "metrics",
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- },
- "x-internal" : true
- }
- },
- "/a1-policy/v2/rics" : {
- "get" : {
- "tags" : [ "NearRT-RIC Repository" ],
- "summary" : "Query Near-RT RIC information",
- "description" : "The call returns all Near-RT RICs that supports a given policy type identity",
- "operationId" : "getRics",
- "parameters" : [ {
- "name" : "policytype_id",
- "in" : "query",
- "description" : "The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/ric_info_list"
- },
- "examples" : {
- "ric_info_list" : {
- "$ref" : "#/components/examples/ric_info_list"
- }
- }
- }
- }
- },
- "404" : {
- "description" : "Not Found",
- "content" : {
- "application/problem+json" : {
- "example" : [ ]
- }
- }
- }
- }
- }
- },
- "/a1-policy/v2/services" : {
- "get" : {
- "tags" : [ "Service Registry and Supervision" ],
- "summary" : "Returns service information",
- "description" : "Either information about a registered service with given identity or all registered services are returned.",
- "operationId" : "getServices",
- "parameters" : [ {
- "name" : "service_id",
- "in" : "query",
- "description" : "The identity of the service",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/service_status_list"
- },
- "examples" : {
- "service_status_list" : {
- "$ref" : "#/components/examples/service_status_list"
- }
- }
- }
- }
- },
- "404" : {
- "description" : "Not Found",
- "content" : {
- "application/problem+json" : {
- "example" : [ ]
- }
- }
- }
- }
- },
- "put" : {
- "tags" : [ "Service Registry and Supervision" ],
- "summary" : "Register a service",
- "description" : "Registering a service is needed to:<ul><li>Get callbacks about available NearRT RICs.</li><li>Activate supervision of the service. If a service is inactive, its policies will automatically be deleted.</li></ul>Policies can be created even if the service is not registerred. This is a feature which it is optional to use.",
- "operationId" : "putService",
- "requestBody" : {
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/service_registration_info"
- }
- }
- },
- "required" : true
- },
- "responses" : {
- "200" : {
- "description" : "OK - Service updated",
- "content" : {
- "*/*" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- },
- "201" : {
- "description" : "Created - Service created",
- "content" : {
- "*/*" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- },
- "400" : {
- "description" : "Bad Request",
- "content" : {
- "application/problem+json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- },
- "example" : {
- "status" : 400,
- "title" : "Bad Request",
- "detail" : "The provided request is not valid."
- }
- }
- }
- }
- },
- "callbacks" : {
- "RICStatus" : {
- "{$request.body#/callback_url}" : {
- "post" : {
- "tags" : [ "Service callbacks" ],
- "summary" : "Callback for Near-RT RIC status",
- "description" : "The URL to this call is registered at Service registration.",
- "operationId" : "serviceCallback",
- "requestBody" : {
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/service_callback_info_v2"
- }
- }
- },
- "required" : true
- },
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/void"
- }
- }
- }
- },
- "404" : {
- "description" : "Not Found",
- "content" : {
- "application/problem+json" : {
- "example" : [ ]
- }
- }
- }
- }
- }
- }
- }
- }
- }
- },
- "/actuator/info" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'info'",
- "operationId" : "info",
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- },
- "x-internal" : true
- }
- },
- "/status" : {
- "get" : {
- "tags" : [ "Health Check" ],
- "description" : "Returns status and statistics of this service",
- "operationId" : "getStatusV1",
- "responses" : {
- "200" : {
- "description" : "OK - Service is living",
- "content" : {
- "*/*" : {
- "schema" : {
- "type" : "string"
- }
- }
- }
- }
- }
- }
- },
- "/a1-policy/v2/policy-types/{policytype_id}" : {
- "get" : {
- "tags" : [ "A1 Policy Management" ],
- "description" : "Returns a policy type definition",
- "operationId" : "getPolicyTypeDefinition",
- "parameters" : [ {
- "name" : "policytype_id",
- "in" : "path",
- "required" : true,
- "style" : "simple",
- "explode" : false,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "OK - schema of the given policy type",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_type_definition"
- },
- "examples" : {
- "policy_type_definition" : {
- "$ref" : "#/components/examples/policy_type_definition"
- }
- }
- }
- }
- },
- "404" : {
- "description" : "Not Found",
- "content" : {
- "application/problem+json" : {
- "example" : [ ]
- }
- }
- }
- }
- }
- },
- "/actuator/logfile" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'logfile'",
- "operationId" : "logfile",
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "text/plain;charset=UTF-8" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- },
- "x-internal" : true
- }
- },
- "/actuator/health" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'health'",
- "operationId" : "health",
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- },
- "x-internal" : true
- }
- },
- "/a1-policy/v2/policies" : {
- "get" : {
- "tags" : [ "A1 Policy Management" ],
- "summary" : "Query policy identities",
- "description" : "Returns a list of A1 policies matching given search criteria. <br>If several query parameters are defined, the policies matching all conditions are returned.",
- "operationId" : "getPolicyIds",
- "parameters" : [ {
- "name" : "policytype_id",
- "in" : "query",
- "description" : "Select policies of a given policy type identity.",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- }, {
- "name" : "ric_id",
- "in" : "query",
- "description" : "Select policies of a given Near-RT RIC identity.",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- }, {
- "name" : "service_id",
- "in" : "query",
- "description" : "Select policies owned by a given service.",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- }, {
- "name" : "type_name",
- "in" : "query",
- "description" : "Select policies of types with the given type name (type identity has the format <typename_version>)",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "OK - Policy identities",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_id_list"
- },
- "examples" : {
- "policy_id_list" : {
- "$ref" : "#/components/examples/policy_id_list"
- }
- }
- }
- }
- },
- "404" : {
- "description" : "Not Found",
- "content" : {
- "application/problem+json" : {
- "example" : [ ]
- }
- }
- }
- }
- },
- "put" : {
- "tags" : [ "A1 Policy Management" ],
- "description" : "Create or update a policy",
- "operationId" : "putPolicy",
- "requestBody" : {
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_info"
- }
- }
- },
- "required" : true
- },
- "responses" : {
- "200" : {
- "description" : "OK - Policy updated",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/void"
- }
- }
- }
- },
- "201" : {
- "description" : "Created - Policy created",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/void"
- }
- }
- }
- },
- "423" : {
- "description" : "Locked - HTTP Status code which can be used when the state is Locked",
- "content" : {
- "application/problem+json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- },
- "example" : {
- "status" : 423,
- "title" : "Locked",
- "detail" : "Requested resource is in a locked state."
- }
- }
- }
- }
- }
- }
- },
- "/a1-policy/v2/services/{service_id}" : {
- "delete" : {
- "tags" : [ "Service Registry and Supervision" ],
- "description" : "Unregister a service",
- "operationId" : "deleteService",
- "parameters" : [ {
- "name" : "service_id",
- "in" : "path",
- "required" : true,
- "style" : "simple",
- "explode" : false,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "204" : {
- "description" : "No Content - Service unregistered",
- "content" : {
- "*/*" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- },
- "404" : {
- "description" : "Not Found",
- "content" : {
- "application/problem+json" : {
- "example" : [ ]
- }
- }
- }
- }
- }
- },
- "/actuator/heapdump" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'heapdump'",
- "operationId" : "heapdump",
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/octet-stream" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- },
- "x-internal" : true
- }
- },
- "/a1-policy/v2/policies/{policy_id}/status" : {
- "get" : {
- "tags" : [ "A1 Policy Management" ],
- "description" : "Returns a policy status",
- "operationId" : "getPolicyStatus",
- "parameters" : [ {
- "name" : "policy_id",
- "in" : "path",
- "required" : true,
- "style" : "simple",
- "explode" : false,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "OK - Policy status",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_status_info"
- },
- "examples" : {
- "policy_status_info" : {
- "$ref" : "#/components/examples/policy_status_info"
- }
- }
- }
- }
- },
- "404" : {
- "description" : "Not Found",
- "content" : {
- "application/problem+json" : {
- "example" : [ ]
- }
- }
- }
- }
- }
- }
- },
- "components" : {
- "schemas" : {
- "policy_type_definition" : {
- "type" : "object",
- "properties" : {
- "policy_schema" : {
- "type" : "object",
- "description" : "Policy type json schema. The schema is a json object following http://json-schema.org/draft-07/schema"
- }
- },
- "description" : "Contains policy type schema definition"
- },
- "error_information" : {
- "type" : "object",
- "properties" : {
- "detail" : {
- "type" : "string",
- "description" : " A human-readable explanation specific to this occurrence of the problem.",
- "example" : "Policy type not found"
- },
- "title" : {
- "type" : "string",
- "description" : "A specific error name",
- "example" : "Not Found"
- },
- "status" : {
- "type" : "integer",
- "description" : "The HTTP status code generated by the origin server for this occurrence of the problem. ",
- "format" : "int32",
- "example" : 404
- }
- },
- "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807"
- },
- "void" : {
- "type" : "object",
- "description" : "Void/empty"
- },
- "status_info" : {
- "type" : "object",
- "properties" : {
- "status" : {
- "type" : "string",
- "description" : "status text"
- }
- }
- },
- "authorization_result" : {
- "required" : [ "result" ],
- "type" : "object",
- "properties" : {
- "result" : {
- "type" : "boolean",
- "description" : "If true, the access is granted"
- }
- },
- "description" : "Result of authorization",
- "example" : {
- "result" : true
- }
- },
- "ric_info" : {
- "type" : "object",
- "properties" : {
- "ric_id" : {
- "type" : "string",
- "description" : "identity of the Near-RT RIC"
- },
- "managed_element_ids" : {
- "type" : "array",
- "description" : "O1 identities for managed entities",
- "items" : {
- "type" : "string",
- "description" : "O1 identities for managed entities"
- }
- },
- "state" : {
- "type" : "string",
- "description" : "Represents the states for a Near-RT RIC",
- "enum" : [ "UNAVAILABLE", "AVAILABLE", "SYNCHRONIZING", "CONSISTENCY_CHECK" ]
- },
- "policytype_ids" : {
- "type" : "array",
- "description" : "supported policy types",
- "items" : {
- "type" : "string",
- "description" : "supported policy types"
- }
- }
- },
- "description" : "Information for a Near-RT RIC"
- },
- "service_registration_info" : {
- "required" : [ "service_id" ],
- "type" : "object",
- "properties" : {
- "callback_url" : {
- "type" : "string",
- "description" : "callback for notifying of Near-RT RIC state changes"
- },
- "service_id" : {
- "type" : "string",
- "description" : "identity of the service"
- },
- "keep_alive_interval_seconds" : {
- "type" : "integer",
- "description" : "keep alive interval for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled.",
- "format" : "int64"
- }
- },
- "description" : "Information for one service"
- },
- "policy_info_list" : {
- "type" : "object",
- "properties" : {
- "policies" : {
- "type" : "array",
- "description" : "List of policy information",
- "items" : {
- "$ref" : "#/components/schemas/policy_info"
- }
- }
- },
- "description" : "List of policy information"
- },
- "policy_status_info" : {
- "type" : "object",
- "properties" : {
- "last_modified" : {
- "type" : "string",
- "description" : "timestamp, last modification time"
- },
- "status" : {
- "type" : "object",
- "description" : "the Policy status"
- }
- },
- "description" : "Status for one A1-P Policy"
- },
- "service_status" : {
- "type" : "object",
- "properties" : {
- "callback_url" : {
- "type" : "string",
- "description" : "callback for notifying of RIC synchronization"
- },
- "service_id" : {
- "type" : "string",
- "description" : "identity of the service"
- },
- "keep_alive_interval_seconds" : {
- "type" : "integer",
- "description" : "policy keep alive timeout",
- "format" : "int64"
- },
- "time_since_last_activity_seconds" : {
- "type" : "integer",
- "description" : "time since last invocation by the service",
- "format" : "int64"
- }
- }
- },
- "ric_info_list" : {
- "type" : "object",
- "properties" : {
- "rics" : {
- "type" : "array",
- "description" : "List of Near-RT RIC information",
- "items" : {
- "$ref" : "#/components/schemas/ric_info"
- }
- }
- },
- "description" : "List of Near-RT RIC information"
- },
- "input" : {
- "required" : [ "access_type", "auth_token", "policy_type_id" ],
- "type" : "object",
- "properties" : {
- "access_type" : {
- "type" : "string",
- "description" : "Access type",
- "enum" : [ "READ", "WRITE", "DELETE" ]
- },
- "auth_token" : {
- "type" : "string",
- "description" : "Authorization token"
- },
- "policy_type_id" : {
- "type" : "string",
- "description" : "Policy type identifier"
- }
- },
- "description" : "input"
- },
- "policy_authorization" : {
- "required" : [ "input" ],
- "type" : "object",
- "properties" : {
- "input" : {
- "$ref" : "#/components/schemas/input"
- }
- },
- "description" : "Authorization request for A1 policy requests"
- },
- "policy_type_id_list" : {
- "type" : "object",
- "properties" : {
- "policytype_ids" : {
- "type" : "array",
- "description" : "Policy type identities",
- "items" : {
- "type" : "string",
- "description" : "Policy type identities"
- }
- }
- },
- "description" : "Information about policy types"
- },
- "policy_info" : {
- "required" : [ "policy_data", "policy_id", "policytype_id", "ric_id" ],
- "type" : "object",
- "properties" : {
- "ric_id" : {
- "type" : "string",
- "description" : "identity of the target Near-RT RIC"
- },
- "policy_id" : {
- "type" : "string",
- "description" : "identity of the policy"
- },
- "transient" : {
- "type" : "boolean",
- "description" : "if true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.",
- "nullable" : false,
- "example" : false,
- "default" : false
- },
- "service_id" : {
- "type" : "string",
- "description" : "the identity of the service owning the policy. This can be used to group the policies (it is possible to get all policies associated to a service). Note that the service does not need to be registered.",
- "default" : ""
- },
- "policy_data" : {
- "type" : "object",
- "description" : "the configuration of the policy"
- },
- "status_notification_uri" : {
- "type" : "string",
- "description" : "Callback URI for policy status updates"
- },
- "policytype_id" : {
- "type" : "string",
- "description" : "identity of the policy type"
- }
- },
- "description" : "Information for one A1-P Policy"
- },
- "policy_id_list" : {
- "type" : "object",
- "properties" : {
- "policy_ids" : {
- "type" : "array",
- "description" : "Policy identities",
- "items" : {
- "type" : "string",
- "description" : "Policy identities"
- }
- }
- },
- "description" : "A list of policy identities",
- "example" : {
- "policy_ids" : [ "policy_ids", "policy_ids" ]
- }
- },
- "service_status_list" : {
- "type" : "object",
- "properties" : {
- "service_list" : {
- "type" : "array",
- "description" : "List of service information",
- "items" : {
- "$ref" : "#/components/schemas/service_status"
- }
- }
- }
- },
- "service_callback_info_v2" : {
- "required" : [ "event_type", "ric_id" ],
- "type" : "object",
- "properties" : {
- "ric_id" : {
- "type" : "string",
- "description" : "identity of a Near-RT RIC"
- },
- "event_type" : {
- "type" : "string",
- "description" : "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management",
- "enum" : [ "AVAILABLE" ]
- }
- },
- "description" : "Information transferred as in Service callbacks (callback_url)"
- },
- "Link" : {
- "type" : "object",
- "properties" : {
- "templated" : {
- "type" : "boolean"
- },
- "href" : {
- "type" : "string"
- }
- }
- }
- },
- "responses" : {
- "Locked" : {
- "description" : "Locked - HTTP Status code which can be used when the state is Locked",
- "content" : {
- "application/problem+json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- },
- "example" : {
- "status" : 423,
- "title" : "Locked",
- "detail" : "Requested resource is in a locked state."
- }
- }
- }
- },
- "BadRequest" : {
- "description" : "Bad Request",
- "content" : {
- "application/problem+json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- },
- "example" : {
- "status" : 400,
- "title" : "Bad Request",
- "detail" : "The provided request is not valid."
- }
- }
- }
- },
- "Forbidden" : {
- "description" : "Forbidden",
- "content" : {
- "application/problem+json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- },
- "example" : {
- "status" : 403,
- "title" : "Forbidden",
- "detail" : "Your role does not allow to perform this action. Contact System Administrator to change your access rights."
- }
- }
- }
- },
- "NotFound" : {
- "description" : "Not Found",
- "content" : {
- "application/problem+json" : {
- "example" : [ ]
- }
- }
- }
- },
- "examples" : {
- "service_status" : {
- "description" : "List of service information",
- "value" : {
- "callback_url" : "callback_url",
- "service_id" : "service_id",
- "keep_alive_interval_seconds" : 0,
- "time_since_last_activity_seconds" : 6
- }
- },
- "service_status_list" : {
- "description" : "List of service information",
- "value" : {
- "service_list" : [ {
- "callback_url" : "callback_url",
- "service_id" : "service_id",
- "keep_alive_interval_seconds" : 0,
- "time_since_last_activity_seconds" : 6
- }, {
- "callback_url" : "callback_url",
- "service_id" : "service_id",
- "keep_alive_interval_seconds" : 0,
- "time_since_last_activity_seconds" : 6
- } ]
- }
- },
- "policy_type_definition" : {
- "description" : "Schema of the given Policy type",
- "value" : {
- "policy_schema" : "{}"
- }
- },
- "policy_type_id_list" : {
- "description" : "Array of policy type id's",
- "value" : {
- "policy_type_id_list" : [ "policytype_id", "policytype_id" ]
- }
- },
- "policy_info" : {
- "description" : "Policy information of one A1-P policy",
- "value" : {
- "ric_id" : "ric_id",
- "policy_id" : "policy_id",
- "transient" : false,
- "service_id" : "service_id",
- "policy_data" : "{}",
- "status_notification_uri" : "status_notification_uri",
- "policytype_id" : "policytype_id"
- }
- },
- "policy_info_list" : {
- "description" : "List of policy information",
- "value" : {
- "policies" : [ {
- "ric_id" : "ric_id",
- "policy_id" : "policy_id",
- "transient" : false,
- "service_id" : "service_id",
- "policy_data" : "{}",
- "status_notification_uri" : "status_notification_uri",
- "policytype_id" : "policytype_id"
- }, {
- "ric_id" : "ric_id",
- "policy_id" : "policy_id",
- "transient" : false,
- "service_id" : "service_id",
- "policy_data" : "{}",
- "status_notification_uri" : "status_notification_uri",
- "policytype_id" : "policytype_id"
- } ]
- }
- },
- "policy_id_list" : {
- "description" : "A list of policy identities",
- "value" : {
- "policy_ids" : [ "some_policy_id", "some_policy_id" ]
- }
- },
- "policy_status_info" : {
- "description" : "Status for one A1-P Policy",
- "value" : {
- "last_modified" : "last_modified",
- "status" : {
- "value" : {
- "status" : "status"
- }
- }
- }
- },
- "status_info" : {
- "value" : {
- "status" : "status"
- }
- },
- "ric_info" : {
- "value" : {
- "ric_id" : "ric_id",
- "managed_element_ids" : [ "some_managed_element_id", "some_managed_element_id" ],
- "state" : "UNAVAILABLE",
- "policytype_ids" : [ "some_policytype_id", "some_policytype_id" ]
- }
- },
- "ric_info_list" : {
- "value" : {
- "rics" : [ {
- "ric_id" : "ric_id",
- "managed_element_ids" : [ "some_managed_element_id", "some_managed_element_id" ],
- "state" : "UNAVAILABLE",
- "policytype_ids" : [ "policytype_id", "policytype_id" ]
- }, {
- "ric_id" : "ric_id",
- "managed_element_ids" : [ "managed_element_ids", "managed_element_ids" ],
- "state" : "UNAVAILABLE",
- "policytype_ids" : [ "policytype_ids", "policytype_ids" ]
- } ]
- }
- }
- }
- }
+{
+ "openapi" : "3.0.3",
+ "info" : {
+ "contact" : {
+ "email" : "discuss-list@onap.com",
+ "url" : "https://www.onap.org/"
+ },
+ "description" : "<h2>General</h2><p>The O-RAN Non-RT RIC Policy Management Service provides a REST API for managemecnt of A1 policies. <br/>The main tasks of the service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining a view of supported Near-RT RIC policy types</li><li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.</li></ul><h2>APIs provided or defined by the service</h2><h3>A1 Policy Management</h3><p>This is an API for management of A1 Policies.</p><ul><li>A1 Policy retrieval, creation, modification and deletion.</li><li>Retrieval of supported A1 Policy types for a Near-RT RIC</li><li>Retrieval of status for existing A1 policies</li></ul><h3>Management of configuration</h3><p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.</p><h3>Service callbacks</h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.</p><h3>NearRT-RIC Repository</h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.</p><h3>Health Check</h3><p>API used for supervision of the PMS component.</p><h3>Service Registry and Supervision</h3><p>API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.</p><h3>Authorization API</h3><p>API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.</p><h3>Spring Boot Actuator</h3><p>Provides generic functions used to monitor and manage the Spring web application.</p>",
+ "license" : {
+ "name" : "Copyright (C) 2020-2023 Nordix Foundation. Licensed under the Apache License.",
+ "url" : "http://www.apache.org/licenses/LICENSE-2.0"
+ },
+ "title" : "A1 Policy Management Service",
+ "version" : "1.3.0",
+ "x-api-id" : "a31c510b-20e6-4a08-af16-368c44d7fba8",
+ "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.",
+ "name" : "A1 Policy Management"
+ }, {
+ "description" : "API used to get the NearRT-RIC for the managed element.",
+ "name" : "NearRT-RIC Repository"
+ }, {
+ "description" : "API used to keep the service Alive with in the timeout period",
+ "name" : "Service Registry and Supervision"
+ }, {
+ "description" : "API used to get the health status and statistics of this service",
+ "name" : "Health Check"
+ }, {
+ "name" : "Service callbacks"
+ }, {
+ "description" : "API used for authorization of information A1 policy access (this is provided by an authorization producer such as OPA). <br> Note that this API is called by PMS, it is not provided.",
+ "name" : "Authorization API"
+ }, {
+ "description" : "API used to create or fetch the application configuration.",
+ "name" : "Configuration"
+ }, {
+ "description" : "Monitor and interact",
+ "externalDocs" : {
+ "description" : "Spring Boot Actuator Web API Documentation",
+ "url" : "https://docs.spring.io/spring-boot/docs/current/actuator-api/html/"
+ },
+ "name" : "Actuator"
+ } ],
+ "paths" : {
+ "/a1-policy/v2/policy-instances" : {
+ "get" : {
+ "description" : "Returns a list of A1 policies matching given search criteria. <br>If several query parameters are defined, the policies matching all conditions are returned.",
+ "operationId" : "getPolicyInstances",
+ "parameters" : [ {
+ "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 <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 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" : {
+ "get" : {
+ "operationId" : "threaddump",
+ "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'",
+ "tags" : [ "Actuator" ],
+ "x-internal" : true
+ }
+ },
+ "/a1-policy/v2/status" : {
+ "get" : {
+ "description" : "Returns status and statistics of this service",
+ "operationId" : "getStatus",
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "examples" : {
+ "status_info" : {
+ "$ref" : "#/components/examples/status_info"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/components/schemas/status_info"
+ }
+ }
+ },
+ "description" : "OK- Service is living Ok"
+ }
+ },
+ "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.<br>The intention with Managed Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU).",
+ "operationId" : "getRic",
+ "parameters" : [ {
+ "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" : {
+ "examples" : {
+ "ric_info" : {
+ "$ref" : "#/components/examples/ric_info"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/components/schemas/ric_info"
+ }
+ }
+ },
+ "description" : "OK - Near-RT RIC is found"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ },
+ "description" : "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" : {
+ "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",
+ "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 <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" : {
+ "application/json" : {
+ "examples" : {
+ "policy_type_id_list" : {
+ "$ref" : "#/components/examples/policy_type_id_list"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_type_id_list"
+ }
+ }
+ },
+ "description" : "OK - Policy Type IDs Found"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ },
+ "description" : "Not Found"
+ }
+ },
+ "tags" : [ "A1 Policy Management" ]
+ }
+ },
+ "/a1-policy/v2/policies/{policy_id}" : {
+ "delete" : {
+ "description" : "Deleting the policy using the Policy's Policy ID.",
+ "operationId" : "deletePolicy",
+ "parameters" : [ {
+ "explode" : false,
+ "in" : "path",
+ "name" : "policy_id",
+ "required" : true,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "responses" : {
+ "200" : {
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/void"
+ }
+ }
+ },
+ "description" : "OK - Policy deleted"
+ },
+ "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" : "Delete a policy",
+ "tags" : [ "A1 Policy Management" ]
+ },
+ "get" : {
+ "description" : "Returns a policy",
+ "operationId" : "getPolicy",
+ "parameters" : [ {
+ "explode" : false,
+ "in" : "path",
+ "name" : "policy_id",
+ "required" : true,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "examples" : {
+ "policy_info" : {
+ "$ref" : "#/components/examples/policy_info"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_info"
+ }
+ }
+ },
+ "description" : "OK - Policy found"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ },
+ "description" : "Not Found"
+ }
+ },
+ "tags" : [ "A1 Policy Management" ]
+ }
+ },
+ "/actuator/metrics/{requiredMetricName}" : {
+ "get" : {
+ "operationId" : "metrics-requiredMetricName",
+ "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 web endpoint 'metrics-requiredMetricName'",
+ "tags" : [ "Actuator" ],
+ "x-internal" : true
+ }
+ },
+ "/a1-policy/v2/configuration" : {
+ "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",
+ "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" : "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" : {
+ "$ref" : "#/components/schemas/ric_info_list"
+ }
+ }
+ },
+ "description" : "OK"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ },
+ "description" : "Not Found"
+ }
+ },
+ "summary" : "Query Near-RT RIC information",
+ "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.",
+ "operationId" : "getServices",
+ "parameters" : [ {
+ "description" : "The identity of the 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" : {
+ "$ref" : "#/components/schemas/service_status_list"
+ }
+ }
+ },
+ "description" : "OK"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ },
+ "description" : "Not Found"
+ }
+ },
+ "summary" : "Returns service information",
+ "tags" : [ "Service Registry and Supervision" ]
+ },
+ "put" : {
+ "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" : {
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ },
+ "description" : "Not Found"
+ }
+ },
+ "summary" : "Callback for Near-RT RIC status",
+ "tags" : [ "Service callbacks" ]
+ }
+ }
+ }
+ },
+ "description" : "Registering a service is needed to:<ul><li>Get callbacks about available NearRT RICs.</li><li>Activate supervision of the service. If a service is inactive, its policies will automatically be deleted.</li></ul>Policies can be created even if the service is not registerred. This is a feature which it is optional to use.",
+ "operationId" : "putService",
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/service_registration_info"
+ }
+ }
+ },
+ "required" : true
+ },
+ "responses" : {
+ "200" : {
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ },
+ "description" : "OK - Service updated"
+ },
+ "201" : {
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ },
+ "description" : "Created - Service created"
+ },
+ "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" : "Register a service",
+ "tags" : [ "Service Registry and Supervision" ]
+ }
+ },
+ "/actuator/info" : {
+ "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",
+ "operationId" : "getPolicyTypeDefinition",
+ "parameters" : [ {
+ "explode" : false,
+ "in" : "path",
+ "name" : "policytype_id",
+ "required" : true,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "examples" : {
+ "policy_type_definition" : {
+ "$ref" : "#/components/examples/policy_type_definition"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_type_definition"
+ }
+ }
+ },
+ "description" : "OK - schema of the given policy type"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ },
+ "description" : "Not Found"
+ }
+ },
+ "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. <br>If several query parameters are defined, the policies matching all conditions are returned.",
+ "operationId" : "getPolicyIds",
+ "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 <typename_version>)",
+ "explode" : true,
+ "in" : "query",
+ "name" : "type_name",
+ "required" : false,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "form"
+ } ],
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "examples" : {
+ "policy_id_list" : {
+ "$ref" : "#/components/examples/policy_id_list"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_id_list"
+ }
+ }
+ },
+ "description" : "OK - Policy identities"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ },
+ "description" : "Not Found"
+ }
+ },
+ "summary" : "Query policy identities",
+ "tags" : [ "A1 Policy Management" ]
+ },
+ "put" : {
+ "description" : "Create or update a policy",
+ "operationId" : "putPolicy",
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_info"
+ }
+ }
+ },
+ "required" : true
+ },
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/void"
+ }
+ }
+ },
+ "description" : "OK - Policy updated"
+ },
+ "201" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$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"
+ }
+ },
+ "tags" : [ "A1 Policy Management" ]
+ }
+ },
+ "/a1-policy/v2/services/{service_id}" : {
+ "delete" : {
+ "description" : "Unregister a service",
+ "operationId" : "deleteService",
+ "parameters" : [ {
+ "explode" : false,
+ "in" : "path",
+ "name" : "service_id",
+ "required" : true,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "responses" : {
+ "204" : {
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ },
+ "description" : "No Content - Service unregistered"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ },
+ "description" : "Not Found"
+ }
+ },
+ "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",
+ "operationId" : "getPolicyStatus",
+ "parameters" : [ {
+ "explode" : false,
+ "in" : "path",
+ "name" : "policy_id",
+ "required" : true,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "examples" : {
+ "policy_status_info" : {
+ "$ref" : "#/components/examples/policy_status_info"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_status_info"
+ }
+ }
+ },
+ "description" : "OK - Policy status"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ },
+ "description" : "Not Found"
+ }
+ },
+ "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"
+ }
+ },
+ "policy_info_list" : {
+ "description" : "List of policy information",
+ "value" : {
+ "policies" : [ {
+ "ric_id" : "ric_id",
+ "policy_id" : "policy_id",
+ "transient" : false,
+ "service_id" : "service_id",
+ "policy_data" : "{}",
+ "status_notification_uri" : "status_notification_uri",
+ "policytype_id" : "policytype_id"
+ }, {
+ "ric_id" : "ric_id",
+ "policy_id" : "policy_id",
+ "transient" : false,
+ "service_id" : "service_id",
+ "policy_data" : "{}",
+ "status_notification_uri" : "status_notification_uri",
+ "policytype_id" : "policytype_id"
+ } ]
+ }
+ },
+ "policy_id_list" : {
+ "description" : "A list of policy identities",
+ "value" : {
+ "policy_ids" : [ "some_policy_id", "some_policy_id" ]
+ }
+ },
+ "policy_status_info" : {
+ "description" : "Status for one A1-P Policy",
+ "value" : {
+ "last_modified" : "last_modified",
+ "status" : {
+ "value" : {
+ "status" : "status"
+ }
+ }
+ }
+ },
+ "status_info" : {
+ "value" : {
+ "status" : "status"
+ }
+ },
+ "ric_info" : {
+ "value" : {
+ "ric_id" : "ric_id",
+ "managed_element_ids" : [ "some_managed_element_id", "some_managed_element_id" ],
+ "state" : "UNAVAILABLE",
+ "policytype_ids" : [ "some_policytype_id", "some_policytype_id" ]
+ }
+ },
+ "ric_info_list" : {
+ "value" : {
+ "rics" : [ {
+ "ric_id" : "ric_id",
+ "managed_element_ids" : [ "some_managed_element_id", "some_managed_element_id" ],
+ "state" : "UNAVAILABLE",
+ "policytype_ids" : [ "policytype_id", "policytype_id" ]
+ }, {
+ "ric_id" : "ric_id",
+ "managed_element_ids" : [ "managed_element_ids", "managed_element_ids" ],
+ "state" : "UNAVAILABLE",
+ "policytype_ids" : [ "policytype_ids", "policytype_ids" ]
+ } ]
+ }
+ }
+ },
+ "responses" : {
+ "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"
+ },
+ "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" : {
+ "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",
+ "properties" : {
+ "ric_id" : {
+ "description" : "identity of the Near-RT RIC",
+ "type" : "string"
+ },
+ "managed_element_ids" : {
+ "description" : "O1 identities for managed entities",
+ "items" : {
+ "description" : "O1 identities for managed entities",
+ "type" : "string"
+ },
+ "type" : "array"
+ },
+ "state" : {
+ "description" : "Represents the states for a Near-RT RIC",
+ "enum" : [ "UNAVAILABLE", "AVAILABLE", "SYNCHRONIZING", "CONSISTENCY_CHECK" ],
+ "type" : "string"
+ },
+ "policytype_ids" : {
+ "description" : "supported policy types",
+ "items" : {
+ "description" : "supported policy types",
+ "type" : "string"
+ },
+ "type" : "array"
+ }
+ },
+ "type" : "object"
+ },
+ "service_registration_info" : {
+ "description" : "Information for one service",
+ "properties" : {
+ "callback_url" : {
+ "description" : "callback for notifying of Near-RT RIC state changes",
+ "type" : "string"
+ },
+ "service_id" : {
+ "description" : "identity of the service",
+ "type" : "string"
+ },
+ "keep_alive_interval_seconds" : {
+ "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" ],
+ "type" : "object"
+ },
+ "policy_info_list" : {
+ "description" : "List of policy information",
+ "properties" : {
+ "policies" : {
+ "description" : "List of policy information",
+ "items" : {
+ "$ref" : "#/components/schemas/policy_info"
+ },
+ "type" : "array"
+ }
+ },
+ "type" : "object"
+ },
+ "policy_status_info" : {
+ "description" : "Status for one A1-P Policy",
+ "properties" : {
+ "last_modified" : {
+ "description" : "timestamp, last modification time",
+ "type" : "string"
+ },
+ "status" : {
+ "description" : "the Policy status",
+ "type" : "object"
+ }
+ },
+ "type" : "object"
+ },
+ "service_status" : {
+ "properties" : {
+ "callback_url" : {
+ "description" : "callback for notifying of RIC synchronization",
+ "type" : "string"
+ },
+ "service_id" : {
+ "description" : "identity of the service",
+ "type" : "string"
+ },
+ "keep_alive_interval_seconds" : {
+ "description" : "policy keep alive timeout",
+ "format" : "int64",
+ "type" : "integer"
+ },
+ "time_since_last_activity_seconds" : {
+ "description" : "time since last invocation by the service",
+ "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",
+ "properties" : {
+ "access_type" : {
+ "description" : "Access type",
+ "enum" : [ "READ", "WRITE", "DELETE" ],
+ "type" : "string"
+ },
+ "auth_token" : {
+ "description" : "Authorization token",
+ "type" : "string"
+ },
+ "policy_type_id" : {
+ "description" : "Policy type identifier",
+ "type" : "string"
+ }
+ },
+ "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"
+ }
+ },
+ "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",
+ "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" : {
+ "description" : "A list of policy identities",
+ "example" : {
+ "policy_ids" : [ "policy_ids", "policy_ids" ]
+ },
+ "properties" : {
+ "policy_ids" : {
+ "description" : "Policy identities",
+ "items" : {
+ "description" : "Policy identities",
+ "type" : "string"
+ },
+ "type" : "array"
+ }
+ },
+ "type" : "object"
+ },
+ "service_status_list" : {
+ "properties" : {
+ "service_list" : {
+ "description" : "List of service information",
+ "items" : {
+ "$ref" : "#/components/schemas/service_status"
+ },
+ "type" : "array"
+ }
+ },
+ "type" : "object"
+ },
+ "service_callback_info_v2" : {
+ "description" : "Information transferred as in Service callbacks (callback_url)",
+ "properties" : {
+ "ric_id" : {
+ "description" : "identity of a Near-RT RIC",
+ "type" : "string"
+ },
+ "event_type" : {
+ "description" : "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management",
+ "enum" : [ "AVAILABLE" ],
+ "type" : "string"
+ }
+ },
+ "required" : [ "event_type", "ric_id" ],
+ "type" : "object"
+ },
+ "Link" : {
+ "properties" : {
+ "templated" : {
+ "type" : "boolean"
+ },
+ "href" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ }
+ }
} \ No newline at end of file
diff --git a/docs/offeredapis/swagger/pms-api.yaml b/docs/offeredapis/swagger/pms-api.yaml
index 1c25e051..c0b50d4d 100644
--- a/docs/offeredapis/swagger/pms-api.yaml
+++ b/docs/offeredapis/swagger/pms-api.yaml
@@ -431,7 +431,6 @@ paths:
- Actuator
/a1-policy/v2/configuration:
get:
- x-internal: true
operationId: getConfiguration
responses:
"200":
@@ -447,7 +446,6 @@ paths:
tags:
- Configuration
put:
- x-internal: true
operationId: putConfiguration
requestBody:
content: