From: saul.gill
Date: Fri, 11 Apr 2025 11:55:30 +0000 (+0100)
Subject: Uplift dependencies and test build
X-Git-Tag: 2.10.0~3
X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=39889fc88d65daf8202b19f6f84735276ccb0369;p=nonrtric%2Fplt%2Fa1policymanagementservice.git
Uplift dependencies and test build
Updated versions in pom
Updated base images in Dockerfile
Update submodule to latest master
Added script to alter OAS info section
Issue-ID: NONRTRIC-1067
Change-Id: If721baf70fce79fffe232adfbf9ebae5f4860a7f
Signed-off-by: saul.gill
---
diff --git a/Dockerfile b/Dockerfile
index 6405ae2..652fa83 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -18,8 +18,9 @@
# SPDX-License-Identifier: Apache-2.0
# ============LICENSE_END=========================================================
#
-FROM openjdk:17-jdk as jre-build
+FROM amazoncorretto:17-alpine as jre-build
+RUN apk add binutils
RUN $JAVA_HOME/bin/jlink \
--verbose \
--add-modules ALL-MODULE-PATH \
@@ -30,7 +31,7 @@ RUN $JAVA_HOME/bin/jlink \
--output /customjre
# Use debian base image (same as openjdk uses)
-FROM debian:11-slim
+FROM amazoncorretto:17-alpine
ENV JAVA_HOME=/jre
ENV PATH="${JAVA_HOME}/bin:${PATH}"
@@ -59,8 +60,8 @@ ARG userid=120957
ARG group=nonrtric
ARG groupid=120957
-RUN groupadd -g $groupid $group && \
- useradd -m -u $userid -g $group $user
+RUN addgroup --gid $groupid $group && \
+ adduser -u $userid -G $group -D -g "" $user
RUN chown -R $user:$group /opt/app/policy-agent
RUN chown -R $user:$group /var/log/policy-agent
RUN chown -R $user:$group /var/policy-management-service
diff --git a/api/a1pms-api-v3.json b/api/a1pms-api-v3.json
index c844073..38f3c62 100644
--- a/api/a1pms-api-v3.json
+++ b/api/a1pms-api-v3.json
@@ -2,44 +2,46 @@
"openapi" : "3.0.3",
"info" : {
"contact" : {
- "email" : "discuss-list@onap.com",
- "url" : "https://www.onap.org/"
+ "email" : "discuss@lists.o-ran-sc.org",
+ "url" : "https://o-ran-sc.org//"
},
- "description" : "General
The O-RAN Non-RT RIC Policy Management Service provides a REST API for managemecnt of A1 policies.
The main tasks of the service are:
- A1 Policy creation, modification and deletion.
- Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs
- Maintaining a view of supported Near-RT RIC policy types
- Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.
APIs provided or defined by the service
A1 Policy Management
This is an API for management of A1 Policies.
- A1 Policy retrieval, creation, modification and deletion.
- Retrieval of supported A1 Policy types for a Near-RT RIC
- Retrieval of status for existing A1 policies
Management of configuration
API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.
Service callbacks
These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.
NearRT-RIC Repository
This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.
Health Check
API used for supervision of the PMS component.
Service Registry and Supervision
API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.
Authorization API
API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.
",
+ "description" : "General
The ORAN SC A1 Policy Management Service provides a REST API for managing A1 policies.
This document describes the latest API set to perform tasks for:
- A1 Policy creation, modification and deletion.
- Monitoring and maintaining consistency of the SMO view of A1 Policies and the Near-RT RICs
- Maintaining a view of each Near-RT RIC's supported A1 Policy Types
- Supervision of registered services (rApps). When a registered service is unavailable, its policies are removed.
APIs provided or defined by the service
Note: parts of this API are strongly based on extracts of the O-RAN Alliance R1 Interface specification for A1 Policy Management, and those parts should be considered '© O-RAN ALLIANCE - All rights reserved.'
A1 Policy Management
This is the latest API for managing A1 Policies. This API is partially compliant with O-RAN Alliance R1 Interface specifications for A1 Policy Management:
- A1 Policy retrieval, creation, modification and deletion.
- Retrieval of supported A1 Policy Types for a Near-RT RIC
- Retrieval of status for existing A1 policies
Management of configuration
API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.
Service Callbacks
These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.
NearRT-RIC Repository (Older version)
This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted towards one Near-RT RIC.
Health Check
API used for supervision of the A1 Policy Management Service.
Service Registry and Supervision
API used for registering services/clients/rApps. Each A1 Policy can be tagged with an owner. If the owner service is registered, then the service can be optionally monitored by a heart-beat supervision mechanism, and if the registered service becomes unavailable, then it is removed and all its A1 Policies are deleted. Note that services do not need to be registered to create A1 Policies, but unregistered services are not supervised. This is a feature that is optional to use.
",
"license" : {
- "name" : "Copyright (C) 2024 OpenInfra Foundation Europe. Licensed under the Apache License.",
+ "name" : "Copyright (C) 2024 - 2025 OpenInfra Foundation Europe. Licensed under the Apache 2 License.",
"url" : "http://www.apache.org/licenses/LICENSE-2.0"
},
- "title" : "A1 policy management API",
+ "title" : "OSC - A1 Policy Management API",
"version" : "1.0.0",
- "x-api-id" : "a31c510b-20e6-4a08-af16-368c44d7fba8",
+ "x-api-id" : "e9776a07-0813-4fca-9801-6f892f0a7c13",
"x-audience" : "external-public"
},
+ "externalDocs" : {
+ "description" : "Based on parts of O-RAN ALLIANCE specification: O-RAN.WG2.R1AP-v07.00",
+ "url" : "https://www.o-ran.org/specifications"
+ },
"servers" : [ {
"url" : "{apiRoot}/a1-policy-management/v1",
"variables" : {
"apiRoot" : {
"default" : "https://example.com",
- "description" : "This is the Host:Port or Address where the A1-Policy Management Service can be accessed"
+ "description" : "This is the Host:Port or Address where the A1-Policy Management Service can be accessed. Note: This URL path format aligns with the O-RAN Alliance R1-AP specifications for A1 Policy Management"
}
}
} ],
"tags" : [ {
- "description" : "API used to create polices, Policy Instances and get them as individual using an ID or get all policies/Instances.",
+ "description" : "API used to get, create, update and delete A1 Policy Instances. Also used to query A1 Policy Types.\n",
"name" : "A1 Policy Management"
}, {
- "description" : "API used to get the NearRT-RIC for the managed element.",
+ "description" : "API used to get information about registered Near-RT RICs.\n",
"name" : "NearRT-RIC Repository"
}, {
- "description" : "API used to keep the service Alive with in the timeout period",
+ "description" : "API used to manage registered services, and control their keep-alive status via heart-beat messages.\n",
"name" : "Service Registry and Supervision"
}, {
- "description" : "API used to get the health status and statistics of this service",
+ "description" : "API used to get the health status and statistics of this service.\n",
"name" : "Health Check"
}, {
- "name" : "Service callbacks"
- }, {
- "description" : "API used to create or fetch the application configuration.",
+ "description" : "API used to create or fetch the application configuration.\n",
"name" : "Configuration"
} ],
"paths" : {
@@ -62,35 +64,37 @@
}
},
"description" : "OK- Service is living Ok"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Found"
}
},
+ "summary" : "Get Status (getStatus)",
"tags" : [ "Health Check" ]
}
},
- "/rics/ric" : {
+ "/rics/{ricId}" : {
"get" : {
- "description" : "Either a Near-RT RIC identity or a Managed Element identity can be specified.
The intention with Managed Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU).",
+ "description" : "Get information about a Near-RT RIC",
"operationId" : "getRic",
"parameters" : [ {
- "description" : "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.",
- "explode" : true,
- "in" : "query",
- "name" : "managedElementId",
- "required" : false,
- "schema" : {
- "type" : "string"
- },
- "style" : "form"
- }, {
"description" : "The identity of a Near-RT RIC to get information for.",
"explode" : true,
- "in" : "query",
+ "in" : "path",
"name" : "ricId",
- "required" : false,
+ "required" : true,
"schema" : {
+ "nullable" : false,
"type" : "string"
},
- "style" : "form"
+ "style" : "simple"
}, {
"description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
"explode" : false,
@@ -130,16 +134,16 @@
"description" : "Not Found"
}
},
- "summary" : "Returns info for one Near-RT RIC",
+ "summary" : "Get a Near-RT RIC (getRic)",
"tags" : [ "NearRT-RIC Repository" ]
}
},
"/rics" : {
"get" : {
- "description" : "The call returns all Near-RT RICs that supports a given policy type identity",
+ "description" : "Get all Near-RT RICs that supports a given A1 Policy Type ID",
"operationId" : "getRics",
"parameters" : [ {
- "description" : "The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned",
+ "description" : "The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned.\n",
"explode" : true,
"in" : "query",
"name" : "policyTypeId",
@@ -187,13 +191,13 @@
"description" : "Not Found"
}
},
- "summary" : "Query Near-RT RIC information",
+ "summary" : "Get Near-RT RICs for A1 Policy Type (getRics)",
"tags" : [ "NearRT-RIC Repository" ]
}
},
"/policy-types" : {
"get" : {
- "description" : "Query policy type identities",
+ "description" : "Query A1 Policy Type identities using query parameters",
"operationId" : "getPolicyTypes",
"parameters" : [ {
"description" : "Select types for the given Near-RT RIC identity.",
@@ -206,7 +210,7 @@
},
"style" : "form"
}, {
- "description" : "Select types with the given type name (type identity has the format )",
+ "description" : "Select types compatible with the given type name (type identity has the format 'typename_version')",
"explode" : true,
"in" : "query",
"name" : "typeName",
@@ -216,7 +220,7 @@
},
"style" : "form"
}, {
- "description" : "Select types that are compatible with the given version. This parameter is only applicable in conjunction with type_name. As an example version 1.9.1 is compatible with 1.0.0 but not the other way around. Matching types will be returned sorted in ascending order.",
+ "description" : "Select types that are compatible with the given version. This parameter is only applicable in conjunction with typeName. As an example version 1.9.1 is compatible with 1.0.0 but not the other way around. Matching types will be returned sorted in ascending order.\n",
"explode" : true,
"in" : "query",
"name" : "compatibleWithVersion",
@@ -241,6 +245,11 @@
"200" : {
"content" : {
"application/json" : {
+ "examples" : {
+ "PolicyTypeInformation" : {
+ "$ref" : "#/components/examples/PolicyTypeInformation"
+ }
+ },
"schema" : {
"items" : {
"$ref" : "#/components/schemas/PolicyTypeInformation"
@@ -309,7 +318,7 @@
}
}
},
- "description" : "Too Many Request"
+ "description" : "Too Many Requests"
},
"500" : {
"content" : {
@@ -342,12 +351,13 @@
"description" : "Service Unavailable"
}
},
+ "summary" : "Get A1 Policy Types (getPolicyTypes)",
"tags" : [ "A1 Policy Management" ]
}
},
"/policy-types/{policyTypeId}" : {
"get" : {
- "description" : "Returns a policy type definition",
+ "description" : "Get an A1 Policy Type definition using its policy type ID",
"operationId" : "getPolicyTypeDefinition",
"parameters" : [ {
"explode" : false,
@@ -375,16 +385,16 @@
"content" : {
"application/json" : {
"examples" : {
- "policyObject" : {
- "$ref" : "#/components/examples/PolicyObject"
+ "PolicyTypeObject" : {
+ "$ref" : "#/components/examples/PolicyTypeObject"
}
},
"schema" : {
- "$ref" : "#/components/schemas/PolicyObject"
+ "$ref" : "#/components/schemas/PolicyTypeObject"
}
}
},
- "description" : "OK - schema of the given policy type"
+ "description" : "OK - details and schema of the requested A1 Policy Type"
},
"400" : {
"content" : {
@@ -444,7 +454,7 @@
}
}
},
- "description" : "Too Many Request"
+ "description" : "Too Many Requests"
},
"500" : {
"content" : {
@@ -477,12 +487,13 @@
"description" : "Service Unavailable"
}
},
+ "summary" : "Get an A1 Policy Type definition (getPolicyTypeDefinition)",
"tags" : [ "A1 Policy Management" ]
}
},
"/policies/{policyId}" : {
"delete" : {
- "description" : "Deleting the policy using policyId.",
+ "description" : "Delete an existing A1 Policy instance using its policy ID.",
"operationId" : "deletePolicy",
"parameters" : [ {
"explode" : false,
@@ -507,7 +518,7 @@
} ],
"responses" : {
"204" : {
- "description" : "The created A1 policy was deleted"
+ "description" : "No Content"
},
"400" : {
"content" : {
@@ -549,13 +560,33 @@
},
"description" : "Not Found"
},
+ "405" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Method Not Allowed"
+ },
+ "406" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Acceptable"
+ },
"423" : {
"content" : {
"application/problem+json" : {
"example" : {
"status" : 423,
"title" : "Locked",
- "detail" : "State is Locked in the provided request."
+ "detail" : "State is Locked in the provided request."
},
"schema" : {
"$ref" : "#/components/schemas/ErrorInformation"
@@ -572,7 +603,7 @@
}
}
},
- "description" : "Too Many Request"
+ "description" : "Too Many Requests"
},
"500" : {
"content" : {
@@ -605,11 +636,11 @@
"description" : "Service Unavailable"
}
},
- "summary" : "Delete a policy",
+ "summary" : "Delete an A1 Policy instance (deletePolicy)",
"tags" : [ "A1 Policy Management" ]
},
"get" : {
- "description" : "Returns a policy",
+ "description" : "Get an A1 Policy instance's policy data using its policy ID",
"operationId" : "getPolicy",
"parameters" : [ {
"explode" : false,
@@ -706,7 +737,7 @@
}
}
},
- "description" : "Too Many Request"
+ "description" : "Too Many Requests"
},
"500" : {
"content" : {
@@ -739,11 +770,12 @@
"description" : "Service Unavailable"
}
},
+ "summary" : "Get an A1 Policy's policy data (getPolicy)",
"tags" : [ "A1 Policy Management" ]
},
"put" : {
- "description" : "update a policy",
- "operationId" : "putPolicy",
+ "description" : "Update an existing A1 Policy instance's policy data using its policy ID.",
+ "operationId" : "updatePolicy",
"parameters" : [ {
"explode" : false,
"in" : "path",
@@ -866,7 +898,7 @@
"example" : {
"status" : 423,
"title" : "Locked",
- "detail" : "State is Locked in the provided request."
+ "detail" : "State is Locked in the provided request."
},
"schema" : {
"$ref" : "#/components/schemas/ErrorInformation"
@@ -883,7 +915,138 @@
}
}
},
- "description" : "Too Many Request"
+ "description" : "Too Many Requests"
+ },
+ "500" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Internal Server Error"
+ },
+ "502" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Bad Gateway"
+ },
+ "503" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Service Unavailable"
+ }
+ },
+ "summary" : "Update an A1 Policy's policy data (updatePolicy)",
+ "tags" : [ "A1 Policy Management" ]
+ }
+ },
+ "/policies/{policyId}/status" : {
+ "get" : {
+ "description" : "Retrieve the status information for an A1 Policy Instance using its policy ID.",
+ "operationId" : "getPolicyStatus",
+ "parameters" : [ {
+ "explode" : false,
+ "in" : "path",
+ "name" : "policyId",
+ "required" : true,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "simple"
+ }, {
+ "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+ "explode" : false,
+ "in" : "header",
+ "name" : "Accept",
+ "required" : false,
+ "schema" : {
+ "example" : "application/json",
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/PolicyStatusObject"
+ }
+ }
+ },
+ "description" : "OK"
+ },
+ "400" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Bad Request"
+ },
+ "401" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Unauthorized"
+ },
+ "403" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Forbidden"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Found"
+ },
+ "406" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Acceptable"
+ },
+ "429" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Too Many Requests"
},
"500" : {
"content" : {
@@ -916,15 +1079,16 @@
"description" : "Service Unavailable"
}
},
+ "summary" : "Get an A1 Policy Instance's status (getPolicyStatus)",
"tags" : [ "A1 Policy Management" ]
}
},
"/policies" : {
"get" : {
- "description" : "Returns a list of A1 policies matching given search criteria.
If several query parameters are defined, the policies matching all conditions are returned.",
- "operationId" : "getAllPolicies",
+ "description" : "Returns a collection of A1 Policy Instance IDs for policies that match given search criteria. If several query parameters are defined, the policies matching all conditions are returned.\n",
+ "operationId" : "getPolicyIds",
"parameters" : [ {
- "description" : "Select policies of a given policy type identity.",
+ "description" : "Select policies with a given A1 Policy Type ID.",
"explode" : true,
"in" : "query",
"name" : "policyTypeId",
@@ -934,7 +1098,7 @@
},
"style" : "form"
}, {
- "description" : "Select policies of a given Near-RT RIC identity.",
+ "description" : "Select policies for a given Near-RT RIC identity.",
"explode" : true,
"in" : "query",
"name" : "nearRtRicId",
@@ -944,7 +1108,7 @@
},
"style" : "form"
}, {
- "description" : "Select policies owned by a given service.",
+ "description" : "Select policies owned by a given service (registered or unregistered).",
"explode" : true,
"in" : "query",
"name" : "serviceId",
@@ -954,7 +1118,7 @@
},
"style" : "form"
}, {
- "description" : "Select policies of types with the given type name (type identity has the format )",
+ "description" : "Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').",
"explode" : true,
"in" : "query",
"name" : "typeName",
@@ -1047,7 +1211,7 @@
}
}
},
- "description" : "Too Many Request"
+ "description" : "Too Many Requests"
},
"500" : {
"content" : {
@@ -1080,11 +1244,11 @@
"description" : "Service Unavailable"
}
},
- "summary" : "Query policy identities",
+ "summary" : "Query for A1 Policy instances (getPolicyIds)",
"tags" : [ "A1 Policy Management" ]
},
"post" : {
- "description" : "To create A1 policies",
+ "description" : "Create an A1 Policy Instance",
"operationId" : "createPolicy",
"requestBody" : {
"content" : {
@@ -1105,16 +1269,25 @@
}
}
},
- "description" : "Success case 201 created",
+ "description" : "Created",
"headers" : {
"Location" : {
- "description" : "Contains the URI of the newly created resource",
+ "description" : "Contains the URI of the newly created A1 Policy Instances. This URI includes the A1 Policy Instance ID for the newly created policy instance.\n",
"explode" : false,
"required" : true,
"schema" : {
"type" : "string"
},
"style" : "simple"
+ },
+ "Content-Type" : {
+ "description" : "Media Type of the response",
+ "explode" : false,
+ "schema" : {
+ "example" : "application/json",
+ "type" : "string"
+ },
+ "style" : "simple"
}
}
},
@@ -1158,6 +1331,16 @@
},
"description" : "Not Found"
},
+ "405" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Method Not Allowed"
+ },
"406" : {
"content" : {
"application/problem+json" : {
@@ -1168,13 +1351,43 @@
},
"description" : "Not Acceptable"
},
+ "409" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Conflict"
+ },
+ "413" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Payload Too Large"
+ },
+ "415" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Unsupported Media Type"
+ },
"423" : {
"content" : {
"application/problem+json" : {
"example" : {
"status" : 423,
"title" : "Locked",
- "detail" : "State is Locked in the provided request."
+ "detail" : "State is Locked in the provided request."
},
"schema" : {
"$ref" : "#/components/schemas/ErrorInformation"
@@ -1191,7 +1404,7 @@
}
}
},
- "description" : "Too Many Request"
+ "description" : "Too Many Requests"
},
"500" : {
"content" : {
@@ -1224,12 +1437,13 @@
"description" : "Service Unavailable"
}
},
+ "summary" : "Create an A1 Policy Instance (createPolicy)",
"tags" : [ "A1 Policy Management" ]
}
},
"/configuration" : {
"get" : {
- "description" : "Returns the contents of the application configuration",
+ "description" : "Returns the entire contents of the Application Configuration.",
"operationId" : "getConfiguration",
"responses" : {
"200" : {
@@ -1253,10 +1467,11 @@
"description" : "Not Found"
}
},
+ "summary" : "Get the Application Configuration (getConfiguration)",
"tags" : [ "Configuration" ]
},
"put" : {
- "description" : "Replace the current configuration file with the given configuration",
+ "description" : "Replace the current Application Configuration with a new configuration. The new configuration, if accepted, will take effect after a short delay. The new configuration must comply with the Application Configuration schema, which can be found from the the Application Documentation (Developer Guide)\n",
"operationId" : "putConfiguration",
"requestBody" : {
"content" : {
@@ -1271,7 +1486,7 @@
"responses" : {
"200" : {
"content" : {
- "*/*" : {
+ "application/json" : {
"schema" : {
"$ref" : "#/components/schemas/void"
}
@@ -1290,12 +1505,13 @@
"description" : "Bad Request"
}
},
+ "summary" : "Set/Replace the Application Configuration (putConfiguration)",
"tags" : [ "Configuration" ]
}
},
"/services/{serviceId}/keepalive" : {
"put" : {
- "description" : "A registered service should invoke this operation regularly to indicate that it is still alive. If a registered service fails to invoke this operation before the end of a timeout period the service will be deregistered and all its A1 policies wil be removed. (This timeout can be set or disabled when each service is initially registered)",
+ "description" : "A registered service should invoke this operation regularly to indicate that it is still alive. If a registered service fails to invoke some operation, or this operation, before the end of a timeout period the service will be deregistered and all its A1 policies wil be removed and the service is deleted. This operation is only intended for registered services. (This timeout can be set or disabled when each service is initially registered). Unregistered services do not need to invoke this operation, since the optional keep-alive monitoring feature can only be enabled for registered services.",
"operationId" : "keepAliveService",
"parameters" : [ {
"explode" : false,
@@ -1318,20 +1534,10 @@
},
"style" : "simple"
} ],
- "requestBody" : {
- "content" : {
- "application/json" : {
- "schema" : {
- "type" : "string"
- }
- }
- },
- "required" : false
- },
"responses" : {
"200" : {
"content" : {
- "*/*" : {
+ "application/json" : {
"schema" : {
"type" : "object"
}
@@ -1350,16 +1556,16 @@
"description" : "Not Found"
}
},
- "summary" : "Heartbeat indicates that the service is running",
+ "summary" : "Heartbeat message from a service (keepAliveService)",
"tags" : [ "Service Registry and Supervision" ]
}
},
"/services" : {
"get" : {
- "description" : "Either information about a registered service with given identity or all registered services are returned.",
+ "description" : "Get information about all registered services, or a single registered service. If the service ID of a registered service is included in the query, information about that service is returned. Otherwise Information about all registered is returned. This operation does not retrieve information about unregistered services.\n",
"operationId" : "getServices",
"parameters" : [ {
- "description" : "The identity of the service",
+ "description" : "The identity of the registered service",
"explode" : true,
"in" : "query",
"name" : "serviceId",
@@ -1407,7 +1613,7 @@
"description" : "Not Found"
}
},
- "summary" : "Returns service information",
+ "summary" : "Get Services (getServices)",
"tags" : [ "Service Registry and Supervision" ]
},
"put" : {
@@ -1415,7 +1621,7 @@
"RICStatus" : {
"{$request.body#/callback_url}" : {
"post" : {
- "description" : "The URL to this call is registered at Service registration.",
+ "description" : "Callouts to indicate Near-RT RIC status changes relevant for Services. \nThe URL invoked by this callback is provided at Service registration.\n",
"operationId" : "serviceCallback",
"requestBody" : {
"content" : {
@@ -1449,13 +1655,14 @@
"description" : "Not Found"
}
},
- "summary" : "Callback for Near-RT RIC status",
- "tags" : [ "Service callbacks" ]
+ "summary" : "Callback for Near-RT RIC status (serviceCallback)",
+ "tags" : [ "Service Registry and Supervision" ],
+ "x-callback-request" : true
}
}
}
},
- "description" : "Registering a service is needed to:- Get callbacks about available NearRT RICs.
- Activate supervision of the service. If a service is inactive, its policies will automatically be deleted.
Policies can be created even if the service is not registerred. This is a feature which it is optional to use.",
+ "description" : "Register a single service, or update a previous registration. Service registration is required to get callbacks about available NearRT RICs and to enable supervision of the service's active status. If a registered service becomes inactive, its policies can be automatically deleted. A1 Policy instances can also be created for unregistered services. If an unregistered service is later registered, the service's policies are retained when the service becomes registered. This feature is optional to use.\n",
"operationId" : "putService",
"requestBody" : {
"content" : {
@@ -1470,7 +1677,7 @@
"responses" : {
"200" : {
"content" : {
- "*/*" : {
+ "application/json" : {
"schema" : {
"type" : "object"
}
@@ -1480,7 +1687,7 @@
},
"201" : {
"content" : {
- "*/*" : {
+ "application/json" : {
"schema" : {
"type" : "object"
}
@@ -1499,13 +1706,13 @@
"description" : "Bad Request"
}
},
- "summary" : "Register a service",
+ "summary" : "Register or update a Service (putService)",
"tags" : [ "Service Registry and Supervision" ]
}
},
"/services/{serviceId}" : {
"delete" : {
- "description" : "Unregister a service",
+ "description" : "Unregister a registered Service using its service ID. Only registered services can be unregistered. All A1 Policy Instances for the previously registered service will be removed.\n",
"operationId" : "deleteService",
"parameters" : [ {
"explode" : false,
@@ -1531,7 +1738,7 @@
"responses" : {
"204" : {
"content" : {
- "*/*" : {
+ "application/json" : {
"schema" : {
"type" : "object"
}
@@ -1550,67 +1757,91 @@
"description" : "Not Found"
}
},
+ "summary" : "Unregister a Service (deleteService)",
"tags" : [ "Service Registry and Supervision" ]
}
}
},
"components" : {
"examples" : {
- "ServiceStatusList" : {
- "description" : "List of service information",
- "value" : {
- "serviceList" : [ {
- "callbackUrl" : "callbackUrl",
- "serviceId" : "serviceId",
- "keepAliveIntervalSeconds" : 0,
- "timeSinceLastActivitySeconds" : 6
- }, {
- "callbackUrl" : "callbackUrl",
- "serviceId" : "serviceId",
- "keepAliveIntervalSeconds" : 0,
- "timeSinceLastActivitySeconds" : 6
- } ]
- }
- },
- "PolicyStatusInfo" : {
- "description" : "Status for one A1-P Policy",
- "value" : {
- "lastModified" : "last_modified",
- "status" : {
- "value" : {
- "status" : "status"
- }
- }
- }
- },
"StatusInfo" : {
"value" : {
- "status" : "status"
+ "status" : "success"
}
},
"RicInfo" : {
"value" : {
- "ricId" : "ricId",
- "managedElementIds" : [ "managedElementId", "managedElementId" ],
+ "ricId" : "ricId1",
+ "managedElementIds" : [ "Note #1", "Athlone small cells", "Some optional string" ],
"state" : "UNAVAILABLE",
- "policyTypeIds" : [ "policyTypeId", "policyTypeId" ]
+ "policyTypeIds" : [ "policyTypeId1", "policyTypeId2" ]
}
},
"RicInfoList" : {
"value" : {
"rics" : [ {
- "ricId" : "ricId",
- "managedElementIds" : [ "managedElementId", "managedElementId" ],
+ "ricId" : "ricId1",
+ "managedElementIds" : [ "Note #1", "Athlone small cells", "Fake Cells" ],
"state" : "UNAVAILABLE",
- "policyTypeIds" : [ "policyTypeId", "policyTypeId" ]
+ "policyTypeIds" : [ "policyTypeId1", "policyTypeId2" ]
}, {
- "ricId" : "ricId",
- "managedElementIds" : [ "managedElementId", "managedElementId" ],
+ "ricId" : "ricId2",
+ "managedElementIds" : [ "My test element", "Another test element" ],
"state" : "UNAVAILABLE",
- "policyTypeIds" : [ "policyTypeId", "policyTypeId" ]
+ "policyTypeIds" : [ "policyTypeId3", "policyTypeId4" ]
} ]
}
},
+ "PolicyTypeInformation" : {
+ "value" : [ {
+ "policyTypeId" : "STD_QOS2_0.1.0",
+ "nearRtRicId" : "ric_g3_2"
+ }, {
+ "policyTypeId" : "STD_QOS_0_2_0",
+ "nearRtRicId" : "ric_g3_2"
+ }, {
+ "policyTypeId" : "STD_QOS2_0.1.0",
+ "nearRtRicId" : "ric_g3_1"
+ }, {
+ "policyTypeId" : "STD_QOS_0_2_0",
+ "nearRtRicId" : "ric_g3_1"
+ } ]
+ },
+ "PolicyTypeObject" : {
+ "value" : {
+ "policySchema" : {
+ "$schema" : "http://json-schema.org/draft-07/schema#",
+ "title" : "STD_QOS_0_2_0",
+ "description" : "STD QOS2 policy type",
+ "type" : "object",
+ "properties" : {
+ "scope" : {
+ "type" : "object",
+ "properties" : {
+ "ueId" : {
+ "type" : "string"
+ },
+ "qosId" : {
+ "type" : "string"
+ }
+ },
+ "additionalProperties" : false,
+ "required" : [ "ueId", "qosId" ]
+ },
+ "qosObjectives" : {
+ "type" : "object",
+ "properties" : {
+ "priorityLevel" : {
+ "type" : "number"
+ }
+ },
+ "additionalProperties" : false,
+ "required" : [ "priorityLevel" ]
+ }
+ }
+ }
+ }
+ },
"PolicyObject" : {
"value" : {
"scope" : {
@@ -1652,10 +1883,26 @@
"pdb" : 50
}
}
+ },
+ "ServiceStatusList" : {
+ "description" : "List of service information",
+ "value" : {
+ "serviceList" : [ {
+ "callbackUrl" : "http://callback.url",
+ "serviceId" : "serviceId1",
+ "keepAliveIntervalSeconds" : 0,
+ "timeSinceLastActivitySeconds" : 6
+ }, {
+ "callbackUrl" : "http://callback.url",
+ "serviceId" : "serviceId2",
+ "keepAliveIntervalSeconds" : 500,
+ "timeSinceLastActivitySeconds" : 401
+ } ]
+ }
}
},
"responses" : {
- "400" : {
+ "404" : {
"content" : {
"application/problem+json" : {
"schema" : {
@@ -1663,9 +1910,9 @@
}
}
},
- "description" : "Bad Request"
+ "description" : "Not Found"
},
- "401" : {
+ "400" : {
"content" : {
"application/problem+json" : {
"schema" : {
@@ -1673,9 +1920,9 @@
}
}
},
- "description" : "Unauthorized"
+ "description" : "Bad Request"
},
- "403" : {
+ "401" : {
"content" : {
"application/problem+json" : {
"schema" : {
@@ -1683,9 +1930,9 @@
}
}
},
- "description" : "Forbidden"
+ "description" : "Unauthorized"
},
- "404" : {
+ "403" : {
"content" : {
"application/problem+json" : {
"schema" : {
@@ -1693,9 +1940,9 @@
}
}
},
- "description" : "Not Found"
+ "description" : "Forbidden"
},
- "405" : {
+ "406" : {
"content" : {
"application/problem+json" : {
"schema" : {
@@ -1703,9 +1950,9 @@
}
}
},
- "description" : "Method Not Allowed"
+ "description" : "Not Acceptable"
},
- "406" : {
+ "429" : {
"content" : {
"application/problem+json" : {
"schema" : {
@@ -1713,9 +1960,9 @@
}
}
},
- "description" : "Not Acceptable"
+ "description" : "Too Many Requests"
},
- "409" : {
+ "500" : {
"content" : {
"application/problem+json" : {
"schema" : {
@@ -1723,9 +1970,9 @@
}
}
},
- "description" : "Conflict"
+ "description" : "Internal Server Error"
},
- "411" : {
+ "502" : {
"content" : {
"application/problem+json" : {
"schema" : {
@@ -1733,9 +1980,9 @@
}
}
},
- "description" : "Length Required"
+ "description" : "Bad Gateway"
},
- "413" : {
+ "503" : {
"content" : {
"application/problem+json" : {
"schema" : {
@@ -1743,9 +1990,9 @@
}
}
},
- "description" : "Payload Too Large"
+ "description" : "Service Unavailable"
},
- "415" : {
+ "411" : {
"content" : {
"application/problem+json" : {
"schema" : {
@@ -1753,9 +2000,9 @@
}
}
},
- "description" : "Unsupported Media Type"
+ "description" : "Length Required"
},
- "429" : {
+ "413" : {
"content" : {
"application/problem+json" : {
"schema" : {
@@ -1763,9 +2010,9 @@
}
}
},
- "description" : "Too Many Request"
+ "description" : "Payload Too Large"
},
- "500" : {
+ "415" : {
"content" : {
"application/problem+json" : {
"schema" : {
@@ -1773,19 +2020,24 @@
}
}
},
- "description" : "Internal Server Error"
+ "description" : "Unsupported Media Type"
},
- "502" : {
+ "Locked" : {
"content" : {
"application/problem+json" : {
+ "example" : {
+ "status" : 423,
+ "title" : "Locked",
+ "detail" : "State is Locked in the provided request."
+ },
"schema" : {
- "$ref" : "#/components/schemas/ProblemDetails"
+ "$ref" : "#/components/schemas/ErrorInformation"
}
}
},
- "description" : "Bad Gateway"
+ "description" : "Locked - HTTP Status code which can be used when the state is Locked"
},
- "503" : {
+ "405" : {
"content" : {
"application/problem+json" : {
"schema" : {
@@ -1793,152 +2045,88 @@
}
}
},
- "description" : "Service Unavailable"
+ "description" : "Method Not Allowed"
},
- "Locked" : {
+ "409" : {
"content" : {
"application/problem+json" : {
- "example" : {
- "status" : 423,
- "title" : "Locked",
- "detail" : "State is Locked in the provided request."
- },
"schema" : {
- "$ref" : "#/components/schemas/ErrorInformation"
+ "$ref" : "#/components/schemas/ProblemDetails"
}
}
},
- "description" : "Locked - HTTP Status code which can be used when the state is Locked"
+ "description" : "Conflict"
}
},
"schemas" : {
- "PolicyTypeInformation" : {
- "description" : "Available policy types and for each policy type identifier the Near-RT RIC identifiers of those Near-RT RICs that support the related A1 policy type",
+ "StatusInfo" : {
+ "example" : {
+ "status" : "status"
+ },
"properties" : {
- "policyTypeId" : {
- "description" : "Identity of the policy type",
+ "status" : {
+ "description" : "Status text",
"type" : "string"
- },
- "nearRtRicId" : {
- "$ref" : "#/components/schemas/NearRtRicId"
}
},
- "required" : [ "nearRtRicId", "policyTypeId" ],
"type" : "object"
},
- "PolicyObjectInformation" : {
- "description" : "Information related to the creation of the policy",
+ "ProblemDetails" : {
+ "description" : "Object to carry details about a problem in an HTTP response according to IETF RFC 7807",
"properties" : {
- "nearRtRicId" : {
- "description" : "identity of the target Near-RT RIC",
- "example" : "Near-RT-Ric-ID",
- "type" : "string"
- },
- "transient" : {
- "default" : false,
- "description" : "if true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.",
- "nullable" : false,
- "type" : "boolean"
- },
- "policyId" : {
- "description" : "identity of the Policy",
- "example" : "POLICY-ID",
+ "type" : {
+ "description" : "URI reference according to IETF RFC 3986 that identifies the problem type",
"type" : "string"
},
- "serviceId" : {
- "description" : "the identity of the service owning the policy. This can be used to group the policies (it is possible to get all policies associated to a service). Note that the service does not need to be registered.",
- "example" : "rApp ID",
+ "title" : {
+ "description" : "Human-readable summary of the problem type",
"type" : "string"
},
- "policyObject" : {
- "$ref" : "#/components/schemas/PolicyObject"
+ "status" : {
+ "description" : "HTTP status code",
+ "type" : "number"
},
- "policyTypeId" : {
- "description" : "identity of the policy type",
- "example" : "ORAN_QOS_1.0.0(typeName_SemVersion)",
- "type" : "string"
- }
- },
- "required" : [ "nearRtRicId", "policyObject", "policyTypeId" ],
- "type" : "object"
- },
- "ErrorInformation" : {
- "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807",
- "properties" : {
"detail" : {
- "description" : " A human-readable explanation specific to this occurrence of the problem.",
- "example" : "Policy type not found",
+ "description" : "Human-readable explanation",
"type" : "string"
},
- "title" : {
- "description" : "A specific error name",
- "example" : "Not Found",
- "type" : "string"
- },
- "status" : {
- "description" : "The HTTP status code generated by the origin server for this occurrence of the problem. ",
- "example" : 404,
- "format" : "int32",
- "type" : "integer"
- }
- },
- "type" : "object"
- },
- "PolicyObject" : {
- "description" : "Policy Object is a JSON representation of an A1 policy",
- "type" : "object"
- },
- "void" : {
- "description" : "Void/empty",
- "type" : "object"
- },
- "StatusInfo" : {
- "properties" : {
- "status" : {
- "description" : "status text",
+ "instance" : {
+ "description" : "URI reference that identifies the specific occurrence of the problem",
"type" : "string"
}
},
"type" : "object"
},
- "AuthorizationResult" : {
- "description" : "Result of authorization",
- "example" : {
- "result" : true
- },
- "properties" : {
- "result" : {
- "description" : "If true, the access is granted",
- "type" : "boolean"
- }
- },
- "required" : [ "result" ],
- "type" : "object"
- },
"RicInfo" : {
"description" : "Information for a Near-RT RIC",
+ "example" : {
+ "ricId" : "ricId",
+ "policyTypeIds" : [ "policyTypeIds", "policyTypeIds" ],
+ "managedElementIds" : [ "managedElementIds", "managedElementIds" ],
+ "state" : "UNAVAILABLE"
+ },
"properties" : {
"ricId" : {
- "description" : "identity of the Near-RT RIC",
+ "description" : "Identity of the Near-RT RIC",
"type" : "string"
},
"managedElementIds" : {
- "description" : "O1 identities for managed entities",
+ "description" : "Identities for managed entities",
"items" : {
- "description" : "O1 identities for managed entities",
+ "description" : "Identity for a managed entity",
"type" : "string"
},
"type" : "array"
},
"state" : {
- "description" : "Represents the states for a Near-RT RIC",
+ "description" : "Represents the state of a Near-RT RIC",
"enum" : [ "UNAVAILABLE", "AVAILABLE", "SYNCHRONIZING", "CONSISTENCY_CHECK" ],
"type" : "string"
},
"policyTypeIds" : {
- "description" : "supported policy types",
+ "description" : "Supported A1 Policy Types",
"items" : {
- "description" : "supported policy types",
+ "description" : "Supported A1 Policy Type ID",
"type" : "string"
},
"type" : "array"
@@ -1946,128 +2134,243 @@
},
"type" : "object"
},
- "ServiceRegistrationInfo" : {
- "description" : "Information for one service",
+ "RicInfoList" : {
+ "description" : "Collection of Near-RT RIC information objects",
+ "example" : {
+ "rics" : [ {
+ "ricId" : "ricId",
+ "policyTypeIds" : [ "policyTypeIds", "policyTypeIds" ],
+ "managedElementIds" : [ "managedElementIds", "managedElementIds" ],
+ "state" : "UNAVAILABLE"
+ }, {
+ "ricId" : "ricId",
+ "policyTypeIds" : [ "policyTypeIds", "policyTypeIds" ],
+ "managedElementIds" : [ "managedElementIds", "managedElementIds" ],
+ "state" : "UNAVAILABLE"
+ } ]
+ },
"properties" : {
- "callbackUrl" : {
- "description" : "callback for notifying of Near-RT RIC state changes",
+ "rics" : {
+ "description" : "List of Near-RT RIC information objects",
+ "items" : {
+ "$ref" : "#/components/schemas/RicInfo"
+ },
+ "type" : "array"
+ }
+ },
+ "type" : "object"
+ },
+ "PolicyTypeInformation" : {
+ "description" : "A data tuple to indicate that an identified A1 Policy Type is supported at an identified Near-RT RIC.",
+ "example" : {
+ "policyTypeId" : "STD_QOS2_0.1.0",
+ "nearRtRicId" : "ric_g3_2"
+ },
+ "properties" : {
+ "policyTypeId" : {
+ "description" : "A1 Policy Type identifier",
"type" : "string"
},
- "serviceId" : {
- "description" : "identity of the service",
+ "nearRtRicId" : {
+ "description" : "Identity of the Near-RT RIC",
"type" : "string"
- },
- "keepAliveIntervalSeconds" : {
- "description" : "keep alive interval for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled.",
- "format" : "int64",
- "type" : "integer"
}
},
- "required" : [ "serviceId" ],
+ "required" : [ "nearRtRicId", "policyTypeId" ],
"type" : "object"
},
- "PolicyStatusInfo" : {
- "description" : "Status for one A1-P Policy",
+ "NearRtRicId" : {
+ "description" : "Identity of the Near-RT RIC",
+ "type" : "string"
+ },
+ "PolicyTypeObject" : {
+ "description" : "An A1 Policy Type, as defined in O-RAN Alliance A1TD",
+ "example" : {
+ "policySchema" : {
+ "$schema" : "http://json-schema.org/draft-07/schema#",
+ "title" : "STD_QOS_0_2_0",
+ "description" : "Policy data schema for STD_QOS_0.2.0 A1 Policy Instances.",
+ "type" : "object",
+ "properties" : {
+ "scope" : {
+ "type" : "object",
+ "properties" : {
+ "ueId" : {
+ "type" : "string"
+ },
+ "qosId" : {
+ "type" : "string"
+ }
+ },
+ "additionalProperties" : false,
+ "required" : [ "ueId", "qosId" ]
+ },
+ "qosObjectives" : {
+ "type" : "object",
+ "properties" : {
+ "priorityLevel" : {
+ "type" : "number"
+ }
+ },
+ "additionalProperties" : false,
+ "required" : [ "priorityLevel" ]
+ }
+ }
+ },
+ "statusSchema" : {
+ "$schema" : "http://json-schema.org/draft-07/schema#",
+ "title" : "STD_QOS_0.2.0",
+ "description" : "Status schema for STD_QOS_0.2.0 A1 Policy Instances.",
+ "type" : "object",
+ "properties" : {
+ "enforceStatus" : {
+ "type" : "string"
+ },
+ "enforceReason" : {
+ "type" : "string"
+ },
+ "additionalProperties" : false,
+ "required" : [ "enforceStatus" ]
+ }
+ }
+ },
"properties" : {
- "lastModified" : {
- "description" : "timestamp, last modification time",
- "type" : "string"
+ "policySchema" : {
+ "description" : "A schema to define the policy data contents of A1 Policy Instances. Policy data schemas are Policy Type specific. All A1 Policy Instances of an A1 Policy Type should comply with the type's policy data schema.\n",
+ "type" : "object"
},
- "status" : {
- "description" : "the Policy status",
+ "statusSchema" : {
+ "description" : "A schema to define the contents of the status information for A1 Policy Instances. Status schemas are Policy Type specific. All status information for all A1 Policy Instances of an A1 Policy Type should comply with the type's status schema.\n",
"type" : "object"
}
},
+ "required" : [ "policySchema" ],
"type" : "object"
},
- "ServiceStatus" : {
+ "PolicySchema" : {
+ "description" : "A schema to define the policy data contents of A1 Policy Instances. Policy data schemas are Policy Type specific. All A1 Policy Instances of an A1 Policy Type should comply with the type's policy data schema.\n",
+ "type" : "object"
+ },
+ "StatusSchema" : {
+ "description" : "A schema to define the contents of the status information for A1 Policy Instances. Status schemas are Policy Type specific. All status information for all A1 Policy Instances of an A1 Policy Type should comply with the type's status schema.\n",
+ "type" : "object"
+ },
+ "PolicyObject" : {
+ "description" : "Policy Object is a JSON representation policy data for an A1 Policy Instance. The schema for this policy data is defined in the corresponding A1 Policy Type.\n",
+ "type" : "object"
+ },
+ "ErrorInformation" : {
+ "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807",
"properties" : {
- "callbackUrl" : {
- "description" : "callback for notifying of RIC synchronization",
+ "detail" : {
+ "description" : "A human-readable explanation specific to this occurrence of the problem.",
+ "example" : "Policy type not found",
"type" : "string"
},
- "serviceId" : {
- "description" : "identity of the service",
+ "title" : {
+ "description" : "A specific error name",
+ "example" : "Not Found",
"type" : "string"
},
- "keepAliveIntervalSeconds" : {
- "description" : "policy keep alive timeout",
- "format" : "int64",
- "type" : "integer"
- },
- "timeSinceLastActivitySeconds" : {
- "description" : "time since last invocation by the service",
- "format" : "int64",
+ "status" : {
+ "description" : "The HTTP status code generated by the origin server for this occurrence of the problem.\n",
+ "example" : 404,
+ "format" : "int32",
"type" : "integer"
}
},
"type" : "object"
},
- "RicInfoList" : {
- "description" : "List of Near-RT RIC information",
- "properties" : {
- "rics" : {
- "description" : "List of Near-RT RIC information",
- "items" : {
- "$ref" : "#/components/schemas/RicInfo"
- },
- "type" : "array"
- }
- },
+ "PolicyStatusObject" : {
+ "description" : "A generic policy status object that can be used to transport any policy status. Additionally, a schema for policy status can be defined in the corresponding A1 Policy Type.\n",
"type" : "object"
},
- "input" : {
- "description" : "input",
+ "PolicyInformation" : {
+ "description" : "Information tuple for a single A1 Policy Instance. Contains the A1 Policy Instance ID, and the ID of the Near-RT RIC where the policy is created.\n",
+ "example" : {
+ "policyId" : "policyId",
+ "nearRtRicId" : "nearRtRicId"
+ },
"properties" : {
- "accessType" : {
- "description" : "Access type",
- "enum" : [ "READ", "WRITE", "DELETE" ],
- "type" : "string"
- },
- "authToken" : {
- "description" : "Authorization token",
+ "policyId" : {
+ "description" : "Identity of the A1 Policy Instance",
"type" : "string"
},
- "policyTypeId" : {
- "description" : "Policy type identifier",
+ "nearRtRicId" : {
+ "description" : "Identity of the Near-RT RIC",
"type" : "string"
}
},
- "required" : [ "accessType", "authToken", "policyTypeId" ],
+ "required" : [ "nearRtRicId", "policyId" ],
"type" : "object"
},
- "PolicyAuthorization" : {
- "description" : "Authorization request for A1 policy requests",
- "properties" : {
- "input" : {
- "$ref" : "#/components/schemas/input"
- }
+ "PolicyObjectInformation" : {
+ "description" : "Information to create an A1 Policy Instance",
+ "example" : {
+ "policyId" : "POLICY-ID1",
+ "nearRtRicId" : "Near-RT-Ric-ID1",
+ "transient" : false,
+ "policyObject" : "{}",
+ "serviceId" : "rApp 1",
+ "policyTypeId" : "ORAN_QOS_1.0.0 '(typeName_SemVersion)'"
},
- "required" : [ "input" ],
- "type" : "object"
- },
- "NearRtRicId" : {
- "description" : "Identity of the policy",
- "type" : "string"
- },
- "PolicyInformation" : {
- "description" : "Near-RT RIC identifiers where A1 policies exist and for each Near-RT RIC identifier the policy identifiers of those policies that exist in that Near-RT RIC",
"properties" : {
+ "nearRtRicId" : {
+ "description" : "Identity of the target Near-RT RIC",
+ "example" : "Near-RT-Ric-ID1",
+ "type" : "string"
+ },
+ "transient" : {
+ "default" : false,
+ "description" : "If true, the policy is automatically deleted if the targeted Near-RT RIC restarts or recovers. If false, the A1 Policy Instance remains, and is re-pushed to the targeted Near-RT RIC after a restart or recovery. If false, the A1 Policy Instance is maintained and must be deleted separately in the event of Near-RT RIC restart or recovery. Default is false.\n",
+ "nullable" : false,
+ "type" : "boolean"
+ },
"policyId" : {
- "description" : "Identity of the policy",
+ "description" : "An optional identity to be used for the new A1 Policy Instance. If this value is present, it must be unique. If not present the new A1 Policy Instance will be assigned a newly generated unique ID, and the new ID can be extracted from the 'Location' header in the response.\n",
+ "example" : "POLICY-ID1",
"type" : "string"
},
- "nearRtRicId" : {
- "$ref" : "#/components/schemas/NearRtRicId"
+ "serviceId" : {
+ "default" : "",
+ "description" : "the identity of the service owning the policy. This can be used to group the policies (it is possible to get all policies associated to a service). Note that the service does not need to be registered. If the service is registered, the newly created A1 Policy Instance will be subject to the same supervision rules as the the service's other policies.",
+ "example" : "rApp 1",
+ "type" : "string"
+ },
+ "policyObject" : {
+ "description" : "Policy Object is a JSON representation policy data for an A1 Policy Instance. The schema for this policy data is defined in the corresponding A1 Policy Type.\n",
+ "type" : "object"
+ },
+ "policyTypeId" : {
+ "description" : "A1 Policy Type identity",
+ "example" : "ORAN_QOS_1.0.0 '(typeName_SemVersion)'",
+ "type" : "string"
}
},
- "required" : [ "nearRtRicId", "policyId" ],
+ "required" : [ "nearRtRicId", "policyObject", "policyTypeId" ],
+ "type" : "object"
+ },
+ "void" : {
+ "description" : "Void/empty",
"type" : "object"
},
"ServiceStatusList" : {
+ "example" : {
+ "serviceList" : [ {
+ "keepAliveIntervalSeconds" : 0,
+ "callbackUrl" : "callbackUrl",
+ "timeSinceLastActivitySeconds" : 6,
+ "serviceId" : "serviceId"
+ }, {
+ "keepAliveIntervalSeconds" : 0,
+ "callbackUrl" : "callbackUrl",
+ "timeSinceLastActivitySeconds" : 6,
+ "serviceId" : "serviceId"
+ } ]
+ },
"properties" : {
"serviceList" : {
- "description" : "List of service information",
+ "description" : "List of Service Status objects, describing a collection of registered services.",
"items" : {
"$ref" : "#/components/schemas/ServiceStatus"
},
@@ -2076,57 +2379,79 @@
},
"type" : "object"
},
- "ServiceCallbackInfo" : {
- "description" : "Information transferred as in Service callbacks (callback_url)",
+ "ServiceStatus" : {
+ "description" : "Information about a previously registered service",
+ "example" : {
+ "keepAliveIntervalSeconds" : 0,
+ "callbackUrl" : "callbackUrl",
+ "timeSinceLastActivitySeconds" : 6,
+ "serviceId" : "serviceId"
+ },
"properties" : {
- "ricId" : {
- "description" : "identity of a Near-RT RIC",
+ "callbackUrl" : {
+ "description" : "Callback URL for notifying of Near-RT RIC state changes",
"type" : "string"
},
- "eventType" : {
- "description" : "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management",
- "enum" : [ "AVAILABLE" ],
+ "serviceId" : {
+ "description" : "Identity of the service",
"type" : "string"
+ },
+ "keepAliveIntervalSeconds" : {
+ "description" : "Keep alive interval (seconds) for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled.\n",
+ "format" : "int64",
+ "type" : "integer"
+ },
+ "timeSinceLastActivitySeconds" : {
+ "description" : "Time (seconds) since last recorded operation by the service",
+ "format" : "int64",
+ "type" : "integer"
}
},
- "required" : [ "eventType", "ricId" ],
"type" : "object"
},
- "Link" : {
+ "ServiceRegistrationInfo" : {
+ "description" : "Information for a service to be registered",
+ "example" : {
+ "keepAliveIntervalSeconds" : 0,
+ "callbackUrl" : "callbackUrl",
+ "serviceId" : "serviceId"
+ },
"properties" : {
- "templated" : {
- "type" : "boolean"
+ "callbackUrl" : {
+ "description" : "Callback URL for notifying of Near-RT RIC state changes",
+ "type" : "string"
},
- "href" : {
+ "serviceId" : {
+ "description" : "Identity of the service",
"type" : "string"
+ },
+ "keepAliveIntervalSeconds" : {
+ "description" : "Keep alive interval for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled.\n",
+ "format" : "int64",
+ "type" : "integer"
}
},
+ "required" : [ "serviceId" ],
"type" : "object"
},
- "ProblemDetails" : {
- "description" : "A problem detail to carry details in an HTTP response according to RFC 7807",
+ "ServiceCallbackInfo" : {
+ "description" : "Information transferred in Service callbacks, \nif a callback URL was provided for a registered service\n",
+ "example" : {
+ "ricId" : "ricId",
+ "eventType" : "AVAILABLE"
+ },
"properties" : {
- "type" : {
- "description" : "a URI reference according to IETF RFC 3986 that identifies the problem type",
- "type" : "string"
- },
- "title" : {
- "description" : "human-readable summary of the problem type",
- "type" : "string"
- },
- "status" : {
- "description" : "the HTTP status code",
- "type" : "number"
- },
- "detail" : {
- "description" : "human-readable explanation ",
+ "ricId" : {
+ "description" : "Identity of a Near-RT RIC",
"type" : "string"
},
- "instance" : {
- "description" : "URI reference that identifies the specific occurrence of the problem",
+ "eventType" : {
+ "description" : "values: \n AVAILABLE: the Near-RT RIC has become available for A1 Policy management\n",
+ "enum" : [ "AVAILABLE" ],
"type" : "string"
}
},
+ "required" : [ "eventType", "ricId" ],
"type" : "object"
}
}
diff --git a/api/pms-api-v3.json b/api/pms-api-v3.json
index c844073..38f3c62 100644
--- a/api/pms-api-v3.json
+++ b/api/pms-api-v3.json
@@ -2,44 +2,46 @@
"openapi" : "3.0.3",
"info" : {
"contact" : {
- "email" : "discuss-list@onap.com",
- "url" : "https://www.onap.org/"
+ "email" : "discuss@lists.o-ran-sc.org",
+ "url" : "https://o-ran-sc.org//"
},
- "description" : "General
The O-RAN Non-RT RIC Policy Management Service provides a REST API for managemecnt of A1 policies.
The main tasks of the service are:
- A1 Policy creation, modification and deletion.
- Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs
- Maintaining a view of supported Near-RT RIC policy types
- Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.
APIs provided or defined by the service
A1 Policy Management
This is an API for management of A1 Policies.
- A1 Policy retrieval, creation, modification and deletion.
- Retrieval of supported A1 Policy types for a Near-RT RIC
- Retrieval of status for existing A1 policies
Management of configuration
API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.
Service callbacks
These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.
NearRT-RIC Repository
This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.
Health Check
API used for supervision of the PMS component.
Service Registry and Supervision
API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.
Authorization API
API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.
",
+ "description" : "General
The ORAN SC A1 Policy Management Service provides a REST API for managing A1 policies.
This document describes the latest API set to perform tasks for:
- A1 Policy creation, modification and deletion.
- Monitoring and maintaining consistency of the SMO view of A1 Policies and the Near-RT RICs
- Maintaining a view of each Near-RT RIC's supported A1 Policy Types
- Supervision of registered services (rApps). When a registered service is unavailable, its policies are removed.
APIs provided or defined by the service
Note: parts of this API are strongly based on extracts of the O-RAN Alliance R1 Interface specification for A1 Policy Management, and those parts should be considered '© O-RAN ALLIANCE - All rights reserved.'
A1 Policy Management
This is the latest API for managing A1 Policies. This API is partially compliant with O-RAN Alliance R1 Interface specifications for A1 Policy Management:
- A1 Policy retrieval, creation, modification and deletion.
- Retrieval of supported A1 Policy Types for a Near-RT RIC
- Retrieval of status for existing A1 policies
Management of configuration
API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.
Service Callbacks
These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.
NearRT-RIC Repository (Older version)
This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted towards one Near-RT RIC.
Health Check
API used for supervision of the A1 Policy Management Service.
Service Registry and Supervision
API used for registering services/clients/rApps. Each A1 Policy can be tagged with an owner. If the owner service is registered, then the service can be optionally monitored by a heart-beat supervision mechanism, and if the registered service becomes unavailable, then it is removed and all its A1 Policies are deleted. Note that services do not need to be registered to create A1 Policies, but unregistered services are not supervised. This is a feature that is optional to use.
",
"license" : {
- "name" : "Copyright (C) 2024 OpenInfra Foundation Europe. Licensed under the Apache License.",
+ "name" : "Copyright (C) 2024 - 2025 OpenInfra Foundation Europe. Licensed under the Apache 2 License.",
"url" : "http://www.apache.org/licenses/LICENSE-2.0"
},
- "title" : "A1 policy management API",
+ "title" : "OSC - A1 Policy Management API",
"version" : "1.0.0",
- "x-api-id" : "a31c510b-20e6-4a08-af16-368c44d7fba8",
+ "x-api-id" : "e9776a07-0813-4fca-9801-6f892f0a7c13",
"x-audience" : "external-public"
},
+ "externalDocs" : {
+ "description" : "Based on parts of O-RAN ALLIANCE specification: O-RAN.WG2.R1AP-v07.00",
+ "url" : "https://www.o-ran.org/specifications"
+ },
"servers" : [ {
"url" : "{apiRoot}/a1-policy-management/v1",
"variables" : {
"apiRoot" : {
"default" : "https://example.com",
- "description" : "This is the Host:Port or Address where the A1-Policy Management Service can be accessed"
+ "description" : "This is the Host:Port or Address where the A1-Policy Management Service can be accessed. Note: This URL path format aligns with the O-RAN Alliance R1-AP specifications for A1 Policy Management"
}
}
} ],
"tags" : [ {
- "description" : "API used to create polices, Policy Instances and get them as individual using an ID or get all policies/Instances.",
+ "description" : "API used to get, create, update and delete A1 Policy Instances. Also used to query A1 Policy Types.\n",
"name" : "A1 Policy Management"
}, {
- "description" : "API used to get the NearRT-RIC for the managed element.",
+ "description" : "API used to get information about registered Near-RT RICs.\n",
"name" : "NearRT-RIC Repository"
}, {
- "description" : "API used to keep the service Alive with in the timeout period",
+ "description" : "API used to manage registered services, and control their keep-alive status via heart-beat messages.\n",
"name" : "Service Registry and Supervision"
}, {
- "description" : "API used to get the health status and statistics of this service",
+ "description" : "API used to get the health status and statistics of this service.\n",
"name" : "Health Check"
}, {
- "name" : "Service callbacks"
- }, {
- "description" : "API used to create or fetch the application configuration.",
+ "description" : "API used to create or fetch the application configuration.\n",
"name" : "Configuration"
} ],
"paths" : {
@@ -62,35 +64,37 @@
}
},
"description" : "OK- Service is living Ok"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Found"
}
},
+ "summary" : "Get Status (getStatus)",
"tags" : [ "Health Check" ]
}
},
- "/rics/ric" : {
+ "/rics/{ricId}" : {
"get" : {
- "description" : "Either a Near-RT RIC identity or a Managed Element identity can be specified.
The intention with Managed Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU).",
+ "description" : "Get information about a Near-RT RIC",
"operationId" : "getRic",
"parameters" : [ {
- "description" : "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.",
- "explode" : true,
- "in" : "query",
- "name" : "managedElementId",
- "required" : false,
- "schema" : {
- "type" : "string"
- },
- "style" : "form"
- }, {
"description" : "The identity of a Near-RT RIC to get information for.",
"explode" : true,
- "in" : "query",
+ "in" : "path",
"name" : "ricId",
- "required" : false,
+ "required" : true,
"schema" : {
+ "nullable" : false,
"type" : "string"
},
- "style" : "form"
+ "style" : "simple"
}, {
"description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
"explode" : false,
@@ -130,16 +134,16 @@
"description" : "Not Found"
}
},
- "summary" : "Returns info for one Near-RT RIC",
+ "summary" : "Get a Near-RT RIC (getRic)",
"tags" : [ "NearRT-RIC Repository" ]
}
},
"/rics" : {
"get" : {
- "description" : "The call returns all Near-RT RICs that supports a given policy type identity",
+ "description" : "Get all Near-RT RICs that supports a given A1 Policy Type ID",
"operationId" : "getRics",
"parameters" : [ {
- "description" : "The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned",
+ "description" : "The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned.\n",
"explode" : true,
"in" : "query",
"name" : "policyTypeId",
@@ -187,13 +191,13 @@
"description" : "Not Found"
}
},
- "summary" : "Query Near-RT RIC information",
+ "summary" : "Get Near-RT RICs for A1 Policy Type (getRics)",
"tags" : [ "NearRT-RIC Repository" ]
}
},
"/policy-types" : {
"get" : {
- "description" : "Query policy type identities",
+ "description" : "Query A1 Policy Type identities using query parameters",
"operationId" : "getPolicyTypes",
"parameters" : [ {
"description" : "Select types for the given Near-RT RIC identity.",
@@ -206,7 +210,7 @@
},
"style" : "form"
}, {
- "description" : "Select types with the given type name (type identity has the format )",
+ "description" : "Select types compatible with the given type name (type identity has the format 'typename_version')",
"explode" : true,
"in" : "query",
"name" : "typeName",
@@ -216,7 +220,7 @@
},
"style" : "form"
}, {
- "description" : "Select types that are compatible with the given version. This parameter is only applicable in conjunction with type_name. As an example version 1.9.1 is compatible with 1.0.0 but not the other way around. Matching types will be returned sorted in ascending order.",
+ "description" : "Select types that are compatible with the given version. This parameter is only applicable in conjunction with typeName. As an example version 1.9.1 is compatible with 1.0.0 but not the other way around. Matching types will be returned sorted in ascending order.\n",
"explode" : true,
"in" : "query",
"name" : "compatibleWithVersion",
@@ -241,6 +245,11 @@
"200" : {
"content" : {
"application/json" : {
+ "examples" : {
+ "PolicyTypeInformation" : {
+ "$ref" : "#/components/examples/PolicyTypeInformation"
+ }
+ },
"schema" : {
"items" : {
"$ref" : "#/components/schemas/PolicyTypeInformation"
@@ -309,7 +318,7 @@
}
}
},
- "description" : "Too Many Request"
+ "description" : "Too Many Requests"
},
"500" : {
"content" : {
@@ -342,12 +351,13 @@
"description" : "Service Unavailable"
}
},
+ "summary" : "Get A1 Policy Types (getPolicyTypes)",
"tags" : [ "A1 Policy Management" ]
}
},
"/policy-types/{policyTypeId}" : {
"get" : {
- "description" : "Returns a policy type definition",
+ "description" : "Get an A1 Policy Type definition using its policy type ID",
"operationId" : "getPolicyTypeDefinition",
"parameters" : [ {
"explode" : false,
@@ -375,16 +385,16 @@
"content" : {
"application/json" : {
"examples" : {
- "policyObject" : {
- "$ref" : "#/components/examples/PolicyObject"
+ "PolicyTypeObject" : {
+ "$ref" : "#/components/examples/PolicyTypeObject"
}
},
"schema" : {
- "$ref" : "#/components/schemas/PolicyObject"
+ "$ref" : "#/components/schemas/PolicyTypeObject"
}
}
},
- "description" : "OK - schema of the given policy type"
+ "description" : "OK - details and schema of the requested A1 Policy Type"
},
"400" : {
"content" : {
@@ -444,7 +454,7 @@
}
}
},
- "description" : "Too Many Request"
+ "description" : "Too Many Requests"
},
"500" : {
"content" : {
@@ -477,12 +487,13 @@
"description" : "Service Unavailable"
}
},
+ "summary" : "Get an A1 Policy Type definition (getPolicyTypeDefinition)",
"tags" : [ "A1 Policy Management" ]
}
},
"/policies/{policyId}" : {
"delete" : {
- "description" : "Deleting the policy using policyId.",
+ "description" : "Delete an existing A1 Policy instance using its policy ID.",
"operationId" : "deletePolicy",
"parameters" : [ {
"explode" : false,
@@ -507,7 +518,7 @@
} ],
"responses" : {
"204" : {
- "description" : "The created A1 policy was deleted"
+ "description" : "No Content"
},
"400" : {
"content" : {
@@ -549,13 +560,33 @@
},
"description" : "Not Found"
},
+ "405" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Method Not Allowed"
+ },
+ "406" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Acceptable"
+ },
"423" : {
"content" : {
"application/problem+json" : {
"example" : {
"status" : 423,
"title" : "Locked",
- "detail" : "State is Locked in the provided request."
+ "detail" : "State is Locked in the provided request."
},
"schema" : {
"$ref" : "#/components/schemas/ErrorInformation"
@@ -572,7 +603,7 @@
}
}
},
- "description" : "Too Many Request"
+ "description" : "Too Many Requests"
},
"500" : {
"content" : {
@@ -605,11 +636,11 @@
"description" : "Service Unavailable"
}
},
- "summary" : "Delete a policy",
+ "summary" : "Delete an A1 Policy instance (deletePolicy)",
"tags" : [ "A1 Policy Management" ]
},
"get" : {
- "description" : "Returns a policy",
+ "description" : "Get an A1 Policy instance's policy data using its policy ID",
"operationId" : "getPolicy",
"parameters" : [ {
"explode" : false,
@@ -706,7 +737,7 @@
}
}
},
- "description" : "Too Many Request"
+ "description" : "Too Many Requests"
},
"500" : {
"content" : {
@@ -739,11 +770,12 @@
"description" : "Service Unavailable"
}
},
+ "summary" : "Get an A1 Policy's policy data (getPolicy)",
"tags" : [ "A1 Policy Management" ]
},
"put" : {
- "description" : "update a policy",
- "operationId" : "putPolicy",
+ "description" : "Update an existing A1 Policy instance's policy data using its policy ID.",
+ "operationId" : "updatePolicy",
"parameters" : [ {
"explode" : false,
"in" : "path",
@@ -866,7 +898,7 @@
"example" : {
"status" : 423,
"title" : "Locked",
- "detail" : "State is Locked in the provided request."
+ "detail" : "State is Locked in the provided request."
},
"schema" : {
"$ref" : "#/components/schemas/ErrorInformation"
@@ -883,7 +915,138 @@
}
}
},
- "description" : "Too Many Request"
+ "description" : "Too Many Requests"
+ },
+ "500" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Internal Server Error"
+ },
+ "502" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Bad Gateway"
+ },
+ "503" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Service Unavailable"
+ }
+ },
+ "summary" : "Update an A1 Policy's policy data (updatePolicy)",
+ "tags" : [ "A1 Policy Management" ]
+ }
+ },
+ "/policies/{policyId}/status" : {
+ "get" : {
+ "description" : "Retrieve the status information for an A1 Policy Instance using its policy ID.",
+ "operationId" : "getPolicyStatus",
+ "parameters" : [ {
+ "explode" : false,
+ "in" : "path",
+ "name" : "policyId",
+ "required" : true,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "simple"
+ }, {
+ "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+ "explode" : false,
+ "in" : "header",
+ "name" : "Accept",
+ "required" : false,
+ "schema" : {
+ "example" : "application/json",
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/PolicyStatusObject"
+ }
+ }
+ },
+ "description" : "OK"
+ },
+ "400" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Bad Request"
+ },
+ "401" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Unauthorized"
+ },
+ "403" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Forbidden"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Found"
+ },
+ "406" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Acceptable"
+ },
+ "429" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Too Many Requests"
},
"500" : {
"content" : {
@@ -916,15 +1079,16 @@
"description" : "Service Unavailable"
}
},
+ "summary" : "Get an A1 Policy Instance's status (getPolicyStatus)",
"tags" : [ "A1 Policy Management" ]
}
},
"/policies" : {
"get" : {
- "description" : "Returns a list of A1 policies matching given search criteria.
If several query parameters are defined, the policies matching all conditions are returned.",
- "operationId" : "getAllPolicies",
+ "description" : "Returns a collection of A1 Policy Instance IDs for policies that match given search criteria. If several query parameters are defined, the policies matching all conditions are returned.\n",
+ "operationId" : "getPolicyIds",
"parameters" : [ {
- "description" : "Select policies of a given policy type identity.",
+ "description" : "Select policies with a given A1 Policy Type ID.",
"explode" : true,
"in" : "query",
"name" : "policyTypeId",
@@ -934,7 +1098,7 @@
},
"style" : "form"
}, {
- "description" : "Select policies of a given Near-RT RIC identity.",
+ "description" : "Select policies for a given Near-RT RIC identity.",
"explode" : true,
"in" : "query",
"name" : "nearRtRicId",
@@ -944,7 +1108,7 @@
},
"style" : "form"
}, {
- "description" : "Select policies owned by a given service.",
+ "description" : "Select policies owned by a given service (registered or unregistered).",
"explode" : true,
"in" : "query",
"name" : "serviceId",
@@ -954,7 +1118,7 @@
},
"style" : "form"
}, {
- "description" : "Select policies of types with the given type name (type identity has the format )",
+ "description" : "Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').",
"explode" : true,
"in" : "query",
"name" : "typeName",
@@ -1047,7 +1211,7 @@
}
}
},
- "description" : "Too Many Request"
+ "description" : "Too Many Requests"
},
"500" : {
"content" : {
@@ -1080,11 +1244,11 @@
"description" : "Service Unavailable"
}
},
- "summary" : "Query policy identities",
+ "summary" : "Query for A1 Policy instances (getPolicyIds)",
"tags" : [ "A1 Policy Management" ]
},
"post" : {
- "description" : "To create A1 policies",
+ "description" : "Create an A1 Policy Instance",
"operationId" : "createPolicy",
"requestBody" : {
"content" : {
@@ -1105,16 +1269,25 @@
}
}
},
- "description" : "Success case 201 created",
+ "description" : "Created",
"headers" : {
"Location" : {
- "description" : "Contains the URI of the newly created resource",
+ "description" : "Contains the URI of the newly created A1 Policy Instances. This URI includes the A1 Policy Instance ID for the newly created policy instance.\n",
"explode" : false,
"required" : true,
"schema" : {
"type" : "string"
},
"style" : "simple"
+ },
+ "Content-Type" : {
+ "description" : "Media Type of the response",
+ "explode" : false,
+ "schema" : {
+ "example" : "application/json",
+ "type" : "string"
+ },
+ "style" : "simple"
}
}
},
@@ -1158,6 +1331,16 @@
},
"description" : "Not Found"
},
+ "405" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Method Not Allowed"
+ },
"406" : {
"content" : {
"application/problem+json" : {
@@ -1168,13 +1351,43 @@
},
"description" : "Not Acceptable"
},
+ "409" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Conflict"
+ },
+ "413" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Payload Too Large"
+ },
+ "415" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Unsupported Media Type"
+ },
"423" : {
"content" : {
"application/problem+json" : {
"example" : {
"status" : 423,
"title" : "Locked",
- "detail" : "State is Locked in the provided request."
+ "detail" : "State is Locked in the provided request."
},
"schema" : {
"$ref" : "#/components/schemas/ErrorInformation"
@@ -1191,7 +1404,7 @@
}
}
},
- "description" : "Too Many Request"
+ "description" : "Too Many Requests"
},
"500" : {
"content" : {
@@ -1224,12 +1437,13 @@
"description" : "Service Unavailable"
}
},
+ "summary" : "Create an A1 Policy Instance (createPolicy)",
"tags" : [ "A1 Policy Management" ]
}
},
"/configuration" : {
"get" : {
- "description" : "Returns the contents of the application configuration",
+ "description" : "Returns the entire contents of the Application Configuration.",
"operationId" : "getConfiguration",
"responses" : {
"200" : {
@@ -1253,10 +1467,11 @@
"description" : "Not Found"
}
},
+ "summary" : "Get the Application Configuration (getConfiguration)",
"tags" : [ "Configuration" ]
},
"put" : {
- "description" : "Replace the current configuration file with the given configuration",
+ "description" : "Replace the current Application Configuration with a new configuration. The new configuration, if accepted, will take effect after a short delay. The new configuration must comply with the Application Configuration schema, which can be found from the the Application Documentation (Developer Guide)\n",
"operationId" : "putConfiguration",
"requestBody" : {
"content" : {
@@ -1271,7 +1486,7 @@
"responses" : {
"200" : {
"content" : {
- "*/*" : {
+ "application/json" : {
"schema" : {
"$ref" : "#/components/schemas/void"
}
@@ -1290,12 +1505,13 @@
"description" : "Bad Request"
}
},
+ "summary" : "Set/Replace the Application Configuration (putConfiguration)",
"tags" : [ "Configuration" ]
}
},
"/services/{serviceId}/keepalive" : {
"put" : {
- "description" : "A registered service should invoke this operation regularly to indicate that it is still alive. If a registered service fails to invoke this operation before the end of a timeout period the service will be deregistered and all its A1 policies wil be removed. (This timeout can be set or disabled when each service is initially registered)",
+ "description" : "A registered service should invoke this operation regularly to indicate that it is still alive. If a registered service fails to invoke some operation, or this operation, before the end of a timeout period the service will be deregistered and all its A1 policies wil be removed and the service is deleted. This operation is only intended for registered services. (This timeout can be set or disabled when each service is initially registered). Unregistered services do not need to invoke this operation, since the optional keep-alive monitoring feature can only be enabled for registered services.",
"operationId" : "keepAliveService",
"parameters" : [ {
"explode" : false,
@@ -1318,20 +1534,10 @@
},
"style" : "simple"
} ],
- "requestBody" : {
- "content" : {
- "application/json" : {
- "schema" : {
- "type" : "string"
- }
- }
- },
- "required" : false
- },
"responses" : {
"200" : {
"content" : {
- "*/*" : {
+ "application/json" : {
"schema" : {
"type" : "object"
}
@@ -1350,16 +1556,16 @@
"description" : "Not Found"
}
},
- "summary" : "Heartbeat indicates that the service is running",
+ "summary" : "Heartbeat message from a service (keepAliveService)",
"tags" : [ "Service Registry and Supervision" ]
}
},
"/services" : {
"get" : {
- "description" : "Either information about a registered service with given identity or all registered services are returned.",
+ "description" : "Get information about all registered services, or a single registered service. If the service ID of a registered service is included in the query, information about that service is returned. Otherwise Information about all registered is returned. This operation does not retrieve information about unregistered services.\n",
"operationId" : "getServices",
"parameters" : [ {
- "description" : "The identity of the service",
+ "description" : "The identity of the registered service",
"explode" : true,
"in" : "query",
"name" : "serviceId",
@@ -1407,7 +1613,7 @@
"description" : "Not Found"
}
},
- "summary" : "Returns service information",
+ "summary" : "Get Services (getServices)",
"tags" : [ "Service Registry and Supervision" ]
},
"put" : {
@@ -1415,7 +1621,7 @@
"RICStatus" : {
"{$request.body#/callback_url}" : {
"post" : {
- "description" : "The URL to this call is registered at Service registration.",
+ "description" : "Callouts to indicate Near-RT RIC status changes relevant for Services. \nThe URL invoked by this callback is provided at Service registration.\n",
"operationId" : "serviceCallback",
"requestBody" : {
"content" : {
@@ -1449,13 +1655,14 @@
"description" : "Not Found"
}
},
- "summary" : "Callback for Near-RT RIC status",
- "tags" : [ "Service callbacks" ]
+ "summary" : "Callback for Near-RT RIC status (serviceCallback)",
+ "tags" : [ "Service Registry and Supervision" ],
+ "x-callback-request" : true
}
}
}
},
- "description" : "Registering a service is needed to:- Get callbacks about available NearRT RICs.
- Activate supervision of the service. If a service is inactive, its policies will automatically be deleted.
Policies can be created even if the service is not registerred. This is a feature which it is optional to use.",
+ "description" : "Register a single service, or update a previous registration. Service registration is required to get callbacks about available NearRT RICs and to enable supervision of the service's active status. If a registered service becomes inactive, its policies can be automatically deleted. A1 Policy instances can also be created for unregistered services. If an unregistered service is later registered, the service's policies are retained when the service becomes registered. This feature is optional to use.\n",
"operationId" : "putService",
"requestBody" : {
"content" : {
@@ -1470,7 +1677,7 @@
"responses" : {
"200" : {
"content" : {
- "*/*" : {
+ "application/json" : {
"schema" : {
"type" : "object"
}
@@ -1480,7 +1687,7 @@
},
"201" : {
"content" : {
- "*/*" : {
+ "application/json" : {
"schema" : {
"type" : "object"
}
@@ -1499,13 +1706,13 @@
"description" : "Bad Request"
}
},
- "summary" : "Register a service",
+ "summary" : "Register or update a Service (putService)",
"tags" : [ "Service Registry and Supervision" ]
}
},
"/services/{serviceId}" : {
"delete" : {
- "description" : "Unregister a service",
+ "description" : "Unregister a registered Service using its service ID. Only registered services can be unregistered. All A1 Policy Instances for the previously registered service will be removed.\n",
"operationId" : "deleteService",
"parameters" : [ {
"explode" : false,
@@ -1531,7 +1738,7 @@
"responses" : {
"204" : {
"content" : {
- "*/*" : {
+ "application/json" : {
"schema" : {
"type" : "object"
}
@@ -1550,67 +1757,91 @@
"description" : "Not Found"
}
},
+ "summary" : "Unregister a Service (deleteService)",
"tags" : [ "Service Registry and Supervision" ]
}
}
},
"components" : {
"examples" : {
- "ServiceStatusList" : {
- "description" : "List of service information",
- "value" : {
- "serviceList" : [ {
- "callbackUrl" : "callbackUrl",
- "serviceId" : "serviceId",
- "keepAliveIntervalSeconds" : 0,
- "timeSinceLastActivitySeconds" : 6
- }, {
- "callbackUrl" : "callbackUrl",
- "serviceId" : "serviceId",
- "keepAliveIntervalSeconds" : 0,
- "timeSinceLastActivitySeconds" : 6
- } ]
- }
- },
- "PolicyStatusInfo" : {
- "description" : "Status for one A1-P Policy",
- "value" : {
- "lastModified" : "last_modified",
- "status" : {
- "value" : {
- "status" : "status"
- }
- }
- }
- },
"StatusInfo" : {
"value" : {
- "status" : "status"
+ "status" : "success"
}
},
"RicInfo" : {
"value" : {
- "ricId" : "ricId",
- "managedElementIds" : [ "managedElementId", "managedElementId" ],
+ "ricId" : "ricId1",
+ "managedElementIds" : [ "Note #1", "Athlone small cells", "Some optional string" ],
"state" : "UNAVAILABLE",
- "policyTypeIds" : [ "policyTypeId", "policyTypeId" ]
+ "policyTypeIds" : [ "policyTypeId1", "policyTypeId2" ]
}
},
"RicInfoList" : {
"value" : {
"rics" : [ {
- "ricId" : "ricId",
- "managedElementIds" : [ "managedElementId", "managedElementId" ],
+ "ricId" : "ricId1",
+ "managedElementIds" : [ "Note #1", "Athlone small cells", "Fake Cells" ],
"state" : "UNAVAILABLE",
- "policyTypeIds" : [ "policyTypeId", "policyTypeId" ]
+ "policyTypeIds" : [ "policyTypeId1", "policyTypeId2" ]
}, {
- "ricId" : "ricId",
- "managedElementIds" : [ "managedElementId", "managedElementId" ],
+ "ricId" : "ricId2",
+ "managedElementIds" : [ "My test element", "Another test element" ],
"state" : "UNAVAILABLE",
- "policyTypeIds" : [ "policyTypeId", "policyTypeId" ]
+ "policyTypeIds" : [ "policyTypeId3", "policyTypeId4" ]
} ]
}
},
+ "PolicyTypeInformation" : {
+ "value" : [ {
+ "policyTypeId" : "STD_QOS2_0.1.0",
+ "nearRtRicId" : "ric_g3_2"
+ }, {
+ "policyTypeId" : "STD_QOS_0_2_0",
+ "nearRtRicId" : "ric_g3_2"
+ }, {
+ "policyTypeId" : "STD_QOS2_0.1.0",
+ "nearRtRicId" : "ric_g3_1"
+ }, {
+ "policyTypeId" : "STD_QOS_0_2_0",
+ "nearRtRicId" : "ric_g3_1"
+ } ]
+ },
+ "PolicyTypeObject" : {
+ "value" : {
+ "policySchema" : {
+ "$schema" : "http://json-schema.org/draft-07/schema#",
+ "title" : "STD_QOS_0_2_0",
+ "description" : "STD QOS2 policy type",
+ "type" : "object",
+ "properties" : {
+ "scope" : {
+ "type" : "object",
+ "properties" : {
+ "ueId" : {
+ "type" : "string"
+ },
+ "qosId" : {
+ "type" : "string"
+ }
+ },
+ "additionalProperties" : false,
+ "required" : [ "ueId", "qosId" ]
+ },
+ "qosObjectives" : {
+ "type" : "object",
+ "properties" : {
+ "priorityLevel" : {
+ "type" : "number"
+ }
+ },
+ "additionalProperties" : false,
+ "required" : [ "priorityLevel" ]
+ }
+ }
+ }
+ }
+ },
"PolicyObject" : {
"value" : {
"scope" : {
@@ -1652,10 +1883,26 @@
"pdb" : 50
}
}
+ },
+ "ServiceStatusList" : {
+ "description" : "List of service information",
+ "value" : {
+ "serviceList" : [ {
+ "callbackUrl" : "http://callback.url",
+ "serviceId" : "serviceId1",
+ "keepAliveIntervalSeconds" : 0,
+ "timeSinceLastActivitySeconds" : 6
+ }, {
+ "callbackUrl" : "http://callback.url",
+ "serviceId" : "serviceId2",
+ "keepAliveIntervalSeconds" : 500,
+ "timeSinceLastActivitySeconds" : 401
+ } ]
+ }
}
},
"responses" : {
- "400" : {
+ "404" : {
"content" : {
"application/problem+json" : {
"schema" : {
@@ -1663,9 +1910,9 @@
}
}
},
- "description" : "Bad Request"
+ "description" : "Not Found"
},
- "401" : {
+ "400" : {
"content" : {
"application/problem+json" : {
"schema" : {
@@ -1673,9 +1920,9 @@
}
}
},
- "description" : "Unauthorized"
+ "description" : "Bad Request"
},
- "403" : {
+ "401" : {
"content" : {
"application/problem+json" : {
"schema" : {
@@ -1683,9 +1930,9 @@
}
}
},
- "description" : "Forbidden"
+ "description" : "Unauthorized"
},
- "404" : {
+ "403" : {
"content" : {
"application/problem+json" : {
"schema" : {
@@ -1693,9 +1940,9 @@
}
}
},
- "description" : "Not Found"
+ "description" : "Forbidden"
},
- "405" : {
+ "406" : {
"content" : {
"application/problem+json" : {
"schema" : {
@@ -1703,9 +1950,9 @@
}
}
},
- "description" : "Method Not Allowed"
+ "description" : "Not Acceptable"
},
- "406" : {
+ "429" : {
"content" : {
"application/problem+json" : {
"schema" : {
@@ -1713,9 +1960,9 @@
}
}
},
- "description" : "Not Acceptable"
+ "description" : "Too Many Requests"
},
- "409" : {
+ "500" : {
"content" : {
"application/problem+json" : {
"schema" : {
@@ -1723,9 +1970,9 @@
}
}
},
- "description" : "Conflict"
+ "description" : "Internal Server Error"
},
- "411" : {
+ "502" : {
"content" : {
"application/problem+json" : {
"schema" : {
@@ -1733,9 +1980,9 @@
}
}
},
- "description" : "Length Required"
+ "description" : "Bad Gateway"
},
- "413" : {
+ "503" : {
"content" : {
"application/problem+json" : {
"schema" : {
@@ -1743,9 +1990,9 @@
}
}
},
- "description" : "Payload Too Large"
+ "description" : "Service Unavailable"
},
- "415" : {
+ "411" : {
"content" : {
"application/problem+json" : {
"schema" : {
@@ -1753,9 +2000,9 @@
}
}
},
- "description" : "Unsupported Media Type"
+ "description" : "Length Required"
},
- "429" : {
+ "413" : {
"content" : {
"application/problem+json" : {
"schema" : {
@@ -1763,9 +2010,9 @@
}
}
},
- "description" : "Too Many Request"
+ "description" : "Payload Too Large"
},
- "500" : {
+ "415" : {
"content" : {
"application/problem+json" : {
"schema" : {
@@ -1773,19 +2020,24 @@
}
}
},
- "description" : "Internal Server Error"
+ "description" : "Unsupported Media Type"
},
- "502" : {
+ "Locked" : {
"content" : {
"application/problem+json" : {
+ "example" : {
+ "status" : 423,
+ "title" : "Locked",
+ "detail" : "State is Locked in the provided request."
+ },
"schema" : {
- "$ref" : "#/components/schemas/ProblemDetails"
+ "$ref" : "#/components/schemas/ErrorInformation"
}
}
},
- "description" : "Bad Gateway"
+ "description" : "Locked - HTTP Status code which can be used when the state is Locked"
},
- "503" : {
+ "405" : {
"content" : {
"application/problem+json" : {
"schema" : {
@@ -1793,152 +2045,88 @@
}
}
},
- "description" : "Service Unavailable"
+ "description" : "Method Not Allowed"
},
- "Locked" : {
+ "409" : {
"content" : {
"application/problem+json" : {
- "example" : {
- "status" : 423,
- "title" : "Locked",
- "detail" : "State is Locked in the provided request."
- },
"schema" : {
- "$ref" : "#/components/schemas/ErrorInformation"
+ "$ref" : "#/components/schemas/ProblemDetails"
}
}
},
- "description" : "Locked - HTTP Status code which can be used when the state is Locked"
+ "description" : "Conflict"
}
},
"schemas" : {
- "PolicyTypeInformation" : {
- "description" : "Available policy types and for each policy type identifier the Near-RT RIC identifiers of those Near-RT RICs that support the related A1 policy type",
+ "StatusInfo" : {
+ "example" : {
+ "status" : "status"
+ },
"properties" : {
- "policyTypeId" : {
- "description" : "Identity of the policy type",
+ "status" : {
+ "description" : "Status text",
"type" : "string"
- },
- "nearRtRicId" : {
- "$ref" : "#/components/schemas/NearRtRicId"
}
},
- "required" : [ "nearRtRicId", "policyTypeId" ],
"type" : "object"
},
- "PolicyObjectInformation" : {
- "description" : "Information related to the creation of the policy",
+ "ProblemDetails" : {
+ "description" : "Object to carry details about a problem in an HTTP response according to IETF RFC 7807",
"properties" : {
- "nearRtRicId" : {
- "description" : "identity of the target Near-RT RIC",
- "example" : "Near-RT-Ric-ID",
- "type" : "string"
- },
- "transient" : {
- "default" : false,
- "description" : "if true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.",
- "nullable" : false,
- "type" : "boolean"
- },
- "policyId" : {
- "description" : "identity of the Policy",
- "example" : "POLICY-ID",
+ "type" : {
+ "description" : "URI reference according to IETF RFC 3986 that identifies the problem type",
"type" : "string"
},
- "serviceId" : {
- "description" : "the identity of the service owning the policy. This can be used to group the policies (it is possible to get all policies associated to a service). Note that the service does not need to be registered.",
- "example" : "rApp ID",
+ "title" : {
+ "description" : "Human-readable summary of the problem type",
"type" : "string"
},
- "policyObject" : {
- "$ref" : "#/components/schemas/PolicyObject"
+ "status" : {
+ "description" : "HTTP status code",
+ "type" : "number"
},
- "policyTypeId" : {
- "description" : "identity of the policy type",
- "example" : "ORAN_QOS_1.0.0(typeName_SemVersion)",
- "type" : "string"
- }
- },
- "required" : [ "nearRtRicId", "policyObject", "policyTypeId" ],
- "type" : "object"
- },
- "ErrorInformation" : {
- "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807",
- "properties" : {
"detail" : {
- "description" : " A human-readable explanation specific to this occurrence of the problem.",
- "example" : "Policy type not found",
+ "description" : "Human-readable explanation",
"type" : "string"
},
- "title" : {
- "description" : "A specific error name",
- "example" : "Not Found",
- "type" : "string"
- },
- "status" : {
- "description" : "The HTTP status code generated by the origin server for this occurrence of the problem. ",
- "example" : 404,
- "format" : "int32",
- "type" : "integer"
- }
- },
- "type" : "object"
- },
- "PolicyObject" : {
- "description" : "Policy Object is a JSON representation of an A1 policy",
- "type" : "object"
- },
- "void" : {
- "description" : "Void/empty",
- "type" : "object"
- },
- "StatusInfo" : {
- "properties" : {
- "status" : {
- "description" : "status text",
+ "instance" : {
+ "description" : "URI reference that identifies the specific occurrence of the problem",
"type" : "string"
}
},
"type" : "object"
},
- "AuthorizationResult" : {
- "description" : "Result of authorization",
- "example" : {
- "result" : true
- },
- "properties" : {
- "result" : {
- "description" : "If true, the access is granted",
- "type" : "boolean"
- }
- },
- "required" : [ "result" ],
- "type" : "object"
- },
"RicInfo" : {
"description" : "Information for a Near-RT RIC",
+ "example" : {
+ "ricId" : "ricId",
+ "policyTypeIds" : [ "policyTypeIds", "policyTypeIds" ],
+ "managedElementIds" : [ "managedElementIds", "managedElementIds" ],
+ "state" : "UNAVAILABLE"
+ },
"properties" : {
"ricId" : {
- "description" : "identity of the Near-RT RIC",
+ "description" : "Identity of the Near-RT RIC",
"type" : "string"
},
"managedElementIds" : {
- "description" : "O1 identities for managed entities",
+ "description" : "Identities for managed entities",
"items" : {
- "description" : "O1 identities for managed entities",
+ "description" : "Identity for a managed entity",
"type" : "string"
},
"type" : "array"
},
"state" : {
- "description" : "Represents the states for a Near-RT RIC",
+ "description" : "Represents the state of a Near-RT RIC",
"enum" : [ "UNAVAILABLE", "AVAILABLE", "SYNCHRONIZING", "CONSISTENCY_CHECK" ],
"type" : "string"
},
"policyTypeIds" : {
- "description" : "supported policy types",
+ "description" : "Supported A1 Policy Types",
"items" : {
- "description" : "supported policy types",
+ "description" : "Supported A1 Policy Type ID",
"type" : "string"
},
"type" : "array"
@@ -1946,128 +2134,243 @@
},
"type" : "object"
},
- "ServiceRegistrationInfo" : {
- "description" : "Information for one service",
+ "RicInfoList" : {
+ "description" : "Collection of Near-RT RIC information objects",
+ "example" : {
+ "rics" : [ {
+ "ricId" : "ricId",
+ "policyTypeIds" : [ "policyTypeIds", "policyTypeIds" ],
+ "managedElementIds" : [ "managedElementIds", "managedElementIds" ],
+ "state" : "UNAVAILABLE"
+ }, {
+ "ricId" : "ricId",
+ "policyTypeIds" : [ "policyTypeIds", "policyTypeIds" ],
+ "managedElementIds" : [ "managedElementIds", "managedElementIds" ],
+ "state" : "UNAVAILABLE"
+ } ]
+ },
"properties" : {
- "callbackUrl" : {
- "description" : "callback for notifying of Near-RT RIC state changes",
+ "rics" : {
+ "description" : "List of Near-RT RIC information objects",
+ "items" : {
+ "$ref" : "#/components/schemas/RicInfo"
+ },
+ "type" : "array"
+ }
+ },
+ "type" : "object"
+ },
+ "PolicyTypeInformation" : {
+ "description" : "A data tuple to indicate that an identified A1 Policy Type is supported at an identified Near-RT RIC.",
+ "example" : {
+ "policyTypeId" : "STD_QOS2_0.1.0",
+ "nearRtRicId" : "ric_g3_2"
+ },
+ "properties" : {
+ "policyTypeId" : {
+ "description" : "A1 Policy Type identifier",
"type" : "string"
},
- "serviceId" : {
- "description" : "identity of the service",
+ "nearRtRicId" : {
+ "description" : "Identity of the Near-RT RIC",
"type" : "string"
- },
- "keepAliveIntervalSeconds" : {
- "description" : "keep alive interval for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled.",
- "format" : "int64",
- "type" : "integer"
}
},
- "required" : [ "serviceId" ],
+ "required" : [ "nearRtRicId", "policyTypeId" ],
"type" : "object"
},
- "PolicyStatusInfo" : {
- "description" : "Status for one A1-P Policy",
+ "NearRtRicId" : {
+ "description" : "Identity of the Near-RT RIC",
+ "type" : "string"
+ },
+ "PolicyTypeObject" : {
+ "description" : "An A1 Policy Type, as defined in O-RAN Alliance A1TD",
+ "example" : {
+ "policySchema" : {
+ "$schema" : "http://json-schema.org/draft-07/schema#",
+ "title" : "STD_QOS_0_2_0",
+ "description" : "Policy data schema for STD_QOS_0.2.0 A1 Policy Instances.",
+ "type" : "object",
+ "properties" : {
+ "scope" : {
+ "type" : "object",
+ "properties" : {
+ "ueId" : {
+ "type" : "string"
+ },
+ "qosId" : {
+ "type" : "string"
+ }
+ },
+ "additionalProperties" : false,
+ "required" : [ "ueId", "qosId" ]
+ },
+ "qosObjectives" : {
+ "type" : "object",
+ "properties" : {
+ "priorityLevel" : {
+ "type" : "number"
+ }
+ },
+ "additionalProperties" : false,
+ "required" : [ "priorityLevel" ]
+ }
+ }
+ },
+ "statusSchema" : {
+ "$schema" : "http://json-schema.org/draft-07/schema#",
+ "title" : "STD_QOS_0.2.0",
+ "description" : "Status schema for STD_QOS_0.2.0 A1 Policy Instances.",
+ "type" : "object",
+ "properties" : {
+ "enforceStatus" : {
+ "type" : "string"
+ },
+ "enforceReason" : {
+ "type" : "string"
+ },
+ "additionalProperties" : false,
+ "required" : [ "enforceStatus" ]
+ }
+ }
+ },
"properties" : {
- "lastModified" : {
- "description" : "timestamp, last modification time",
- "type" : "string"
+ "policySchema" : {
+ "description" : "A schema to define the policy data contents of A1 Policy Instances. Policy data schemas are Policy Type specific. All A1 Policy Instances of an A1 Policy Type should comply with the type's policy data schema.\n",
+ "type" : "object"
},
- "status" : {
- "description" : "the Policy status",
+ "statusSchema" : {
+ "description" : "A schema to define the contents of the status information for A1 Policy Instances. Status schemas are Policy Type specific. All status information for all A1 Policy Instances of an A1 Policy Type should comply with the type's status schema.\n",
"type" : "object"
}
},
+ "required" : [ "policySchema" ],
"type" : "object"
},
- "ServiceStatus" : {
+ "PolicySchema" : {
+ "description" : "A schema to define the policy data contents of A1 Policy Instances. Policy data schemas are Policy Type specific. All A1 Policy Instances of an A1 Policy Type should comply with the type's policy data schema.\n",
+ "type" : "object"
+ },
+ "StatusSchema" : {
+ "description" : "A schema to define the contents of the status information for A1 Policy Instances. Status schemas are Policy Type specific. All status information for all A1 Policy Instances of an A1 Policy Type should comply with the type's status schema.\n",
+ "type" : "object"
+ },
+ "PolicyObject" : {
+ "description" : "Policy Object is a JSON representation policy data for an A1 Policy Instance. The schema for this policy data is defined in the corresponding A1 Policy Type.\n",
+ "type" : "object"
+ },
+ "ErrorInformation" : {
+ "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807",
"properties" : {
- "callbackUrl" : {
- "description" : "callback for notifying of RIC synchronization",
+ "detail" : {
+ "description" : "A human-readable explanation specific to this occurrence of the problem.",
+ "example" : "Policy type not found",
"type" : "string"
},
- "serviceId" : {
- "description" : "identity of the service",
+ "title" : {
+ "description" : "A specific error name",
+ "example" : "Not Found",
"type" : "string"
},
- "keepAliveIntervalSeconds" : {
- "description" : "policy keep alive timeout",
- "format" : "int64",
- "type" : "integer"
- },
- "timeSinceLastActivitySeconds" : {
- "description" : "time since last invocation by the service",
- "format" : "int64",
+ "status" : {
+ "description" : "The HTTP status code generated by the origin server for this occurrence of the problem.\n",
+ "example" : 404,
+ "format" : "int32",
"type" : "integer"
}
},
"type" : "object"
},
- "RicInfoList" : {
- "description" : "List of Near-RT RIC information",
- "properties" : {
- "rics" : {
- "description" : "List of Near-RT RIC information",
- "items" : {
- "$ref" : "#/components/schemas/RicInfo"
- },
- "type" : "array"
- }
- },
+ "PolicyStatusObject" : {
+ "description" : "A generic policy status object that can be used to transport any policy status. Additionally, a schema for policy status can be defined in the corresponding A1 Policy Type.\n",
"type" : "object"
},
- "input" : {
- "description" : "input",
+ "PolicyInformation" : {
+ "description" : "Information tuple for a single A1 Policy Instance. Contains the A1 Policy Instance ID, and the ID of the Near-RT RIC where the policy is created.\n",
+ "example" : {
+ "policyId" : "policyId",
+ "nearRtRicId" : "nearRtRicId"
+ },
"properties" : {
- "accessType" : {
- "description" : "Access type",
- "enum" : [ "READ", "WRITE", "DELETE" ],
- "type" : "string"
- },
- "authToken" : {
- "description" : "Authorization token",
+ "policyId" : {
+ "description" : "Identity of the A1 Policy Instance",
"type" : "string"
},
- "policyTypeId" : {
- "description" : "Policy type identifier",
+ "nearRtRicId" : {
+ "description" : "Identity of the Near-RT RIC",
"type" : "string"
}
},
- "required" : [ "accessType", "authToken", "policyTypeId" ],
+ "required" : [ "nearRtRicId", "policyId" ],
"type" : "object"
},
- "PolicyAuthorization" : {
- "description" : "Authorization request for A1 policy requests",
- "properties" : {
- "input" : {
- "$ref" : "#/components/schemas/input"
- }
+ "PolicyObjectInformation" : {
+ "description" : "Information to create an A1 Policy Instance",
+ "example" : {
+ "policyId" : "POLICY-ID1",
+ "nearRtRicId" : "Near-RT-Ric-ID1",
+ "transient" : false,
+ "policyObject" : "{}",
+ "serviceId" : "rApp 1",
+ "policyTypeId" : "ORAN_QOS_1.0.0 '(typeName_SemVersion)'"
},
- "required" : [ "input" ],
- "type" : "object"
- },
- "NearRtRicId" : {
- "description" : "Identity of the policy",
- "type" : "string"
- },
- "PolicyInformation" : {
- "description" : "Near-RT RIC identifiers where A1 policies exist and for each Near-RT RIC identifier the policy identifiers of those policies that exist in that Near-RT RIC",
"properties" : {
+ "nearRtRicId" : {
+ "description" : "Identity of the target Near-RT RIC",
+ "example" : "Near-RT-Ric-ID1",
+ "type" : "string"
+ },
+ "transient" : {
+ "default" : false,
+ "description" : "If true, the policy is automatically deleted if the targeted Near-RT RIC restarts or recovers. If false, the A1 Policy Instance remains, and is re-pushed to the targeted Near-RT RIC after a restart or recovery. If false, the A1 Policy Instance is maintained and must be deleted separately in the event of Near-RT RIC restart or recovery. Default is false.\n",
+ "nullable" : false,
+ "type" : "boolean"
+ },
"policyId" : {
- "description" : "Identity of the policy",
+ "description" : "An optional identity to be used for the new A1 Policy Instance. If this value is present, it must be unique. If not present the new A1 Policy Instance will be assigned a newly generated unique ID, and the new ID can be extracted from the 'Location' header in the response.\n",
+ "example" : "POLICY-ID1",
"type" : "string"
},
- "nearRtRicId" : {
- "$ref" : "#/components/schemas/NearRtRicId"
+ "serviceId" : {
+ "default" : "",
+ "description" : "the identity of the service owning the policy. This can be used to group the policies (it is possible to get all policies associated to a service). Note that the service does not need to be registered. If the service is registered, the newly created A1 Policy Instance will be subject to the same supervision rules as the the service's other policies.",
+ "example" : "rApp 1",
+ "type" : "string"
+ },
+ "policyObject" : {
+ "description" : "Policy Object is a JSON representation policy data for an A1 Policy Instance. The schema for this policy data is defined in the corresponding A1 Policy Type.\n",
+ "type" : "object"
+ },
+ "policyTypeId" : {
+ "description" : "A1 Policy Type identity",
+ "example" : "ORAN_QOS_1.0.0 '(typeName_SemVersion)'",
+ "type" : "string"
}
},
- "required" : [ "nearRtRicId", "policyId" ],
+ "required" : [ "nearRtRicId", "policyObject", "policyTypeId" ],
+ "type" : "object"
+ },
+ "void" : {
+ "description" : "Void/empty",
"type" : "object"
},
"ServiceStatusList" : {
+ "example" : {
+ "serviceList" : [ {
+ "keepAliveIntervalSeconds" : 0,
+ "callbackUrl" : "callbackUrl",
+ "timeSinceLastActivitySeconds" : 6,
+ "serviceId" : "serviceId"
+ }, {
+ "keepAliveIntervalSeconds" : 0,
+ "callbackUrl" : "callbackUrl",
+ "timeSinceLastActivitySeconds" : 6,
+ "serviceId" : "serviceId"
+ } ]
+ },
"properties" : {
"serviceList" : {
- "description" : "List of service information",
+ "description" : "List of Service Status objects, describing a collection of registered services.",
"items" : {
"$ref" : "#/components/schemas/ServiceStatus"
},
@@ -2076,57 +2379,79 @@
},
"type" : "object"
},
- "ServiceCallbackInfo" : {
- "description" : "Information transferred as in Service callbacks (callback_url)",
+ "ServiceStatus" : {
+ "description" : "Information about a previously registered service",
+ "example" : {
+ "keepAliveIntervalSeconds" : 0,
+ "callbackUrl" : "callbackUrl",
+ "timeSinceLastActivitySeconds" : 6,
+ "serviceId" : "serviceId"
+ },
"properties" : {
- "ricId" : {
- "description" : "identity of a Near-RT RIC",
+ "callbackUrl" : {
+ "description" : "Callback URL for notifying of Near-RT RIC state changes",
"type" : "string"
},
- "eventType" : {
- "description" : "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management",
- "enum" : [ "AVAILABLE" ],
+ "serviceId" : {
+ "description" : "Identity of the service",
"type" : "string"
+ },
+ "keepAliveIntervalSeconds" : {
+ "description" : "Keep alive interval (seconds) for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled.\n",
+ "format" : "int64",
+ "type" : "integer"
+ },
+ "timeSinceLastActivitySeconds" : {
+ "description" : "Time (seconds) since last recorded operation by the service",
+ "format" : "int64",
+ "type" : "integer"
}
},
- "required" : [ "eventType", "ricId" ],
"type" : "object"
},
- "Link" : {
+ "ServiceRegistrationInfo" : {
+ "description" : "Information for a service to be registered",
+ "example" : {
+ "keepAliveIntervalSeconds" : 0,
+ "callbackUrl" : "callbackUrl",
+ "serviceId" : "serviceId"
+ },
"properties" : {
- "templated" : {
- "type" : "boolean"
+ "callbackUrl" : {
+ "description" : "Callback URL for notifying of Near-RT RIC state changes",
+ "type" : "string"
},
- "href" : {
+ "serviceId" : {
+ "description" : "Identity of the service",
"type" : "string"
+ },
+ "keepAliveIntervalSeconds" : {
+ "description" : "Keep alive interval for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled.\n",
+ "format" : "int64",
+ "type" : "integer"
}
},
+ "required" : [ "serviceId" ],
"type" : "object"
},
- "ProblemDetails" : {
- "description" : "A problem detail to carry details in an HTTP response according to RFC 7807",
+ "ServiceCallbackInfo" : {
+ "description" : "Information transferred in Service callbacks, \nif a callback URL was provided for a registered service\n",
+ "example" : {
+ "ricId" : "ricId",
+ "eventType" : "AVAILABLE"
+ },
"properties" : {
- "type" : {
- "description" : "a URI reference according to IETF RFC 3986 that identifies the problem type",
- "type" : "string"
- },
- "title" : {
- "description" : "human-readable summary of the problem type",
- "type" : "string"
- },
- "status" : {
- "description" : "the HTTP status code",
- "type" : "number"
- },
- "detail" : {
- "description" : "human-readable explanation ",
+ "ricId" : {
+ "description" : "Identity of a Near-RT RIC",
"type" : "string"
},
- "instance" : {
- "description" : "URI reference that identifies the specific occurrence of the problem",
+ "eventType" : {
+ "description" : "values: \n AVAILABLE: the Near-RT RIC has become available for A1 Policy management\n",
+ "enum" : [ "AVAILABLE" ],
"type" : "string"
}
},
+ "required" : [ "eventType", "ricId" ],
"type" : "object"
}
}
diff --git a/api/pms-api-v3.yaml b/api/pms-api-v3.yaml
index 46f881e..b0f3226 100644
--- a/api/pms-api-v3.yaml
+++ b/api/pms-api-v3.yaml
@@ -1,5 +1,6 @@
# ============LICENSE_START=======================================================
-# Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved.
+# Copyright (C) 2020-2023 Nordix Foundation. All rights reserved.
+# Copyright (C) 2023-2025 OpenInfra Foundation Europe. All rights reserved.
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -18,689 +19,1114 @@
openapi: 3.0.3
info:
- title: 'A1 policy management API'
- version: 1.0.0
- x-api-id: a31c510b-20e6-4a08-af16-368c44d7fba8
- x-audience: external-public
- description: "General
The O-RAN Non-RT RIC Policy Management Service\
- \ provides a REST API for managemecnt of A1 policies.
The main tasks of the\
- \ service are:
- A1 Policy creation, modification and deletion.
- Monitoring\
- \ and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs
- Maintaining\
- \ a view of supported Near-RT RIC policy types
- Supervision of using services\
- \ (R-APPs). When a service is unavailable, its policies are removed.
APIs\
- \ provided or defined by the service
A1 Policy Management
This\
- \ is an API for management of A1 Policies.
- A1 Policy retrieval, creation,\
- \ modification and deletion.
- Retrieval of supported A1 Policy types for\
- \ a Near-RT RIC
- Retrieval of status for existing A1 policies
Management\
- \ of configuration
API for updating and retrieval of the component configuration.\
- \ Note that there other ways to maintain the configuration.
Service callbacks
These\
- \ are endpoints that are invoked by this service. The callbacks are registered\
- \ in this service at service registration.
NearRT-RIC Repository
This\
- \ is an API that provides support for looking up a NearRT-RIC. Each A1 policy\
- \ is targeted for one Near-RT RIC.
Health Check
API used for supervision\
- \ of the PMS component.
Service Registry and Supervision
API used\
- \ for registering services that uses PMS. Each A1 policy is optionally owned by\
- \ a service. PMS can supervise each registered service by a heart-beat supervision\
- \ and will automatically remove policies for unavailable services. Note that a\
- \ service does not need to be registered in order to create A1 Policies. This\
- \ is a feature that is optional to use.
Authorization API
API used\
- \ for access control of A1 Policy access. If configured, an external authorization\
- \ provider is requested to grant access to the A1 Policy type.
"
+ contact:
+ email: discuss@lists.o-ran-sc.org
+ url: https://o-ran-sc.org//
+ description: "General
The ORAN SC A1 Policy Management Service provides\
+ \ a REST API for managing A1 policies.
This document describes the latest\
+ \ API set to perform tasks for:
- A1 Policy creation, modification\
+ \ and deletion.
- Monitoring and maintaining consistency of the SMO view\
+ \ of A1 Policies and the Near-RT RICs
- Maintaining a view of each Near-RT\
+ \ RIC's supported A1 Policy Types
- Supervision of registered services (rApps).\
+ \ When a registered service is unavailable, its policies are removed.
APIs\
+ \ provided or defined by the service
Note: parts of this API are strongly\
+ \ based on extracts of the O-RAN Alliance R1 Interface specification for A1 Policy\
+ \ Management, and those parts should be considered '\xA9 O-RAN ALLIANCE - All\
+ \ rights reserved.'
A1 Policy Management
This is the latest API\
+ \ for managing A1 Policies. This API is partially compliant with O-RAN Alliance\
+ \ R1 Interface specifications for A1 Policy Management:
- A1 Policy retrieval,\
+ \ creation, modification and deletion.
- Retrieval of supported A1 Policy\
+ \ Types for a Near-RT RIC
- Retrieval of status for existing A1 policies
Management\
+ \ of configuration
API for updating and retrieval of the component configuration.\
+ \ Note that there other ways to maintain the configuration.
Service Callbacks
These\
+ \ are endpoints that are invoked by this service. The callbacks are registered\
+ \ in this service at service registration.
NearRT-RIC Repository (Older\
+ \ version)
This is an API that provides support for looking up a NearRT-RIC.\
+ \ Each A1 policy is targeted towards one Near-RT RIC.
Health Check
API\
+ \ used for supervision of the A1 Policy Management Service.
Service Registry\
+ \ and Supervision
API used for registering services/clients/rApps. Each\
+ \ A1 Policy can be tagged with an owner. If the owner service is registered, then\
+ \ the service can be optionally monitored by a heart-beat supervision mechanism,\
+ \ and if the registered service becomes unavailable, then it is removed and all\
+ \ its A1 Policies are deleted. Note that services do not need to be registered\
+ \ to create A1 Policies, but unregistered services are not supervised. This\
+ \ is a feature that is optional to use.
"
license:
- name: Copyright (C) 2024 OpenInfra Foundation Europe. Licensed under the Apache License.
+ name: Copyright (C) 2024 - 2025 OpenInfra Foundation Europe. Licensed under the
+ Apache 2 License.
url: http://www.apache.org/licenses/LICENSE-2.0
- contact:
- url: https://www.onap.org/
- email: discuss-list@onap.com
+ title: OSC - A1 Policy Management API
+ version: 1.0.0
+ x-api-id: e9776a07-0813-4fca-9801-6f892f0a7c13
+ x-audience: external-public
+externalDocs:
+ description: "Based on parts of O-RAN ALLIANCE specification: O-RAN.WG2.R1AP-v07.00"
+ url: https://www.o-ran.org/specifications
servers:
- - url: '{apiRoot}/a1-policy-management/v1'
- variables:
- apiRoot:
- default: 'https://example.com'
- description: 'This is the Host:Port or Address where the A1-Policy Management Service can be accessed'
+- url: "{apiRoot}/a1-policy-management/v1"
+ variables:
+ apiRoot:
+ default: https://example.com
+ description: "This is the Host:Port or Address where the A1-Policy Management\
+ \ Service can be accessed. Note: This URL path format aligns with the O-RAN\
+ \ Alliance R1-AP specifications for A1 Policy Management"
tags:
- - name: A1 Policy Management
- description: "API used to create polices, Policy Instances and get \ them as individual using an ID or get all policies/Instances."
- - name: NearRT-RIC Repository
- description: "API used to get the NearRT-RIC for the managed element."
- - name: Service Registry and Supervision
- description: "API used to keep the service Alive with in the timeout period"
- - name: Health Check
- description: "API used to get the health status and statistics of this service"
- - name: Service callbacks
- - name: Configuration
- description: "API used to create or fetch the application configuration."
+- description: |
+ API used to get, create, update and delete A1 Policy Instances. Also used to query A1 Policy Types.
+ name: A1 Policy Management
+- description: |
+ API used to get information about registered Near-RT RICs.
+ name: NearRT-RIC Repository
+- description: |
+ API used to manage registered services, and control their keep-alive status via heart-beat messages.
+ name: Service Registry and Supervision
+- description: |
+ API used to get the health status and statistics of this service.
+ name: Health Check
+- description: |
+ API used to create or fetch the application configuration.
+ name: Configuration
paths:
/status:
get:
+ description: Returns status and statistics of this service
operationId: getStatus
responses:
"200":
content:
application/json:
- schema:
- $ref: '#/components/schemas/StatusInfo'
examples:
status_info:
$ref: '#/components/examples/StatusInfo'
+ schema:
+ $ref: '#/components/schemas/StatusInfo'
description: OK- Service is living Ok
- description: Returns status and statistics of this service
+ "404":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Not Found
+ summary: Get Status (getStatus)
tags:
- - Health Check
- /rics/ric:
+ - Health Check
+ /rics/{ricId}:
get:
- description: Either a Near-RT RIC identity or a Managed Element identity can
- be specified.
The intention with Managed Element identity is the ID used
- in O1 for accessing the traffical element (such as the ID of CU).
+ description: Get information about a Near-RT RIC
operationId: getRic
parameters:
- - description: "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned."
- explode: true
- in: query
- name: managedElementId
- required: false
- schema:
- type: string
- style: form
- - description: The identity of a Near-RT RIC to get information for.
- explode: true
- in: query
- name: ricId
- required: false
- schema:
- type: string
- style: form
- - description: Specifies the content type that the client expects to receive in response to the request.
- Only application/json is allowed.
- in: header
- name: Accept
- schema:
- type: string
- example: application/json
+ - description: The identity of a Near-RT RIC to get information for.
+ explode: true
+ in: path
+ name: ricId
+ required: true
+ schema:
+ nullable: false
+ type: string
+ - description: Specifies the content type that the client expects to receive
+ in response to the request. Only application/json is allowed.
+ in: header
+ name: Accept
+ schema:
+ example: application/json
+ type: string
responses:
"200":
content:
application/json:
- schema:
- $ref: '#/components/schemas/RicInfo'
examples:
ric_info:
$ref: '#/components/examples/RicInfo'
+ schema:
+ $ref: '#/components/schemas/RicInfo'
description: OK - Near-RT RIC is found OK
"404":
- $ref: '#/components/responses/404'
- summary: Returns info for one Near-RT RIC
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Not Found
+ summary: Get a Near-RT RIC (getRic)
tags:
- - NearRT-RIC Repository
+ - NearRT-RIC Repository
/rics:
get:
- description: The call returns all Near-RT RICs that supports a given policy
- type identity
+ description: Get all Near-RT RICs that supports a given A1 Policy Type ID
operationId: getRics
parameters:
- - description: "The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned"
- explode: true
- in: query
- name: policyTypeId
- required: false
- schema:
- type: string
- style: form
- - description: Specifies the content type that the client expects to receive in response to the request.
- Only application/json is allowed.
- in: header
- name: Accept
- schema:
- type: string
- example: application/json
+ - description: |
+ The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned.
+ explode: true
+ in: query
+ name: policyTypeId
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Specifies the content type that the client expects to receive
+ in response to the request. Only application/json is allowed.
+ in: header
+ name: Accept
+ schema:
+ example: application/json
+ type: string
responses:
"200":
content:
application/json:
- schema:
- $ref: '#/components/schemas/RicInfoList'
examples:
ric_info_list:
$ref: '#/components/examples/RicInfoList'
+ schema:
+ $ref: '#/components/schemas/RicInfoList'
description: OK
"404":
- $ref: '#/components/responses/404'
- summary: Query Near-RT RIC information
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Not Found
+ summary: Get Near-RT RICs for A1 Policy Type (getRics)
tags:
- - NearRT-RIC Repository
+ - NearRT-RIC Repository
/policy-types:
get:
+ description: Query A1 Policy Type identities using query parameters
operationId: getPolicyTypes
parameters:
- - description: Select types for the given Near-RT RIC identity.
- explode: true
- in: query
- name: nearRtRicId
- required: false
- schema:
- type: string
- style: form
- - description: Select types with the given type name (type identity has the
- format )
- explode: true
- in: query
- name: typeName
- required: false
- schema:
- type: string
- style: form
- - description: Select types that are compatible with the given version. This
- parameter is only applicable in conjunction with type_name. As an example
- version 1.9.1 is compatible with 1.0.0 but not the other way around. Matching
- types will be returned sorted in ascending order.
- explode: true
- in: query
- name: compatibleWithVersion
- required: false
- schema:
- type: string
- style: form
- - description: Specifies the content type that the client expects to receive in response to the request.
- Only application/json is allowed.
- in: header
- name: Accept
- schema:
- type: string
- example: application/json
+ - description: Select types for the given Near-RT RIC identity.
+ explode: true
+ in: query
+ name: nearRtRicId
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Select types compatible with the given type name (type identity
+ has the format 'typename_version')
+ explode: true
+ in: query
+ name: typeName
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: |
+ Select types that are compatible with the given version. This parameter is only applicable in conjunction with typeName. As an example version 1.9.1 is compatible with 1.0.0 but not the other way around. Matching types will be returned sorted in ascending order.
+ explode: true
+ in: query
+ name: compatibleWithVersion
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Specifies the content type that the client expects to receive
+ in response to the request. Only application/json is allowed.
+ in: header
+ name: Accept
+ schema:
+ example: application/json
+ type: string
responses:
- '200':
+ "200":
content:
application/json:
+ examples:
+ PolicyTypeInformation:
+ $ref: '#/components/examples/PolicyTypeInformation'
schema:
items:
$ref: '#/components/schemas/PolicyTypeInformation'
type: array
-
description: OK - Policy Type IDs found Ok
- '400':
- $ref: '#/components/responses/400'
- '401':
- $ref: '#/components/responses/401'
- '403':
- $ref: '#/components/responses/403'
- '404':
- $ref: '#/components/responses/404'
- '406':
- $ref: '#/components/responses/406'
- '429':
- $ref: '#/components/responses/429'
- '500':
- $ref: '#/components/responses/500'
- '502':
- $ref: '#/components/responses/502'
- '503':
- $ref: '#/components/responses/503'
- description: Query policy type identities
+ "400":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Bad Request
+ "401":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Unauthorized
+ "403":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Forbidden
+ "404":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Not Found
+ "406":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Not Acceptable
+ "429":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Too Many Requests
+ "500":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Internal Server Error
+ "502":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Bad Gateway
+ "503":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Service Unavailable
+ summary: Get A1 Policy Types (getPolicyTypes)
tags:
- - A1 Policy Management
+ - A1 Policy Management
/policy-types/{policyTypeId}:
get:
+ description: Get an A1 Policy Type definition using its policy type ID
operationId: getPolicyTypeDefinition
parameters:
- - explode: false
- in: path
- name: policyTypeId
- required: true
- schema:
- type: string
- style: simple
- - description: Specifies the content type that the client expects to receive in response to the request.
- Only application/json is allowed.
- in: header
- name: Accept
- schema:
- type: string
- example: application/json
+ - explode: false
+ in: path
+ name: policyTypeId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Specifies the content type that the client expects to receive
+ in response to the request. Only application/json is allowed.
+ in: header
+ name: Accept
+ schema:
+ example: application/json
+ type: string
responses:
- '200':
+ "200":
content:
application/json:
- schema:
- $ref: '#/components/schemas/PolicyObject'
examples:
- policyObject:
- $ref: '#/components/examples/PolicyObject'
- description: OK - schema of the given policy type
- '400':
- $ref: '#/components/responses/400'
- '401':
- $ref: '#/components/responses/401'
- '403':
- $ref: '#/components/responses/403'
- '404':
- $ref: '#/components/responses/404'
- '406':
- $ref: '#/components/responses/406'
- '429':
- $ref: '#/components/responses/429'
- '500':
- $ref: '#/components/responses/500'
- '502':
- $ref: '#/components/responses/502'
- '503':
- $ref: '#/components/responses/503'
- description: Returns a policy type definition
- tags:
- - A1 Policy Management
- /policies/{policyId}:
- put:
- operationId: putPolicy
- parameters:
- - name: policyId
- in: path
- required: true
- schema:
- type: string
- requestBody:
- required: true
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/PolicyObject'
- examples:
- policyObject:
- $ref: '#/components/examples/PolicyObject'
- responses:
- '200':
+ PolicyTypeObject:
+ $ref: '#/components/examples/PolicyTypeObject'
+ schema:
+ $ref: '#/components/schemas/PolicyTypeObject'
+ description: OK - details and schema of the requested A1 Policy Type
+ "400":
content:
- application/json:
+ application/problem+json:
schema:
- $ref: '#/components/schemas/PolicyObject'
- description: OK - Policy updated
- '400':
- $ref: '#/components/responses/400'
- '401':
- $ref: '#/components/responses/401'
- '403':
- $ref: '#/components/responses/403'
- '404':
- $ref: '#/components/responses/404'
- '406':
- $ref: '#/components/responses/406'
- '411':
- $ref: '#/components/responses/411'
- '413':
- $ref: '#/components/responses/413'
- '415':
- $ref: '#/components/responses/415'
- '423':
- $ref: '#/components/responses/Locked'
- '429':
- $ref: '#/components/responses/429'
- '500':
- $ref: '#/components/responses/500'
- '502':
- $ref: '#/components/responses/502'
- '503':
- $ref: '#/components/responses/503'
- description: update a policy
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Bad Request
+ "401":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Unauthorized
+ "403":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Forbidden
+ "404":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Not Found
+ "406":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Not Acceptable
+ "429":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Too Many Requests
+ "500":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Internal Server Error
+ "502":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Bad Gateway
+ "503":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Service Unavailable
+ summary: Get an A1 Policy Type definition (getPolicyTypeDefinition)
tags:
- - A1 Policy Management
+ - A1 Policy Management
+ /policies/{policyId}:
delete:
- description: Deleting the policy using policyId.
+ description: Delete an existing A1 Policy instance using its policy ID.
operationId: deletePolicy
parameters:
- - explode: false
- in: path
- name: policyId
- required: true
- schema:
- type: string
- style: simple
- - description: Specifies the content type that the client expects to receive in response to the request.
- Only application/json is allowed.
- in: header
- name: Accept
- schema:
- type: string
- example: application/json
+ - explode: false
+ in: path
+ name: policyId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Specifies the content type that the client expects to receive
+ in response to the request. Only application/json is allowed.
+ in: header
+ name: Accept
+ schema:
+ example: application/json
+ type: string
responses:
- '204':
- description: 'The created A1 policy was deleted'
- '400':
- $ref: '#/components/responses/400'
- '401':
- $ref: '#/components/responses/401'
- '403':
- $ref: '#/components/responses/403'
- '404':
- $ref: '#/components/responses/404'
- '423':
- $ref: '#/components/responses/Locked'
- '429':
- $ref: '#/components/responses/429'
- '500':
- $ref: '#/components/responses/500'
- '502':
- $ref: '#/components/responses/502'
- '503':
- $ref: '#/components/responses/503'
- summary: Delete a policy
+ "204":
+ description: No Content
+ "400":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Bad Request
+ "401":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Unauthorized
+ "403":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Forbidden
+ "404":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Not Found
+ "405":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Method Not Allowed
+ "406":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Not Acceptable
+ "423":
+ content:
+ application/problem+json:
+ example:
+ status: 423
+ title: Locked
+ detail: State is Locked in the provided request.
+ schema:
+ $ref: '#/components/schemas/ErrorInformation'
+ description: Locked - HTTP Status code which can be used when the state
+ is Locked
+ "429":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Too Many Requests
+ "500":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Internal Server Error
+ "502":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Bad Gateway
+ "503":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Service Unavailable
+ summary: Delete an A1 Policy instance (deletePolicy)
tags:
- - A1 Policy Management
+ - A1 Policy Management
get:
+ description: Get an A1 Policy instance's policy data using its policy ID
operationId: getPolicy
parameters:
- - explode: false
- in: path
- name: policyId
- required: true
- schema:
- type: string
- style: simple
- - description: Specifies the content type that the client expects to receive in response to the request.
- Only application/json is allowed.
- in: header
- name: Accept
- schema:
- type: string
- example: application/json
+ - explode: false
+ in: path
+ name: policyId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Specifies the content type that the client expects to receive
+ in response to the request. Only application/json is allowed.
+ in: header
+ name: Accept
+ schema:
+ example: application/json
+ type: string
responses:
- '200':
+ "200":
content:
application/json:
- schema:
- $ref: '#/components/schemas/PolicyObject'
examples:
policyObject:
$ref: '#/components/examples/PolicyObject'
+ schema:
+ $ref: '#/components/schemas/PolicyObject'
description: OK - Policy found
- '400':
- $ref: '#/components/responses/400'
- '401':
- $ref: '#/components/responses/401'
- '403':
- $ref: '#/components/responses/403'
- '404':
- $ref: '#/components/responses/404'
- '406':
- $ref: '#/components/responses/406'
- '429':
- $ref: '#/components/responses/429'
- '500':
- $ref: '#/components/responses/500'
- '502':
- $ref: '#/components/responses/502'
- '503':
- $ref: '#/components/responses/503'
- description: Returns a policy
- tags:
- - A1 Policy Management
- /policies:
- get:
- description: "Returns a list of A1 policies matching given search criteria.\
- \
If several query parameters are defined, the policies matching all conditions\
- \ are returned."
- operationId: getAllPolicies
- parameters:
- - description: Select policies of a given policy type identity.
- explode: true
- in: query
- name: policyTypeId
- required: false
- schema:
- type: string
- style: form
- - description: Select policies of a given Near-RT RIC identity.
- explode: true
- in: query
- name: nearRtRicId
- required: false
- schema:
- type: string
- style: form
- - description: Select policies owned by a given service.
- explode: true
- in: query
- name: serviceId
- required: false
- schema:
- type: string
- style: form
- - description: Select policies of types with the given type name (type identity
- has the format )
- explode: true
- in: query
- name: typeName
- required: false
- schema:
- type: string
- style: form
- - description: Specifies the content type that the client expects to receive in response to the request.
- Only application/json is allowed.
- in: header
- name: Accept
- schema:
- type: string
- example: application/json
- responses:
- '200':
+ "400":
content:
- application/json:
+ application/problem+json:
schema:
- items:
- $ref: '#/components/schemas/PolicyInformation'
- type: array
- description: OK - Policy identities
- '400':
- $ref: '#/components/responses/400'
- '401':
- $ref: '#/components/responses/401'
- '403':
- $ref: '#/components/responses/403'
- '404':
- $ref: '#/components/responses/404'
- '406':
- $ref: '#/components/responses/406'
- '429':
- $ref: '#/components/responses/429'
- '500':
- $ref: '#/components/responses/500'
- '502':
- $ref: '#/components/responses/502'
- '503':
- $ref: '#/components/responses/503'
- summary: Query policy identities
- tags:
- - A1 Policy Management
- post:
- operationId: createPolicy
- requestBody:
- required: true
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/PolicyObjectInformation'
- responses:
- '201':
- description: 'Success case 201 created'
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Bad Request
+ "401":
content:
- application/json:
- schema:
- $ref: '#/components/schemas/PolicyObjectInformation'
- headers:
- Location:
- description: 'Contains the URI of the newly created resource'
- required: true
+ application/problem+json:
schema:
- type: string
- '400':
- $ref: '#/components/responses/400'
- '401':
- $ref: '#/components/responses/401'
- '403':
- $ref: '#/components/responses/403'
- '404':
- $ref: '#/components/responses/404'
- '406':
- $ref: '#/components/responses/406'
- '423':
- $ref: '#/components/responses/Locked'
- '429':
- $ref: '#/components/responses/429'
- '500':
- $ref: '#/components/responses/500'
- '502':
- $ref: '#/components/responses/502'
- '503':
- $ref: '#/components/responses/503'
- description: 'To create A1 policies'
- tags:
- - A1 Policy Management
- /configuration:
- get:
- operationId: getConfiguration
- responses:
- "200":
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Unauthorized
+ "403":
content:
- application/json:
+ application/problem+json:
schema:
- type: string
- description: OK - Application configuration received
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Forbidden
"404":
- $ref: '#/components/responses/404'
-
- description: Returns the contents of the application configuration
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Not Found
+ "406":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Not Acceptable
+ "429":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Too Many Requests
+ "500":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Internal Server Error
+ "502":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Bad Gateway
+ "503":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Service Unavailable
+ summary: Get an A1 Policy's policy data (getPolicy)
tags:
- - Configuration
+ - A1 Policy Management
put:
- operationId: putConfiguration
+ description: Update an existing A1 Policy instance's policy data using its policy
+ ID.
+ operationId: updatePolicy
+ parameters:
+ - in: path
+ name: policyId
+ required: true
+ schema:
+ type: string
requestBody:
content:
application/json:
+ examples:
+ policyObject:
+ $ref: '#/components/examples/PolicyObject'
schema:
- type: object
+ $ref: '#/components/schemas/PolicyObject'
required: true
responses:
"200":
content:
- '*/*':
+ application/json:
schema:
- $ref: '#/components/schemas/void'
- description: OK - Configuration updated
+ $ref: '#/components/schemas/PolicyObject'
+ description: OK - Policy updated
"400":
- $ref: '#/components/responses/400'
- description: Replace the current configuration file with the given configuration
- tags:
- - Configuration
- /services/{serviceId}/keepalive:
- put:
- description: A registered service should invoke this operation regularly to
- indicate that it is still alive. If a registered service fails to invoke this
- operation before the end of a timeout period the service will be deregistered
- and all its A1 policies wil be removed. (This timeout can be set or disabled
- when each service is initially registered)
- operationId: keepAliveService
- parameters:
- - explode: false
- in: path
- name: serviceId
- required: true
- schema:
- type: string
- style: simple
- - description: Specifies the content type that the client expects to receive in response to the request.
- Only application/json is allowed.
- in: header
- name: Accept
- schema:
- type: string
- example: application/json
- requestBody:
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Bad Request
+ "401":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Unauthorized
+ "403":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Forbidden
+ "404":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Not Found
+ "406":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Not Acceptable
+ "411":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Length Required
+ "413":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Payload Too Large
+ "415":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Unsupported Media Type
+ "423":
+ content:
+ application/problem+json:
+ example:
+ status: 423
+ title: Locked
+ detail: State is Locked in the provided request.
+ schema:
+ $ref: '#/components/schemas/ErrorInformation'
+ description: Locked - HTTP Status code which can be used when the state
+ is Locked
+ "429":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Too Many Requests
+ "500":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Internal Server Error
+ "502":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Bad Gateway
+ "503":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Service Unavailable
+ summary: Update an A1 Policy's policy data (updatePolicy)
+ tags:
+ - A1 Policy Management
+ /policies/{policyId}/status:
+ get:
+ description: Retrieve the status information for an A1 Policy Instance using
+ its policy ID.
+ operationId: getPolicyStatus
+ parameters:
+ - explode: false
+ in: path
+ name: policyId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Specifies the content type that the client expects to receive
+ in response to the request. Only application/json is allowed.
+ in: header
+ name: Accept
+ schema:
+ example: application/json
+ type: string
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/PolicyStatusObject'
+ description: OK
+ "400":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Bad Request
+ "401":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Unauthorized
+ "403":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Forbidden
+ "404":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Not Found
+ "406":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Not Acceptable
+ "429":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Too Many Requests
+ "500":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Internal Server Error
+ "502":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Bad Gateway
+ "503":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Service Unavailable
+ summary: Get an A1 Policy Instance's status (getPolicyStatus)
+ tags:
+ - A1 Policy Management
+ /policies:
+ get:
+ description: |
+ Returns a collection of A1 Policy Instance IDs for policies that match given search criteria. If several query parameters are defined, the policies matching all conditions are returned.
+ operationId: getPolicyIds
+ parameters:
+ - description: Select policies with a given A1 Policy Type ID.
+ explode: true
+ in: query
+ name: policyTypeId
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Select policies for a given Near-RT RIC identity.
+ explode: true
+ in: query
+ name: nearRtRicId
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Select policies owned by a given service (registered or unregistered).
+ explode: true
+ in: query
+ name: serviceId
required: false
+ schema:
+ type: string
+ style: form
+ - description: Select policies of a given A1 Policy Type name (type identity
+ has the format 'typename_version').
+ explode: true
+ in: query
+ name: typeName
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Specifies the content type that the client expects to receive
+ in response to the request. Only application/json is allowed.
+ in: header
+ name: Accept
+ schema:
+ example: application/json
+ type: string
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ items:
+ $ref: '#/components/schemas/PolicyInformation'
+ type: array
+ description: OK - Policy identities
+ "400":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Bad Request
+ "401":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Unauthorized
+ "403":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Forbidden
+ "404":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Not Found
+ "406":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Not Acceptable
+ "429":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Too Many Requests
+ "500":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Internal Server Error
+ "502":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Bad Gateway
+ "503":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Service Unavailable
+ summary: Query for A1 Policy instances (getPolicyIds)
+ tags:
+ - A1 Policy Management
+ post:
+ description: Create an A1 Policy Instance
+ operationId: createPolicy
+ requestBody:
content:
application/json:
schema:
- type: string
+ $ref: '#/components/schemas/PolicyObjectInformation'
+ required: true
responses:
- "200":
+ "201":
content:
- '*/*':
+ application/json:
schema:
- type: object
- description: "OK - Service supervision timer refreshed, OK"
+ $ref: '#/components/schemas/PolicyObjectInformation'
+ description: Created
+ headers:
+ Location:
+ description: |
+ Contains the URI of the newly created A1 Policy Instances. This URI includes the A1 Policy Instance ID for the newly created policy instance.
+ required: true
+ schema:
+ type: string
+ Content-Type:
+ description: Media Type of the response
+ schema:
+ example: application/json
+ type: string
+ "400":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Bad Request
+ "401":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Unauthorized
+ "403":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Forbidden
"404":
- $ref: '#/components/responses/404'
- summary: Heartbeat indicates that the service is running
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Not Found
+ "405":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Method Not Allowed
+ "406":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Not Acceptable
+ "409":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Conflict
+ "413":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Payload Too Large
+ "415":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Unsupported Media Type
+ "423":
+ content:
+ application/problem+json:
+ example:
+ status: 423
+ title: Locked
+ detail: State is Locked in the provided request.
+ schema:
+ $ref: '#/components/schemas/ErrorInformation'
+ description: Locked - HTTP Status code which can be used when the state
+ is Locked
+ "429":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Too Many Requests
+ "500":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Internal Server Error
+ "502":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Bad Gateway
+ "503":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Service Unavailable
+ summary: Create an A1 Policy Instance (createPolicy)
tags:
- - Service Registry and Supervision
- /services:
+ - A1 Policy Management
+ /configuration:
get:
- description: Either information about a registered service with given identity
- or all registered services are returned.
- operationId: getServices
- parameters:
- - description: The identity of the service
- explode: true
- in: query
- name: serviceId
- required: false
- schema:
- type: string
- style: form
- - description: Specifies the content type that the client expects to receive in response to the request.
- Only application/json is allowed.
- in: header
- name: Accept
- schema:
- type: string
- example: application/json
+ description: Returns the entire contents of the Application Configuration.
+ operationId: getConfiguration
responses:
"200":
content:
application/json:
schema:
- $ref: '#/components/schemas/ServiceStatusList'
- examples:
- service_status_list:
- $ref: '#/components/examples/ServiceStatusList'
- description: OK
+ type: string
+ description: OK - Application configuration received
"404":
- $ref: '#/components/responses/404'
- summary: Returns service information
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Not Found
+ summary: Get the Application Configuration (getConfiguration)
tags:
- - Service Registry and Supervision
+ - Configuration
put:
- description: "Registering a service is needed to:- Get callbacks about\
- \ available NearRT RICs.
- Activate supervision of the service. If a\
- \ service is inactive, its policies will automatically be deleted.
Policies\
- \ can be created even if the service is not registerred. This is a feature\
- \ which it is optional to use."
- operationId: putService
+ description: |
+ Replace the current Application Configuration with a new configuration. The new configuration, if accepted, will take effect after a short delay. The new configuration must comply with the Application Configuration schema, which can be found from the the Application Documentation (Developer Guide)
+ operationId: putConfiguration
requestBody:
content:
application/json:
schema:
- $ref: '#/components/schemas/ServiceRegistrationInfo'
+ type: object
required: true
responses:
"200":
content:
- '*/*':
+ application/json:
schema:
- type: object
- description: OK - Service updated
- "201":
+ $ref: '#/components/schemas/void'
+ description: OK - Configuration updated
+ "400":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Bad Request
+ summary: Set/Replace the Application Configuration (putConfiguration)
+ tags:
+ - Configuration
+ /services/{serviceId}/keepalive:
+ put:
+ description: "A registered service should invoke this operation regularly to\
+ \ indicate that it is still alive. If a registered service fails to invoke\
+ \ some operation, or this operation, before the end of a timeout period the\
+ \ service will be deregistered and all its A1 policies wil be removed and\
+ \ the service is deleted. This operation is only intended for registered services.\
+ \ (This timeout can be set or disabled when each service is initially registered).\
+ \ Unregistered services do not need to invoke this operation, since the optional\
+ \ keep-alive monitoring feature can only be enabled for registered services."
+ operationId: keepAliveService
+ parameters:
+ - explode: false
+ in: path
+ name: serviceId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Specifies the content type that the client expects to receive
+ in response to the request. Only application/json is allowed.
+ in: header
+ name: Accept
+ schema:
+ example: application/json
+ type: string
+ responses:
+ "200":
content:
- '*/*':
+ application/json:
schema:
type: object
- description: Created - Service created
- "400":
- $ref: '#/components/responses/400'
- summary: Register a service
+ description: "OK - Service supervision timer refreshed, OK"
+ "404":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Not Found
+ summary: Heartbeat message from a service (keepAliveService)
+ tags:
+ - Service Registry and Supervision
+ /services:
+ get:
+ description: |
+ Get information about all registered services, or a single registered service. If the service ID of a registered service is included in the query, information about that service is returned. Otherwise Information about all registered is returned. This operation does not retrieve information about unregistered services.
+ operationId: getServices
+ parameters:
+ - description: The identity of the registered service
+ explode: true
+ in: query
+ name: serviceId
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Specifies the content type that the client expects to receive
+ in response to the request. Only application/json is allowed.
+ in: header
+ name: Accept
+ schema:
+ example: application/json
+ type: string
+ responses:
+ "200":
+ content:
+ application/json:
+ examples:
+ service_status_list:
+ $ref: '#/components/examples/ServiceStatusList'
+ schema:
+ $ref: '#/components/schemas/ServiceStatusList'
+ description: OK
+ "404":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Not Found
+ summary: Get Services (getServices)
tags:
- - Service Registry and Supervision
+ - Service Registry and Supervision
+ put:
callbacks:
RICStatus:
- "{$request.body#/callback_url}":
+ '{$request.body#/callback_url}':
post:
- description: The URL to this call is registered at Service registration.
+ description: "Callouts to indicate Near-RT RIC status changes relevant\
+ \ for Services. \nThe URL invoked by this callback is provided at\
+ \ Service registration.\n"
operationId: serviceCallback
requestBody:
content:
@@ -716,93 +1142,155 @@ paths:
$ref: '#/components/schemas/void'
description: OK
"404":
- $ref: '#/components/responses/404'
- summary: Callback for Near-RT RIC status
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Not Found
+ summary: Callback for Near-RT RIC status (serviceCallback)
tags:
- - Service callbacks
+ - Service Registry and Supervision
+ x-callback-request: true
+ description: |
+ Register a single service, or update a previous registration. Service registration is required to get callbacks about available NearRT RICs and to enable supervision of the service's active status. If a registered service becomes inactive, its policies can be automatically deleted. A1 Policy instances can also be created for unregistered services. If an unregistered service is later registered, the service's policies are retained when the service becomes registered. This feature is optional to use.
+ operationId: putService
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ServiceRegistrationInfo'
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ type: object
+ description: OK - Service updated
+ "201":
+ content:
+ application/json:
+ schema:
+ type: object
+ description: Created - Service created
+ "400":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Bad Request
+ summary: Register or update a Service (putService)
+ tags:
+ - Service Registry and Supervision
/services/{serviceId}:
delete:
+ description: |
+ Unregister a registered Service using its service ID. Only registered services can be unregistered. All A1 Policy Instances for the previously registered service will be removed.
operationId: deleteService
parameters:
- - explode: false
- in: path
- name: serviceId
- required: true
- schema:
- type: string
- style: simple
- - description: Specifies the content type that the client expects to receive in response to the request.
- Only application/json is allowed.
- in: header
- name: Accept
- schema:
- type: string
- example: application/json
+ - explode: false
+ in: path
+ name: serviceId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Specifies the content type that the client expects to receive
+ in response to the request. Only application/json is allowed.
+ in: header
+ name: Accept
+ schema:
+ example: application/json
+ type: string
responses:
"204":
content:
- '*/*':
+ application/json:
schema:
type: object
description: No Content - Service unregistered
"404":
- $ref: '#/components/responses/404'
- description: Unregister a service
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Not Found
+ summary: Unregister a Service (deleteService)
tags:
- - Service Registry and Supervision
+ - Service Registry and Supervision
components:
examples:
- ServiceStatusList:
- description: List of service information
- value:
- serviceList:
- - callbackUrl: callbackUrl
- serviceId: serviceId
- keepAliveIntervalSeconds: 0
- timeSinceLastActivitySeconds: 6
- - callbackUrl: callbackUrl
- serviceId: serviceId
- keepAliveIntervalSeconds: 0
- timeSinceLastActivitySeconds: 6
- PolicyStatusInfo:
- description: Status for one A1-P Policy
- value:
- lastModified: last_modified
- status:
- value:
- status: status
StatusInfo:
value:
- status: status
+ status: success
RicInfo:
value:
- ricId: ricId
+ ricId: ricId1
managedElementIds:
- - managedElementId
- - managedElementId
+ - "Note #1"
+ - Athlone small cells
+ - Some optional string
state: UNAVAILABLE
policyTypeIds:
- - policyTypeId
- - policyTypeId
+ - policyTypeId1
+ - policyTypeId2
RicInfoList:
value:
rics:
- - ricId: ricId
- managedElementIds:
- - managedElementId
- - managedElementId
- state: UNAVAILABLE
- policyTypeIds:
- - policyTypeId
- - policyTypeId
- - ricId: ricId
- managedElementIds:
- - managedElementId
- - managedElementId
- state: UNAVAILABLE
- policyTypeIds:
- - policyTypeId
- - policyTypeId
+ - ricId: ricId1
+ managedElementIds:
+ - "Note #1"
+ - Athlone small cells
+ - Fake Cells
+ state: UNAVAILABLE
+ policyTypeIds:
+ - policyTypeId1
+ - policyTypeId2
+ - ricId: ricId2
+ managedElementIds:
+ - My test element
+ - Another test element
+ state: UNAVAILABLE
+ policyTypeIds:
+ - policyTypeId3
+ - policyTypeId4
+ PolicyTypeInformation:
+ value:
+ - policyTypeId: STD_QOS2_0.1.0
+ nearRtRicId: ric_g3_2
+ - policyTypeId: STD_QOS_0_2_0
+ nearRtRicId: ric_g3_2
+ - policyTypeId: STD_QOS2_0.1.0
+ nearRtRicId: ric_g3_1
+ - policyTypeId: STD_QOS_0_2_0
+ nearRtRicId: ric_g3_1
+ PolicyTypeObject:
+ value:
+ policySchema:
+ $schema: http://json-schema.org/draft-07/schema#
+ title: STD_QOS_0_2_0
+ description: STD QOS2 policy type
+ type: object
+ properties:
+ scope:
+ type: object
+ properties:
+ ueId:
+ type: string
+ qosId:
+ type: string
+ additionalProperties: false
+ required:
+ - ueId
+ - qosId
+ qosObjectives:
+ type: object
+ properties:
+ priorityLevel:
+ type: number
+ additionalProperties: false
+ required:
+ - priorityLevel
PolicyObject:
value:
scope:
@@ -815,11 +1303,11 @@ components:
gnbId:
gnbIdLength: 24
gnbIdValue: 12345678
- RanUeId: 'a31c510b20e64a74'
+ RanUeId: a31c510b20e64a74
groupId:
spId: 123
qosId:
- 5qI: 1
+ "5qI": 1
cellId:
plmnId:
mcc: "123"
@@ -831,380 +1319,464 @@ components:
mfbr: 200
priorityLevel: 3
pdb: 50
- schemas:
- PolicyTypeInformation:
- description: >-
- Available policy types and for each policy type identifier the Near-RT
- RIC identifiers of those Near-RT RICs that support the related A1 policy
- type
- type: object
- properties:
- policyTypeId:
- description: Identity of the policy type
- type: string
- nearRtRicId:
- $ref: '#/components/schemas/NearRtRicId'
- required:
- - policyTypeId
- - nearRtRicId
- PolicyObjectInformation:
- description: Information related to the creation of the policy
- type: object
- properties:
- nearRtRicId:
- description: identity of the target Near-RT RIC
- type: string
- example:
- 'Near-RT-Ric-ID'
- transient:
- default: false
- description: "if true, the policy is deleted at RIC restart. If false, its\
- \ value is maintained by this service until explicitly deleted. Default\
- \ false."
- nullable: false
- type: boolean
- policyId:
- description: identity of the Policy
- type: string
- example:
- 'POLICY-ID'
- serviceId:
- description: the identity of the service owning the policy. This can be
- used to group the policies (it is possible to get all policies associated
- to a service). Note that the service does not need to be registered.
- type: string
+ ServiceStatusList:
+ description: List of service information
+ value:
+ serviceList:
+ - callbackUrl: http://callback.url
+ serviceId: serviceId1
+ keepAliveIntervalSeconds: 0
+ timeSinceLastActivitySeconds: 6
+ - callbackUrl: http://callback.url
+ serviceId: serviceId2
+ keepAliveIntervalSeconds: 500
+ timeSinceLastActivitySeconds: 401
+ responses:
+ "404":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Not Found
+ "400":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Bad Request
+ "401":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Unauthorized
+ "403":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Forbidden
+ "406":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Not Acceptable
+ "429":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Too Many Requests
+ "500":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Internal Server Error
+ "502":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Bad Gateway
+ "503":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Service Unavailable
+ "411":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Length Required
+ "413":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Payload Too Large
+ "415":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Unsupported Media Type
+ Locked:
+ content:
+ application/problem+json:
example:
- 'rApp ID'
- policyObject:
- $ref: '#/components/schemas/PolicyObject'
- policyTypeId:
- description: identity of the policy type
+ status: 423
+ title: Locked
+ detail: State is Locked in the provided request.
+ schema:
+ $ref: '#/components/schemas/ErrorInformation'
+ description: Locked - HTTP Status code which can be used when the state is Locked
+ "405":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Method Not Allowed
+ "409":
+ content:
+ application/problem+json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ description: Conflict
+ schemas:
+ StatusInfo:
+ example:
+ status: status
+ properties:
+ status:
+ description: Status text
type: string
- example: 'ORAN_QOS_1.0.0(typeName_SemVersion)'
- required:
- - nearRtRicId
- - policyObject
- - policyTypeId
- ErrorInformation:
- description: Problem as defined in https://tools.ietf.org/html/rfc7807
+ type: object
+ ProblemDetails:
+ description: Object to carry details about a problem in an HTTP response according
+ to IETF RFC 7807
properties:
- detail:
- description: ' A human-readable explanation specific to this occurrence
- of the problem.'
- example: Policy type not found
+ type:
+ description: URI reference according to IETF RFC 3986 that identifies the
+ problem type
type: string
title:
- description: 'A specific error name'
+ description: Human-readable summary of the problem type
type: string
- example: Not Found
- status:
- description: 'The HTTP status code generated by the origin server for this
- occurrence of the problem. '
- example: 404
- format: int32
- type: integer
- type: object
- PolicyObject:
- description: 'Policy Object is a JSON representation of an A1 policy'
- type: object
- void:
- description: Void/empty
- type: object
- StatusInfo:
- properties:
status:
- description: status text
+ description: HTTP status code
+ type: number
+ detail:
+ description: Human-readable explanation
+ type: string
+ instance:
+ description: URI reference that identifies the specific occurrence of the
+ problem
type: string
- type: object
- AuthorizationResult:
- description: Result of authorization
- example:
- result: true
- properties:
- result:
- description: "If true, the access is granted"
- type: boolean
- required:
- - result
type: object
RicInfo:
description: Information for a Near-RT RIC
+ example:
+ ricId: ricId
+ policyTypeIds:
+ - policyTypeIds
+ - policyTypeIds
+ managedElementIds:
+ - managedElementIds
+ - managedElementIds
+ state: UNAVAILABLE
properties:
ricId:
- description: identity of the Near-RT RIC
+ description: Identity of the Near-RT RIC
type: string
managedElementIds:
- description: O1 identities for managed entities
+ description: Identities for managed entities
items:
- description: O1 identities for managed entities
+ description: Identity for a managed entity
type: string
type: array
state:
- description: Represents the states for a Near-RT RIC
+ description: Represents the state of a Near-RT RIC
enum:
- - UNAVAILABLE
- - AVAILABLE
- - SYNCHRONIZING
- - CONSISTENCY_CHECK
+ - UNAVAILABLE
+ - AVAILABLE
+ - SYNCHRONIZING
+ - CONSISTENCY_CHECK
type: string
policyTypeIds:
- description: supported policy types
+ description: Supported A1 Policy Types
items:
- description: supported policy types
+ description: Supported A1 Policy Type ID
type: string
type: array
type: object
- ServiceRegistrationInfo:
- description: Information for one service
+ RicInfoList:
+ description: Collection of Near-RT RIC information objects
+ example:
+ rics:
+ - ricId: ricId
+ policyTypeIds:
+ - policyTypeIds
+ - policyTypeIds
+ managedElementIds:
+ - managedElementIds
+ - managedElementIds
+ state: UNAVAILABLE
+ - ricId: ricId
+ policyTypeIds:
+ - policyTypeIds
+ - policyTypeIds
+ managedElementIds:
+ - managedElementIds
+ - managedElementIds
+ state: UNAVAILABLE
properties:
- callbackUrl:
- description: callback for notifying of Near-RT RIC state changes
+ rics:
+ description: List of Near-RT RIC information objects
+ items:
+ $ref: '#/components/schemas/RicInfo'
+ type: array
+ type: object
+ PolicyTypeInformation:
+ description: A data tuple to indicate that an identified A1 Policy Type is supported
+ at an identified Near-RT RIC.
+ example:
+ policyTypeId: STD_QOS2_0.1.0
+ nearRtRicId: ric_g3_2
+ properties:
+ policyTypeId:
+ description: A1 Policy Type identifier
type: string
- serviceId:
- description: identity of the service
+ nearRtRicId:
+ description: Identity of the Near-RT RIC
type: string
- keepAliveIntervalSeconds:
- description: "keep alive interval for the service. This is used to enable\
- \ optional heartbeat supervision of the service. If set (> 0) the registered\
- \ service should regularly invoke a 'keepalive' REST call. When a service\
- \ fails to invoke this 'keepalive' call within the configured time, the\
- \ service is considered unavailable. An unavailable service will be automatically\
- \ deregistered and its policies will be deleted. Value 0 means timeout\
- \ supervision is disabled."
- format: int64
- type: integer
required:
- - serviceId
+ - nearRtRicId
+ - policyTypeId
type: object
- PolicyStatusInfo:
- description: Status for one A1-P Policy
+ NearRtRicId:
+ description: Identity of the Near-RT RIC
+ type: string
+ PolicyTypeObject:
+ description: "An A1 Policy Type, as defined in O-RAN Alliance A1TD"
+ example:
+ policySchema:
+ $schema: http://json-schema.org/draft-07/schema#
+ title: STD_QOS_0_2_0
+ description: Policy data schema for STD_QOS_0.2.0 A1 Policy Instances.
+ type: object
+ properties:
+ scope:
+ type: object
+ properties:
+ ueId:
+ type: string
+ qosId:
+ type: string
+ additionalProperties: false
+ required:
+ - ueId
+ - qosId
+ qosObjectives:
+ type: object
+ properties:
+ priorityLevel:
+ type: number
+ additionalProperties: false
+ required:
+ - priorityLevel
+ statusSchema:
+ $schema: http://json-schema.org/draft-07/schema#
+ title: STD_QOS_0.2.0
+ description: Status schema for STD_QOS_0.2.0 A1 Policy Instances.
+ type: object
+ properties:
+ enforceStatus:
+ type: string
+ enforceReason:
+ type: string
+ additionalProperties: false
+ required:
+ - enforceStatus
properties:
- lastModified:
- description: "timestamp, last modification time"
- type: string
- status:
- description: the Policy status
+ policySchema:
+ description: |
+ A schema to define the policy data contents of A1 Policy Instances. Policy data schemas are Policy Type specific. All A1 Policy Instances of an A1 Policy Type should comply with the type's policy data schema.
type: object
+ statusSchema:
+ description: |
+ A schema to define the contents of the status information for A1 Policy Instances. Status schemas are Policy Type specific. All status information for all A1 Policy Instances of an A1 Policy Type should comply with the type's status schema.
+ type: object
+ required:
+ - policySchema
type: object
- ServiceStatus:
+ PolicySchema:
+ description: |
+ A schema to define the policy data contents of A1 Policy Instances. Policy data schemas are Policy Type specific. All A1 Policy Instances of an A1 Policy Type should comply with the type's policy data schema.
+ type: object
+ StatusSchema:
+ description: |
+ A schema to define the contents of the status information for A1 Policy Instances. Status schemas are Policy Type specific. All status information for all A1 Policy Instances of an A1 Policy Type should comply with the type's status schema.
+ type: object
+ PolicyObject:
+ description: |
+ Policy Object is a JSON representation policy data for an A1 Policy Instance. The schema for this policy data is defined in the corresponding A1 Policy Type.
+ type: object
+ ErrorInformation:
+ description: Problem as defined in https://tools.ietf.org/html/rfc7807
properties:
- callbackUrl:
- description: callback for notifying of RIC synchronization
+ detail:
+ description: A human-readable explanation specific to this occurrence of
+ the problem.
+ example: Policy type not found
type: string
- serviceId:
- description: identity of the service
+ title:
+ description: A specific error name
+ example: Not Found
type: string
- keepAliveIntervalSeconds:
- description: policy keep alive timeout
- format: int64
- type: integer
- timeSinceLastActivitySeconds:
- description: time since last invocation by the service
- format: int64
+ status:
+ description: |
+ The HTTP status code generated by the origin server for this occurrence of the problem.
+ example: 404
+ format: int32
type: integer
type: object
- RicInfoList:
- description: List of Near-RT RIC information
- properties:
- rics:
- description: List of Near-RT RIC information
- items:
- $ref: '#/components/schemas/RicInfo'
- type: array
+ PolicyStatusObject:
+ description: |
+ A generic policy status object that can be used to transport any policy status. Additionally, a schema for policy status can be defined in the corresponding A1 Policy Type.
type: object
- input:
- description: input
+ PolicyInformation:
+ description: |
+ Information tuple for a single A1 Policy Instance. Contains the A1 Policy Instance ID, and the ID of the Near-RT RIC where the policy is created.
+ example:
+ policyId: policyId
+ nearRtRicId: nearRtRicId
properties:
- accessType:
- description: Access type
- enum:
- - READ
- - WRITE
- - DELETE
- type: string
- authToken:
- description: Authorization token
+ policyId:
+ description: Identity of the A1 Policy Instance
type: string
- policyTypeId:
- description: Policy type identifier
+ nearRtRicId:
+ description: Identity of the Near-RT RIC
type: string
required:
- - accessType
- - authToken
- - policyTypeId
- type: object
- PolicyAuthorization:
- description: Authorization request for A1 policy requests
- properties:
- input:
- $ref: '#/components/schemas/input'
- required:
- - input
- type: object
- NearRtRicId:
- description: Identity of the policy
- type: string
- PolicyInformation:
- description: >-
- Near-RT RIC identifiers where A1 policies exist and for each Near-RT RIC
- identifier the policy identifiers of those policies that exist in that
- Near-RT RIC
+ - nearRtRicId
+ - policyId
type: object
+ PolicyObjectInformation:
+ description: Information to create an A1 Policy Instance
+ example:
+ policyId: POLICY-ID1
+ nearRtRicId: Near-RT-Ric-ID1
+ transient: false
+ policyObject: "{}"
+ serviceId: rApp 1
+ policyTypeId: ORAN_QOS_1.0.0 '(typeName_SemVersion)'
properties:
+ nearRtRicId:
+ description: Identity of the target Near-RT RIC
+ example: Near-RT-Ric-ID1
+ type: string
+ transient:
+ default: false
+ description: |
+ If true, the policy is automatically deleted if the targeted Near-RT RIC restarts or recovers. If false, the A1 Policy Instance remains, and is re-pushed to the targeted Near-RT RIC after a restart or recovery. If false, the A1 Policy Instance is maintained and must be deleted separately in the event of Near-RT RIC restart or recovery. Default is false.
+ nullable: false
+ type: boolean
policyId:
- description: Identity of the policy
+ description: |
+ An optional identity to be used for the new A1 Policy Instance. If this value is present, it must be unique. If not present the new A1 Policy Instance will be assigned a newly generated unique ID, and the new ID can be extracted from the 'Location' header in the response.
+ example: POLICY-ID1
+ type: string
+ serviceId:
+ default: ""
+ description: "the identity of the service owning the policy. This can be\
+ \ used to group the policies (it is possible to get all policies associated\
+ \ to a service). Note that the service does not need to be registered.\
+ \ If the service is registered, the newly created A1 Policy Instance will\
+ \ be subject to the same supervision rules as the the service's other\
+ \ policies."
+ example: rApp 1
+ type: string
+ policyObject:
+ description: |
+ Policy Object is a JSON representation policy data for an A1 Policy Instance. The schema for this policy data is defined in the corresponding A1 Policy Type.
+ type: object
+ policyTypeId:
+ description: A1 Policy Type identity
+ example: ORAN_QOS_1.0.0 '(typeName_SemVersion)'
type: string
- nearRtRicId:
- $ref: '#/components/schemas/NearRtRicId'
required:
- - policyId
- - nearRtRicId
+ - nearRtRicId
+ - policyObject
+ - policyTypeId
+ type: object
+ void:
+ description: Void/empty
+ type: object
ServiceStatusList:
+ example:
+ serviceList:
+ - keepAliveIntervalSeconds: 0
+ callbackUrl: callbackUrl
+ timeSinceLastActivitySeconds: 6
+ serviceId: serviceId
+ - keepAliveIntervalSeconds: 0
+ callbackUrl: callbackUrl
+ timeSinceLastActivitySeconds: 6
+ serviceId: serviceId
properties:
serviceList:
- description: List of service information
+ description: "List of Service Status objects, describing a collection of\
+ \ registered services."
items:
$ref: '#/components/schemas/ServiceStatus'
type: array
type: object
- ServiceCallbackInfo:
- description: Information transferred as in Service callbacks (callback_url)
+ ServiceStatus:
+ description: Information about a previously registered service
+ example:
+ keepAliveIntervalSeconds: 0
+ callbackUrl: callbackUrl
+ timeSinceLastActivitySeconds: 6
+ serviceId: serviceId
properties:
- ricId:
- description: identity of a Near-RT RIC
+ callbackUrl:
+ description: Callback URL for notifying of Near-RT RIC state changes
type: string
- eventType:
- description: "values:\nAVAILABLE: the Near-RT RIC has become available\
- \ for A1 Policy management"
- enum:
- - AVAILABLE
+ serviceId:
+ description: Identity of the service
type: string
- required:
- - eventType
- - ricId
+ keepAliveIntervalSeconds:
+ description: |
+ Keep alive interval (seconds) for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled.
+ format: int64
+ type: integer
+ timeSinceLastActivitySeconds:
+ description: Time (seconds) since last recorded operation by the service
+ format: int64
+ type: integer
type: object
- Link:
+ ServiceRegistrationInfo:
+ description: Information for a service to be registered
+ example:
+ keepAliveIntervalSeconds: 0
+ callbackUrl: callbackUrl
+ serviceId: serviceId
properties:
- templated:
- type: boolean
- href:
+ callbackUrl:
+ description: Callback URL for notifying of Near-RT RIC state changes
type: string
+ serviceId:
+ description: Identity of the service
+ type: string
+ keepAliveIntervalSeconds:
+ description: |
+ Keep alive interval for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled.
+ format: int64
+ type: integer
+ required:
+ - serviceId
type: object
- ProblemDetails:
- description: >-
- A problem detail to carry details in an HTTP response according to RFC
- 7807
- type: object
+ ServiceCallbackInfo:
+ description: "Information transferred in Service callbacks, \nif a callback\
+ \ URL was provided for a registered service\n"
+ example:
+ ricId: ricId
+ eventType: AVAILABLE
properties:
- type:
- description: >-
- a URI reference according to IETF RFC 3986 that identifies the
- problem type
- type: string
- title:
- description: human-readable summary of the problem type
- type: string
- status:
- description: the HTTP status code
- type: number
- detail:
- description: 'human-readable explanation '
+ ricId:
+ description: Identity of a Near-RT RIC
type: string
- instance:
- description: URI reference that identifies the specific occurrence of the problem
+ eventType:
+ description: "values: \n AVAILABLE: the Near-RT RIC has become available\
+ \ for A1 Policy management\n"
+ enum:
+ - AVAILABLE
type: string
- responses:
- '400':
- description: Bad Request
- content:
- application/problem+json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- '401':
- description: Unauthorized
- content:
- application/problem+json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- '403':
- description: Forbidden
- content:
- application/problem+json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- '404':
- description: Not Found
- content:
- application/problem+json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- '405':
- description: Method Not Allowed
- content:
- application/problem+json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- '406':
- description: Not Acceptable
- content:
- application/problem+json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- '409':
- description: Conflict
- content:
- application/problem+json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- '411':
- description: Length Required
- content:
- application/problem+json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- '413':
- description: Payload Too Large
- content:
- application/problem+json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- '415':
- description: Unsupported Media Type
- content:
- application/problem+json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- '429':
- description: Too Many Request
- content:
- application/problem+json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- '500':
- description: Internal Server Error
- content:
- application/problem+json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- '502':
- description: Bad Gateway
- content:
- application/problem+json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- '503':
- description: Service Unavailable
- content:
- application/problem+json:
- schema:
- $ref: '#/components/schemas/ProblemDetails'
- Locked:
- description: "Locked - HTTP Status code which can be used when the state is Locked"
- content:
- application/problem+json:
- schema:
- $ref: '#/components/schemas/ErrorInformation'
- example:
- status: 423
- title: Locked
- detail: State is Locked in the provided request.
+ required:
+ - eventType
+ - ricId
+ type: object
diff --git a/api/pms-api.json b/api/pms-api.json
index deb5743..8e20aa4 100644
--- a/api/pms-api.json
+++ b/api/pms-api.json
@@ -2,205 +2,70 @@
"openapi" : "3.0.3",
"info" : {
"contact" : {
- "email" : "discuss-list@onap.com",
- "url" : "https://www.onap.org/"
+ "email" : "discuss@lists.o-ran-sc.org",
+ "url" : "https://o-ran-sc.org//"
},
- "description" : "General
The O-RAN Non-RT RIC Policy Management Service provides a REST API for managemecnt of A1 policies.
The main tasks of the service are:
- A1 Policy creation, modification and deletion.
- Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs
- Maintaining a view of supported Near-RT RIC policy types
- Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.
APIs provided or defined by the service
A1 Policy Management
This is an API for management of A1 Policies.
- A1 Policy retrieval, creation, modification and deletion.
- Retrieval of supported A1 Policy types for a Near-RT RIC
- Retrieval of status for existing A1 policies
Management of configuration
API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.
Service callbacks
These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.
NearRT-RIC Repository
This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.
Health Check
API used for supervision of the PMS component.
Service Registry and Supervision
API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.
Authorization API
API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.
Spring Boot Actuator
Provides generic functions used to monitor and manage the Spring web application.
",
+ "description" : "General
The ORAN SC A1 Policy Management Service provides a REST API for managing A1 policies.
This document describes the latest API set to perform tasks for:
- A1 Policy creation, modification and deletion.
- Monitoring and maintaining consistency of the SMO view of A1 Policies and the Near-RT RICs
- Maintaining a view of each Near-RT RIC's supported A1 Policy Types
- Supervision of registered services (rApps). When a registered service is unavailable, its policies are removed.
APIs provided or defined by the service
Note: parts of this API are strongly based on extracts of the O-RAN Alliance R1 Interface specification for A1 Policy Management, and those parts should be considered '© O-RAN ALLIANCE - All rights reserved.'
A1 Policy Management
This is the latest API for managing A1 Policies. This API is partially compliant with O-RAN Alliance R1 Interface specifications for A1 Policy Management:
- A1 Policy retrieval, creation, modification and deletion.
- Retrieval of supported A1 Policy Types for a Near-RT RIC
- Retrieval of status for existing A1 policies
Management of configuration
API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.
Service Callbacks
These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.
NearRT-RIC Repository (Older version)
This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted towards one Near-RT RIC.
Health Check
API used for supervision of the A1 Policy Management Service.
Service Registry and Supervision
API used for registering services/clients/rApps. Each A1 Policy can be tagged with an owner. If the owner service is registered, then the service can be optionally monitored by a heart-beat supervision mechanism, and if the registered service becomes unavailable, then it is removed and all its A1 Policies are deleted. Note that services do not need to be registered to create A1 Policies, but unregistered services are not supervised. This is a feature that is optional to use.
",
"license" : {
- "name" : "Copyright (C) 2020-2023 Nordix Foundation. Licensed under the Apache License.",
+ "name" : "Copyright (C) 2024 - 2025 OpenInfra Foundation Europe. Licensed under the Apache 2 License.",
"url" : "http://www.apache.org/licenses/LICENSE-2.0"
},
- "title" : "A1 Policy Management Service",
- "version" : "1.3.0",
- "x-api-id" : "a31c510b-20e6-4a08-af16-368c44d7fba8",
+ "title" : "OSC - A1 Policy Management API",
+ "version" : "1.0.0",
+ "x-api-id" : "e9776a07-0813-4fca-9801-6f892f0a7c13",
"x-audience" : "external-public"
},
"servers" : [ {
"url" : "/"
} ],
"tags" : [ {
- "description" : "API used to create polices, Policy Instances and get them as individual using an ID or get all policies/Instances.",
+ "description" : "Older pre-spec API used to get, create, update and delete A1 Policy Instances. Also used to query A1 Policy Types.\n",
"name" : "A1 Policy Management"
}, {
- "description" : "API used to get the NearRT-RIC for the managed element.",
+ "description" : "Older API used to get information about registered Near-RT RICs.\n",
"name" : "NearRT-RIC Repository"
}, {
- "description" : "API used to keep the service Alive with in the timeout period",
+ "description" : "Older API used to manage registered services, and control their keep-alive status via heart-beat messages.\n",
"name" : "Service Registry and Supervision"
}, {
- "description" : "API used to get the health status and statistics of this service",
+ "description" : "API used to get the health status and statistics of this service\n",
"name" : "Health Check"
}, {
- "name" : "Service callbacks"
+ "description" : "Callout to registered services to indicate a status changes for a Near-RT RIC. Note that these operations are called by the A1 Policy Management Service, not provided.\n",
+ "name" : "Service Callbacks"
}, {
- "description" : "API used for authorization of information A1 policy access (this is provided by an authorization producer such as OPA).
Note that this API is called by PMS, it is not provided.",
+ "description" : "API used for authorization of information A1 policy access (this is provided by an authorization producer such as OPA). Note that these operations are called by the A1 Policy Management Service, not provided.\n",
"name" : "Authorization API"
}, {
- "description" : "API used to create or fetch the application configuration.",
+ "description" : "API used to create or fetch the application configuration.\n",
"name" : "Configuration"
}, {
- "description" : "Monitor and interact",
+ "description" : "API used to monitor and configure the A1-PMS Springboot Service.\n",
"externalDocs" : {
"description" : "Spring Boot Actuator Web API Documentation",
- "url" : "https://docs.spring.io/spring-boot/docs/current/actuator-api/html/"
+ "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html"
},
- "name" : "Actuator"
+ "name" : "Actuator API"
} ],
"paths" : {
- "/a1-policy/v2/policy-instances" : {
- "get" : {
- "description" : "Returns a list of A1 policies matching given search criteria.
If several query parameters are defined, the policies matching all conditions are returned.",
- "operationId" : "getPolicyInstances",
- "parameters" : [ {
- "description" : "Select policies with a given type identity.",
- "explode" : true,
- "in" : "query",
- "name" : "policytype_id",
- "required" : false,
- "schema" : {
- "type" : "string"
- },
- "style" : "form"
- }, {
- "description" : "Select policies for a given Near-RT RIC identity.",
- "explode" : true,
- "in" : "query",
- "name" : "ric_id",
- "required" : false,
- "schema" : {
- "type" : "string"
- },
- "style" : "form"
- }, {
- "description" : "Select policies owned by a given service.",
- "explode" : true,
- "in" : "query",
- "name" : "service_id",
- "required" : false,
- "schema" : {
- "type" : "string"
- },
- "style" : "form"
- }, {
- "description" : "Select policies of a given type name (type identity has the format )",
- "explode" : true,
- "in" : "query",
- "name" : "type_name",
- "required" : false,
- "schema" : {
- "type" : "string"
- },
- "style" : "form"
- } ],
- "responses" : {
- "200" : {
- "content" : {
- "application/json" : {
- "examples" : {
- "policy_info_list" : {
- "$ref" : "#/components/examples/policy_info_list"
- }
- },
- "schema" : {
- "$ref" : "#/components/schemas/policy_info_list"
- }
- }
- },
- "description" : "OK - Returns A1 Policies which matches the criteria"
- },
- "404" : {
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- },
- "description" : "Not Found - Near-RT RIC, policy type or service not found"
- }
- },
- "summary" : "Query for A1 policy instances",
- "tags" : [ "A1 Policy Management" ]
- }
- },
- "/example-authz-check" : {
- "post" : {
- "description" : "The authorization function decides if access is granted.",
- "operationId" : "performAccessControl",
- "requestBody" : {
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_authorization"
- }
- }
- },
- "required" : true
- },
- "responses" : {
- "200" : {
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/authorization_result"
- }
- }
- },
- "description" : "OK"
- },
- "403" : {
- "content" : {
- "application/problem+json" : {
- "example" : {
- "status" : 403,
- "title" : "Forbidden",
- "detail" : "Your role does not allow to perform this action. Contact System Administrator to change your access rights."
- },
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- },
- "description" : "Forbidden"
- }
- },
- "summary" : "Request for access authorization.",
- "tags" : [ "Authorization API" ]
- }
- },
- "/actuator/threaddump" : {
+ "/status" : {
"get" : {
- "operationId" : "threaddump",
+ "description" : "Returns status and statistics of this service",
+ "operationId" : "getStatusV1",
"responses" : {
"200" : {
"content" : {
- "text/plain;charset=UTF-8" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
+ "*/*" : {
"schema" : {
- "type" : "object"
+ "type" : "string"
}
}
},
- "description" : "OK"
+ "description" : "OK - Service is living"
}
},
- "summary" : "Actuator web endpoint 'threaddump'",
- "tags" : [ "Actuator" ],
- "x-internal" : true
+ "summary" : "Get Status (getStatusV1)",
+ "tags" : [ "Health Check" ]
}
},
"/a1-policy/v2/status" : {
@@ -224,75 +89,16 @@
"description" : "OK- Service is living Ok"
}
},
+ "summary" : "Get Status (getStatus)",
"tags" : [ "Health Check" ]
}
},
- "/actuator/loggers" : {
- "get" : {
- "operationId" : "loggers",
- "responses" : {
- "200" : {
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- },
- "description" : "OK"
- }
- },
- "summary" : "Actuator web endpoint 'loggers'",
- "tags" : [ "Actuator" ],
- "x-internal" : true
- }
- },
- "/actuator/health/**" : {
- "get" : {
- "operationId" : "health-path",
- "responses" : {
- "200" : {
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- },
- "description" : "OK"
- }
- },
- "summary" : "Actuator web endpoint 'health-path'",
- "tags" : [ "Actuator" ],
- "x-internal" : true
- }
- },
"/a1-policy/v2/rics/ric" : {
"get" : {
- "description" : "Either a Near-RT RIC identity or a Managed Element identity can be specified.
The intention with Managed Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU).",
+ "description" : "Query information about a Near-RT RIC. Either a Near-RT RIC identity or a Managed Element identity can be specified. The intention with Managed Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU).\n",
"operationId" : "getRic",
"parameters" : [ {
- "description" : "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.",
+ "description" : "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.\n",
"explode" : true,
"in" : "query",
"name" : "managed_element_id",
@@ -337,43 +143,13 @@
"description" : "Not Found"
}
},
- "summary" : "Returns info of Near-RT RIC queried by the ric-id and managed-element-id",
+ "summary" : "Get a Near-RT RIC (getRic)",
"tags" : [ "NearRT-RIC Repository" ]
}
},
- "/actuator/shutdown" : {
- "post" : {
- "operationId" : "shutdown",
- "responses" : {
- "200" : {
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- },
- "description" : "OK"
- }
- },
- "summary" : "Actuator web endpoint 'shutdown'",
- "tags" : [ "Actuator" ],
- "x-internal" : true
- }
- },
"/a1-policy/v2/policy-types" : {
"get" : {
- "description" : "Query policy type identities",
+ "description" : "Query A1 Policy Type identities using query parameters",
"operationId" : "getPolicyTypes",
"parameters" : [ {
"description" : "Select types for the given Near-RT RIC identity.",
@@ -386,7 +162,7 @@
},
"style" : "form"
}, {
- "description" : "Select types with the given type name (type identity has the format )",
+ "description" : "Select types compatible with the given type name (type identity has the format 'typename_version')",
"explode" : true,
"in" : "query",
"name" : "type_name",
@@ -431,12 +207,13 @@
"description" : "Not Found"
}
},
+ "summary" : "Get A1 Policy Types (getPolicyTypes)",
"tags" : [ "A1 Policy Management" ]
}
},
"/a1-policy/v2/policies/{policy_id}" : {
"delete" : {
- "description" : "Deleting the policy using the Policy's Policy ID.",
+ "description" : "Delete an A1 Policy instance using its policy ID.",
"operationId" : "deletePolicy",
"parameters" : [ {
"explode" : false,
@@ -475,11 +252,11 @@
"description" : "Locked - HTTP Status code which can be used when the state is Locked"
}
},
- "summary" : "Delete a policy",
+ "summary" : "Delete an A1 Policy instance (deletePolicy)",
"tags" : [ "A1 Policy Management" ]
},
"get" : {
- "description" : "Returns a policy",
+ "description" : "Get an A1 Policy instance using its policy ID",
"operationId" : "getPolicy",
"parameters" : [ {
"explode" : false,
@@ -516,16 +293,18 @@
"description" : "Not Found"
}
},
+ "summary" : "Get an A1 Policy instance (getPolicy)",
"tags" : [ "A1 Policy Management" ]
}
},
- "/actuator/metrics/{requiredMetricName}" : {
- "get" : {
- "operationId" : "metrics-requiredMetricName",
+ "/a1-policy/v2/services/{service_id}/keepalive" : {
+ "put" : {
+ "description" : "A registered service should invoke this operation regularly to indicate that it is still alive. If a registered service fails to invoke some operation, or this operation, before the end of a timeout period the service will be deregistered and all its A1 policies wil be removed. This operation is only intended for registered services. (This timeout can be set or disabled when each service is initially registered)",
+ "operationId" : "keepAliveService",
"parameters" : [ {
"explode" : false,
"in" : "path",
- "name" : "requiredMetricName",
+ "name" : "service_id",
"required" : true,
"schema" : {
"type" : "string"
@@ -535,299 +314,33 @@
"responses" : {
"200" : {
"content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
+ "*/*" : {
"schema" : {
"type" : "object"
}
}
},
- "description" : "OK"
+ "description" : "OK - Service supervision timer refreshed, OK"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ },
+ "description" : "Not Found"
}
},
- "summary" : "Actuator web endpoint 'metrics-requiredMetricName'",
- "tags" : [ "Actuator" ],
- "x-internal" : true
+ "summary" : "Heartbeat message from a service (keepAliveService)",
+ "tags" : [ "Service Registry and Supervision" ]
}
},
- "/a1-policy/v2/configuration" : {
+ "/a1-policy/v2/rics" : {
"get" : {
- "description" : "Returns the contents of the application configuration file",
- "operationId" : "getConfiguration",
- "responses" : {
- "200" : {
- "content" : {
- "application/json" : {
- "schema" : {
- "type" : "string"
- }
- }
- },
- "description" : "OK - Configuration"
- },
- "404" : {
- "content" : {
- "application/problem+json" : {
- "example" : [ ]
- }
- },
- "description" : "Not Found"
- }
- },
- "tags" : [ "Configuration" ]
- },
- "put" : {
- "description" : "Replace the current configuration with the given configuration",
- "operationId" : "putConfiguration",
- "requestBody" : {
- "content" : {
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- }
- },
- "required" : true
- },
- "responses" : {
- "200" : {
- "content" : {
- "*/*" : {
- "schema" : {
- "$ref" : "#/components/schemas/void"
- }
- }
- },
- "description" : "OK - Configuration updated"
- },
- "400" : {
- "content" : {
- "application/problem+json" : {
- "example" : {
- "status" : 400,
- "title" : "Bad Request",
- "detail" : "The provided request is not valid."
- },
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- },
- "description" : "Bad Request"
- }
- },
- "tags" : [ "Configuration" ]
- }
- },
- "/actuator" : {
- "get" : {
- "operationId" : "links",
- "responses" : {
- "200" : {
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "additionalProperties" : {
- "additionalProperties" : {
- "$ref" : "#/components/schemas/Link"
- },
- "type" : "object"
- },
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "additionalProperties" : {
- "additionalProperties" : {
- "$ref" : "#/components/schemas/Link"
- },
- "type" : "object"
- },
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "additionalProperties" : {
- "additionalProperties" : {
- "$ref" : "#/components/schemas/Link"
- },
- "type" : "object"
- },
- "type" : "object"
- }
- }
- },
- "description" : "OK"
- }
- },
- "summary" : "Actuator root web endpoint",
- "tags" : [ "Actuator" ],
- "x-internal" : true
- }
- },
- "/actuator/loggers/{name}" : {
- "get" : {
- "operationId" : "loggers-name",
- "parameters" : [ {
- "explode" : false,
- "in" : "path",
- "name" : "name",
- "required" : true,
- "schema" : {
- "type" : "string"
- },
- "style" : "simple"
- } ],
- "responses" : {
- "200" : {
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- },
- "description" : "OK"
- }
- },
- "summary" : "Actuator web endpoint 'loggers-name'",
- "tags" : [ "Actuator" ],
- "x-internal" : true
- },
- "post" : {
- "operationId" : "loggers-name_2",
- "parameters" : [ {
- "explode" : false,
- "in" : "path",
- "name" : "name",
- "required" : true,
- "schema" : {
- "type" : "string"
- },
- "style" : "simple"
- } ],
- "requestBody" : {
- "content" : {
- "application/json" : {
- "schema" : {
- "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", "OFF" ],
- "type" : "string"
- }
- }
- }
- },
- "responses" : {
- "200" : {
- "content" : {
- "*/*" : {
- "schema" : {
- "type" : "object"
- }
- }
- },
- "description" : "OK"
- }
- },
- "summary" : "Actuator web endpoint 'loggers-name'",
- "tags" : [ "Actuator" ],
- "x-internal" : true
- }
- },
- "/a1-policy/v2/services/{service_id}/keepalive" : {
- "put" : {
- "description" : "A registered service should invoke this operation regularly to indicate that it is still alive. If a registered service fails to invoke this operation before the end of a timeout period the service will be deregistered and all its A1 policies wil be removed. (This timeout can be set or disabled when each service is initially registered)",
- "operationId" : "keepAliveService",
- "parameters" : [ {
- "explode" : false,
- "in" : "path",
- "name" : "service_id",
- "required" : true,
- "schema" : {
- "type" : "string"
- },
- "style" : "simple"
- } ],
- "responses" : {
- "200" : {
- "content" : {
- "*/*" : {
- "schema" : {
- "type" : "object"
- }
- }
- },
- "description" : "OK - Service supervision timer refreshed, OK"
- },
- "404" : {
- "content" : {
- "application/problem+json" : {
- "example" : [ ]
- }
- },
- "description" : "Not Found"
- }
- },
- "summary" : "Heartbeat indicates that the service is running",
- "tags" : [ "Service Registry and Supervision" ]
- }
- },
- "/actuator/metrics" : {
- "get" : {
- "operationId" : "metrics",
- "responses" : {
- "200" : {
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- },
- "description" : "OK"
- }
- },
- "summary" : "Actuator web endpoint 'metrics'",
- "tags" : [ "Actuator" ],
- "x-internal" : true
- }
- },
- "/a1-policy/v2/rics" : {
- "get" : {
- "description" : "The call returns all Near-RT RICs that supports a given policy type identity",
+ "description" : "Get all Near-RT RICs that supports a given A1 Policy Type ID",
"operationId" : "getRics",
"parameters" : [ {
- "description" : "The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned",
+ "description" : "The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned.\n",
"explode" : true,
"in" : "query",
"name" : "policytype_id",
@@ -862,16 +375,16 @@
"description" : "Not Found"
}
},
- "summary" : "Query Near-RT RIC information",
+ "summary" : "Get Near-RT RICs for A1 Policy Type (getRics)",
"tags" : [ "NearRT-RIC Repository" ]
}
},
"/a1-policy/v2/services" : {
"get" : {
- "description" : "Either information about a registered service with given identity or all registered services are returned.",
+ "description" : "Get information about all registered services, or a single registered service. If the service ID of a registered service is included in the query, information about that service is returned. Otherwise Information about all registered is returned. This operation does not retrieve information about unregistered services.\n",
"operationId" : "getServices",
"parameters" : [ {
- "description" : "The identity of the service",
+ "description" : "The identity of the registered service",
"explode" : true,
"in" : "query",
"name" : "service_id",
@@ -906,7 +419,7 @@
"description" : "Not Found"
}
},
- "summary" : "Returns service information",
+ "summary" : "Get Services (getServices)",
"tags" : [ "Service Registry and Supervision" ]
},
"put" : {
@@ -914,7 +427,7 @@
"RICStatus" : {
"{$request.body#/callback_url}" : {
"post" : {
- "description" : "The URL to this call is registered at Service registration.",
+ "description" : "Callouts to indicate Near-RT RIC status changes relevant for Services. \nThe URL invoked by this callback is provided at Service registration.\n",
"operationId" : "serviceCallback",
"requestBody" : {
"content" : {
@@ -946,13 +459,14 @@
"description" : "Not Found"
}
},
- "summary" : "Callback for Near-RT RIC status",
- "tags" : [ "Service callbacks" ]
+ "summary" : "Callback for Near-RT RIC status (serviceCallback)",
+ "tags" : [ "Service Registry and Supervision", "Service Callbacks" ],
+ "x-callback-request" : true
}
}
}
},
- "description" : "Registering a service is needed to:- Get callbacks about available NearRT RICs.
- Activate supervision of the service. If a service is inactive, its policies will automatically be deleted.
Policies can be created even if the service is not registerred. This is a feature which it is optional to use.",
+ "description" : "Register a single service, or update a previous registtration. Service registration is required to get callbacks about available NearRT RICs and to enable supervision of the service's active status. If a registered service becomes inactive, its policies can be automatically deleted. A1 Policy instances can also be created for unregistered services. If an unregistered service is later registered, the service's policies are retained when the service becomes registered. This feature is optional to use.\n",
"operationId" : "putService",
"requestBody" : {
"content" : {
@@ -1001,62 +515,13 @@
"description" : "Bad Request"
}
},
- "summary" : "Register a service",
+ "summary" : "Register or update a Service (putService)",
"tags" : [ "Service Registry and Supervision" ]
}
},
- "/actuator/info" : {
+ "/a1-policy/v2/policy-types/{policytype_id}" : {
"get" : {
- "operationId" : "info",
- "responses" : {
- "200" : {
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- },
- "description" : "OK"
- }
- },
- "summary" : "Actuator web endpoint 'info'",
- "tags" : [ "Actuator" ],
- "x-internal" : true
- }
- },
- "/status" : {
- "get" : {
- "description" : "Returns status and statistics of this service",
- "operationId" : "getStatusV1",
- "responses" : {
- "200" : {
- "content" : {
- "*/*" : {
- "schema" : {
- "type" : "string"
- }
- }
- },
- "description" : "OK - Service is living"
- }
- },
- "tags" : [ "Health Check" ]
- }
- },
- "/a1-policy/v2/policy-types/{policytype_id}" : {
- "get" : {
- "description" : "Returns a policy type definition",
+ "description" : "Get an A1 Policy Type definition using its policy type ID",
"operationId" : "getPolicyTypeDefinition",
"parameters" : [ {
"explode" : false,
@@ -1082,7 +547,7 @@
}
}
},
- "description" : "OK - schema of the given policy type"
+ "description" : "OK - schema of the requested A1 Policy Type"
},
"404" : {
"content" : {
@@ -1093,65 +558,16 @@
"description" : "Not Found"
}
},
+ "summary" : "Get an A1 Policy Type definition (getPolicyTypeDefinition)",
"tags" : [ "A1 Policy Management" ]
}
},
- "/actuator/logfile" : {
- "get" : {
- "operationId" : "logfile",
- "responses" : {
- "200" : {
- "content" : {
- "text/plain;charset=UTF-8" : {
- "schema" : {
- "type" : "object"
- }
- }
- },
- "description" : "OK"
- }
- },
- "summary" : "Actuator web endpoint 'logfile'",
- "tags" : [ "Actuator" ],
- "x-internal" : true
- }
- },
- "/actuator/health" : {
- "get" : {
- "operationId" : "health",
- "responses" : {
- "200" : {
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- },
- "description" : "OK"
- }
- },
- "summary" : "Actuator web endpoint 'health'",
- "tags" : [ "Actuator" ],
- "x-internal" : true
- }
- },
"/a1-policy/v2/policies" : {
"get" : {
- "description" : "Returns a list of A1 policies matching given search criteria.
If several query parameters are defined, the policies matching all conditions are returned.",
+ "description" : "Retrieve a list of A1 Policy Instance IDs for policies that match given search criteria. If multiple query parameters are given, the policies matching all conditions are returned.\n",
"operationId" : "getPolicyIds",
"parameters" : [ {
- "description" : "Select policies of a given policy type identity.",
+ "description" : "Select policies of a given A1 Policy Type ID.",
"explode" : true,
"in" : "query",
"name" : "policytype_id",
@@ -1171,7 +587,7 @@
},
"style" : "form"
}, {
- "description" : "Select policies owned by a given service.",
+ "description" : "Select policies owned by a given service. (Both registered and unregistered services)",
"explode" : true,
"in" : "query",
"name" : "service_id",
@@ -1181,7 +597,7 @@
},
"style" : "form"
}, {
- "description" : "Select policies of types with the given type name (type identity has the format )",
+ "description" : "Select policies of types with the given A1 Policy Type name (type names have the format 'typename_version')\n",
"explode" : true,
"in" : "query",
"name" : "type_name",
@@ -1216,11 +632,11 @@
"description" : "Not Found"
}
},
- "summary" : "Query policy identities",
+ "summary" : "Query A1 Policy Instances (getPolicyIds)",
"tags" : [ "A1 Policy Management" ]
},
"put" : {
- "description" : "Create or update a policy",
+ "description" : "Create or Update an A1 Policy Instance",
"operationId" : "putPolicy",
"requestBody" : {
"content" : {
@@ -1269,12 +685,89 @@
"description" : "Locked - HTTP Status code which can be used when the state is Locked"
}
},
+ "summary" : "Create or Update an A1 Policy Instance (putPolicy)",
+ "tags" : [ "A1 Policy Management" ]
+ }
+ },
+ "/a1-policy/v2/policy-instances" : {
+ "get" : {
+ "description" : "Returns a collection of A1 Policy Instance information for policies that match given search criteria. If several query parameters are defined, the policies matching all conditions are returned.\n",
+ "operationId" : "getPolicyInstances",
+ "parameters" : [ {
+ "description" : "Select policies with a given A1 Policy Type ID.",
+ "explode" : true,
+ "in" : "query",
+ "name" : "policytype_id",
+ "required" : false,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "form"
+ }, {
+ "description" : "Select policies for a given Near-RT RIC identity.",
+ "explode" : true,
+ "in" : "query",
+ "name" : "ric_id",
+ "required" : false,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "form"
+ }, {
+ "description" : "Select policies owned by a given service (registered or unregistered).",
+ "explode" : true,
+ "in" : "query",
+ "name" : "service_id",
+ "required" : false,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "form"
+ }, {
+ "description" : "Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').",
+ "explode" : true,
+ "in" : "query",
+ "name" : "type_name",
+ "required" : false,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "form"
+ } ],
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "examples" : {
+ "policy_info_list" : {
+ "$ref" : "#/components/examples/policy_info_list"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_info_list"
+ }
+ }
+ },
+ "description" : "OK - Returns A1 Policy Instances which match the criteria"
+ },
+ "404" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ }
+ }
+ },
+ "description" : "Not Found - Near-RT RIC, A1 Policy Type or service was not found"
+ }
+ },
+ "summary" : "Query for A1 Policy instances (getPolicyInstances)",
"tags" : [ "A1 Policy Management" ]
}
},
"/a1-policy/v2/services/{service_id}" : {
"delete" : {
- "description" : "Unregister a service",
+ "description" : "Unregister a registered Service using its service ID. Only registered services can be unregistered. All A1 Policy Instances for the previously registered service will be removed.\n",
"operationId" : "deleteService",
"parameters" : [ {
"explode" : false,
@@ -1306,32 +799,13 @@
"description" : "Not Found"
}
},
+ "summary" : "Unregister a Service (deleteService)",
"tags" : [ "Service Registry and Supervision" ]
}
},
- "/actuator/heapdump" : {
- "get" : {
- "operationId" : "heapdump",
- "responses" : {
- "200" : {
- "content" : {
- "application/octet-stream" : {
- "schema" : {
- "type" : "object"
- }
- }
- },
- "description" : "OK"
- }
- },
- "summary" : "Actuator web endpoint 'heapdump'",
- "tags" : [ "Actuator" ],
- "x-internal" : true
- }
- },
"/a1-policy/v2/policies/{policy_id}/status" : {
"get" : {
- "description" : "Returns a policy status",
+ "description" : "Retrieve the status information for an A1 Policy Instance.",
"operationId" : "getPolicyStatus",
"parameters" : [ {
"explode" : false,
@@ -1368,100 +842,614 @@
"description" : "Not Found"
}
},
+ "summary" : "Get an A1 Policy Instance's status (getPolicyStatus)",
"tags" : [ "A1 Policy Management" ]
}
- }
- },
- "components" : {
- "examples" : {
- "service_status" : {
- "description" : "List of service information",
- "value" : {
- "callback_url" : "callback_url",
- "service_id" : "service_id",
- "keep_alive_interval_seconds" : 0,
- "time_since_last_activity_seconds" : 6
- }
- },
- "service_status_list" : {
- "description" : "List of service information",
- "value" : {
- "service_list" : [ {
- "callback_url" : "callback_url",
- "service_id" : "service_id",
- "keep_alive_interval_seconds" : 0,
- "time_since_last_activity_seconds" : 6
- }, {
- "callback_url" : "callback_url",
- "service_id" : "service_id",
- "keep_alive_interval_seconds" : 0,
- "time_since_last_activity_seconds" : 6
- } ]
- }
- },
- "policy_type_definition" : {
- "description" : "Schema of the given Policy type",
- "value" : {
- "policy_schema" : "{}"
- }
- },
- "policy_type_id_list" : {
- "description" : "Array of policy type id's",
- "value" : {
- "policy_type_id_list" : [ "policytype_id", "policytype_id" ]
- }
- },
- "policy_info" : {
- "description" : "Policy information of one A1-P policy",
- "value" : {
- "ric_id" : "ric_id",
- "policy_id" : "policy_id",
- "transient" : false,
- "service_id" : "service_id",
- "policy_data" : "{}",
- "status_notification_uri" : "status_notification_uri",
- "policytype_id" : "policytype_id"
- }
+ },
+ "/a1-policy/v2/configuration" : {
+ "get" : {
+ "description" : "Returns the entire contents of the Application Configuration.",
+ "operationId" : "getConfiguration",
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "type" : "string"
+ }
+ }
+ },
+ "description" : "OK - Configuration"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ },
+ "description" : "Not Found"
+ }
+ },
+ "summary" : "Get the Application Configuration (getConfiguration)",
+ "tags" : [ "Configuration" ]
},
- "policy_info_list" : {
- "description" : "List of policy information",
- "value" : {
- "policies" : [ {
- "ric_id" : "ric_id",
- "policy_id" : "policy_id",
- "transient" : false,
- "service_id" : "service_id",
- "policy_data" : "{}",
- "status_notification_uri" : "status_notification_uri",
- "policytype_id" : "policytype_id"
- }, {
- "ric_id" : "ric_id",
- "policy_id" : "policy_id",
- "transient" : false,
- "service_id" : "service_id",
- "policy_data" : "{}",
- "status_notification_uri" : "status_notification_uri",
- "policytype_id" : "policytype_id"
- } ]
- }
- },
- "policy_id_list" : {
- "description" : "A list of policy identities",
- "value" : {
- "policy_ids" : [ "some_policy_id", "some_policy_id" ]
- }
+ "put" : {
+ "description" : "Replace the current Application Configuration with a new configuration. The new configuration, if accepted, will take effect after a short delay. The new configuration must comply with the Application Configuration schema, which can be found from the the Application Documentation (Developer Guide)\n",
+ "operationId" : "putConfiguration",
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ },
+ "required" : true
+ },
+ "responses" : {
+ "200" : {
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/void"
+ }
+ }
+ },
+ "description" : "OK - Configuration updated"
+ },
+ "400" : {
+ "content" : {
+ "application/problem+json" : {
+ "example" : {
+ "status" : 400,
+ "title" : "Bad Request",
+ "detail" : "The provided request is not valid."
+ },
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ }
+ }
+ },
+ "description" : "Bad Request"
+ }
+ },
+ "summary" : "Set/Replace the Application Configuration (putConfiguration)",
+ "tags" : [ "Configuration" ]
+ }
+ },
+ "/example-authz-check" : {
+ "post" : {
+ "description" : "A template endpoint for callout requests to an external authorization function. The authorization function, if enabled, decides if individual operations are permitted.\n",
+ "operationId" : "performAccessControl",
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_authorization"
+ }
+ }
+ },
+ "required" : true
+ },
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/authorization_result"
+ }
+ }
+ },
+ "description" : "OK"
+ },
+ "403" : {
+ "content" : {
+ "application/problem+json" : {
+ "example" : {
+ "status" : 403,
+ "title" : "Forbidden",
+ "detail" : "Your role does not allow to perform this action. Contact System Administrator to change your access rights."
+ },
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ }
+ }
+ },
+ "description" : "Forbidden"
+ }
+ },
+ "summary" : "Callout request for access authorization (performAccessControl)",
+ "tags" : [ "Authorization API" ]
+ }
+ },
+ "/actuator" : {
+ "get" : {
+ "description" : "A1-PMS Springboot Service Actuator web endpoint. Returns a set of links to available/enabled actuator endpoints.\n",
+ "externalDocs" : {
+ "description" : "Spring Boot Actuator Web API Documentation",
+ "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html"
+ },
+ "operationId" : "actuatorLinks",
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "additionalProperties" : {
+ "additionalProperties" : {
+ "$ref" : "#/components/schemas/Link"
+ },
+ "type" : "object"
+ },
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "additionalProperties" : {
+ "additionalProperties" : {
+ "$ref" : "#/components/schemas/Link"
+ },
+ "type" : "object"
+ },
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "additionalProperties" : {
+ "additionalProperties" : {
+ "$ref" : "#/components/schemas/Link"
+ },
+ "type" : "object"
+ },
+ "type" : "object"
+ }
+ }
+ },
+ "description" : "OK"
+ }
+ },
+ "summary" : "Actuator endpoint - Root (actuatorLinks)",
+ "tags" : [ "Actuator API" ],
+ "x-internal" : true
+ }
+ },
+ "/actuator/heapdump" : {
+ "get" : {
+ "description" : "A1-PMS Springboot Service Actuator web endpoint - HeapDump.\n",
+ "externalDocs" : {
+ "description" : "Spring Boot Actuator Web API Documentation",
+ "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html"
+ },
+ "operationId" : "actuatorHeapdump",
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/octet-stream" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ },
+ "description" : "OK"
+ }
+ },
+ "summary" : "Actuator endpoint - Heapdump (actuatorHeapdump)",
+ "tags" : [ "Actuator API" ],
+ "x-internal" : true
+ }
+ },
+ "/actuator/info" : {
+ "get" : {
+ "description" : "A1-PMS Springboot Service Actuator web endpoint - Info.\n",
+ "externalDocs" : {
+ "description" : "Spring Boot Actuator Web API Documentation",
+ "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html"
+ },
+ "operationId" : "actuatorInfo",
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ },
+ "description" : "OK"
+ }
+ },
+ "summary" : "Actuator endpoint - Info (actuatorInfo)",
+ "tags" : [ "Actuator API" ],
+ "x-internal" : true
+ }
+ },
+ "/actuator/threaddump" : {
+ "get" : {
+ "description" : "A1-PMS Springboot Service Actuator web endpoint - ThreadDump.\n",
+ "externalDocs" : {
+ "description" : "Spring Boot Actuator Web API Documentation",
+ "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html"
+ },
+ "operationId" : "actuatorThreaddump",
+ "responses" : {
+ "200" : {
+ "content" : {
+ "text/plain;charset=UTF-8" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ },
+ "description" : "OK"
+ }
+ },
+ "summary" : "Actuator endpoint - Threaddump (actuatorThreaddump)",
+ "tags" : [ "Actuator API" ],
+ "x-internal" : true
+ }
+ },
+ "/actuator/loggers" : {
+ "get" : {
+ "description" : "A1-PMS Springboot Service Actuator web endpoint - Get a list of Loggers.\n",
+ "externalDocs" : {
+ "description" : "Spring Boot Actuator Web API Documentation",
+ "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html"
+ },
+ "operationId" : "actuatorLoggers",
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ },
+ "description" : "OK"
+ }
+ },
+ "summary" : "Actuator endpoint - Get Loggers (actuatorLoggers)",
+ "tags" : [ "Actuator API" ],
+ "x-internal" : true
+ }
+ },
+ "/actuator/loggers/{name}" : {
+ "get" : {
+ "description" : "A1-PMS Springboot Service Actuator web endpoint - Get a single named Logger.\n",
+ "externalDocs" : {
+ "description" : "Spring Boot Actuator Web API Documentation",
+ "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html"
+ },
+ "operationId" : "actuatorGetLogger",
+ "parameters" : [ {
+ "explode" : false,
+ "in" : "path",
+ "name" : "name",
+ "required" : true,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ },
+ "description" : "OK"
+ }
+ },
+ "summary" : "Actuator endpoint - Get Logger (actuatorGetLogger)",
+ "tags" : [ "Actuator API" ],
+ "x-internal" : true
},
- "policy_status_info" : {
- "description" : "Status for one A1-P Policy",
- "value" : {
- "last_modified" : "last_modified",
- "status" : {
- "value" : {
- "status" : "status"
+ "post" : {
+ "description" : "A1-PMS Springboot Service Actuator web endpoint - Create or Update single named Logger.\n",
+ "externalDocs" : {
+ "description" : "Spring Boot Actuator Web API Documentation",
+ "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html"
+ },
+ "operationId" : "actuatorSetlogger",
+ "parameters" : [ {
+ "explode" : false,
+ "in" : "path",
+ "name" : "name",
+ "required" : true,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", "OFF" ],
+ "type" : "string"
+ }
}
}
- }
- },
+ },
+ "responses" : {
+ "200" : {
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ },
+ "description" : "OK"
+ }
+ },
+ "summary" : "Actuator endpoint - Set Logger (actuatorSetlogger)",
+ "tags" : [ "Actuator API" ],
+ "x-internal" : true
+ }
+ },
+ "/actuator/logfile" : {
+ "get" : {
+ "description" : "A1-PMS Springboot Service Actuator web endpoint - Get the Log file.\n",
+ "externalDocs" : {
+ "description" : "Spring Boot Actuator Web API Documentation",
+ "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html"
+ },
+ "operationId" : "actuatorGetLogFile",
+ "responses" : {
+ "200" : {
+ "content" : {
+ "text/plain;charset=UTF-8" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ },
+ "description" : "OK"
+ }
+ },
+ "summary" : "Actuator endpoint - Log File (actuatorGetLogFile)",
+ "tags" : [ "Actuator API" ],
+ "x-internal" : true
+ }
+ },
+ "/actuator/health" : {
+ "get" : {
+ "description" : "A1-PMS Springboot Service Actuator web endpoint - Health Check.\n",
+ "externalDocs" : {
+ "description" : "Spring Boot Actuator Web API Documentation",
+ "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html"
+ },
+ "operationId" : "actuatorHealth",
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ },
+ "description" : "OK"
+ }
+ },
+ "summary" : "Actuator endpoint - Health (actuatorHealth)",
+ "tags" : [ "Actuator API" ],
+ "x-internal" : true
+ }
+ },
+ "/actuator/health/**" : {
+ "get" : {
+ "description" : "A1-PMS Springboot Service Actuator web endpoint - Health Status for an Application Component.\n",
+ "externalDocs" : {
+ "description" : "Spring Boot Actuator Web API Documentation",
+ "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html"
+ },
+ "operationId" : "actuatorHealthComponent",
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ },
+ "description" : "OK"
+ }
+ },
+ "summary" : "Actuator endpoint - Component Health (actuatorHealthComponent)",
+ "tags" : [ "Actuator API" ],
+ "x-internal" : true
+ }
+ },
+ "/actuator/shutdown" : {
+ "post" : {
+ "description" : "A1-PMS Springboot Service Actuator web endpoint - Shutdown the Application.\n",
+ "externalDocs" : {
+ "description" : "Spring Boot Actuator Web API Documentation",
+ "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html"
+ },
+ "operationId" : "actuatorShutdown",
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ },
+ "description" : "OK"
+ }
+ },
+ "summary" : "Actuator endpoint - Shutdown (actuatorShutdown)",
+ "tags" : [ "Actuator API" ],
+ "x-internal" : true
+ }
+ },
+ "/actuator/metrics" : {
+ "get" : {
+ "description" : "A1-PMS Springboot Service Actuator web endpoint - Get a list of Application metrics names.\n",
+ "externalDocs" : {
+ "description" : "Spring Boot Actuator Web API Documentation",
+ "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html"
+ },
+ "operationId" : "actuatorMetrics",
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ },
+ "description" : "OK"
+ }
+ },
+ "summary" : "Actuator endpoint - Metrics (actuatorMetrics)",
+ "tags" : [ "Actuator API" ],
+ "x-internal" : true
+ }
+ },
+ "/actuator/metrics/{requiredMetricName}" : {
+ "get" : {
+ "description" : "A1-PMS Springboot Service Actuator web endpoint - Get the value for a named Application metric.\n",
+ "externalDocs" : {
+ "description" : "Spring Boot Actuator Web API Documentation",
+ "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html"
+ },
+ "operationId" : "actuatorGetMetric",
+ "parameters" : [ {
+ "explode" : false,
+ "in" : "path",
+ "name" : "requiredMetricName",
+ "required" : true,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ },
+ "description" : "OK"
+ }
+ },
+ "summary" : "Actuator endpoint - Get Metric (actuatorGetMetric)",
+ "x-internal" : true
+ }
+ }
+ },
+ "components" : {
+ "examples" : {
"status_info" : {
"value" : {
"status" : "status"
@@ -1475,6 +1463,24 @@
"policytype_ids" : [ "some_policytype_id", "some_policytype_id" ]
}
},
+ "policy_type_id_list" : {
+ "description" : "Array of A1 Policy Type id's",
+ "value" : {
+ "policy_type_id_list" : [ "policytype_id", "policytype_id" ]
+ }
+ },
+ "policy_info" : {
+ "description" : "Information for an A1 Policy Instance",
+ "value" : {
+ "ric_id" : "ric_id1",
+ "policy_id" : "policy_id1",
+ "transient" : false,
+ "service_id" : "service_id1",
+ "policy_data" : "{}",
+ "status_notification_uri" : "status_notification_uri",
+ "policytype_id" : "policytype_id1"
+ }
+ },
"ric_info_list" : {
"value" : {
"rics" : [ {
@@ -1489,9 +1495,78 @@
"policytype_ids" : [ "policytype_ids", "policytype_ids" ]
} ]
}
+ },
+ "service_status_list" : {
+ "description" : "List of service information",
+ "value" : {
+ "service_list" : [ {
+ "callback_url" : "callback_url",
+ "service_id" : "service_id",
+ "keep_alive_interval_seconds" : 0,
+ "time_since_last_activity_seconds" : 6
+ }, {
+ "callback_url" : "callback_url",
+ "service_id" : "service_id",
+ "keep_alive_interval_seconds" : 0,
+ "time_since_last_activity_seconds" : 6
+ } ]
+ }
+ },
+ "policy_type_definition" : {
+ "description" : "Schema of the given A1 Policy Type",
+ "value" : {
+ "policy_schema" : "{}"
+ }
+ },
+ "policy_id_list" : {
+ "description" : "A list of policy identities",
+ "value" : {
+ "policy_ids" : [ "some_policy_id", "some_policy_id" ]
+ }
+ },
+ "policy_info_list" : {
+ "description" : "List of policy information",
+ "value" : {
+ "policies" : [ {
+ "ric_id" : "ric_id1",
+ "policy_id" : "policy_id1",
+ "transient" : false,
+ "service_id" : "service_id1",
+ "policy_data" : "{}",
+ "status_notification_uri" : "status_notification_uri",
+ "policytype_id" : "policytype_id1"
+ }, {
+ "ric_id" : "ric_id2",
+ "policy_id" : "policy_id2",
+ "transient" : true,
+ "service_id" : "service_id2",
+ "policy_data" : "{}",
+ "status_notification_uri" : "status_notification_uri",
+ "policytype_id" : "policytype_id2"
+ } ]
+ }
+ },
+ "policy_status_info" : {
+ "description" : "Status for one A1-P Policy",
+ "value" : {
+ "last_modified" : "last_modified",
+ "status" : {
+ "value" : {
+ "status" : "status"
+ }
+ }
+ }
}
},
"responses" : {
+ "NotFound" : {
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ },
+ "description" : "Not Found"
+ },
"Locked" : {
"content" : {
"application/problem+json" : {
@@ -1536,54 +1611,13 @@
}
},
"description" : "Forbidden"
- },
- "NotFound" : {
- "content" : {
- "application/problem+json" : {
- "example" : [ ]
- }
- },
- "description" : "Not Found"
}
},
"schemas" : {
- "policy_type_definition" : {
- "description" : "Contains policy type schema definition",
- "properties" : {
- "policy_schema" : {
- "description" : "Policy type json schema. The schema is a json object following http://json-schema.org/draft-07/schema",
- "type" : "object"
- }
- },
- "type" : "object"
- },
- "error_information" : {
- "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807",
- "properties" : {
- "detail" : {
- "description" : " A human-readable explanation specific to this occurrence of the problem.",
- "example" : "Policy type not found",
- "type" : "string"
- },
- "title" : {
- "description" : "A specific error name",
- "example" : "Not Found",
- "type" : "string"
- },
- "status" : {
- "description" : "The HTTP status code generated by the origin server for this occurrence of the problem. ",
- "example" : 404,
- "format" : "int32",
- "type" : "integer"
- }
- },
- "type" : "object"
- },
- "void" : {
- "description" : "Void/empty",
- "type" : "object"
- },
"status_info" : {
+ "example" : {
+ "status" : "status"
+ },
"properties" : {
"status" : {
"description" : "status text",
@@ -1592,22 +1626,14 @@
},
"type" : "object"
},
- "authorization_result" : {
- "description" : "Result of authorization",
- "example" : {
- "result" : true
- },
- "properties" : {
- "result" : {
- "description" : "If true, the access is granted",
- "type" : "boolean"
- }
- },
- "required" : [ "result" ],
- "type" : "object"
- },
"ric_info" : {
"description" : "Information for a Near-RT RIC",
+ "example" : {
+ "ric_id" : "ric_id",
+ "managed_element_ids" : [ "managed_element_ids", "managed_element_ids" ],
+ "state" : "UNAVAILABLE",
+ "policytype_ids" : [ "policytype_ids", "policytype_ids" ]
+ },
"properties" : {
"ric_id" : {
"description" : "identity of the Near-RT RIC",
@@ -1627,9 +1653,26 @@
"type" : "string"
},
"policytype_ids" : {
- "description" : "supported policy types",
+ "description" : "supported A1 Policy Types",
+ "items" : {
+ "description" : "supported A1 Policy Types",
+ "type" : "string"
+ },
+ "type" : "array"
+ }
+ },
+ "type" : "object"
+ },
+ "policy_type_id_list" : {
+ "description" : "Information about A1 Policy Types",
+ "example" : {
+ "policytype_ids" : [ "policytype_ids", "policytype_ids" ]
+ },
+ "properties" : {
+ "policytype_ids" : {
+ "description" : "A1 Policy Type identities",
"items" : {
- "description" : "supported policy types",
+ "description" : "A1 Policy Type identities",
"type" : "string"
},
"type" : "array"
@@ -1637,54 +1680,143 @@
},
"type" : "object"
},
- "service_registration_info" : {
- "description" : "Information for one service",
+ "policy_info" : {
+ "description" : "Information for one A1-P Policy",
+ "example" : {
+ "ric_id" : "ric_id",
+ "policy_id" : "policy_id",
+ "transient" : false,
+ "service_id" : "",
+ "policy_data" : "{}",
+ "status_notification_uri" : "status_notification_uri",
+ "policytype_id" : "policytype_id"
+ },
+ "properties" : {
+ "ric_id" : {
+ "description" : "identity of the target Near-RT RIC",
+ "type" : "string"
+ },
+ "policy_id" : {
+ "description" : "identity of the policy",
+ "type" : "string"
+ },
+ "transient" : {
+ "default" : false,
+ "description" : "If true, the policy is automatically deleted if the targeted Near-RT RIC restarts or recovers. If false, the A1 Policy Instance remains, and is re-pushed to the targeted Near-RT RIC after a restart or recovery. If false, the A1 Policy Instance is maintained and must be deleted separately in the event of Near-RT RIC restart or recovery. Default is false.\n",
+ "example" : false,
+ "nullable" : false,
+ "type" : "boolean"
+ },
+ "service_id" : {
+ "default" : "",
+ "description" : "The identity of the service owning the policy. This can be used to group the policies (it is possible to get all policies associated to a service). Note that the service does not need to be registered. If the service is registered, the A1 Policy Instance will be subject to the same supervision rules as the the service's other policies.\n",
+ "type" : "string"
+ },
+ "policy_data" : {
+ "description" : "the configuration of the policy",
+ "type" : "object"
+ },
+ "status_notification_uri" : {
+ "description" : "Callback URI for policy status updates",
+ "type" : "string"
+ },
+ "policytype_id" : {
+ "description" : "identity of the A1 Policy Type",
+ "type" : "string"
+ }
+ },
+ "required" : [ "policy_data", "policy_id", "policytype_id", "ric_id" ],
+ "type" : "object"
+ },
+ "void" : {
+ "description" : "Void/empty",
+ "type" : "object"
+ },
+ "error_information" : {
+ "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807",
+ "example" : {
+ "detail" : "A1 Policy Type not found",
+ "title" : "Not Found",
+ "status" : 404
+ },
"properties" : {
- "callback_url" : {
- "description" : "callback for notifying of Near-RT RIC state changes",
+ "detail" : {
+ "description" : " A human-readable explanation specific to this occurrence of the problem.",
+ "example" : "A1 Policy Type not found",
"type" : "string"
},
- "service_id" : {
- "description" : "identity of the service",
+ "title" : {
+ "description" : "A specific error name",
+ "example" : "Not Found",
"type" : "string"
},
- "keep_alive_interval_seconds" : {
- "description" : "keep alive interval for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled.",
- "format" : "int64",
+ "status" : {
+ "description" : "The HTTP status code generated by the origin server for this occurrence of the problem. ",
+ "example" : 404,
+ "format" : "int32",
"type" : "integer"
}
},
- "required" : [ "service_id" ],
"type" : "object"
},
- "policy_info_list" : {
- "description" : "List of policy information",
+ "ric_info_list" : {
+ "description" : "List of Near-RT RIC information",
+ "example" : {
+ "rics" : [ {
+ "ric_id" : "ric_id",
+ "managed_element_ids" : [ "managed_element_ids", "managed_element_ids" ],
+ "state" : "UNAVAILABLE",
+ "policytype_ids" : [ "policytype_ids", "policytype_ids" ]
+ }, {
+ "ric_id" : "ric_id",
+ "managed_element_ids" : [ "managed_element_ids", "managed_element_ids" ],
+ "state" : "UNAVAILABLE",
+ "policytype_ids" : [ "policytype_ids", "policytype_ids" ]
+ } ]
+ },
"properties" : {
- "policies" : {
- "description" : "List of policy information",
+ "rics" : {
+ "description" : "List of Near-RT RIC information",
"items" : {
- "$ref" : "#/components/schemas/policy_info"
+ "$ref" : "#/components/schemas/ric_info"
},
"type" : "array"
}
},
"type" : "object"
},
- "policy_status_info" : {
- "description" : "Status for one A1-P Policy",
+ "service_status_list" : {
+ "example" : {
+ "service_list" : [ {
+ "callback_url" : "callback_url",
+ "service_id" : "service_id",
+ "keep_alive_interval_seconds" : 0,
+ "time_since_last_activity_seconds" : 6
+ }, {
+ "callback_url" : "callback_url",
+ "service_id" : "service_id",
+ "keep_alive_interval_seconds" : 0,
+ "time_since_last_activity_seconds" : 6
+ } ]
+ },
"properties" : {
- "last_modified" : {
- "description" : "timestamp, last modification time",
- "type" : "string"
- },
- "status" : {
- "description" : "the Policy status",
- "type" : "object"
+ "service_list" : {
+ "description" : "List of service information",
+ "items" : {
+ "$ref" : "#/components/schemas/service_status"
+ },
+ "type" : "array"
}
},
"type" : "object"
},
"service_status" : {
+ "example" : {
+ "callback_url" : "callback_url",
+ "service_id" : "service_id",
+ "keep_alive_interval_seconds" : 0,
+ "time_since_last_activity_seconds" : 6
+ },
"properties" : {
"callback_url" : {
"description" : "callback for notifying of RIC synchronization",
@@ -1707,100 +1839,53 @@
},
"type" : "object"
},
- "ric_info_list" : {
- "description" : "List of Near-RT RIC information",
- "properties" : {
- "rics" : {
- "description" : "List of Near-RT RIC information",
- "items" : {
- "$ref" : "#/components/schemas/ric_info"
- },
- "type" : "array"
- }
- },
- "type" : "object"
- },
- "input" : {
- "description" : "input",
+ "service_registration_info" : {
+ "description" : "Information for one service",
"properties" : {
- "access_type" : {
- "description" : "Access type",
- "enum" : [ "READ", "WRITE", "DELETE" ],
+ "callback_url" : {
+ "description" : "Callback for notifying of Near-RT RIC state changes",
"type" : "string"
},
- "auth_token" : {
- "description" : "Authorization token",
+ "service_id" : {
+ "description" : "identity of the service",
"type" : "string"
},
- "policy_type_id" : {
- "description" : "Policy type identifier",
- "type" : "string"
+ "keep_alive_interval_seconds" : {
+ "description" : "Keep alive interval for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled.\n",
+ "format" : "int64",
+ "type" : "integer"
}
},
- "required" : [ "access_type", "auth_token", "policy_type_id" ],
+ "required" : [ "service_id" ],
"type" : "object"
},
- "policy_authorization" : {
- "description" : "Authorization request for A1 policy requests",
+ "service_callback_info_v2" : {
+ "description" : "Information transferred in Service callbacks, \nif a callback URL was provided for a registered service\n",
"properties" : {
- "input" : {
- "$ref" : "#/components/schemas/input"
+ "ric_id" : {
+ "description" : "identity of a Near-RT RIC",
+ "type" : "string"
+ },
+ "event_type" : {
+ "description" : "values: \n AVAILABLE: the Near-RT RIC has become available for A1 Policy management\n",
+ "enum" : [ "AVAILABLE" ],
+ "type" : "string"
}
},
- "required" : [ "input" ],
+ "required" : [ "event_type", "ric_id" ],
"type" : "object"
},
- "policy_type_id_list" : {
- "description" : "Information about policy types",
- "properties" : {
- "policytype_ids" : {
- "description" : "Policy type identities",
- "items" : {
- "description" : "Policy type identities",
- "type" : "string"
- },
- "type" : "array"
- }
+ "policy_type_definition" : {
+ "description" : "Contains A1 Policy Type schema definition",
+ "example" : {
+ "policy_schema" : "{}"
},
- "type" : "object"
- },
- "policy_info" : {
- "description" : "Information for one A1-P Policy",
"properties" : {
- "ric_id" : {
- "description" : "identity of the target Near-RT RIC",
- "type" : "string"
- },
- "policy_id" : {
- "description" : "identity of the policy",
- "type" : "string"
- },
- "transient" : {
- "default" : false,
- "description" : "if true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.",
- "example" : false,
- "nullable" : false,
- "type" : "boolean"
- },
- "service_id" : {
- "default" : "",
- "description" : "the identity of the service owning the policy. This can be used to group the policies (it is possible to get all policies associated to a service). Note that the service does not need to be registered.",
- "type" : "string"
- },
- "policy_data" : {
- "description" : "the configuration of the policy",
+ "policy_schema" : {
+ "description" : "A1 Policy Type json schema. The schema is a json object following http://json-schema.org/draft-07/schema",
"type" : "object"
- },
- "status_notification_uri" : {
- "description" : "Callback URI for policy status updates",
- "type" : "string"
- },
- "policytype_id" : {
- "description" : "identity of the policy type",
- "type" : "string"
}
},
- "required" : [ "policy_data", "policy_id", "policytype_id", "ric_id" ],
"type" : "object"
},
"policy_id_list" : {
@@ -1820,32 +1905,98 @@
},
"type" : "object"
},
- "service_status_list" : {
+ "policy_info_list" : {
+ "description" : "List of policy information",
+ "example" : {
+ "policies" : [ {
+ "ric_id" : "ric_id",
+ "policy_id" : "policy_id",
+ "transient" : false,
+ "service_id" : "",
+ "policy_data" : "{}",
+ "status_notification_uri" : "status_notification_uri",
+ "policytype_id" : "policytype_id"
+ }, {
+ "ric_id" : "ric_id",
+ "policy_id" : "policy_id",
+ "transient" : false,
+ "service_id" : "",
+ "policy_data" : "{}",
+ "status_notification_uri" : "status_notification_uri",
+ "policytype_id" : "policytype_id"
+ } ]
+ },
"properties" : {
- "service_list" : {
- "description" : "List of service information",
+ "policies" : {
+ "description" : "List of policy information",
"items" : {
- "$ref" : "#/components/schemas/service_status"
+ "$ref" : "#/components/schemas/policy_info"
},
"type" : "array"
}
},
"type" : "object"
},
- "service_callback_info_v2" : {
- "description" : "Information transferred as in Service callbacks (callback_url)",
+ "policy_status_info" : {
+ "description" : "Status for one A1-P Policy",
+ "example" : {
+ "last_modified" : "last_modified",
+ "status" : "{}"
+ },
"properties" : {
- "ric_id" : {
- "description" : "identity of a Near-RT RIC",
+ "last_modified" : {
+ "description" : "timestamp, last modification time",
"type" : "string"
},
- "event_type" : {
- "description" : "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management",
- "enum" : [ "AVAILABLE" ],
+ "status" : {
+ "description" : "the Policy status",
+ "type" : "object"
+ }
+ },
+ "type" : "object"
+ },
+ "policy_authorization" : {
+ "description" : "Authorization request for A1 policy requests",
+ "properties" : {
+ "input" : {
+ "$ref" : "#/components/schemas/input"
+ }
+ },
+ "required" : [ "input" ],
+ "type" : "object"
+ },
+ "input" : {
+ "description" : "input",
+ "properties" : {
+ "access_type" : {
+ "description" : "Access type",
+ "enum" : [ "READ", "WRITE", "DELETE" ],
+ "type" : "string"
+ },
+ "auth_token" : {
+ "description" : "Authorization token",
+ "type" : "string"
+ },
+ "policy_type_id" : {
+ "description" : "A1 Policy Type identifier",
"type" : "string"
}
},
- "required" : [ "event_type", "ric_id" ],
+ "required" : [ "access_type", "auth_token", "policy_type_id" ],
+ "type" : "object"
+ },
+ "authorization_result" : {
+ "description" : "Result of authorization",
+ "example" : {
+ "result" : true
+ },
+ "properties" : {
+ "result" : {
+ "description" : "If true, the access is granted",
+ "type" : "boolean"
+ }
+ },
+ "required" : [ "result" ],
"type" : "object"
},
"Link" : {
diff --git a/api/pms-api.yaml b/api/pms-api.yaml
index c0b50d4..16ecd88 100644
--- a/api/pms-api.yaml
+++ b/api/pms-api.yaml
@@ -1,8 +1,6 @@
# ============LICENSE_START=======================================================
-# Copyright (C) 2020-2023 Nordix Foundation
-# Copyright (C) 2023-2024 OpenInfra Foundation Europe. All rights reserved.
-# Modifications Copyright (C) 2021 Pantheon.tech
-# Modifications Copyright (C) 2021 Bell Canada
+# Copyright (C) 2020-2023 Nordix Foundation. All rights reserved.
+# Copyright (C) 2023-2025 OpenInfra Foundation Europe. All rights reserved.
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -21,319 +19,182 @@
openapi: 3.0.3
info:
- x-api-id: a31c510b-20e6-4a08-af16-368c44d7fba8
- x-audience: external-public
- description: "General
The O-RAN Non-RT RIC Policy Management Service\
- \ provides a REST API for managemecnt of A1 policies.
The main tasks of the\
- \ service are:
- A1 Policy creation, modification and deletion.
- Monitoring\
- \ and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs
- Maintaining\
- \ a view of supported Near-RT RIC policy types
- Supervision of using services\
- \ (R-APPs). When a service is unavailable, its policies are removed.
APIs\
- \ provided or defined by the service
A1 Policy Management
This\
- \ is an API for management of A1 Policies.
- A1 Policy retrieval, creation,\
- \ modification and deletion.
- Retrieval of supported A1 Policy types for\
- \ a Near-RT RIC
- Retrieval of status for existing A1 policies
Management\
+ contact:
+ email: discuss@lists.o-ran-sc.org
+ url: https://o-ran-sc.org//
+ description: "General
The ORAN SC A1 Policy Management Service provides\
+ \ a REST API for managing A1 policies.
This document describes the latest\
+ \ API set to perform tasks for:
- A1 Policy creation, modification\
+ \ and deletion.
- Monitoring and maintaining consistency of the SMO view\
+ \ of A1 Policies and the Near-RT RICs
- Maintaining a view of each Near-RT\
+ \ RIC's supported A1 Policy Types
- Supervision of registered services (rApps).\
+ \ When a registered service is unavailable, its policies are removed.
APIs\
+ \ provided or defined by the service
Note: parts of this API are strongly\
+ \ based on extracts of the O-RAN Alliance R1 Interface specification for A1 Policy\
+ \ Management, and those parts should be considered '\xA9 O-RAN ALLIANCE - All\
+ \ rights reserved.'
A1 Policy Management
This is the latest API\
+ \ for managing A1 Policies. This API is partially compliant with O-RAN Alliance\
+ \ R1 Interface specifications for A1 Policy Management:
- A1 Policy retrieval,\
+ \ creation, modification and deletion.
- Retrieval of supported A1 Policy\
+ \ Types for a Near-RT RIC
- Retrieval of status for existing A1 policies
Management\
\ of configuration
API for updating and retrieval of the component configuration.\
- \ Note that there other ways to maintain the configuration.
Service callbacks
These\
+ \ Note that there other ways to maintain the configuration.
Service Callbacks
These\
\ are endpoints that are invoked by this service. The callbacks are registered\
- \ in this service at service registration.
NearRT-RIC Repository
This\
- \ is an API that provides support for looking up a NearRT-RIC. Each A1 policy\
- \ is targeted for one Near-RT RIC.
Health Check
API used for supervision\
- \ of the PMS component.
Service Registry and Supervision
API used\
- \ for registering services that uses PMS. Each A1 policy is optionally owned by\
- \ a service. PMS can supervise each registered service by a heart-beat supervision\
- \ and will automatically remove policies for unavailable services. Note that a\
- \ service does not need to be registered in order to create A1 Policies. This\
- \ is a feature that is optional to use.
Authorization API
API used\
- \ for access control of A1 Policy access. If configured, an external authorization\
- \ provider is requested to grant access to the A1 Policy type.
Spring Boot\
- \ Actuator
Provides generic functions used to monitor and manage the Spring\
- \ web application.
"
+ \ in this service at service registration.
NearRT-RIC Repository (Older\
+ \ version)
This is an API that provides support for looking up a NearRT-RIC.\
+ \ Each A1 policy is targeted towards one Near-RT RIC.
Health Check
API\
+ \ used for supervision of the A1 Policy Management Service.
Service Registry\
+ \ and Supervision
API used for registering services/clients/rApps. Each\
+ \ A1 Policy can be tagged with an owner. If the owner service is registered, then\
+ \ the service can be optionally monitored by a heart-beat supervision mechanism,\
+ \ and if the registered service becomes unavailable, then it is removed and all\
+ \ its A1 Policies are deleted. Note that services do not need to be registered\
+ \ to create A1 Policies, but unregistered services are not supervised. This\
+ \ is a feature that is optional to use.
"
license:
- name: Copyright (C) 2020-2023 Nordix Foundation. Licensed under the Apache License.
+ name: Copyright (C) 2024 - 2025 OpenInfra Foundation Europe. Licensed under the
+ Apache 2 License.
url: http://www.apache.org/licenses/LICENSE-2.0
- title: A1 Policy Management Service
- version: 1.3.0
- contact:
- url: https://www.onap.org/
- email: discuss-list@onap.com
+ title: OSC - A1 Policy Management API
+ version: 1.0.0
+ x-api-id: e9776a07-0813-4fca-9801-6f892f0a7c13
+ x-audience: external-public
servers:
- - url: /
+- url: /
tags:
- - name: A1 Policy Management
- description: "API used to create polices, Policy Instances and get them as individual
- using an ID or get all policies/Instances."
- - name: NearRT-RIC Repository
- description: "API used to get the NearRT-RIC for the managed element."
- - name: Service Registry and Supervision
- description: "API used to keep the service Alive with in the timeout period"
- - name: Health Check
- description: "API used to get the health status and statistics of this service"
- - name: Service callbacks
- - name: Authorization API
- description: "API used for authorization of information A1 policy access (this is
- provided by an authorization producer such as OPA).
Note that this API is called
- by PMS, it is not provided."
- - name: Configuration
- description: "API used to create or fetch the application configuration."
- - name: Actuator
- description: Monitor and interact
- externalDocs:
- description: Spring Boot Actuator Web API Documentation
- url: https://docs.spring.io/spring-boot/docs/current/actuator-api/html/
+- description: |
+ Older pre-spec API used to get, create, update and delete A1 Policy Instances. Also used to query A1 Policy Types.
+ name: A1 Policy Management
+- description: |
+ Older API used to get information about registered Near-RT RICs.
+ name: NearRT-RIC Repository
+- description: |
+ Older API used to manage registered services, and control their keep-alive status via heart-beat messages.
+ name: Service Registry and Supervision
+- description: |
+ API used to get the health status and statistics of this service
+ name: Health Check
+- description: |
+ Callout to registered services to indicate a status changes for a Near-RT RIC. Note that these operations are called by the A1 Policy Management Service, not provided.
+ name: Service Callbacks
+- description: |
+ API used for authorization of information A1 policy access (this is provided by an authorization producer such as OPA). Note that these operations are called by the A1 Policy Management Service, not provided.
+ name: Authorization API
+- description: |
+ API used to create or fetch the application configuration.
+ name: Configuration
+- description: |
+ API used to monitor and configure the A1-PMS Springboot Service.
+ externalDocs:
+ description: Spring Boot Actuator Web API Documentation
+ url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html
+ name: Actuator API
paths:
- /a1-policy/v2/policy-instances:
- get:
- description: "Returns a list of A1 policies matching given search criteria.\
- \
If several query parameters are defined, the policies matching all conditions\
- \ are returned."
- operationId: getPolicyInstances
- parameters:
- - description: Select policies with a given type identity.
- explode: true
- in: query
- name: policytype_id
- required: false
- schema:
- type: string
- style: form
- - description: Select policies for a given Near-RT RIC identity.
- explode: true
- in: query
- name: ric_id
- required: false
- schema:
- type: string
- style: form
- - description: Select policies owned by a given service.
- explode: true
- in: query
- name: service_id
- required: false
- schema:
- type: string
- style: form
- - description: Select policies of a given type name (type identity has the format
- )
- explode: true
- in: query
- name: type_name
- required: false
- schema:
- type: string
- style: form
- responses:
- "200":
- content:
- application/json:
- examples:
- policy_info_list:
- $ref: '#/components/examples/policy_info_list'
- schema:
- $ref: '#/components/schemas/policy_info_list'
- description: OK - Returns A1 Policies which matches the criteria
- "404":
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/error_information'
- description: "Not Found - Near-RT RIC, policy type or service not found"
- summary: Query for A1 policy instances
- tags:
- - A1 Policy Management
- /example-authz-check:
- post:
- description: The authorization function decides if access is granted.
- operationId: performAccessControl
- requestBody:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/policy_authorization'
- required: true
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/authorization_result'
- description: OK
- "403":
- $ref: '#/components/responses/Forbidden'
- summary: Request for access authorization.
- tags:
- - Authorization API
- /actuator/threaddump:
+ /status:
get:
- x-internal: true
- operationId: threaddump
+ description: Returns status and statistics of this service
+ operationId: getStatusV1
responses:
"200":
content:
- text/plain;charset=UTF-8:
- schema:
- type: object
- application/vnd.spring-boot.actuator.v3+json:
- schema:
- type: object
- application/json:
- schema:
- type: object
- application/vnd.spring-boot.actuator.v2+json:
+ '*/*':
schema:
- type: object
- description: OK
- summary: Actuator web endpoint 'threaddump'
+ type: string
+ description: OK - Service is living
+ summary: Get Status (getStatusV1)
tags:
- - Actuator
+ - Health Check
/a1-policy/v2/status:
get:
+ description: Returns status and statistics of this service
operationId: getStatus
responses:
"200":
content:
application/json:
- schema:
- $ref: '#/components/schemas/status_info'
examples:
status_info:
$ref: '#/components/examples/status_info'
- description: OK- Service is living Ok
- description: Returns status and statistics of this service
- tags:
- - Health Check
- /actuator/loggers:
- get:
- x-internal: true
- operationId: loggers
- responses:
- "200":
- content:
- application/vnd.spring-boot.actuator.v3+json:
- schema:
- type: object
- application/json:
- schema:
- type: object
- application/vnd.spring-boot.actuator.v2+json:
- schema:
- type: object
- description: OK
- summary: Actuator web endpoint 'loggers'
- tags:
- - Actuator
- /actuator/health/**:
- get:
- x-internal: true
- operationId: health-path
- responses:
- "200":
- content:
- application/vnd.spring-boot.actuator.v3+json:
- schema:
- type: object
- application/json:
- schema:
- type: object
- application/vnd.spring-boot.actuator.v2+json:
schema:
- type: object
- description: OK
- summary: Actuator web endpoint 'health-path'
+ $ref: '#/components/schemas/status_info'
+ description: OK- Service is living Ok
+ summary: Get Status (getStatus)
tags:
- - Actuator
+ - Health Check
/a1-policy/v2/rics/ric:
get:
- description: Either a Near-RT RIC identity or a Managed Element identity can
- be specified.
The intention with Managed Element identity is the ID used
- in O1 for accessing the traffical element (such as the ID of CU).
+ description: |
+ Query information about a Near-RT RIC. Either a Near-RT RIC identity or a Managed Element identity can be specified. The intention with Managed Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU).
operationId: getRic
parameters:
- - description: "The identity of a Managed Element. If given, the Near-RT RIC\
- \ managing the ME is returned."
- explode: true
- in: query
- name: managed_element_id
- required: false
- schema:
- type: string
- style: form
- - description: The identity of a Near-RT RIC to get information for.
- explode: true
- in: query
- name: ric_id
- required: false
- schema:
- type: string
- style: form
+ - description: |
+ The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.
+ explode: true
+ in: query
+ name: managed_element_id
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: The identity of a Near-RT RIC to get information for.
+ explode: true
+ in: query
+ name: ric_id
+ required: false
+ schema:
+ type: string
+ style: form
responses:
"200":
content:
application/json:
- schema:
- $ref: '#/components/schemas/ric_info'
examples:
ric_info:
$ref: '#/components/examples/ric_info'
+ schema:
+ $ref: '#/components/schemas/ric_info'
description: OK - Near-RT RIC is found
"404":
- $ref: '#/components/responses/NotFound'
- description: NotFound - Requested NearRT-RIC Not Found
- summary: Returns info of Near-RT RIC queried by the ric-id and managed-element-id
- tags:
- - NearRT-RIC Repository
- /actuator/shutdown:
- post:
- x-internal: true
- operationId: shutdown
- responses:
- "200":
content:
- application/vnd.spring-boot.actuator.v3+json:
- schema:
- type: object
- application/json:
- schema:
- type: object
- application/vnd.spring-boot.actuator.v2+json:
- schema:
- type: object
- description: OK
- summary: Actuator web endpoint 'shutdown'
+ application/problem+json:
+ example: []
+ description: Not Found
+ summary: Get a Near-RT RIC (getRic)
tags:
- - Actuator
+ - NearRT-RIC Repository
/a1-policy/v2/policy-types:
get:
+ description: Query A1 Policy Type identities using query parameters
operationId: getPolicyTypes
parameters:
- - description: Select types for the given Near-RT RIC identity.
- explode: true
- in: query
- name: ric_id
- required: false
- schema:
- type: string
- style: form
- - description: Select types with the given type name (type identity has the
- format )
- explode: true
- in: query
- name: type_name
- required: false
- schema:
- type: string
- style: form
- - description: Select types that are compatible with the given version. This
- parameter is only applicable in conjunction with type_name. As an example
- version 1.9.1 is compatible with 1.0.0 but not the other way around. Matching
- types will be returned sorted in ascending order.
- explode: true
- in: query
- name: compatible_with_version
- required: false
- schema:
- type: string
- style: form
+ - description: Select types for the given Near-RT RIC identity.
+ explode: true
+ in: query
+ name: ric_id
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Select types compatible with the given type name (type identity
+ has the format 'typename_version')
+ explode: true
+ in: query
+ name: type_name
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Select types that are compatible with the given version. This
+ parameter is only applicable in conjunction with type_name. As an example
+ version 1.9.1 is compatible with 1.0.0 but not the other way around. Matching
+ types will be returned sorted in ascending order.
+ explode: true
+ in: query
+ name: compatible_with_version
+ required: false
+ schema:
+ type: string
+ style: form
responses:
"200":
content:
@@ -345,23 +206,25 @@ paths:
$ref: '#/components/schemas/policy_type_id_list'
description: OK - Policy Type IDs Found
"404":
- $ref: '#/components/responses/NotFound'
- description: 'Not Found - Requested Policy Type IDs Not Found'
- description: Query policy type identities
+ content:
+ application/problem+json:
+ example: []
+ description: Not Found
+ summary: Get A1 Policy Types (getPolicyTypes)
tags:
- - A1 Policy Management
+ - A1 Policy Management
/a1-policy/v2/policies/{policy_id}:
delete:
- description: Deleting the policy using the Policy's Policy ID.
+ description: Delete an A1 Policy instance using its policy ID.
operationId: deletePolicy
parameters:
- - explode: false
- in: path
- name: policy_id
- required: true
- schema:
- type: string
- style: simple
+ - explode: false
+ in: path
+ name: policy_id
+ required: true
+ schema:
+ type: string
+ style: simple
responses:
"200":
content:
@@ -370,434 +233,650 @@ paths:
$ref: '#/components/schemas/void'
description: OK - Policy deleted
"423":
- $ref: '#/components/responses/Locked'
- description: 'The requested policy using policy_id is Locked'
- summary: Delete a policy
+ content:
+ application/problem+json:
+ example:
+ status: 423
+ title: Locked
+ detail: Requested resource is in a locked state.
+ schema:
+ $ref: '#/components/schemas/error_information'
+ description: Locked - HTTP Status code which can be used when the state
+ is Locked
+ summary: Delete an A1 Policy instance (deletePolicy)
tags:
- - A1 Policy Management
+ - A1 Policy Management
get:
+ description: Get an A1 Policy instance using its policy ID
operationId: getPolicy
parameters:
- - explode: false
- in: path
- name: policy_id
- required: true
- schema:
- type: string
- style: simple
+ - explode: false
+ in: path
+ name: policy_id
+ required: true
+ schema:
+ type: string
+ style: simple
responses:
"200":
content:
application/json:
- schema:
- $ref: '#/components/schemas/policy_info'
examples:
policy_info:
$ref: '#/components/examples/policy_info'
+ schema:
+ $ref: '#/components/schemas/policy_info'
description: OK - Policy found
"404":
- $ref: '#/components/responses/NotFound'
- description: 'Not Found - Requested Policy using policy_id is not found'
- description: Returns a policy
+ content:
+ application/problem+json:
+ example: []
+ description: Not Found
+ summary: Get an A1 Policy instance (getPolicy)
tags:
- - A1 Policy Management
- /actuator/metrics/{requiredMetricName}:
- get:
- x-internal: true
- operationId: metrics-requiredMetricName
+ - A1 Policy Management
+ /a1-policy/v2/services/{service_id}/keepalive:
+ put:
+ description: "A registered service should invoke this operation regularly to\
+ \ indicate that it is still alive. If a registered service fails to invoke\
+ \ some operation, or this operation, before the end of a timeout period the\
+ \ service will be deregistered and all its A1 policies wil be removed. This\
+ \ operation is only intended for registered services. (This timeout can be\
+ \ set or disabled when each service is initially registered)"
+ operationId: keepAliveService
parameters:
- - explode: false
- in: path
- name: requiredMetricName
- required: true
- schema:
- type: string
- style: simple
+ - explode: false
+ in: path
+ name: service_id
+ required: true
+ schema:
+ type: string
+ style: simple
responses:
"200":
content:
- application/vnd.spring-boot.actuator.v3+json:
+ '*/*':
schema:
type: object
+ description: "OK - Service supervision timer refreshed, OK"
+ "404":
+ content:
+ application/problem+json:
+ example: []
+ description: Not Found
+ summary: Heartbeat message from a service (keepAliveService)
+ tags:
+ - Service Registry and Supervision
+ /a1-policy/v2/rics:
+ get:
+ description: Get all Near-RT RICs that supports a given A1 Policy Type ID
+ operationId: getRics
+ parameters:
+ - description: |
+ The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned.
+ explode: true
+ in: query
+ name: policytype_id
+ required: false
+ schema:
+ type: string
+ style: form
+ responses:
+ "200":
+ content:
application/json:
+ examples:
+ ric_info_list:
+ $ref: '#/components/examples/ric_info_list'
schema:
- type: object
- application/vnd.spring-boot.actuator.v2+json:
- schema:
- type: object
+ $ref: '#/components/schemas/ric_info_list'
description: OK
- summary: Actuator web endpoint 'metrics-requiredMetricName'
+ "404":
+ content:
+ application/problem+json:
+ example: []
+ description: Not Found
+ summary: Get Near-RT RICs for A1 Policy Type (getRics)
tags:
- - Actuator
- /a1-policy/v2/configuration:
+ - NearRT-RIC Repository
+ /a1-policy/v2/services:
get:
- operationId: getConfiguration
+ description: |
+ Get information about all registered services, or a single registered service. If the service ID of a registered service is included in the query, information about that service is returned. Otherwise Information about all registered is returned. This operation does not retrieve information about unregistered services.
+ operationId: getServices
+ parameters:
+ - description: The identity of the registered service
+ explode: true
+ in: query
+ name: service_id
+ required: false
+ schema:
+ type: string
+ style: form
responses:
"200":
content:
application/json:
+ examples:
+ service_status_list:
+ $ref: '#/components/examples/service_status_list'
schema:
- type: string
- description: OK - Configuration
+ $ref: '#/components/schemas/service_status_list'
+ description: OK
"404":
- $ref: '#/components/responses/NotFound'
- description: Not Found - Configuration is not found or readable
- description: Returns the contents of the application configuration file
+ content:
+ application/problem+json:
+ example: []
+ description: Not Found
+ summary: Get Services (getServices)
tags:
- - Configuration
+ - Service Registry and Supervision
put:
- operationId: putConfiguration
+ callbacks:
+ RICStatus:
+ '{$request.body#/callback_url}':
+ post:
+ description: "Callouts to indicate Near-RT RIC status changes relevant\
+ \ for Services. \nThe URL invoked by this callback is provided at\
+ \ Service registration.\n"
+ operationId: serviceCallback
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/service_callback_info_v2'
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/void'
+ description: OK
+ "404":
+ content:
+ application/problem+json:
+ example: []
+ description: Not Found
+ summary: Callback for Near-RT RIC status (serviceCallback)
+ tags:
+ - Service Registry and Supervision
+ - Service Callbacks
+ x-callback-request: true
+ description: |
+ Register a single service, or update a previous registtration. Service registration is required to get callbacks about available NearRT RICs and to enable supervision of the service's active status. If a registered service becomes inactive, its policies can be automatically deleted. A1 Policy instances can also be created for unregistered services. If an unregistered service is later registered, the service's policies are retained when the service becomes registered. This feature is optional to use.
+ operationId: putService
requestBody:
content:
application/json:
schema:
- type: object
+ $ref: '#/components/schemas/service_registration_info'
required: true
responses:
"200":
content:
'*/*':
schema:
- $ref: '#/components/schemas/void'
- description: OK - Configuration updated
+ type: object
+ description: OK - Service updated
+ "201":
+ content:
+ '*/*':
+ schema:
+ type: object
+ description: Created - Service created
"400":
- $ref: '#/components/responses/BadRequest'
- description: Replace the current configuration with the given configuration
+ content:
+ application/problem+json:
+ example:
+ status: 400
+ title: Bad Request
+ detail: The provided request is not valid.
+ schema:
+ $ref: '#/components/schemas/error_information'
+ description: Bad Request
+ summary: Register or update a Service (putService)
tags:
- - Configuration
- /actuator:
+ - Service Registry and Supervision
+ /a1-policy/v2/policy-types/{policytype_id}:
get:
- x-internal: true
- operationId: links
+ description: Get an A1 Policy Type definition using its policy type ID
+ operationId: getPolicyTypeDefinition
+ parameters:
+ - explode: false
+ in: path
+ name: policytype_id
+ required: true
+ schema:
+ type: string
+ style: simple
responses:
"200":
content:
- application/vnd.spring-boot.actuator.v3+json:
- schema:
- additionalProperties:
- additionalProperties:
- $ref: '#/components/schemas/Link'
- type: object
- type: object
application/json:
+ examples:
+ policy_type_definition:
+ $ref: '#/components/examples/policy_type_definition'
schema:
- additionalProperties:
- additionalProperties:
- $ref: '#/components/schemas/Link'
- type: object
- type: object
- application/vnd.spring-boot.actuator.v2+json:
- schema:
- additionalProperties:
- additionalProperties:
- $ref: '#/components/schemas/Link'
- type: object
- type: object
- description: OK
- summary: Actuator root web endpoint
+ $ref: '#/components/schemas/policy_type_definition'
+ description: OK - schema of the requested A1 Policy Type
+ "404":
+ content:
+ application/problem+json:
+ example: []
+ description: Not Found
+ summary: Get an A1 Policy Type definition (getPolicyTypeDefinition)
tags:
- - Actuator
- /actuator/loggers/{name}:
+ - A1 Policy Management
+ /a1-policy/v2/policies:
get:
- x-internal: true
- operationId: loggers-name
+ description: |
+ Retrieve a list of A1 Policy Instance IDs for policies that match given search criteria. If multiple query parameters are given, the policies matching all conditions are returned.
+ operationId: getPolicyIds
parameters:
- - explode: false
- in: path
- name: name
- required: true
- schema:
- type: string
- style: simple
+ - description: Select policies of a given A1 Policy Type ID.
+ explode: true
+ in: query
+ name: policytype_id
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Select policies of a given Near-RT RIC identity.
+ explode: true
+ in: query
+ name: ric_id
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Select policies owned by a given service. (Both registered and
+ unregistered services)
+ explode: true
+ in: query
+ name: service_id
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: |
+ Select policies of types with the given A1 Policy Type name (type names have the format 'typename_version')
+ explode: true
+ in: query
+ name: type_name
+ required: false
+ schema:
+ type: string
+ style: form
responses:
"200":
content:
- application/vnd.spring-boot.actuator.v3+json:
- schema:
- type: object
application/json:
+ examples:
+ policy_id_list:
+ $ref: '#/components/examples/policy_id_list'
schema:
- type: object
- application/vnd.spring-boot.actuator.v2+json:
- schema:
- type: object
- description: OK
- summary: Actuator web endpoint 'loggers-name'
+ $ref: '#/components/schemas/policy_id_list'
+ description: OK - Policy identities
+ "404":
+ content:
+ application/problem+json:
+ example: []
+ description: Not Found
+ summary: Query A1 Policy Instances (getPolicyIds)
tags:
- - Actuator
- post:
- x-internal: true
- operationId: loggers-name_2
- parameters:
- - explode: false
- in: path
- name: name
- required: true
- schema:
- type: string
- style: simple
+ - A1 Policy Management
+ put:
+ description: Create or Update an A1 Policy Instance
+ operationId: putPolicy
requestBody:
content:
application/json:
schema:
- enum:
- - TRACE
- - DEBUG
- - INFO
- - WARN
- - ERROR
- - FATAL
- - "OFF"
- type: string
+ $ref: '#/components/schemas/policy_info'
+ required: true
responses:
"200":
content:
- '*/*':
+ application/json:
schema:
- type: object
- description: OK
- summary: Actuator web endpoint 'loggers-name'
- tags:
- - Actuator
- /a1-policy/v2/services/{service_id}/keepalive:
- put:
- description: A registered service should invoke this operation regularly to
- indicate that it is still alive. If a registered service fails to invoke this
- operation before the end of a timeout period the service will be deregistered
- and all its A1 policies wil be removed. (This timeout can be set or disabled
- when each service is initially registered)
- operationId: keepAliveService
- parameters:
- - explode: false
- in: path
- name: service_id
- required: true
- schema:
- type: string
- style: simple
- responses:
- "200":
+ $ref: '#/components/schemas/void'
+ description: OK - Policy updated
+ "201":
content:
- '*/*':
+ application/json:
schema:
- type: object
- description: "OK - Service supervision timer refreshed, OK"
- "404":
- $ref: '#/components/responses/NotFound'
- summary: Heartbeat indicates that the service is running
+ $ref: '#/components/schemas/void'
+ description: Created - Policy created
+ "423":
+ content:
+ application/problem+json:
+ example:
+ status: 423
+ title: Locked
+ detail: Requested resource is in a locked state.
+ schema:
+ $ref: '#/components/schemas/error_information'
+ description: Locked - HTTP Status code which can be used when the state
+ is Locked
+ summary: Create or Update an A1 Policy Instance (putPolicy)
tags:
- - Service Registry and Supervision
- /actuator/metrics:
+ - A1 Policy Management
+ /a1-policy/v2/policy-instances:
get:
- x-internal: true
- operationId: metrics
+ description: |
+ Returns a collection of A1 Policy Instance information for policies that match given search criteria. If several query parameters are defined, the policies matching all conditions are returned.
+ operationId: getPolicyInstances
+ parameters:
+ - description: Select policies with a given A1 Policy Type ID.
+ explode: true
+ in: query
+ name: policytype_id
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Select policies for a given Near-RT RIC identity.
+ explode: true
+ in: query
+ name: ric_id
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Select policies owned by a given service (registered or unregistered).
+ explode: true
+ in: query
+ name: service_id
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Select policies of a given A1 Policy Type name (type identity
+ has the format 'typename_version').
+ explode: true
+ in: query
+ name: type_name
+ required: false
+ schema:
+ type: string
+ style: form
responses:
"200":
content:
- application/vnd.spring-boot.actuator.v3+json:
+ application/json:
+ examples:
+ policy_info_list:
+ $ref: '#/components/examples/policy_info_list'
schema:
- type: object
+ $ref: '#/components/schemas/policy_info_list'
+ description: OK - Returns A1 Policy Instances which match the criteria
+ "404":
+ content:
application/json:
schema:
- type: object
- application/vnd.spring-boot.actuator.v2+json:
+ $ref: '#/components/schemas/error_information'
+ description: "Not Found - Near-RT RIC, A1 Policy Type or service was not\
+ \ found"
+ summary: Query for A1 Policy instances (getPolicyInstances)
+ tags:
+ - A1 Policy Management
+ /a1-policy/v2/services/{service_id}:
+ delete:
+ description: |
+ Unregister a registered Service using its service ID. Only registered services can be unregistered. All A1 Policy Instances for the previously registered service will be removed.
+ operationId: deleteService
+ parameters:
+ - explode: false
+ in: path
+ name: service_id
+ required: true
+ schema:
+ type: string
+ style: simple
+ responses:
+ "204":
+ content:
+ '*/*':
schema:
type: object
- description: OK
- summary: Actuator web endpoint 'metrics'
+ description: No Content - Service unregistered
+ "404":
+ content:
+ application/problem+json:
+ example: []
+ description: Not Found
+ summary: Unregister a Service (deleteService)
tags:
- - Actuator
- /a1-policy/v2/rics:
+ - Service Registry and Supervision
+ /a1-policy/v2/policies/{policy_id}/status:
get:
- description: The call returns all Near-RT RICs that supports a given policy
- type identity
- operationId: getRics
+ description: Retrieve the status information for an A1 Policy Instance.
+ operationId: getPolicyStatus
parameters:
- - description: "The identity of a policy type. If given, all Near-RT RICs supporting\
- \ the policy type are returned"
- explode: true
- in: query
- name: policytype_id
- required: false
- schema:
- type: string
- style: form
+ - explode: false
+ in: path
+ name: policy_id
+ required: true
+ schema:
+ type: string
+ style: simple
responses:
"200":
content:
application/json:
- schema:
- $ref: '#/components/schemas/ric_info_list'
examples:
- ric_info_list:
- $ref: '#/components/examples/ric_info_list'
- description: OK
+ policy_status_info:
+ $ref: '#/components/examples/policy_status_info'
+ schema:
+ $ref: '#/components/schemas/policy_status_info'
+ description: OK - Policy status
"404":
- $ref: '#/components/responses/NotFound'
- summary: Query Near-RT RIC information
+ content:
+ application/problem+json:
+ example: []
+ description: Not Found
+ summary: Get an A1 Policy Instance's status (getPolicyStatus)
tags:
- - NearRT-RIC Repository
- /a1-policy/v2/services:
+ - A1 Policy Management
+ /a1-policy/v2/configuration:
get:
- description: Either information about a registered service with given identity
- or all registered services are returned.
- operationId: getServices
- parameters:
- - description: The identity of the service
- explode: true
- in: query
- name: service_id
- required: false
- schema:
- type: string
- style: form
+ description: Returns the entire contents of the Application Configuration.
+ operationId: getConfiguration
responses:
"200":
content:
application/json:
schema:
- $ref: '#/components/schemas/service_status_list'
- examples:
- service_status_list:
- $ref: '#/components/examples/service_status_list'
- description: OK
+ type: string
+ description: OK - Configuration
"404":
- $ref: '#/components/responses/NotFound'
- summary: Returns service information
+ content:
+ application/problem+json:
+ example: []
+ description: Not Found
+ summary: Get the Application Configuration (getConfiguration)
tags:
- - Service Registry and Supervision
+ - Configuration
put:
- description: "Registering a service is needed to:- Get callbacks about\
- \ available NearRT RICs.
- Activate supervision of the service. If a\
- \ service is inactive, its policies will automatically be deleted.
Policies\
- \ can be created even if the service is not registerred. This is a feature\
- \ which it is optional to use."
- operationId: putService
+ description: |
+ Replace the current Application Configuration with a new configuration. The new configuration, if accepted, will take effect after a short delay. The new configuration must comply with the Application Configuration schema, which can be found from the the Application Documentation (Developer Guide)
+ operationId: putConfiguration
requestBody:
content:
application/json:
schema:
- $ref: '#/components/schemas/service_registration_info'
+ type: object
required: true
responses:
"200":
content:
'*/*':
schema:
- type: object
- description: OK - Service updated
- "201":
+ $ref: '#/components/schemas/void'
+ description: OK - Configuration updated
+ "400":
content:
- '*/*':
+ application/problem+json:
+ example:
+ status: 400
+ title: Bad Request
+ detail: The provided request is not valid.
schema:
- type: object
- description: Created - Service created
- "400":
- $ref: '#/components/responses/BadRequest'
- summary: Register a service
+ $ref: '#/components/schemas/error_information'
+ description: Bad Request
+ summary: Set/Replace the Application Configuration (putConfiguration)
tags:
- - Service Registry and Supervision
- callbacks:
- RICStatus:
- "{$request.body#/callback_url}":
- post:
- description: The URL to this call is registered at Service registration.
- operationId: serviceCallback
- requestBody:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/service_callback_info_v2'
- required: true
- responses:
- "200":
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/void'
- description: OK
- "404":
- $ref: '#/components/responses/NotFound'
- summary: Callback for Near-RT RIC status
- tags:
- - Service callbacks
- /actuator/info:
+ - Configuration
+ /example-authz-check:
+ post:
+ description: |
+ A template endpoint for callout requests to an external authorization function. The authorization function, if enabled, decides if individual operations are permitted.
+ operationId: performAccessControl
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/policy_authorization'
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/authorization_result'
+ description: OK
+ "403":
+ content:
+ application/problem+json:
+ example:
+ status: 403
+ title: Forbidden
+ detail: Your role does not allow to perform this action. Contact System
+ Administrator to change your access rights.
+ schema:
+ $ref: '#/components/schemas/error_information'
+ description: Forbidden
+ summary: Callout request for access authorization (performAccessControl)
+ tags:
+ - Authorization API
+ /actuator:
get:
- x-internal: true
- operationId: info
+ description: |
+ A1-PMS Springboot Service Actuator web endpoint. Returns a set of links to available/enabled actuator endpoints.
+ externalDocs:
+ description: Spring Boot Actuator Web API Documentation
+ url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html
+ operationId: actuatorLinks
responses:
"200":
content:
application/vnd.spring-boot.actuator.v3+json:
schema:
+ additionalProperties:
+ additionalProperties:
+ $ref: '#/components/schemas/Link'
+ type: object
type: object
application/json:
schema:
+ additionalProperties:
+ additionalProperties:
+ $ref: '#/components/schemas/Link'
+ type: object
type: object
application/vnd.spring-boot.actuator.v2+json:
schema:
+ additionalProperties:
+ additionalProperties:
+ $ref: '#/components/schemas/Link'
+ type: object
type: object
description: OK
- summary: Actuator web endpoint 'info'
+ summary: Actuator endpoint - Root (actuatorLinks)
tags:
- - Actuator
- /status:
+ - Actuator API
+ x-internal: true
+ /actuator/heapdump:
get:
- operationId: getStatusV1
+ description: |
+ A1-PMS Springboot Service Actuator web endpoint - HeapDump.
+ externalDocs:
+ description: Spring Boot Actuator Web API Documentation
+ url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html
+ operationId: actuatorHeapdump
responses:
"200":
content:
- '*/*':
+ application/octet-stream:
schema:
- type: string
- description: OK - Service is living
- description: Returns status and statistics of this service
+ type: object
+ description: OK
+ summary: Actuator endpoint - Heapdump (actuatorHeapdump)
tags:
- - Health Check
- /a1-policy/v2/policy-types/{policytype_id}:
+ - Actuator API
+ x-internal: true
+ /actuator/info:
get:
- operationId: getPolicyTypeDefinition
- parameters:
- - explode: false
- in: path
- name: policytype_id
- required: true
- schema:
- type: string
- style: simple
+ description: |
+ A1-PMS Springboot Service Actuator web endpoint - Info.
+ externalDocs:
+ description: Spring Boot Actuator Web API Documentation
+ url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html
+ operationId: actuatorInfo
responses:
"200":
content:
+ application/vnd.spring-boot.actuator.v3+json:
+ schema:
+ type: object
application/json:
schema:
- $ref: '#/components/schemas/policy_type_definition'
- examples:
- policy_type_definition:
- $ref: '#/components/examples/policy_type_definition'
- description: OK - schema of the given policy type
- "404":
- $ref: '#/components/responses/NotFound'
- description: Returns a policy type definition
- tags:
- - A1 Policy Management
- /actuator/logfile:
- get:
- x-internal: true
- operationId: logfile
+ type: object
+ application/vnd.spring-boot.actuator.v2+json:
+ schema:
+ type: object
+ description: OK
+ summary: Actuator endpoint - Info (actuatorInfo)
+ tags:
+ - Actuator API
+ x-internal: true
+ /actuator/threaddump:
+ get:
+ description: |
+ A1-PMS Springboot Service Actuator web endpoint - ThreadDump.
+ externalDocs:
+ description: Spring Boot Actuator Web API Documentation
+ url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html
+ operationId: actuatorThreaddump
responses:
"200":
content:
text/plain;charset=UTF-8:
schema:
type: object
+ application/vnd.spring-boot.actuator.v3+json:
+ schema:
+ type: object
+ application/json:
+ schema:
+ type: object
+ application/vnd.spring-boot.actuator.v2+json:
+ schema:
+ type: object
description: OK
- summary: Actuator web endpoint 'logfile'
+ summary: Actuator endpoint - Threaddump (actuatorThreaddump)
tags:
- - Actuator
- /actuator/health:
- get:
+ - Actuator API
x-internal: true
- operationId: health
+ /actuator/loggers:
+ get:
+ description: |
+ A1-PMS Springboot Service Actuator web endpoint - Get a list of Loggers.
+ externalDocs:
+ description: Spring Boot Actuator Web API Documentation
+ url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html
+ operationId: actuatorLoggers
responses:
"200":
content:
@@ -811,257 +890,322 @@ paths:
schema:
type: object
description: OK
- summary: Actuator web endpoint 'health'
+ summary: Actuator endpoint - Get Loggers (actuatorLoggers)
tags:
- - Actuator
- /a1-policy/v2/policies:
+ - Actuator API
+ x-internal: true
+ /actuator/loggers/{name}:
get:
- description: "Returns a list of A1 policies matching given search criteria.\
- \
If several query parameters are defined, the policies matching all conditions\
- \ are returned."
- operationId: getPolicyIds
+ description: |
+ A1-PMS Springboot Service Actuator web endpoint - Get a single named Logger.
+ externalDocs:
+ description: Spring Boot Actuator Web API Documentation
+ url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html
+ operationId: actuatorGetLogger
parameters:
- - description: Select policies of a given policy type identity.
- explode: true
- in: query
- name: policytype_id
- required: false
- schema:
- type: string
- style: form
- - description: Select policies of a given Near-RT RIC identity.
- explode: true
- in: query
- name: ric_id
- required: false
- schema:
- type: string
- style: form
- - description: Select policies owned by a given service.
- explode: true
- in: query
- name: service_id
- required: false
- schema:
- type: string
- style: form
- - description: Select policies of types with the given type name (type identity
- has the format )
- explode: true
- in: query
- name: type_name
- required: false
- schema:
- type: string
- style: form
+ - explode: false
+ in: path
+ name: name
+ required: true
+ schema:
+ type: string
+ style: simple
responses:
"200":
content:
+ application/vnd.spring-boot.actuator.v3+json:
+ schema:
+ type: object
application/json:
- examples:
- policy_id_list:
- $ref: '#/components/examples/policy_id_list'
schema:
- $ref: '#/components/schemas/policy_id_list'
- description: OK - Policy identities
- "404":
- $ref: '#/components/responses/NotFound'
- summary: Query policy identities
+ type: object
+ application/vnd.spring-boot.actuator.v2+json:
+ schema:
+ type: object
+ description: OK
+ summary: Actuator endpoint - Get Logger (actuatorGetLogger)
tags:
- - A1 Policy Management
- put:
- operationId: putPolicy
+ - Actuator API
+ x-internal: true
+ post:
+ description: |
+ A1-PMS Springboot Service Actuator web endpoint - Create or Update single named Logger.
+ externalDocs:
+ description: Spring Boot Actuator Web API Documentation
+ url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html
+ operationId: actuatorSetlogger
+ parameters:
+ - explode: false
+ in: path
+ name: name
+ required: true
+ schema:
+ type: string
+ style: simple
requestBody:
content:
application/json:
schema:
- $ref: '#/components/schemas/policy_info'
- required: true
+ enum:
+ - TRACE
+ - DEBUG
+ - INFO
+ - WARN
+ - ERROR
+ - FATAL
+ - "OFF"
+ type: string
responses:
"200":
content:
+ '*/*':
+ schema:
+ type: object
+ description: OK
+ summary: Actuator endpoint - Set Logger (actuatorSetlogger)
+ tags:
+ - Actuator API
+ x-internal: true
+ /actuator/logfile:
+ get:
+ description: |
+ A1-PMS Springboot Service Actuator web endpoint - Get the Log file.
+ externalDocs:
+ description: Spring Boot Actuator Web API Documentation
+ url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html
+ operationId: actuatorGetLogFile
+ responses:
+ "200":
+ content:
+ text/plain;charset=UTF-8:
+ schema:
+ type: object
+ description: OK
+ summary: Actuator endpoint - Log File (actuatorGetLogFile)
+ tags:
+ - Actuator API
+ x-internal: true
+ /actuator/health:
+ get:
+ description: |
+ A1-PMS Springboot Service Actuator web endpoint - Health Check.
+ externalDocs:
+ description: Spring Boot Actuator Web API Documentation
+ url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html
+ operationId: actuatorHealth
+ responses:
+ "200":
+ content:
+ application/vnd.spring-boot.actuator.v3+json:
+ schema:
+ type: object
application/json:
schema:
- $ref: '#/components/schemas/void'
- description: OK - Policy updated
- "201":
+ type: object
+ application/vnd.spring-boot.actuator.v2+json:
+ schema:
+ type: object
+ description: OK
+ summary: Actuator endpoint - Health (actuatorHealth)
+ tags:
+ - Actuator API
+ x-internal: true
+ /actuator/health/**:
+ get:
+ description: |
+ A1-PMS Springboot Service Actuator web endpoint - Health Status for an Application Component.
+ externalDocs:
+ description: Spring Boot Actuator Web API Documentation
+ url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html
+ operationId: actuatorHealthComponent
+ responses:
+ "200":
content:
+ application/vnd.spring-boot.actuator.v3+json:
+ schema:
+ type: object
application/json:
schema:
- $ref: '#/components/schemas/void'
- description: Created - Policy created
- "423":
- $ref: '#/components/responses/Locked'
- description: Create or update a policy
+ type: object
+ application/vnd.spring-boot.actuator.v2+json:
+ schema:
+ type: object
+ description: OK
+ summary: Actuator endpoint - Component Health (actuatorHealthComponent)
tags:
- - A1 Policy Management
- /a1-policy/v2/services/{service_id}:
- delete:
- operationId: deleteService
- parameters:
- - explode: false
- in: path
- name: service_id
- required: true
- schema:
- type: string
- style: simple
+ - Actuator API
+ x-internal: true
+ /actuator/shutdown:
+ post:
+ description: |
+ A1-PMS Springboot Service Actuator web endpoint - Shutdown the Application.
+ externalDocs:
+ description: Spring Boot Actuator Web API Documentation
+ url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html
+ operationId: actuatorShutdown
responses:
- "204":
+ "200":
content:
- '*/*':
+ application/vnd.spring-boot.actuator.v3+json:
schema:
type: object
- description: No Content - Service unregistered
- "404":
- $ref: '#/components/responses/NotFound'
- description: Unregister a service
+ application/json:
+ schema:
+ type: object
+ application/vnd.spring-boot.actuator.v2+json:
+ schema:
+ type: object
+ description: OK
+ summary: Actuator endpoint - Shutdown (actuatorShutdown)
tags:
- - Service Registry and Supervision
- /actuator/heapdump:
- get:
+ - Actuator API
x-internal: true
- operationId: heapdump
+ /actuator/metrics:
+ get:
+ description: |
+ A1-PMS Springboot Service Actuator web endpoint - Get a list of Application metrics names.
+ externalDocs:
+ description: Spring Boot Actuator Web API Documentation
+ url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html
+ operationId: actuatorMetrics
responses:
"200":
content:
- application/octet-stream:
+ application/vnd.spring-boot.actuator.v3+json:
+ schema:
+ type: object
+ application/json:
+ schema:
+ type: object
+ application/vnd.spring-boot.actuator.v2+json:
schema:
type: object
description: OK
- summary: Actuator web endpoint 'heapdump'
+ summary: Actuator endpoint - Metrics (actuatorMetrics)
tags:
- - Actuator
- /a1-policy/v2/policies/{policy_id}/status:
+ - Actuator API
+ x-internal: true
+ /actuator/metrics/{requiredMetricName}:
get:
- operationId: getPolicyStatus
+ description: |
+ A1-PMS Springboot Service Actuator web endpoint - Get the value for a named Application metric.
+ externalDocs:
+ description: Spring Boot Actuator Web API Documentation
+ url: https://docs.spring.io/spring-boot/reference/actuator/endpoints.html
+ operationId: actuatorGetMetric
parameters:
- - explode: false
- in: path
- name: policy_id
- required: true
- schema:
- type: string
- style: simple
+ - explode: false
+ in: path
+ name: requiredMetricName
+ required: true
+ schema:
+ type: string
+ style: simple
responses:
"200":
content:
+ application/vnd.spring-boot.actuator.v3+json:
+ schema:
+ type: object
application/json:
schema:
- $ref: '#/components/schemas/policy_status_info'
- examples:
- policy_status_info:
- $ref: '#/components/examples/policy_status_info'
- description: OK - Policy status
- "404":
- $ref: '#/components/responses/NotFound'
- description: Returns a policy status
- tags:
- - A1 Policy Management
+ type: object
+ application/vnd.spring-boot.actuator.v2+json:
+ schema:
+ type: object
+ description: OK
+ summary: Actuator endpoint - Get Metric (actuatorGetMetric)
+ x-internal: true
components:
- responses:
- Locked:
- description: "Locked - HTTP Status code which can be used when the state is Locked"
- content:
- application/problem+json:
- schema:
- $ref: '#/components/schemas/error_information'
- example:
- status: 423
- title: Locked
- detail: Requested resource is in a locked state.
- BadRequest:
- description: Bad Request
- content:
- application/problem+json:
- schema:
- $ref: '#/components/schemas/error_information'
- example:
- status: 400
- title: Bad Request
- detail: The provided request is not valid.
- Forbidden:
- description: Forbidden
- content:
- application/problem+json:
- schema:
- $ref: '#/components/schemas/error_information'
- example:
- status: 403
- title: Forbidden
- detail: Your role does not allow to perform this action. Contact System Administrator to change your access rights.
- NotFound:
- description: Not Found
- content:
- application/problem+json:
- example:
- [ ]
-
examples:
- service_status:
- description: List of service information
- value:
- callback_url: callback_url
- service_id: service_id
- keep_alive_interval_seconds: 0
- time_since_last_activity_seconds: 6
-
- service_status_list:
- description: List of service information
+ status_info:
value:
- service_list:
- - callback_url: callback_url
- service_id: service_id
- keep_alive_interval_seconds: 0
- time_since_last_activity_seconds: 6
- - callback_url: callback_url
- service_id: service_id
- keep_alive_interval_seconds: 0
- time_since_last_activity_seconds: 6
- policy_type_definition:
- description: Schema of the given Policy type
+ status: status
+ ric_info:
value:
- policy_schema: "{}"
+ ric_id: ric_id
+ managed_element_ids:
+ - some_managed_element_id
+ - some_managed_element_id
+ state: UNAVAILABLE
+ policytype_ids:
+ - some_policytype_id
+ - some_policytype_id
policy_type_id_list:
- description: Array of policy type id's
+ description: Array of A1 Policy Type id's
value:
policy_type_id_list:
- - policytype_id
- - policytype_id
+ - policytype_id
+ - policytype_id
policy_info:
- description: Policy information of one A1-P policy
+ description: Information for an A1 Policy Instance
value:
- ric_id: ric_id
- policy_id: policy_id
+ ric_id: ric_id1
+ policy_id: policy_id1
transient: false
- service_id: service_id
+ service_id: service_id1
policy_data: "{}"
status_notification_uri: status_notification_uri
- policytype_id: policytype_id
- policy_info_list:
- description: List of policy information
+ policytype_id: policytype_id1
+ ric_info_list:
value:
- policies:
- - ric_id: ric_id
- policy_id: policy_id
- transient: false
- service_id: service_id
- policy_data: "{}"
- status_notification_uri: status_notification_uri
- policytype_id: policytype_id
- - ric_id: ric_id
- policy_id: policy_id
- transient: false
- service_id: service_id
- policy_data: "{}"
- status_notification_uri: status_notification_uri
- policytype_id: policytype_id
+ rics:
+ - ric_id: ric_id
+ managed_element_ids:
+ - some_managed_element_id
+ - some_managed_element_id
+ state: UNAVAILABLE
+ policytype_ids:
+ - policytype_id
+ - policytype_id
+ - ric_id: ric_id
+ managed_element_ids:
+ - managed_element_ids
+ - managed_element_ids
+ state: UNAVAILABLE
+ policytype_ids:
+ - policytype_ids
+ - policytype_ids
+ service_status_list:
+ description: List of service information
+ value:
+ service_list:
+ - callback_url: callback_url
+ service_id: service_id
+ keep_alive_interval_seconds: 0
+ time_since_last_activity_seconds: 6
+ - callback_url: callback_url
+ service_id: service_id
+ keep_alive_interval_seconds: 0
+ time_since_last_activity_seconds: 6
+ policy_type_definition:
+ description: Schema of the given A1 Policy Type
+ value:
+ policy_schema: "{}"
policy_id_list:
description: A list of policy identities
value:
policy_ids:
- - some_policy_id
- - some_policy_id
+ - some_policy_id
+ - some_policy_id
+ policy_info_list:
+ description: List of policy information
+ value:
+ policies:
+ - ric_id: ric_id1
+ policy_id: policy_id1
+ transient: false
+ service_id: service_id1
+ policy_data: "{}"
+ status_notification_uri: status_notification_uri
+ policytype_id: policytype_id1
+ - ric_id: ric_id2
+ policy_id: policy_id2
+ transient: true
+ service_id: service_id2
+ policy_data: "{}"
+ status_notification_uri: status_notification_uri
+ policytype_id: policytype_id2
policy_status_info:
description: Status for one A1-P Policy
value:
@@ -1069,89 +1213,63 @@ components:
status:
value:
status: status
+ responses:
+ NotFound:
+ content:
+ application/problem+json:
+ example: []
+ description: Not Found
+ Locked:
+ content:
+ application/problem+json:
+ example:
+ status: 423
+ title: Locked
+ detail: Requested resource is in a locked state.
+ schema:
+ $ref: '#/components/schemas/error_information'
+ description: Locked - HTTP Status code which can be used when the state is Locked
+ BadRequest:
+ content:
+ application/problem+json:
+ example:
+ status: 400
+ title: Bad Request
+ detail: The provided request is not valid.
+ schema:
+ $ref: '#/components/schemas/error_information'
+ description: Bad Request
+ Forbidden:
+ content:
+ application/problem+json:
+ example:
+ status: 403
+ title: Forbidden
+ detail: Your role does not allow to perform this action. Contact System
+ Administrator to change your access rights.
+ schema:
+ $ref: '#/components/schemas/error_information'
+ description: Forbidden
+ schemas:
status_info:
- value:
- status: status
- ric_info:
- value:
- ric_id: ric_id
- managed_element_ids:
- - some_managed_element_id
- - some_managed_element_id
- state: UNAVAILABLE
- policytype_ids:
- - some_policytype_id
- - some_policytype_id
- ric_info_list:
- value:
- rics:
- - ric_id: ric_id
- managed_element_ids:
- - some_managed_element_id
- - some_managed_element_id
- state: UNAVAILABLE
- policytype_ids:
- - policytype_id
- - policytype_id
- - ric_id: ric_id
- managed_element_ids:
- - managed_element_ids
- - managed_element_ids
- state: UNAVAILABLE
- policytype_ids:
- - policytype_ids
- - policytype_ids
-
- schemas:
- policy_type_definition:
- description: Contains policy type schema definition
- type: object
- properties:
- policy_schema:
- description: Policy type json schema. The schema is a json object following
- http://json-schema.org/draft-07/schema
- type: object
- error_information:
- description: Problem as defined in https://tools.ietf.org/html/rfc7807
- properties:
- detail:
- description: ' A human-readable explanation specific to this occurrence
- of the problem.'
- example: Policy type not found
- type: string
- title:
- description: 'A specific error name'
- type: string
- example: Not Found
- status:
- description: 'The HTTP status code generated by the origin server for this
- occurrence of the problem. '
- example: 404
- format: int32
- type: integer
- type: object
- void:
- description: Void/empty
- type: object
- status_info:
+ example:
+ status: status
properties:
status:
description: status text
type: string
type: object
- authorization_result:
- description: Result of authorization
- example:
- result: true
- properties:
- result:
- description: "If true, the access is granted"
- type: boolean
- required:
- - result
- type: object
ric_info:
description: Information for a Near-RT RIC
+ example:
+ ric_id: ric_id
+ managed_element_ids:
+ - managed_element_ids
+ - managed_element_ids
+ state: UNAVAILABLE
+ policytype_ids:
+ - policytype_ids
+ - policytype_ids
properties:
ric_id:
description: identity of the Near-RT RIC
@@ -1165,60 +1283,153 @@ components:
state:
description: Represents the states for a Near-RT RIC
enum:
- - UNAVAILABLE
- - AVAILABLE
- - SYNCHRONIZING
- - CONSISTENCY_CHECK
+ - UNAVAILABLE
+ - AVAILABLE
+ - SYNCHRONIZING
+ - CONSISTENCY_CHECK
type: string
policytype_ids:
- description: supported policy types
+ description: supported A1 Policy Types
items:
- description: supported policy types
+ description: supported A1 Policy Types
type: string
type: array
type: object
- service_registration_info:
- description: Information for one service
+ policy_type_id_list:
+ description: Information about A1 Policy Types
+ example:
+ policytype_ids:
+ - policytype_ids
+ - policytype_ids
properties:
- callback_url:
- description: callback for notifying of Near-RT RIC state changes
+ policytype_ids:
+ description: A1 Policy Type identities
+ items:
+ description: A1 Policy Type identities
+ type: string
+ type: array
+ type: object
+ policy_info:
+ description: Information for one A1-P Policy
+ example:
+ ric_id: ric_id
+ policy_id: policy_id
+ transient: false
+ service_id: ""
+ policy_data: "{}"
+ status_notification_uri: status_notification_uri
+ policytype_id: policytype_id
+ properties:
+ ric_id:
+ description: identity of the target Near-RT RIC
+ type: string
+ policy_id:
+ description: identity of the policy
type: string
+ transient:
+ default: false
+ description: |
+ If true, the policy is automatically deleted if the targeted Near-RT RIC restarts or recovers. If false, the A1 Policy Instance remains, and is re-pushed to the targeted Near-RT RIC after a restart or recovery. If false, the A1 Policy Instance is maintained and must be deleted separately in the event of Near-RT RIC restart or recovery. Default is false.
+ example: false
+ nullable: false
+ type: boolean
service_id:
- description: identity of the service
+ default: ""
+ description: |
+ The identity of the service owning the policy. This can be used to group the policies (it is possible to get all policies associated to a service). Note that the service does not need to be registered. If the service is registered, the A1 Policy Instance will be subject to the same supervision rules as the the service's other policies.
+ type: string
+ policy_data:
+ description: the configuration of the policy
+ type: object
+ status_notification_uri:
+ description: Callback URI for policy status updates
+ type: string
+ policytype_id:
+ description: identity of the A1 Policy Type
type: string
- keep_alive_interval_seconds:
- description: "keep alive interval for the service. This is used to enable\
- \ optional heartbeat supervision of the service. If set (> 0) the registered\
- \ service should regularly invoke a 'keepalive' REST call. When a service\
- \ fails to invoke this 'keepalive' call within the configured time, the\
- \ service is considered unavailable. An unavailable service will be automatically\
- \ deregistered and its policies will be deleted. Value 0 means timeout\
- \ supervision is disabled."
- format: int64
- type: integer
required:
- - service_id
+ - policy_data
+ - policy_id
+ - policytype_id
+ - ric_id
type: object
- policy_info_list:
- description: List of policy information
+ void:
+ description: Void/empty
+ type: object
+ error_information:
+ description: Problem as defined in https://tools.ietf.org/html/rfc7807
+ example:
+ detail: A1 Policy Type not found
+ title: Not Found
+ status: 404
properties:
- policies:
- description: List of policy information
+ detail:
+ description: ' A human-readable explanation specific to this occurrence
+ of the problem.'
+ example: A1 Policy Type not found
+ type: string
+ title:
+ description: A specific error name
+ example: Not Found
+ type: string
+ status:
+ description: 'The HTTP status code generated by the origin server for this
+ occurrence of the problem. '
+ example: 404
+ format: int32
+ type: integer
+ type: object
+ ric_info_list:
+ description: List of Near-RT RIC information
+ example:
+ rics:
+ - ric_id: ric_id
+ managed_element_ids:
+ - managed_element_ids
+ - managed_element_ids
+ state: UNAVAILABLE
+ policytype_ids:
+ - policytype_ids
+ - policytype_ids
+ - ric_id: ric_id
+ managed_element_ids:
+ - managed_element_ids
+ - managed_element_ids
+ state: UNAVAILABLE
+ policytype_ids:
+ - policytype_ids
+ - policytype_ids
+ properties:
+ rics:
+ description: List of Near-RT RIC information
items:
- $ref: '#/components/schemas/policy_info'
+ $ref: '#/components/schemas/ric_info'
type: array
type: object
- policy_status_info:
- description: Status for one A1-P Policy
+ service_status_list:
+ example:
+ service_list:
+ - callback_url: callback_url
+ service_id: service_id
+ keep_alive_interval_seconds: 0
+ time_since_last_activity_seconds: 6
+ - callback_url: callback_url
+ service_id: service_id
+ keep_alive_interval_seconds: 0
+ time_since_last_activity_seconds: 6
properties:
- last_modified:
- description: "timestamp, last modification time"
- type: string
- status:
- description: the Policy status
- type: object
+ service_list:
+ description: List of service information
+ items:
+ $ref: '#/components/schemas/service_status'
+ type: array
type: object
service_status:
+ example:
+ callback_url: callback_url
+ service_id: service_id
+ keep_alive_interval_seconds: 0
+ time_since_last_activity_seconds: 6
properties:
callback_url:
description: callback for notifying of RIC synchronization
@@ -1235,98 +1446,56 @@ components:
format: int64
type: integer
type: object
- ric_info_list:
- description: List of Near-RT RIC information
- properties:
- rics:
- description: List of Near-RT RIC information
- items:
- $ref: '#/components/schemas/ric_info'
- type: array
- type: object
- input:
- description: input
+ service_registration_info:
+ description: Information for one service
properties:
- access_type:
- description: Access type
- enum:
- - READ
- - WRITE
- - DELETE
- type: string
- auth_token:
- description: Authorization token
+ callback_url:
+ description: Callback for notifying of Near-RT RIC state changes
type: string
- policy_type_id:
- description: Policy type identifier
+ service_id:
+ description: identity of the service
type: string
+ keep_alive_interval_seconds:
+ description: |
+ Keep alive interval for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled.
+ format: int64
+ type: integer
required:
- - access_type
- - auth_token
- - policy_type_id
- type: object
- policy_authorization:
- description: Authorization request for A1 policy requests
- properties:
- input:
- $ref: '#/components/schemas/input'
- required:
- - input
- type: object
- policy_type_id_list:
- description: Information about policy types
- properties:
- policytype_ids:
- description: Policy type identities
- items:
- description: Policy type identities
- type: string
- type: array
+ - service_id
type: object
- policy_info:
- description: Information for one A1-P Policy
+ service_callback_info_v2:
+ description: "Information transferred in Service callbacks, \nif a callback\
+ \ URL was provided for a registered service\n"
properties:
ric_id:
- description: identity of the target Near-RT RIC
- type: string
- policy_id:
- description: identity of the policy
- type: string
- transient:
- default: false
- description: "if true, the policy is deleted at RIC restart. If false, its\
- \ value is maintained by this service until explicitly deleted. Default\
- \ false."
- example: false
- nullable: false
- type: boolean
- service_id:
- description: the identity of the service owning the policy. This can be
- used to group the policies (it is possible to get all policies associated
- to a service). Note that the service does not need to be registered.
- type: string
- default: ""
- policy_data:
- description: the configuration of the policy
- type: object
- status_notification_uri:
- description: Callback URI for policy status updates
+ description: identity of a Near-RT RIC
type: string
- policytype_id:
- description: identity of the policy type
+ event_type:
+ description: "values: \n AVAILABLE: the Near-RT RIC has become available\
+ \ for A1 Policy management\n"
+ enum:
+ - AVAILABLE
type: string
required:
- - ric_id
- - policy_id
- - policy_data
- - policytype_id
+ - event_type
+ - ric_id
+ type: object
+ policy_type_definition:
+ description: Contains A1 Policy Type schema definition
+ example:
+ policy_schema: "{}"
+ properties:
+ policy_schema:
+ description: A1 Policy Type json schema. The schema is a json object following
+ http://json-schema.org/draft-07/schema
+ type: object
type: object
policy_id_list:
description: A list of policy identities
example:
policy_ids:
- - policy_ids
- - policy_ids
+ - policy_ids
+ - policy_ids
properties:
policy_ids:
description: Policy identities
@@ -1335,29 +1504,83 @@ components:
type: string
type: array
type: object
- service_status_list:
+ policy_info_list:
+ description: List of policy information
+ example:
+ policies:
+ - ric_id: ric_id
+ policy_id: policy_id
+ transient: false
+ service_id: ""
+ policy_data: "{}"
+ status_notification_uri: status_notification_uri
+ policytype_id: policytype_id
+ - ric_id: ric_id
+ policy_id: policy_id
+ transient: false
+ service_id: ""
+ policy_data: "{}"
+ status_notification_uri: status_notification_uri
+ policytype_id: policytype_id
properties:
- service_list:
- description: List of service information
+ policies:
+ description: List of policy information
items:
- $ref: '#/components/schemas/service_status'
+ $ref: '#/components/schemas/policy_info'
type: array
type: object
- service_callback_info_v2:
- description: Information transferred as in Service callbacks (callback_url)
+ policy_status_info:
+ description: Status for one A1-P Policy
+ example:
+ last_modified: last_modified
+ status: "{}"
properties:
- ric_id:
- description: identity of a Near-RT RIC
+ last_modified:
+ description: "timestamp, last modification time"
type: string
- event_type:
- description: "values:\nAVAILABLE: the Near-RT RIC has become available\
- \ for A1 Policy management"
+ status:
+ description: the Policy status
+ type: object
+ type: object
+ policy_authorization:
+ description: Authorization request for A1 policy requests
+ properties:
+ input:
+ $ref: '#/components/schemas/input'
+ required:
+ - input
+ type: object
+ input:
+ description: input
+ properties:
+ access_type:
+ description: Access type
enum:
- - AVAILABLE
+ - READ
+ - WRITE
+ - DELETE
type: string
+ auth_token:
+ description: Authorization token
+ type: string
+ policy_type_id:
+ description: A1 Policy Type identifier
+ type: string
+ required:
+ - access_type
+ - auth_token
+ - policy_type_id
+ type: object
+ authorization_result:
+ description: Result of authorization
+ example:
+ result: true
+ properties:
+ result:
+ description: "If true, the access is granted"
+ type: boolean
required:
- - event_type
- - ric_id
+ - result
type: object
Link:
properties:
@@ -1365,4 +1588,4 @@ components:
type: boolean
href:
type: string
- type: object
\ No newline at end of file
+ type: object
diff --git a/api/pms-api/index.html b/api/pms-api/index.html
index 247549a..bed148f 100644
--- a/api/pms-api/index.html
+++ b/api/pms-api/index.html
@@ -2,7 +2,7 @@
- A1 Policy Management Service
+ OSC - A1 Policy Management API
@@ -864,7 +864,7 @@ ul.nav-tabs {
"detail" : {
"type" : "string",
"description" : " A human-readable explanation specific to this occurrence of the problem.",
- "example" : "Policy type not found"
+ "example" : "A1 Policy Type not found"
},
"title" : {
"type" : "string",
@@ -878,7 +878,12 @@ ul.nav-tabs {
"example" : 404
}
},
- "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807"
+ "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807",
+ "example" : {
+ "detail" : "A1 Policy Type not found",
+ "title" : "Not Found",
+ "status" : 404
+ }
};
defs["input"] = {
"required" : [ "access_type", "auth_token", "policy_type_id" ],
@@ -895,7 +900,7 @@ ul.nav-tabs {
},
"policy_type_id" : {
"type" : "string",
- "description" : "Policy type identifier"
+ "description" : "A1 Policy Type identifier"
}
},
"description" : "input"
@@ -952,14 +957,14 @@ ul.nav-tabs {
},
"transient" : {
"type" : "boolean",
- "description" : "if true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.",
+ "description" : "If true, the policy is automatically deleted if the targeted Near-RT RIC restarts or recovers. If false, the A1 Policy Instance remains, and is re-pushed to the targeted Near-RT RIC after a restart or recovery. If false, the A1 Policy Instance is maintained and must be deleted separately in the event of Near-RT RIC restart or recovery. Default is false.\n",
"nullable" : false,
"example" : false,
"default" : false
},
"service_id" : {
"type" : "string",
- "description" : "the identity of the service owning the policy. This can be used to group the policies (it is possible to get all policies associated to a service). Note that the service does not need to be registered.",
+ "description" : "The identity of the service owning the policy. This can be used to group the policies (it is possible to get all policies associated to a service). Note that the service does not need to be registered. If the service is registered, the A1 Policy Instance will be subject to the same supervision rules as the the service's other policies.\n",
"default" : ""
},
"policy_data" : {
@@ -972,10 +977,19 @@ ul.nav-tabs {
},
"policytype_id" : {
"type" : "string",
- "description" : "identity of the policy type"
+ "description" : "identity of the A1 Policy Type"
}
},
- "description" : "Information for one A1-P Policy"
+ "description" : "Information for one A1-P Policy",
+ "example" : {
+ "ric_id" : "ric_id",
+ "policy_id" : "policy_id",
+ "transient" : false,
+ "service_id" : "",
+ "policy_data" : "{}",
+ "status_notification_uri" : "status_notification_uri",
+ "policytype_id" : "policytype_id"
+ }
};
defs["policy_info_list"] = {
"type" : "object",
@@ -988,7 +1002,26 @@ ul.nav-tabs {
}
}
},
- "description" : "List of policy information"
+ "description" : "List of policy information",
+ "example" : {
+ "policies" : [ {
+ "ric_id" : "ric_id",
+ "policy_id" : "policy_id",
+ "transient" : false,
+ "service_id" : "",
+ "policy_data" : "{}",
+ "status_notification_uri" : "status_notification_uri",
+ "policytype_id" : "policytype_id"
+ }, {
+ "ric_id" : "ric_id",
+ "policy_id" : "policy_id",
+ "transient" : false,
+ "service_id" : "",
+ "policy_data" : "{}",
+ "status_notification_uri" : "status_notification_uri",
+ "policytype_id" : "policytype_id"
+ } ]
+ }
};
defs["policy_status_info"] = {
"type" : "object",
@@ -1002,31 +1035,41 @@ ul.nav-tabs {
"description" : "the Policy status"
}
},
- "description" : "Status for one A1-P Policy"
+ "description" : "Status for one A1-P Policy",
+ "example" : {
+ "last_modified" : "last_modified",
+ "status" : "{}"
+ }
};
defs["policy_type_definition"] = {
"type" : "object",
"properties" : {
"policy_schema" : {
"type" : "object",
- "description" : "Policy type json schema. The schema is a json object following http://json-schema.org/draft-07/schema"
+ "description" : "A1 Policy Type json schema. The schema is a json object following http://json-schema.org/draft-07/schema"
}
},
- "description" : "Contains policy type schema definition"
+ "description" : "Contains A1 Policy Type schema definition",
+ "example" : {
+ "policy_schema" : "{}"
+ }
};
defs["policy_type_id_list"] = {
"type" : "object",
"properties" : {
"policytype_ids" : {
"type" : "array",
- "description" : "Policy type identities",
+ "description" : "A1 Policy Type identities",
"items" : {
"type" : "string",
- "description" : "Policy type identities"
+ "description" : "A1 Policy Type identities"
}
}
},
- "description" : "Information about policy types"
+ "description" : "Information about A1 Policy Types",
+ "example" : {
+ "policytype_ids" : [ "policytype_ids", "policytype_ids" ]
+ }
};
defs["ric_info"] = {
"type" : "object",
@@ -1050,14 +1093,20 @@ ul.nav-tabs {
},
"policytype_ids" : {
"type" : "array",
- "description" : "supported policy types",
+ "description" : "supported A1 Policy Types",
"items" : {
"type" : "string",
- "description" : "supported policy types"
+ "description" : "supported A1 Policy Types"
}
}
},
- "description" : "Information for a Near-RT RIC"
+ "description" : "Information for a Near-RT RIC",
+ "example" : {
+ "ric_id" : "ric_id",
+ "managed_element_ids" : [ "managed_element_ids", "managed_element_ids" ],
+ "state" : "UNAVAILABLE",
+ "policytype_ids" : [ "policytype_ids", "policytype_ids" ]
+ }
};
defs["ric_info_list"] = {
"type" : "object",
@@ -1070,7 +1119,20 @@ ul.nav-tabs {
}
}
},
- "description" : "List of Near-RT RIC information"
+ "description" : "List of Near-RT RIC information",
+ "example" : {
+ "rics" : [ {
+ "ric_id" : "ric_id",
+ "managed_element_ids" : [ "managed_element_ids", "managed_element_ids" ],
+ "state" : "UNAVAILABLE",
+ "policytype_ids" : [ "policytype_ids", "policytype_ids" ]
+ }, {
+ "ric_id" : "ric_id",
+ "managed_element_ids" : [ "managed_element_ids", "managed_element_ids" ],
+ "state" : "UNAVAILABLE",
+ "policytype_ids" : [ "policytype_ids", "policytype_ids" ]
+ } ]
+ }
};
defs["service_callback_info_v2"] = {
"required" : [ "event_type", "ric_id" ],
@@ -1082,11 +1144,11 @@ ul.nav-tabs {
},
"event_type" : {
"type" : "string",
- "description" : "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management",
+ "description" : "values: \n AVAILABLE: the Near-RT RIC has become available for A1 Policy management\n",
"enum" : [ "AVAILABLE" ]
}
},
- "description" : "Information transferred as in Service callbacks (callback_url)"
+ "description" : "Information transferred in Service callbacks, \nif a callback URL was provided for a registered service\n"
};
defs["service_registration_info"] = {
"required" : [ "service_id" ],
@@ -1094,7 +1156,7 @@ ul.nav-tabs {
"properties" : {
"callback_url" : {
"type" : "string",
- "description" : "callback for notifying of Near-RT RIC state changes"
+ "description" : "Callback for notifying of Near-RT RIC state changes"
},
"service_id" : {
"type" : "string",
@@ -1102,7 +1164,7 @@ ul.nav-tabs {
},
"keep_alive_interval_seconds" : {
"type" : "integer",
- "description" : "keep alive interval for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled.",
+ "description" : "Keep alive interval for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled.\n",
"format" : "int64"
}
},
@@ -1129,6 +1191,12 @@ ul.nav-tabs {
"description" : "time since last invocation by the service",
"format" : "int64"
}
+ },
+ "example" : {
+ "callback_url" : "callback_url",
+ "service_id" : "service_id",
+ "keep_alive_interval_seconds" : 0,
+ "time_since_last_activity_seconds" : 6
}
};
defs["service_status_list"] = {
@@ -1141,6 +1209,19 @@ ul.nav-tabs {
"$ref" : "#/components/schemas/service_status"
}
}
+ },
+ "example" : {
+ "service_list" : [ {
+ "callback_url" : "callback_url",
+ "service_id" : "service_id",
+ "keep_alive_interval_seconds" : 0,
+ "time_since_last_activity_seconds" : 6
+ }, {
+ "callback_url" : "callback_url",
+ "service_id" : "service_id",
+ "keep_alive_interval_seconds" : 0,
+ "time_since_last_activity_seconds" : 6
+ } ]
}
};
defs["status_info"] = {
@@ -1150,6 +1231,9 @@ ul.nav-tabs {
"type" : "string",
"description" : "status text"
}
+ },
+ "example" : {
+ "status" : "status"
}
};
@@ -1240,17 +1324,17 @@ ul.nav-tabs {
-
A1 Policy Management Service
+ OSC - A1 Policy Management API
-
var A1PolicyManagementService = require('a1_policy_management_service');
+ var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
// Create an instance of the API class
-var api = new A1PolicyManagementService.A1PolicyManagementApi()
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
var policyId = policyId_example; // {String}
var callback = function(error, data, response) {
@@ -1424,7 +1508,7 @@ namespace Example
var policyId = policyId_example; // String | (default to null)
try {
- // Delete a policy
+ // Delete an A1 Policy instance (deletePolicy)
Object result = apiInstance.deletePolicy(policyId);
Debug.WriteLine(result);
} catch (Exception e) {
@@ -1483,7 +1567,7 @@ api_instance = openapi_client.A1PolicyManagementApi()
policyId = policyId_example # String | (default to null)
try:
- # Delete a policy
+ # Delete an A1 Policy instance (deletePolicy)
api_response = api_instance.delete_policy(policyId)
pprint(api_response)
except ApiException as e:
@@ -1709,12 +1793,12 @@ pub fn main() {
getPolicy
-
+
Get an A1 Policy instance (getPolicy)
- Returns a policy
+ Get an A1 Policy instance using its policy ID
/a1-policy/v2/policies/{policy_id}
@@ -1818,6 +1902,7 @@ public class A1PolicyManagementApiExample {
A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init];
String *policyId = policyId_example; // (default to null)
+// Get an A1 Policy instance (getPolicy)
[apiInstance getPolicyWith:policyId
completionHandler: ^(policy_info output, NSError* error) {
if (output) {
@@ -1831,10 +1916,10 @@ String *policyId = policyId_example; // (default to null)
-
var A1PolicyManagementService = require('a1_policy_management_service');
+ var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
// Create an instance of the API class
-var api = new A1PolicyManagementService.A1PolicyManagementApi()
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
var policyId = policyId_example; // {String}
var callback = function(error, data, response) {
@@ -1870,6 +1955,7 @@ namespace Example
var policyId = policyId_example; // String | (default to null)
try {
+ // Get an A1 Policy instance (getPolicy)
policy_info result = apiInstance.getPolicy(policyId);
Debug.WriteLine(result);
} catch (Exception e) {
@@ -1928,6 +2014,7 @@ api_instance = openapi_client.A1PolicyManagementApi()
policyId = policyId_example # String | (default to null)
try:
+ # Get an A1 Policy instance (getPolicy)
api_response = api_instance.get_policy(policyId)
pprint(api_response)
except ApiException as e:
@@ -2146,12 +2233,13 @@ pub fn main() {
getPolicyIds
-
Query policy identities
+
Query A1 Policy Instances (getPolicyIds)
- Returns a list of A1 policies matching given search criteria. <br>If several query parameters are defined, the policies matching all conditions are returned.
+ Retrieve a list of A1 Policy Instance IDs for policies that match given search criteria. If multiple query parameters are given, the policies matching all conditions are returned.
+
/a1-policy/v2/policies
@@ -2195,10 +2283,11 @@ public class A1PolicyManagementApiExample {
// Create an instance of the API class
A1PolicyManagementApi apiInstance = new A1PolicyManagementApi();
- String policytypeId = policytypeId_example; // String | Select policies of a given policy type identity.
+ String policytypeId = policytypeId_example; // String | Select policies of a given A1 Policy Type ID.
String ricId = ricId_example; // String | Select policies of a given Near-RT RIC identity.
- String serviceId = serviceId_example; // String | Select policies owned by a given service.
- String typeName = typeName_example; // String | Select policies of types with the given type name (type identity has the format )
+ String serviceId = serviceId_example; // String | Select policies owned by a given service. (Both registered and unregistered services)
+ String typeName = typeName_example; // String | Select policies of types with the given A1 Policy Type name (type names have the format 'typename_version')
+
try {
policy_id_list result = apiInstance.getPolicyIds(policytypeId, ricId, serviceId, typeName);
@@ -2217,10 +2306,11 @@ public class A1PolicyManagementApiExample {
final api_instance = DefaultApi();
-final String policytypeId = new String(); // String | Select policies of a given policy type identity.
+final String policytypeId = new String(); // String | Select policies of a given A1 Policy Type ID.
final String ricId = new String(); // String | Select policies of a given Near-RT RIC identity.
-final String serviceId = new String(); // String | Select policies owned by a given service.
-final String typeName = new String(); // String | Select policies of types with the given type name (type identity has the format )
+final String serviceId = new String(); // String | Select policies owned by a given service. (Both registered and unregistered services)
+final String typeName = new String(); // String | Select policies of types with the given A1 Policy Type name (type names have the format 'typename_version')
+
try {
final result = await api_instance.getPolicyIds(policytypeId, ricId, serviceId, typeName);
@@ -2238,10 +2328,11 @@ try {
public class A1PolicyManagementApiExample {
public static void main(String[] args) {
A1PolicyManagementApi apiInstance = new A1PolicyManagementApi();
- String policytypeId = policytypeId_example; // String | Select policies of a given policy type identity.
+ String policytypeId = policytypeId_example; // String | Select policies of a given A1 Policy Type ID.
String ricId = ricId_example; // String | Select policies of a given Near-RT RIC identity.
- String serviceId = serviceId_example; // String | Select policies owned by a given service.
- String typeName = typeName_example; // String | Select policies of types with the given type name (type identity has the format )
+ String serviceId = serviceId_example; // String | Select policies owned by a given service. (Both registered and unregistered services)
+ String typeName = typeName_example; // String | Select policies of types with the given A1 Policy Type name (type names have the format 'typename_version')
+
try {
policy_id_list result = apiInstance.getPolicyIds(policytypeId, ricId, serviceId, typeName);
@@ -2262,12 +2353,13 @@ public class A1PolicyManagementApiExample {
// Create an instance of the API class
A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init];
-String *policytypeId = policytypeId_example; // Select policies of a given policy type identity. (optional) (default to null)
+String *policytypeId = policytypeId_example; // Select policies of a given A1 Policy Type ID. (optional) (default to null)
String *ricId = ricId_example; // Select policies of a given Near-RT RIC identity. (optional) (default to null)
-String *serviceId = serviceId_example; // Select policies owned by a given service. (optional) (default to null)
-String *typeName = typeName_example; // Select policies of types with the given type name (type identity has the format ) (optional) (default to null)
+String *serviceId = serviceId_example; // Select policies owned by a given service. (Both registered and unregistered services) (optional) (default to null)
+String *typeName = typeName_example; // Select policies of types with the given A1 Policy Type name (type names have the format 'typename_version')
+ (optional) (default to null)
-// Query policy identities
+// Query A1 Policy Instances (getPolicyIds)
[apiInstance getPolicyIdsWith:policytypeId
ricId:ricId
serviceId:serviceId
@@ -2284,15 +2376,16 @@ String *typeName = typeName_example; // Select policies of types with the given
-
var A1PolicyManagementService = require('a1_policy_management_service');
+ var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
// Create an instance of the API class
-var api = new A1PolicyManagementService.A1PolicyManagementApi()
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
var opts = {
- 'policytypeId': policytypeId_example, // {String} Select policies of a given policy type identity.
+ 'policytypeId': policytypeId_example, // {String} Select policies of a given A1 Policy Type ID.
'ricId': ricId_example, // {String} Select policies of a given Near-RT RIC identity.
- 'serviceId': serviceId_example, // {String} Select policies owned by a given service.
- 'typeName': typeName_example // {String} Select policies of types with the given type name (type identity has the format )
+ 'serviceId': serviceId_example, // {String} Select policies owned by a given service. (Both registered and unregistered services)
+ 'typeName': typeName_example // {String} Select policies of types with the given A1 Policy Type name (type names have the format 'typename_version')
+
};
var callback = function(error, data, response) {
@@ -2325,13 +2418,14 @@ namespace Example
// Create an instance of the API class
var apiInstance = new A1PolicyManagementApi();
- var policytypeId = policytypeId_example; // String | Select policies of a given policy type identity. (optional) (default to null)
+ var policytypeId = policytypeId_example; // String | Select policies of a given A1 Policy Type ID. (optional) (default to null)
var ricId = ricId_example; // String | Select policies of a given Near-RT RIC identity. (optional) (default to null)
- var serviceId = serviceId_example; // String | Select policies owned by a given service. (optional) (default to null)
- var typeName = typeName_example; // String | Select policies of types with the given type name (type identity has the format ) (optional) (default to null)
+ var serviceId = serviceId_example; // String | Select policies owned by a given service. (Both registered and unregistered services) (optional) (default to null)
+ var typeName = typeName_example; // String | Select policies of types with the given A1 Policy Type name (type names have the format 'typename_version')
+ (optional) (default to null)
try {
- // Query policy identities
+ // Query A1 Policy Instances (getPolicyIds)
policy_id_list result = apiInstance.getPolicyIds(policytypeId, ricId, serviceId, typeName);
Debug.WriteLine(result);
} catch (Exception e) {
@@ -2349,10 +2443,11 @@ require_once(__DIR__ . '/vendor/autoload.php');
// Create an instance of the API class
$api_instance = new OpenAPITools\Client\Api\A1PolicyManagementApi();
-$policytypeId = policytypeId_example; // String | Select policies of a given policy type identity.
+$policytypeId = policytypeId_example; // String | Select policies of a given A1 Policy Type ID.
$ricId = ricId_example; // String | Select policies of a given Near-RT RIC identity.
-$serviceId = serviceId_example; // String | Select policies owned by a given service.
-$typeName = typeName_example; // String | Select policies of types with the given type name (type identity has the format )
+$serviceId = serviceId_example; // String | Select policies owned by a given service. (Both registered and unregistered services)
+$typeName = typeName_example; // String | Select policies of types with the given A1 Policy Type name (type names have the format 'typename_version')
+
try {
$result = $api_instance->getPolicyIds($policytypeId, $ricId, $serviceId, $typeName);
@@ -2370,10 +2465,11 @@ use WWW::OPenAPIClient::A1PolicyManagementApi;
# Create an instance of the API class
my $api_instance = WWW::OPenAPIClient::A1PolicyManagementApi->new();
-my $policytypeId = policytypeId_example; # String | Select policies of a given policy type identity.
+my $policytypeId = policytypeId_example; # String | Select policies of a given A1 Policy Type ID.
my $ricId = ricId_example; # String | Select policies of a given Near-RT RIC identity.
-my $serviceId = serviceId_example; # String | Select policies owned by a given service.
-my $typeName = typeName_example; # String | Select policies of types with the given type name (type identity has the format )
+my $serviceId = serviceId_example; # String | Select policies owned by a given service. (Both registered and unregistered services)
+my $typeName = typeName_example; # String | Select policies of types with the given A1 Policy Type name (type names have the format 'typename_version')
+
eval {
my $result = $api_instance->getPolicyIds(policytypeId => $policytypeId, ricId => $ricId, serviceId => $serviceId, typeName => $typeName);
@@ -2393,13 +2489,14 @@ from pprint import pprint
# Create an instance of the API class
api_instance = openapi_client.A1PolicyManagementApi()
-policytypeId = policytypeId_example # String | Select policies of a given policy type identity. (optional) (default to null)
+policytypeId = policytypeId_example # String | Select policies of a given A1 Policy Type ID. (optional) (default to null)
ricId = ricId_example # String | Select policies of a given Near-RT RIC identity. (optional) (default to null)
-serviceId = serviceId_example # String | Select policies owned by a given service. (optional) (default to null)
-typeName = typeName_example # String | Select policies of types with the given type name (type identity has the format ) (optional) (default to null)
+serviceId = serviceId_example # String | Select policies owned by a given service. (Both registered and unregistered services) (optional) (default to null)
+typeName = typeName_example # String | Select policies of types with the given A1 Policy Type name (type names have the format 'typename_version')
+ (optional) (default to null)
try:
- # Query policy identities
+ # Query A1 Policy Instances (getPolicyIds)
api_response = api_instance.get_policy_ids(policytypeId=policytypeId, ricId=ricId, serviceId=serviceId, typeName=typeName)
pprint(api_response)
except ApiException as e:
@@ -2453,7 +2550,7 @@ pub fn main() {
-Select policies of a given policy type identity.
+Select policies of a given A1 Policy Type ID.
@@ -2493,7 +2590,7 @@ Select policies of a given Near-RT RIC identity.
-Select policies owned by a given service.
+Select policies owned by a given service. (Both registered and unregistered services)
@@ -2513,7 +2610,8 @@ Select policies owned by a given service.
-Select policies of types with the given type name (type identity has the format <typename_version>)
+Select policies of types with the given A1 Policy Type name (type names have the format 'typename_version')
+
@@ -2681,12 +2779,13 @@ Select policies of types with the given type name (type identity has the format
getPolicyInstances
-
Query for A1 policy instances
+
Query for A1 Policy instances (getPolicyInstances)
- Returns a list of A1 policies matching given search criteria. <br>If several query parameters are defined, the policies matching all conditions are returned.
+ Returns a collection of A1 Policy Instance information for policies that match given search criteria. If several query parameters are defined, the policies matching all conditions are returned.
+
/a1-policy/v2/policy-instances
@@ -2730,10 +2829,10 @@ public class A1PolicyManagementApiExample {
// Create an instance of the API class
A1PolicyManagementApi apiInstance = new A1PolicyManagementApi();
- String policytypeId = policytypeId_example; // String | Select policies with a given type identity.
+ String policytypeId = policytypeId_example; // String | Select policies with a given A1 Policy Type ID.
String ricId = ricId_example; // String | Select policies for a given Near-RT RIC identity.
- String serviceId = serviceId_example; // String | Select policies owned by a given service.
- String typeName = typeName_example; // String | Select policies of a given type name (type identity has the format )
+ String serviceId = serviceId_example; // String | Select policies owned by a given service (registered or unregistered).
+ String typeName = typeName_example; // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
try {
policy_info_list result = apiInstance.getPolicyInstances(policytypeId, ricId, serviceId, typeName);
@@ -2752,10 +2851,10 @@ public class A1PolicyManagementApiExample {
final api_instance = DefaultApi();
-final String policytypeId = new String(); // String | Select policies with a given type identity.
+final String policytypeId = new String(); // String | Select policies with a given A1 Policy Type ID.
final String ricId = new String(); // String | Select policies for a given Near-RT RIC identity.
-final String serviceId = new String(); // String | Select policies owned by a given service.
-final String typeName = new String(); // String | Select policies of a given type name (type identity has the format )
+final String serviceId = new String(); // String | Select policies owned by a given service (registered or unregistered).
+final String typeName = new String(); // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
try {
final result = await api_instance.getPolicyInstances(policytypeId, ricId, serviceId, typeName);
@@ -2773,10 +2872,10 @@ try {
public class A1PolicyManagementApiExample {
public static void main(String[] args) {
A1PolicyManagementApi apiInstance = new A1PolicyManagementApi();
- String policytypeId = policytypeId_example; // String | Select policies with a given type identity.
+ String policytypeId = policytypeId_example; // String | Select policies with a given A1 Policy Type ID.
String ricId = ricId_example; // String | Select policies for a given Near-RT RIC identity.
- String serviceId = serviceId_example; // String | Select policies owned by a given service.
- String typeName = typeName_example; // String | Select policies of a given type name (type identity has the format )
+ String serviceId = serviceId_example; // String | Select policies owned by a given service (registered or unregistered).
+ String typeName = typeName_example; // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
try {
policy_info_list result = apiInstance.getPolicyInstances(policytypeId, ricId, serviceId, typeName);
@@ -2797,12 +2896,12 @@ public class A1PolicyManagementApiExample {
// Create an instance of the API class
A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init];
-String *policytypeId = policytypeId_example; // Select policies with a given type identity. (optional) (default to null)
+String *policytypeId = policytypeId_example; // Select policies with a given A1 Policy Type ID. (optional) (default to null)
String *ricId = ricId_example; // Select policies for a given Near-RT RIC identity. (optional) (default to null)
-String *serviceId = serviceId_example; // Select policies owned by a given service. (optional) (default to null)
-String *typeName = typeName_example; // Select policies of a given type name (type identity has the format ) (optional) (default to null)
+String *serviceId = serviceId_example; // Select policies owned by a given service (registered or unregistered). (optional) (default to null)
+String *typeName = typeName_example; // Select policies of a given A1 Policy Type name (type identity has the format 'typename_version'). (optional) (default to null)
-// Query for A1 policy instances
+// Query for A1 Policy instances (getPolicyInstances)
[apiInstance getPolicyInstancesWith:policytypeId
ricId:ricId
serviceId:serviceId
@@ -2819,15 +2918,15 @@ String *typeName = typeName_example; // Select policies of a given type name (ty
-
var A1PolicyManagementService = require('a1_policy_management_service');
+ var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
// Create an instance of the API class
-var api = new A1PolicyManagementService.A1PolicyManagementApi()
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
var opts = {
- 'policytypeId': policytypeId_example, // {String} Select policies with a given type identity.
+ 'policytypeId': policytypeId_example, // {String} Select policies with a given A1 Policy Type ID.
'ricId': ricId_example, // {String} Select policies for a given Near-RT RIC identity.
- 'serviceId': serviceId_example, // {String} Select policies owned by a given service.
- 'typeName': typeName_example // {String} Select policies of a given type name (type identity has the format )
+ 'serviceId': serviceId_example, // {String} Select policies owned by a given service (registered or unregistered).
+ 'typeName': typeName_example // {String} Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
};
var callback = function(error, data, response) {
@@ -2860,13 +2959,13 @@ namespace Example
// Create an instance of the API class
var apiInstance = new A1PolicyManagementApi();
- var policytypeId = policytypeId_example; // String | Select policies with a given type identity. (optional) (default to null)
+ var policytypeId = policytypeId_example; // String | Select policies with a given A1 Policy Type ID. (optional) (default to null)
var ricId = ricId_example; // String | Select policies for a given Near-RT RIC identity. (optional) (default to null)
- var serviceId = serviceId_example; // String | Select policies owned by a given service. (optional) (default to null)
- var typeName = typeName_example; // String | Select policies of a given type name (type identity has the format ) (optional) (default to null)
+ var serviceId = serviceId_example; // String | Select policies owned by a given service (registered or unregistered). (optional) (default to null)
+ var typeName = typeName_example; // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version'). (optional) (default to null)
try {
- // Query for A1 policy instances
+ // Query for A1 Policy instances (getPolicyInstances)
policy_info_list result = apiInstance.getPolicyInstances(policytypeId, ricId, serviceId, typeName);
Debug.WriteLine(result);
} catch (Exception e) {
@@ -2884,10 +2983,10 @@ require_once(__DIR__ . '/vendor/autoload.php');
// Create an instance of the API class
$api_instance = new OpenAPITools\Client\Api\A1PolicyManagementApi();
-$policytypeId = policytypeId_example; // String | Select policies with a given type identity.
+$policytypeId = policytypeId_example; // String | Select policies with a given A1 Policy Type ID.
$ricId = ricId_example; // String | Select policies for a given Near-RT RIC identity.
-$serviceId = serviceId_example; // String | Select policies owned by a given service.
-$typeName = typeName_example; // String | Select policies of a given type name (type identity has the format )
+$serviceId = serviceId_example; // String | Select policies owned by a given service (registered or unregistered).
+$typeName = typeName_example; // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
try {
$result = $api_instance->getPolicyInstances($policytypeId, $ricId, $serviceId, $typeName);
@@ -2905,10 +3004,10 @@ use WWW::OPenAPIClient::A1PolicyManagementApi;
# Create an instance of the API class
my $api_instance = WWW::OPenAPIClient::A1PolicyManagementApi->new();
-my $policytypeId = policytypeId_example; # String | Select policies with a given type identity.
+my $policytypeId = policytypeId_example; # String | Select policies with a given A1 Policy Type ID.
my $ricId = ricId_example; # String | Select policies for a given Near-RT RIC identity.
-my $serviceId = serviceId_example; # String | Select policies owned by a given service.
-my $typeName = typeName_example; # String | Select policies of a given type name (type identity has the format )
+my $serviceId = serviceId_example; # String | Select policies owned by a given service (registered or unregistered).
+my $typeName = typeName_example; # String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
eval {
my $result = $api_instance->getPolicyInstances(policytypeId => $policytypeId, ricId => $ricId, serviceId => $serviceId, typeName => $typeName);
@@ -2928,13 +3027,13 @@ from pprint import pprint
# Create an instance of the API class
api_instance = openapi_client.A1PolicyManagementApi()
-policytypeId = policytypeId_example # String | Select policies with a given type identity. (optional) (default to null)
+policytypeId = policytypeId_example # String | Select policies with a given A1 Policy Type ID. (optional) (default to null)
ricId = ricId_example # String | Select policies for a given Near-RT RIC identity. (optional) (default to null)
-serviceId = serviceId_example # String | Select policies owned by a given service. (optional) (default to null)
-typeName = typeName_example # String | Select policies of a given type name (type identity has the format ) (optional) (default to null)
+serviceId = serviceId_example # String | Select policies owned by a given service (registered or unregistered). (optional) (default to null)
+typeName = typeName_example # String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version'). (optional) (default to null)
try:
- # Query for A1 policy instances
+ # Query for A1 Policy instances (getPolicyInstances)
api_response = api_instance.get_policy_instances(policytypeId=policytypeId, ricId=ricId, serviceId=serviceId, typeName=typeName)
pprint(api_response)
except ApiException as e:
@@ -2988,7 +3087,7 @@ pub fn main() {
-Select policies with a given type identity.
+Select policies with a given A1 Policy Type ID.
@@ -3028,7 +3127,7 @@ Select policies for a given Near-RT RIC identity.
-Select policies owned by a given service.
+Select policies owned by a given service (registered or unregistered).
@@ -3048,7 +3147,7 @@ Select policies owned by a given service.
-Select policies of a given type name (type identity has the format <typename_version>)
+Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
@@ -3062,7 +3161,7 @@ Select policies of a given type name (type identity has the format <typename_
-
+
-
- Schema
+ Schema
@@ -1967,13 +2055,13 @@ $(document).ready(function() {
-
-
-
+
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -2043,22 +2131,17 @@ $(document).ready(function() {
-
-
-
+
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -2124,13 +2207,13 @@ $(document).ready(function() {
-
-
-
+
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -2200,13 +2283,13 @@ $(document).ready(function() {
-
-
-
+
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -2276,13 +2359,13 @@ $(document).ready(function() {
-
-
-
+
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -2352,17 +2435,22 @@ $(document).ready(function() {
-
-
-
-
-
-
-
-
deletePolicy
-
Delete a policy
-
-
-
-
- Deleting the policy using policyId.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
deletePolicy
+
Delete an A1 Policy instance (deletePolicy)
+
+
+
+
+ Delete an existing A1 Policy instance using its policy ID.
+
+
+ /policies/{policyId}
+
+
Usage and SDK Samples
+
+
+
+
+
+
curl -X DELETE \
+ -H "Accept: application/problem+json" \
+ "https://example.com/a1-policy-management/v1/policies/{policyId}"
+
+
+
+
import org.openapitools.client.*;
+import org.openapitools.client.auth.*;
+import org.openapitools.client.model.*;
+import org.openapitools.client.api.A1PolicyManagementApi;
+
+import java.io.File;
+import java.util.*;
+
+public class A1PolicyManagementApiExample {
+ public static void main(String[] args) {
+
+ // Create an instance of the API class
+ A1PolicyManagementApi apiInstance = new A1PolicyManagementApi();
+ String policyId = policyId_example; // String |
+ String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
+
+ try {
+ apiInstance.deletePolicy(policyId, accept);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling A1PolicyManagementApi#deletePolicy");
+ e.printStackTrace();
+ }
+ }
+}
+
+
+
+
+
import 'package:openapi/api.dart';
+
+final api_instance = DefaultApi();
+
+final String policyId = new String(); // String |
+final String accept = new String(); // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
+
+try {
+ final result = await api_instance.deletePolicy(policyId, accept);
+ print(result);
+} catch (e) {
+ print('Exception when calling DefaultApi->deletePolicy: $e\n');
+}
+
+
+
+
+
+
import org.openapitools.client.api.A1PolicyManagementApi;
+
+public class A1PolicyManagementApiExample {
+ public static void main(String[] args) {
+ A1PolicyManagementApi apiInstance = new A1PolicyManagementApi();
+ String policyId = policyId_example; // String |
+ String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
+
+ try {
+ apiInstance.deletePolicy(policyId, accept);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling A1PolicyManagementApi#deletePolicy");
+ e.printStackTrace();
+ }
+ }
+}
+
+
+
+
+
+// Create an instance of the API class
+A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init];
+String *policyId = policyId_example; // (default to null)
+String *accept = application/json; // Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
+
+// Delete an A1 Policy instance (deletePolicy)
+[apiInstance deletePolicyWith:policyId
+ accept:accept
+ completionHandler: ^(NSError* error) {
+ if (error) {
+ NSLog(@"Error: %@", error);
+ }
+}];
+
+
+
+
+
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
+
+// Create an instance of the API class
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
+var policyId = policyId_example; // {String}
+var opts = {
+ 'accept': application/json // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
+};
+
+var callback = function(error, data, response) {
+ if (error) {
+ console.error(error);
+ } else {
+ console.log('API called successfully.');
+ }
+};
+api.deletePolicy(policyId, opts, callback);
+
+
+
+
+
+
using System;
+using System.Diagnostics;
+using Org.OpenAPITools.Api;
+using Org.OpenAPITools.Client;
+using Org.OpenAPITools.Model;
+
+namespace Example
+{
+ public class deletePolicyExample
+ {
+ public void main()
+ {
+
+ // Create an instance of the API class
+ var apiInstance = new A1PolicyManagementApi();
+ var policyId = policyId_example; // String | (default to null)
+ var accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
+
+ try {
+ // Delete an A1 Policy instance (deletePolicy)
+ apiInstance.deletePolicy(policyId, accept);
+ } catch (Exception e) {
+ Debug.Print("Exception when calling A1PolicyManagementApi.deletePolicy: " + e.Message );
+ }
+ }
+ }
+}
+
+
+
+
+
<?php
+require_once(__DIR__ . '/vendor/autoload.php');
+
+// Create an instance of the API class
+$api_instance = new OpenAPITools\Client\Api\A1PolicyManagementApi();
+$policyId = policyId_example; // String |
+$accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
+
+try {
+ $api_instance->deletePolicy($policyId, $accept);
+} catch (Exception $e) {
+ echo 'Exception when calling A1PolicyManagementApi->deletePolicy: ', $e->getMessage(), PHP_EOL;
+}
+?>
+
+
+
+
use Data::Dumper;
+use WWW::OPenAPIClient::Configuration;
+use WWW::OPenAPIClient::A1PolicyManagementApi;
+
+# Create an instance of the API class
+my $api_instance = WWW::OPenAPIClient::A1PolicyManagementApi->new();
+my $policyId = policyId_example; # String |
+my $accept = application/json; # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
+
+eval {
+ $api_instance->deletePolicy(policyId => $policyId, accept => $accept);
+};
+if ($@) {
+ warn "Exception when calling A1PolicyManagementApi->deletePolicy: $@\n";
+}
+
+
+
+
from __future__ import print_statement
+import time
+import openapi_client
+from openapi_client.rest import ApiException
+from pprint import pprint
+
+# Create an instance of the API class
+api_instance = openapi_client.A1PolicyManagementApi()
+policyId = policyId_example # String | (default to null)
+accept = application/json # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
+
+try:
+ # Delete an A1 Policy instance (deletePolicy)
+ api_instance.delete_policy(policyId, accept=accept)
+except ApiException as e:
+ print("Exception when calling A1PolicyManagementApi->deletePolicy: %s\n" % e)
+
+
+
+
extern crate A1PolicyManagementApi;
+
+pub fn main() {
+ let policyId = policyId_example; // String
+ let accept = application/json; // String
+
+ let mut context = A1PolicyManagementApi::Context::default();
+ let result = client.deletePolicy(policyId, accept, &context).wait();
+
+ println!("{:?}", result);
+}
+
+
+
+
+ Scopes
+
+
+ Parameters
+
+ Path parameters
+
+
+ | Name |
+ Description |
+
+ | policyId* |
+
+
+
+
+
+
+
+ String
+
+
+
+
+ Required
+
+
+
+ |
+
+
+
+
+ Header parameters
+
+
+ | Name |
+ Description |
+
+ | Accept |
+
+
+
+
+
+
+
+ String
+
+
+
+Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
+
+
+
+
+ |
+
+
+
+
+
+
+
+ Responses
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
getPolicy
+
Get an A1 Policy's policy data (getPolicy)
+
+
+
+
+ Get an A1 Policy instance's policy data using its policy ID
- /policies/{policyId}
+ /policies/{policyId}
Usage and SDK Samples
-
-
curl -X DELETE \
- -H "Accept: application/problem+json" \
+
+
curl -X GET \
+ -H "Accept: application/json,application/problem+json" \
"https://example.com/a1-policy-management/v1/policies/{policyId}"
-
+
import org.openapitools.client.*;
import org.openapitools.client.auth.*;
import org.openapitools.client.model.*;
@@ -2463,9 +4081,10 @@ public class A1PolicyManagementApiExample {
String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
try {
- apiInstance.deletePolicy(policyId, accept);
+ Object result = apiInstance.getPolicy(policyId, accept);
+ System.out.println(result);
} catch (ApiException e) {
- System.err.println("Exception when calling A1PolicyManagementApi#deletePolicy");
+ System.err.println("Exception when calling A1PolicyManagementApi#getPolicy");
e.printStackTrace();
}
}
@@ -2473,7 +4092,7 @@ public class A1PolicyManagementApiExample {
-
+
import 'package:openapi/api.dart';
final api_instance = DefaultApi();
@@ -2482,16 +4101,16 @@ final String policyId = new String(); // String |
final String accept = new String(); // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
try {
- final result = await api_instance.deletePolicy(policyId, accept);
+ final result = await api_instance.getPolicy(policyId, accept);
print(result);
} catch (e) {
- print('Exception when calling DefaultApi->deletePolicy: $e\n');
+ print('Exception when calling DefaultApi->getPolicy: $e\n');
}
-
+
import org.openapitools.client.api.A1PolicyManagementApi;
public class A1PolicyManagementApiExample {
@@ -2501,19 +4120,20 @@ public class A1PolicyManagementApiExample {
String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
try {
- apiInstance.deletePolicy(policyId, accept);
+ Object result = apiInstance.getPolicy(policyId, accept);
+ System.out.println(result);
} catch (ApiException e) {
- System.err.println("Exception when calling A1PolicyManagementApi#deletePolicy");
+ System.err.println("Exception when calling A1PolicyManagementApi#getPolicy");
e.printStackTrace();
}
}
}
-
+
// Create an instance of the API class
@@ -2521,10 +4141,13 @@ A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init];
String *policyId = policyId_example; // (default to null)
String *accept = application/json; // Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
-// Delete a policy
-[apiInstance deletePolicyWith:policyId
+// Get an A1 Policy's policy data (getPolicy)
+[apiInstance getPolicyWith:policyId
accept:accept
- completionHandler: ^(NSError* error) {
+ completionHandler: ^(Object output, NSError* error) {
+ if (output) {
+ NSLog(@"%@", output);
+ }
if (error) {
NSLog(@"Error: %@", error);
}
@@ -2532,11 +4155,11 @@ String *accept = application/json; // Specifies the content type that the client
-
-
var A1PolicyManagementApi = require('a1_policy_management_api');
+
+
var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
// Create an instance of the API class
-var api = new A1PolicyManagementApi.A1PolicyManagementApi()
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
var policyId = policyId_example; // {String}
var opts = {
'accept': application/json // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
@@ -2546,17 +4169,17 @@ var callback = function(error, data, response) {
if (error) {
console.error(error);
} else {
- console.log('API called successfully.');
+ console.log('API called successfully. Returned data: ' + data);
}
};
-api.deletePolicy(policyId, opts, callback);
+api.getPolicy(policyId, opts, callback);
-
-
+
using System;
using System.Diagnostics;
using Org.OpenAPITools.Api;
@@ -2565,7 +4188,7 @@ using Org.OpenAPITools.Model;
namespace Example
{
- public class deletePolicyExample
+ public class getPolicyExample
{
public void main()
{
@@ -2576,10 +4199,11 @@ namespace Example
var accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
try {
- // Delete a policy
- apiInstance.deletePolicy(policyId, accept);
+ // Get an A1 Policy's policy data (getPolicy)
+ Object result = apiInstance.getPolicy(policyId, accept);
+ Debug.WriteLine(result);
} catch (Exception e) {
- Debug.Print("Exception when calling A1PolicyManagementApi.deletePolicy: " + e.Message );
+ Debug.Print("Exception when calling A1PolicyManagementApi.getPolicy: " + e.Message );
}
}
}
@@ -2587,7 +4211,7 @@ namespace Example
-
+
<?php
require_once(__DIR__ . '/vendor/autoload.php');
@@ -2597,14 +4221,15 @@ $policyId = policyId_example; // String |
$accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
try {
- $api_instance->deletePolicy($policyId, $accept);
+ $result = $api_instance->getPolicy($policyId, $accept);
+ print_r($result);
} catch (Exception $e) {
- echo 'Exception when calling A1PolicyManagementApi->deletePolicy: ', $e->getMessage(), PHP_EOL;
+ echo 'Exception when calling A1PolicyManagementApi->getPolicy: ', $e->getMessage(), PHP_EOL;
}
?>
-
+
use Data::Dumper;
use WWW::OPenAPIClient::Configuration;
use WWW::OPenAPIClient::A1PolicyManagementApi;
@@ -2615,14 +4240,15 @@ my $policyId = policyId_example; # String |
my $accept = application/json; # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
eval {
- $api_instance->deletePolicy(policyId => $policyId, accept => $accept);
+ my $result = $api_instance->getPolicy(policyId => $policyId, accept => $accept);
+ print Dumper($result);
};
if ($@) {
- warn "Exception when calling A1PolicyManagementApi->deletePolicy: $@\n";
+ warn "Exception when calling A1PolicyManagementApi->getPolicy: $@\n";
}
-
+
from __future__ import print_statement
import time
import openapi_client
@@ -2635,13 +4261,14 @@ policyId = policyId_example # String | (default to null)
accept = application/json # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
try:
- # Delete a policy
- api_instance.delete_policy(policyId, accept=accept)
+ # Get an A1 Policy's policy data (getPolicy)
+ api_response = api_instance.get_policy(policyId, accept=accept)
+ pprint(api_response)
except ApiException as e:
- print("Exception when calling A1PolicyManagementApi->deletePolicy: %s\n" % e)
+ print("Exception when calling A1PolicyManagementApi->getPolicy: %s\n" % e)
-
+
extern crate A1PolicyManagementApi;
pub fn main() {
@@ -2649,7 +4276,7 @@ pub fn main() {
let accept = application/json; // String
let mut context = A1PolicyManagementApi::Context::default();
- let result = client.deletePolicy(policyId, accept, &context).wait();
+ let result = client.getPolicy(policyId, accept, &context).wait();
println!("{:?}", result);
}
@@ -2674,7 +4301,7 @@ pub fn main() {
-
+
@@ -2702,7 +4329,7 @@ pub fn main() {
-
+
@@ -2724,33 +4351,50 @@ Specifies the content type that the client expects to receive in response to the
Responses
-
-
+
+
-
+
-
-
-
+
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -2813,9 +4457,9 @@ Specifies the content type that the client expects to receive in response to the
-
-
-
+
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -2889,9 +4533,9 @@ Specifies the content type that the client expects to receive in response to the
-
-
-
+
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -2965,9 +4609,9 @@ Specifies the content type that the client expects to receive in response to the
-
-
-
+
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -3041,9 +4685,9 @@ Specifies the content type that the client expects to receive in response to the
-
-
-
+
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -3117,22 +4761,17 @@ Specifies the content type that the client expects to receive in response to the
-
-
-
+
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -3198,13 +4837,13 @@ Specifies the content type that the client expects to receive in response to the
-
-
-
+
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -3274,9 +4913,9 @@ Specifies the content type that the client expects to receive in response to the
-
-
-
+
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -3350,9 +4989,9 @@ Specifies the content type that the client expects to receive in response to the
-
-
-
+
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -3426,9 +5065,9 @@ Specifies the content type that the client expects to receive in response to the
-
-
-
-
-
+
+
- getAllPolicies
- Query policy identities
+ getPolicyIds
+ Query for A1 Policy instances (getPolicyIds)
- Returns a list of A1 policies matching given search criteria. <br>If several query parameters are defined, the policies matching all conditions are returned.
+ Returns a collection of A1 Policy Instance IDs for policies that match given search criteria. If several query parameters are defined, the policies matching all conditions are returned.
+
/policies
@@ -3497,29 +5137,29 @@ Specifies the content type that the client expects to receive in response to the
Usage and SDK Samples
-
+
curl -X GET \
-H "Accept: application/json,application/problem+json" \
"https://example.com/a1-policy-management/v1/policies?policyTypeId=policyTypeId_example&nearRtRicId=nearRtRicId_example&serviceId=serviceId_example&typeName=typeName_example"
-
+
import org.openapitools.client.*;
import org.openapitools.client.auth.*;
import org.openapitools.client.model.*;
@@ -3533,17 +5173,17 @@ public class A1PolicyManagementApiExample {
// Create an instance of the API class
A1PolicyManagementApi apiInstance = new A1PolicyManagementApi();
- String policyTypeId = policyTypeId_example; // String | Select policies of a given policy type identity.
- String nearRtRicId = nearRtRicId_example; // String | Select policies of a given Near-RT RIC identity.
- String serviceId = serviceId_example; // String | Select policies owned by a given service.
- String typeName = typeName_example; // String | Select policies of types with the given type name (type identity has the format )
+ String policyTypeId = policyTypeId_example; // String | Select policies with a given A1 Policy Type ID.
+ String nearRtRicId = nearRtRicId_example; // String | Select policies for a given Near-RT RIC identity.
+ String serviceId = serviceId_example; // String | Select policies owned by a given service (registered or unregistered).
+ String typeName = typeName_example; // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
try {
- array[PolicyInformation] result = apiInstance.getAllPolicies(policyTypeId, nearRtRicId, serviceId, typeName, accept);
+ array[PolicyInformation] result = apiInstance.getPolicyIds(policyTypeId, nearRtRicId, serviceId, typeName, accept);
System.out.println(result);
} catch (ApiException e) {
- System.err.println("Exception when calling A1PolicyManagementApi#getAllPolicies");
+ System.err.println("Exception when calling A1PolicyManagementApi#getPolicyIds");
e.printStackTrace();
}
}
@@ -3551,66 +5191,66 @@ public class A1PolicyManagementApiExample {
-
+
import 'package:openapi/api.dart';
final api_instance = DefaultApi();
-final String policyTypeId = new String(); // String | Select policies of a given policy type identity.
-final String nearRtRicId = new String(); // String | Select policies of a given Near-RT RIC identity.
-final String serviceId = new String(); // String | Select policies owned by a given service.
-final String typeName = new String(); // String | Select policies of types with the given type name (type identity has the format )
+final String policyTypeId = new String(); // String | Select policies with a given A1 Policy Type ID.
+final String nearRtRicId = new String(); // String | Select policies for a given Near-RT RIC identity.
+final String serviceId = new String(); // String | Select policies owned by a given service (registered or unregistered).
+final String typeName = new String(); // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
final String accept = new String(); // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
try {
- final result = await api_instance.getAllPolicies(policyTypeId, nearRtRicId, serviceId, typeName, accept);
+ final result = await api_instance.getPolicyIds(policyTypeId, nearRtRicId, serviceId, typeName, accept);
print(result);
} catch (e) {
- print('Exception when calling DefaultApi->getAllPolicies: $e\n');
+ print('Exception when calling DefaultApi->getPolicyIds: $e\n');
}
-
+
import org.openapitools.client.api.A1PolicyManagementApi;
public class A1PolicyManagementApiExample {
public static void main(String[] args) {
A1PolicyManagementApi apiInstance = new A1PolicyManagementApi();
- String policyTypeId = policyTypeId_example; // String | Select policies of a given policy type identity.
- String nearRtRicId = nearRtRicId_example; // String | Select policies of a given Near-RT RIC identity.
- String serviceId = serviceId_example; // String | Select policies owned by a given service.
- String typeName = typeName_example; // String | Select policies of types with the given type name (type identity has the format )
+ String policyTypeId = policyTypeId_example; // String | Select policies with a given A1 Policy Type ID.
+ String nearRtRicId = nearRtRicId_example; // String | Select policies for a given Near-RT RIC identity.
+ String serviceId = serviceId_example; // String | Select policies owned by a given service (registered or unregistered).
+ String typeName = typeName_example; // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
try {
- array[PolicyInformation] result = apiInstance.getAllPolicies(policyTypeId, nearRtRicId, serviceId, typeName, accept);
+ array[PolicyInformation] result = apiInstance.getPolicyIds(policyTypeId, nearRtRicId, serviceId, typeName, accept);
System.out.println(result);
} catch (ApiException e) {
- System.err.println("Exception when calling A1PolicyManagementApi#getAllPolicies");
+ System.err.println("Exception when calling A1PolicyManagementApi#getPolicyIds");
e.printStackTrace();
}
}
}
-
+
// Create an instance of the API class
A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init];
-String *policyTypeId = policyTypeId_example; // Select policies of a given policy type identity. (optional) (default to null)
-String *nearRtRicId = nearRtRicId_example; // Select policies of a given Near-RT RIC identity. (optional) (default to null)
-String *serviceId = serviceId_example; // Select policies owned by a given service. (optional) (default to null)
-String *typeName = typeName_example; // Select policies of types with the given type name (type identity has the format ) (optional) (default to null)
+String *policyTypeId = policyTypeId_example; // Select policies with a given A1 Policy Type ID. (optional) (default to null)
+String *nearRtRicId = nearRtRicId_example; // Select policies for a given Near-RT RIC identity. (optional) (default to null)
+String *serviceId = serviceId_example; // Select policies owned by a given service (registered or unregistered). (optional) (default to null)
+String *typeName = typeName_example; // Select policies of a given A1 Policy Type name (type identity has the format 'typename_version'). (optional) (default to null)
String *accept = application/json; // Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
-// Query policy identities
-[apiInstance getAllPoliciesWith:policyTypeId
+// Query for A1 Policy instances (getPolicyIds)
+[apiInstance getPolicyIdsWith:policyTypeId
nearRtRicId:nearRtRicId
serviceId:serviceId
typeName:typeName
@@ -3626,16 +5266,16 @@ String *accept = application/json; // Specifies the content type that the client
-
- var A1PolicyManagementApi = require('a1_policy_management_api');
+
+ var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
// Create an instance of the API class
-var api = new A1PolicyManagementApi.A1PolicyManagementApi()
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
var opts = {
- 'policyTypeId': policyTypeId_example, // {String} Select policies of a given policy type identity.
- 'nearRtRicId': nearRtRicId_example, // {String} Select policies of a given Near-RT RIC identity.
- 'serviceId': serviceId_example, // {String} Select policies owned by a given service.
- 'typeName': typeName_example, // {String} Select policies of types with the given type name (type identity has the format )
+ 'policyTypeId': policyTypeId_example, // {String} Select policies with a given A1 Policy Type ID.
+ 'nearRtRicId': nearRtRicId_example, // {String} Select policies for a given Near-RT RIC identity.
+ 'serviceId': serviceId_example, // {String} Select policies owned by a given service (registered or unregistered).
+ 'typeName': typeName_example, // {String} Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
'accept': application/json // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
};
@@ -3646,14 +5286,14 @@ var callback = function(error, data, response) {
console.log('API called successfully. Returned data: ' + data);
}
};
-api.getAllPolicies(opts, callback);
+api.getPolicyIds(opts, callback);
-
-
+
using System;
using System.Diagnostics;
using Org.OpenAPITools.Api;
@@ -3662,25 +5302,25 @@ using Org.OpenAPITools.Model;
namespace Example
{
- public class getAllPoliciesExample
+ public class getPolicyIdsExample
{
public void main()
{
// Create an instance of the API class
var apiInstance = new A1PolicyManagementApi();
- var policyTypeId = policyTypeId_example; // String | Select policies of a given policy type identity. (optional) (default to null)
- var nearRtRicId = nearRtRicId_example; // String | Select policies of a given Near-RT RIC identity. (optional) (default to null)
- var serviceId = serviceId_example; // String | Select policies owned by a given service. (optional) (default to null)
- var typeName = typeName_example; // String | Select policies of types with the given type name (type identity has the format ) (optional) (default to null)
+ var policyTypeId = policyTypeId_example; // String | Select policies with a given A1 Policy Type ID. (optional) (default to null)
+ var nearRtRicId = nearRtRicId_example; // String | Select policies for a given Near-RT RIC identity. (optional) (default to null)
+ var serviceId = serviceId_example; // String | Select policies owned by a given service (registered or unregistered). (optional) (default to null)
+ var typeName = typeName_example; // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version'). (optional) (default to null)
var accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
try {
- // Query policy identities
- array[PolicyInformation] result = apiInstance.getAllPolicies(policyTypeId, nearRtRicId, serviceId, typeName, accept);
+ // Query for A1 Policy instances (getPolicyIds)
+ array[PolicyInformation] result = apiInstance.getPolicyIds(policyTypeId, nearRtRicId, serviceId, typeName, accept);
Debug.WriteLine(result);
} catch (Exception e) {
- Debug.Print("Exception when calling A1PolicyManagementApi.getAllPolicies: " + e.Message );
+ Debug.Print("Exception when calling A1PolicyManagementApi.getPolicyIds: " + e.Message );
}
}
}
@@ -3688,50 +5328,50 @@ namespace Example
-
+
<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Create an instance of the API class
$api_instance = new OpenAPITools\Client\Api\A1PolicyManagementApi();
-$policyTypeId = policyTypeId_example; // String | Select policies of a given policy type identity.
-$nearRtRicId = nearRtRicId_example; // String | Select policies of a given Near-RT RIC identity.
-$serviceId = serviceId_example; // String | Select policies owned by a given service.
-$typeName = typeName_example; // String | Select policies of types with the given type name (type identity has the format )
+$policyTypeId = policyTypeId_example; // String | Select policies with a given A1 Policy Type ID.
+$nearRtRicId = nearRtRicId_example; // String | Select policies for a given Near-RT RIC identity.
+$serviceId = serviceId_example; // String | Select policies owned by a given service (registered or unregistered).
+$typeName = typeName_example; // String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
$accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
try {
- $result = $api_instance->getAllPolicies($policyTypeId, $nearRtRicId, $serviceId, $typeName, $accept);
+ $result = $api_instance->getPolicyIds($policyTypeId, $nearRtRicId, $serviceId, $typeName, $accept);
print_r($result);
} catch (Exception $e) {
- echo 'Exception when calling A1PolicyManagementApi->getAllPolicies: ', $e->getMessage(), PHP_EOL;
+ echo 'Exception when calling A1PolicyManagementApi->getPolicyIds: ', $e->getMessage(), PHP_EOL;
}
?>
-
+
use Data::Dumper;
use WWW::OPenAPIClient::Configuration;
use WWW::OPenAPIClient::A1PolicyManagementApi;
# Create an instance of the API class
my $api_instance = WWW::OPenAPIClient::A1PolicyManagementApi->new();
-my $policyTypeId = policyTypeId_example; # String | Select policies of a given policy type identity.
-my $nearRtRicId = nearRtRicId_example; # String | Select policies of a given Near-RT RIC identity.
-my $serviceId = serviceId_example; # String | Select policies owned by a given service.
-my $typeName = typeName_example; # String | Select policies of types with the given type name (type identity has the format )
+my $policyTypeId = policyTypeId_example; # String | Select policies with a given A1 Policy Type ID.
+my $nearRtRicId = nearRtRicId_example; # String | Select policies for a given Near-RT RIC identity.
+my $serviceId = serviceId_example; # String | Select policies owned by a given service (registered or unregistered).
+my $typeName = typeName_example; # String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
my $accept = application/json; # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
eval {
- my $result = $api_instance->getAllPolicies(policyTypeId => $policyTypeId, nearRtRicId => $nearRtRicId, serviceId => $serviceId, typeName => $typeName, accept => $accept);
+ my $result = $api_instance->getPolicyIds(policyTypeId => $policyTypeId, nearRtRicId => $nearRtRicId, serviceId => $serviceId, typeName => $typeName, accept => $accept);
print Dumper($result);
};
if ($@) {
- warn "Exception when calling A1PolicyManagementApi->getAllPolicies: $@\n";
+ warn "Exception when calling A1PolicyManagementApi->getPolicyIds: $@\n";
}
-
+
from __future__ import print_statement
import time
import openapi_client
@@ -3740,21 +5380,21 @@ from pprint import pprint
# Create an instance of the API class
api_instance = openapi_client.A1PolicyManagementApi()
-policyTypeId = policyTypeId_example # String | Select policies of a given policy type identity. (optional) (default to null)
-nearRtRicId = nearRtRicId_example # String | Select policies of a given Near-RT RIC identity. (optional) (default to null)
-serviceId = serviceId_example # String | Select policies owned by a given service. (optional) (default to null)
-typeName = typeName_example # String | Select policies of types with the given type name (type identity has the format ) (optional) (default to null)
+policyTypeId = policyTypeId_example # String | Select policies with a given A1 Policy Type ID. (optional) (default to null)
+nearRtRicId = nearRtRicId_example # String | Select policies for a given Near-RT RIC identity. (optional) (default to null)
+serviceId = serviceId_example # String | Select policies owned by a given service (registered or unregistered). (optional) (default to null)
+typeName = typeName_example # String | Select policies of a given A1 Policy Type name (type identity has the format 'typename_version'). (optional) (default to null)
accept = application/json # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
try:
- # Query policy identities
- api_response = api_instance.get_all_policies(policyTypeId=policyTypeId, nearRtRicId=nearRtRicId, serviceId=serviceId, typeName=typeName, accept=accept)
+ # Query for A1 Policy instances (getPolicyIds)
+ api_response = api_instance.get_policy_ids(policyTypeId=policyTypeId, nearRtRicId=nearRtRicId, serviceId=serviceId, typeName=typeName, accept=accept)
pprint(api_response)
except ApiException as e:
- print("Exception when calling A1PolicyManagementApi->getAllPolicies: %s\n" % e)
+ print("Exception when calling A1PolicyManagementApi->getPolicyIds: %s\n" % e)
-
+
extern crate A1PolicyManagementApi;
pub fn main() {
@@ -3765,7 +5405,7 @@ pub fn main() {
let accept = application/json; // String
let mut context = A1PolicyManagementApi::Context::default();
- let result = client.getAllPolicies(policyTypeId, nearRtRicId, serviceId, typeName, accept, &context).wait();
+ let result = client.getPolicyIds(policyTypeId, nearRtRicId, serviceId, typeName, accept, &context).wait();
println!("{:?}", result);
}
@@ -3791,7 +5431,7 @@ pub fn main() {
-
+
@@ -3821,7 +5461,7 @@ Specifies the content type that the client expects to receive in response to the
-
+
@@ -3829,7 +5469,7 @@ Specifies the content type that the client expects to receive in response to the
-Select policies of a given policy type identity.
+Select policies with a given A1 Policy Type ID.
@@ -3841,7 +5481,7 @@ Select policies of a given policy type identity.
-
+
@@ -3849,7 +5489,7 @@ Select policies of a given policy type identity.
-Select policies of a given Near-RT RIC identity.
+Select policies for a given Near-RT RIC identity.
@@ -3861,7 +5501,7 @@ Select policies of a given Near-RT RIC identity.
-
+
@@ -3869,7 +5509,7 @@ Select policies of a given Near-RT RIC identity.
-Select policies owned by a given service.
+Select policies owned by a given service (registered or unregistered).
@@ -3881,7 +5521,7 @@ Select policies owned by a given service.
-
+
@@ -3889,7 +5529,7 @@ Select policies owned by a given service.
-Select policies of types with the given type name (type identity has the format <typename_version>)
+Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').
@@ -3900,23 +5540,23 @@ Select policies of types with the given type name (type identity has the format
Responses
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -3925,9 +5565,9 @@ Select policies of types with the given type name (type identity has the format
-
-
-
+
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -4004,9 +5644,9 @@ Select policies of types with the given type name (type identity has the format
-
-
-
+
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -4080,9 +5720,9 @@ Select policies of types with the given type name (type identity has the format
-
-
-
+
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -4156,9 +5796,9 @@ Select policies of types with the given type name (type identity has the format
-
-
-
+
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -4232,9 +5872,9 @@ Select policies of types with the given type name (type identity has the format
-
-
-
+
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -4308,9 +5948,9 @@ Select policies of types with the given type name (type identity has the format
-
-
-
+
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -4384,13 +6024,13 @@ Select policies of types with the given type name (type identity has the format
-
-
-
+
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -4460,9 +6100,9 @@ Select policies of types with the given type name (type identity has the format
-
-
-
+
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -4536,9 +6176,9 @@ Select policies of types with the given type name (type identity has the format
-
-
-
+
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -4612,9 +6252,9 @@ Select policies of types with the given type name (type identity has the format
-
-
-
-
-
+
+
- getPolicy
-
+ getPolicyStatus
+ Get an A1 Policy Instance's status (getPolicyStatus)
- Returns a policy
+ Retrieve the status information for an A1 Policy Instance using its policy ID.
- /policies/{policyId}
+ /policies/{policyId}/status
Usage and SDK Samples
-
+
curl -X GET \
-H "Accept: application/json,application/problem+json" \
- "https://example.com/a1-policy-management/v1/policies/{policyId}"
+ "https://example.com/a1-policy-management/v1/policies/{policyId}/status"
-
+
import org.openapitools.client.*;
import org.openapitools.client.auth.*;
import org.openapitools.client.model.*;
@@ -4723,10 +6363,10 @@ public class A1PolicyManagementApiExample {
String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
try {
- Object result = apiInstance.getPolicy(policyId, accept);
+ Object result = apiInstance.getPolicyStatus(policyId, accept);
System.out.println(result);
} catch (ApiException e) {
- System.err.println("Exception when calling A1PolicyManagementApi#getPolicy");
+ System.err.println("Exception when calling A1PolicyManagementApi#getPolicyStatus");
e.printStackTrace();
}
}
@@ -4734,7 +6374,7 @@ public class A1PolicyManagementApiExample {
-
+
import 'package:openapi/api.dart';
final api_instance = DefaultApi();
@@ -4743,16 +6383,16 @@ final String policyId = new String(); // String |
final String accept = new String(); // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
try {
- final result = await api_instance.getPolicy(policyId, accept);
+ final result = await api_instance.getPolicyStatus(policyId, accept);
print(result);
} catch (e) {
- print('Exception when calling DefaultApi->getPolicy: $e\n');
+ print('Exception when calling DefaultApi->getPolicyStatus: $e\n');
}
-
+
import org.openapitools.client.api.A1PolicyManagementApi;
public class A1PolicyManagementApiExample {
@@ -4762,20 +6402,20 @@ public class A1PolicyManagementApiExample {
String accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
try {
- Object result = apiInstance.getPolicy(policyId, accept);
+ Object result = apiInstance.getPolicyStatus(policyId, accept);
System.out.println(result);
} catch (ApiException e) {
- System.err.println("Exception when calling A1PolicyManagementApi#getPolicy");
+ System.err.println("Exception when calling A1PolicyManagementApi#getPolicyStatus");
e.printStackTrace();
}
}
}
-
+
// Create an instance of the API class
@@ -4783,7 +6423,8 @@ A1PolicyManagementApi *apiInstance = [[A1PolicyManagementApi alloc] init];
String *policyId = policyId_example; // (default to null)
String *accept = application/json; // Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
-[apiInstance getPolicyWith:policyId
+// Get an A1 Policy Instance's status (getPolicyStatus)
+[apiInstance getPolicyStatusWith:policyId
accept:accept
completionHandler: ^(Object output, NSError* error) {
if (output) {
@@ -4796,11 +6437,11 @@ String *accept = application/json; // Specifies the content type that the client
-
- var A1PolicyManagementApi = require('a1_policy_management_api');
+
+ var OscA1PolicyManagementApi = require('osc_a1_policy_management_api');
// Create an instance of the API class
-var api = new A1PolicyManagementApi.A1PolicyManagementApi()
+var api = new OscA1PolicyManagementApi.A1PolicyManagementApi()
var policyId = policyId_example; // {String}
var opts = {
'accept': application/json // {String} Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
@@ -4813,14 +6454,14 @@ var callback = function(error, data, response) {
console.log('API called successfully. Returned data: ' + data);
}
};
-api.getPolicy(policyId, opts, callback);
+api.getPolicyStatus(policyId, opts, callback);
-
-
+
using System;
using System.Diagnostics;
using Org.OpenAPITools.Api;
@@ -4829,7 +6470,7 @@ using Org.OpenAPITools.Model;
namespace Example
{
- public class getPolicyExample
+ public class getPolicyStatusExample
{
public void main()
{
@@ -4840,10 +6481,11 @@ namespace Example
var accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
try {
- Object result = apiInstance.getPolicy(policyId, accept);
+ // Get an A1 Policy Instance's status (getPolicyStatus)
+ Object result = apiInstance.getPolicyStatus(policyId, accept);
Debug.WriteLine(result);
} catch (Exception e) {
- Debug.Print("Exception when calling A1PolicyManagementApi.getPolicy: " + e.Message );
+ Debug.Print("Exception when calling A1PolicyManagementApi.getPolicyStatus: " + e.Message );
}
}
}
@@ -4851,7 +6493,7 @@ namespace Example
-
+
<?php
require_once(__DIR__ . '/vendor/autoload.php');
@@ -4861,15 +6503,15 @@ $policyId = policyId_example; // String |
$accept = application/json; // String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
try {
- $result = $api_instance->getPolicy($policyId, $accept);
+ $result = $api_instance->getPolicyStatus($policyId, $accept);
print_r($result);
} catch (Exception $e) {
- echo 'Exception when calling A1PolicyManagementApi->getPolicy: ', $e->getMessage(), PHP_EOL;
+ echo 'Exception when calling A1PolicyManagementApi->getPolicyStatus: ', $e->getMessage(), PHP_EOL;
}
?>
-
+
use Data::Dumper;
use WWW::OPenAPIClient::Configuration;
use WWW::OPenAPIClient::A1PolicyManagementApi;
@@ -4880,15 +6522,15 @@ my $policyId = policyId_example; # String |
my $accept = application/json; # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.
eval {
- my $result = $api_instance->getPolicy(policyId => $policyId, accept => $accept);
+ my $result = $api_instance->getPolicyStatus(policyId => $policyId, accept => $accept);
print Dumper($result);
};
if ($@) {
- warn "Exception when calling A1PolicyManagementApi->getPolicy: $@\n";
+ warn "Exception when calling A1PolicyManagementApi->getPolicyStatus: $@\n";
}
-
+
from __future__ import print_statement
import time
import openapi_client
@@ -4901,13 +6543,14 @@ policyId = policyId_example # String | (default to null)
accept = application/json # String | Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed. (optional) (default to null)
try:
- api_response = api_instance.get_policy(policyId, accept=accept)
+ # Get an A1 Policy Instance's status (getPolicyStatus)
+ api_response = api_instance.get_policy_status(policyId, accept=accept)
pprint(api_response)
except ApiException as e:
- print("Exception when calling A1PolicyManagementApi->getPolicy: %s\n" % e)
+ print("Exception when calling A1PolicyManagementApi->getPolicyStatus: %s\n" % e)
-
+
extern crate A1PolicyManagementApi;
pub fn main() {
@@ -4915,7 +6558,7 @@ pub fn main() {
let accept = application/json; // String
let mut context = A1PolicyManagementApi::Context::default();
- let result = client.getPolicy(policyId, accept, &context).wait();
+ let result = client.getPolicyStatus(policyId, accept, &context).wait();
println!("{:?}", result);
}
@@ -4940,7 +6583,7 @@ pub fn main() {
-
+
@@ -4968,7 +6611,7 @@ pub fn main() {
-
+
@@ -4990,23 +6633,23 @@ Specifies the content type that the client expects to receive in response to the
Responses
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -5015,22 +6658,17 @@ Specifies the content type that the client expects to receive in response to the
-
-
-
+
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -5096,9 +6734,9 @@ Specifies the content type that the client expects to receive in response to the
-
-
-
+
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -5172,9 +6810,9 @@ Specifies the content type that the client expects to receive in response to the
-
-
-
+
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -5248,9 +6886,9 @@ Specifies the content type that the client expects to receive in response to the
-
-
-
+
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -5324,9 +6962,9 @@ Specifies the content type that the client expects to receive in response to the
-
-
-
+
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -5400,9 +7038,9 @@ Specifies the content type that the client expects to receive in response to the
-
-
-
+
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -5476,13 +7114,13 @@ Specifies the content type that the client expects to receive in response to the
-
-
-
+
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -5552,9 +7190,9 @@ Specifies the content type that the client expects to receive in response to the
-
-
-
+
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -5628,9 +7266,9 @@ Specifies the content type that the client expects to receive in response to the
-
-
-
+
-
-
+
+
-
+
-
- Schema
+ Schema
@@ -5704,9 +7342,9 @@ Specifies the content type that the client expects to receive in response to the
-
-
-
+
@@ -5762,12 +7400,12 @@ Specifies the content type that the client expects to receive in response to the
| |
| | | | |
| |