summaryrefslogtreecommitdiffstats
path: root/docs/offeredapis/swagger
diff options
context:
space:
mode:
authorraviteja.karumuri <raviteja.karumuri@est.tech>2024-01-17 16:13:17 +0000
committerFiete Ostkamp <fiete.ostkamp@telekom.de>2024-01-24 07:29:28 +0000
commit60f10651e91a33e2980d190160e6371cb3ba3515 (patch)
treee3ef75a55a314331c6b3080cbc0e90f103e50d35 /docs/offeredapis/swagger
parentcdf16a88b4e68eaa6541d7077c468a6a06d7063f (diff)
Updating API doc files for Montreal Branch
* Enabling overwrite in copy resources maven configuration * Updated pms-api yaml and json files in docs/offered apis directory Issue-ID: CCSDK-3983 Signed-off-by: Raviteja Karumuri <raviteja.karumuri@est.tech> Change-Id: I9859eacae325eb3481afb3ba3bd95c96e8f7c36e
Diffstat (limited to 'docs/offeredapis/swagger')
-rw-r--r--docs/offeredapis/swagger/pms-api.json2713
-rw-r--r--docs/offeredapis/swagger/pms-api.yaml878
2 files changed, 2220 insertions, 1371 deletions
diff --git a/docs/offeredapis/swagger/pms-api.json b/docs/offeredapis/swagger/pms-api.json
index 33fa5e18..d6d212f0 100644
--- a/docs/offeredapis/swagger/pms-api.json
+++ b/docs/offeredapis/swagger/pms-api.json
@@ -1,1020 +1,1791 @@
{
- "components": {"schemas": {
- "error_information": {
- "description": "Problem as defined in https://tools.ietf.org/html/rfc7807",
- "type": "object",
- "properties": {
- "detail": {
- "description": " A human-readable explanation specific to this occurrence of the problem.",
- "type": "string",
- "example": "Policy type not found"
+ "openapi" : "3.0.3",
+ "info" : {
+ "title" : "A1 Policy Management Service",
+ "description" : "<h2>General</h2><p>The O-RAN Non-RT RIC Policy Management Service provides a REST API for management of A1 policies. <br/>The main tasks of the service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining a view of supported Near-RT RIC policy types</li><li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.</li></ul><h2>APIs provided or defined by the service</h2><h3>A1 Policy Management</h3><p>This is an API for management of A1 Policies.</p><ul><li>A1 Policy retrieval, creation, modification and deletion.</li><li>Retrieval of supported A1 Policy types for a Near-RT RIC</li><li>Retrieval of status for existing A1 policies</li></ul><h3>Management of configuration</h3><p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.</p><h3>Service callbacks</h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.</p><h3>NearRT-RIC Repository</h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.</p><h3>Health Check</h3><p>API used for supervision of the PMS component.</p><h3>Service Registry and Supervision</h3><p>API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.</p><h3>Authorization API</h3><p>API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.</p><h3>Spring Boot Actuator</h3><p>Provides generic functions used to monitor and manage the Spring web application.</p>",
+ "license" : {
+ "name" : "Copyright (C) 2020-2023 Nordix Foundation. Licensed under the Apache License, and Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved.",
+ "url" : "http://www.apache.org/licenses/LICENSE-2.0"
+ },
+ "version" : "1.2.0"
+ },
+ "servers" : [ {
+ "url" : "/"
+ } ],
+ "tags" : [ {
+ "name" : "Authorization API",
+ "description" : "API used for authorization of information A1 policy access (this is provided by an authorization producer such as OPA). <br> Note that this API is called by PMS, it is not provided."
+ }, {
+ "name" : "Actuator",
+ "description" : "Monitor and interact",
+ "externalDocs" : {
+ "description" : "Spring Boot Actuator Web API Documentation",
+ "url" : "https://docs.spring.io/spring-boot/docs/current/actuator-api/html/"
+ }
+ } ],
+ "paths" : {
+ "/a1-policy/v2/policy-instances" : {
+ "get" : {
+ "tags" : [ "A1 Policy Management" ],
+ "summary" : "Query for A1 policy instances",
+ "description" : "Returns a list of A1 policies matching given search criteria. <br>If several query parameters are defined, the policies matching all conditions are returned.",
+ "operationId" : "getPolicyInstances",
+ "parameters" : [ {
+ "name" : "policytype_id",
+ "in" : "query",
+ "description" : "Select policies with a given type identity.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "ric_id",
+ "in" : "query",
+ "description" : "Select policies for a given Near-RT RIC identity.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "service_id",
+ "in" : "query",
+ "description" : "Select policies owned by a given service.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "type_name",
+ "in" : "query",
+ "description" : "Select policies of a given type name (type identity has the format <typename_version>)",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "Policies",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_info_list"
},
- "status": {
- "format": "int32",
- "description": "The HTTP status code generated by the origin server for this occurrence of the problem. ",
- "type": "integer",
- "example": 404
+ "examples" : {
+ "policy_info_list" : {
+ "$ref" : "#/components/examples/policy_info_list"
+ }
}
+ }
}
- },
- "void": {
- "description": "Void/empty",
- "type": "object"
- },
- "status_info_v2": {
- "type": "object",
- "properties": {"status": {
- "description": "status text",
- "type": "string"
- }}
- },
- "authorization_result": {
- "description": "Result of authorization",
- "type": "object",
- "required": ["result"],
- "properties": {"result": {
- "description": "If true, the access is granted",
- "type": "boolean"
- }}
- },
- "ric_info_v2": {
- "description": "Information for a Near-RT RIC",
- "type": "object",
- "properties": {
- "ric_id": {
- "description": "identity of the Near-RT RIC",
- "type": "string"
- },
- "managed_element_ids": {
- "description": "O1 identities for managed entities",
- "type": "array",
- "items": {
- "description": "O1 identities for managed entities",
- "type": "string"
- }
- },
- "state": {
- "description": "Represents the states for a Near-RT RIC",
- "type": "string",
- "enum": [
- "UNAVAILABLE",
- "AVAILABLE",
- "SYNCHRONIZING",
- "CONSISTENCY_CHECK"
- ]
- },
- "policytype_ids": {
- "description": "supported policy types",
- "type": "array",
- "items": {
- "description": "supported policy types",
- "type": "string"
- }
+ },
+ "404" : {
+ "description" : "Near-RT RIC, policy type or service not found",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
}
+ }
+ }
+ }
+ }
+ }
+ },
+ "/example-authz-check" : {
+ "post" : {
+ "tags" : [ "Authorization API" ],
+ "summary" : "Request for access authorization.",
+ "description" : "The authorization function decides if access is granted.",
+ "operationId" : "performAccessControl",
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_authorization"
+ }
}
+ },
+ "required" : true
},
- "service_registration_info_v2": {
- "description": "Information for one service",
- "type": "object",
- "required": ["service_id"],
- "properties": {
- "callback_url": {
- "description": "callback for notifying of Near-RT RIC state changes",
- "type": "string"
- },
- "service_id": {
- "description": "identity of the service",
- "type": "string"
- },
- "keep_alive_interval_seconds": {
- "format": "int64",
- "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.",
- "type": "integer"
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/authorization_result"
}
+ }
}
- },
- "policy_info_list_v2": {
- "description": "List of policy information",
- "type": "object",
- "properties": {"policies": {
- "description": "List of policy information",
- "type": "array",
- "items": {"$ref": "#/components/schemas/policy_info_v2"}
- }}
- },
- "policy_status_info_v2": {
- "description": "Status for one A1-P Policy",
- "type": "object",
- "properties": {
- "last_modified": {
- "description": "timestamp, last modification time",
- "type": "string"
- },
- "status": {
- "description": "the Policy status",
- "type": "object"
+ }
+ }
+ }
+ },
+ "/actuator/threaddump" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'threaddump'",
+ "operationId" : "threaddump",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "text/plain;charset=UTF-8" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
}
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
}
- },
- "service_status_v2": {
- "description": "List of service information",
- "type": "object",
- "properties": {
- "callback_url": {
- "description": "callback for notifying of RIC synchronization",
- "type": "string"
- },
- "service_id": {
- "description": "identity of the service",
- "type": "string"
+ }
+ }
+ }
+ },
+ "/a1-policy/v2/status" : {
+ "get" : {
+ "tags" : [ "Health Check" ],
+ "summary" : "Returns status and statistics of this service",
+ "operationId" : "getStatus",
+ "responses" : {
+ "200" : {
+ "description" : "Service is living",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/status_info"
},
- "keep_alive_interval_seconds": {
- "format": "int64",
- "description": "policy keep alive timeout",
- "type": "integer"
+ "examples" : {
+ "status_info" : {
+ "$ref" : "#/components/examples/status_info"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/loggers" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'loggers'",
+ "operationId" : "loggers",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/health/**" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'health-path'",
+ "operationId" : "health-path",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/a1-policy/v2/rics/ric" : {
+ "get" : {
+ "tags" : [ "NearRT-RIC Repository" ],
+ "summary" : "Returns info for one Near-RT RIC",
+ "description" : "Either a Near-RT RIC identity or a Managed Element identity can be specified.<br>The intention with Managed Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU).",
+ "operationId" : "getRic",
+ "parameters" : [ {
+ "name" : "managed_element_id",
+ "in" : "query",
+ "description" : "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "ric_id",
+ "in" : "query",
+ "description" : "The identity of a Near-RT RIC to get information for.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "Near-RT RIC is found",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ric_info"
},
- "time_since_last_activity_seconds": {
- "format": "int64",
- "description": "time since last invocation by the service",
- "type": "integer"
+ "examples" : {
+ "ric_info" : {
+ "$ref" : "#/components/examples/ric_info"
+ }
}
+ }
}
- },
- "ric_info_list_v2": {
- "description": "List of Near-RT RIC information",
- "type": "object",
- "properties": {"rics": {
- "description": "List of Near-RT RIC information",
- "type": "array",
- "items": {"$ref": "#/components/schemas/ric_info_v2"}
- }}
- },
- "policytype_v2": {
- "description": "Policy type",
- "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"
- }}
- },
- "input": {
- "description": "input",
- "type": "object",
- "required": [
- "access_type",
- "auth_token",
- "policy_type_id"
- ],
- "properties": {
- "access_type": {
- "description": "Access type",
- "type": "string",
- "enum": [
- "READ",
- "WRITE",
- "DELETE"
- ]
+ },
+ "404" : {
+ "description" : "Near-RT RIC is not found",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/shutdown" : {
+ "post" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'shutdown'",
+ "operationId" : "shutdown",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/a1-policy/v2/policy-types" : {
+ "get" : {
+ "tags" : [ "A1 Policy Management" ],
+ "summary" : "Query policy type identities",
+ "operationId" : "getPolicyTypes",
+ "parameters" : [ {
+ "name" : "ric_id",
+ "in" : "query",
+ "description" : "Select types for the given Near-RT RIC identity.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "type_name",
+ "in" : "query",
+ "description" : "Select types with the given type name (type identity has the format <typename_version>)",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "compatible_with_version",
+ "in" : "query",
+ "description" : "Select types that are compatible with the given version. This parameter is only applicable in conjunction with type_name. As an example version 1.9.1 is compatible with 1.0.0 but not the other way around. Matching types will be returned sorted in ascending order.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "Policy type IDs",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_type_id_list"
},
- "auth_token": {
- "description": "Authorization token",
- "type": "string"
+ "examples" : {
+ "policy_type_id_list" : {
+ "$ref" : "#/components/examples/policy_type_id_list"
+ }
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Near-RT RIC is not found",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/a1-policy/v2/policies/{policy_id}" : {
+ "get" : {
+ "tags" : [ "A1 Policy Management" ],
+ "summary" : "Returns a policy",
+ "operationId" : "getPolicy",
+ "parameters" : [ {
+ "name" : "policy_id",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "Policy found",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_info"
},
- "policy_type_id": {
- "description": "Policy type identifier",
- "type": "string"
+ "examples" : {
+ "policy_info" : {
+ "$ref" : "#/components/examples/policy_info"
+ }
}
+ }
}
+ },
+ "404" : {
+ "description" : "Policy is not found",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete" : {
+ "tags" : [ "A1 Policy Management" ],
+ "summary" : "Delete a policy",
+ "operationId" : "deletePolicy",
+ "parameters" : [ {
+ "name" : "policy_id",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "Not used",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/void"
+ }
+ }
+ }
+ },
+ "423" : {
+ "description" : "Near-RT RIC is not operational",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ }
+ }
+ }
+ },
+ "204" : {
+ "description" : "Policy deleted",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/void"
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Policy is not found",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/metrics/{requiredMetricName}" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'metrics-requiredMetricName'",
+ "operationId" : "metrics-requiredMetricName",
+ "parameters" : [ {
+ "name" : "requiredMetricName",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/a1-policy/v2/configuration" : {
+ "get" : {
+ "tags" : [ "configuration" ],
+ "summary" : "Returns the contents of the application configuration file",
+ "operationId" : "getConfiguration",
+ "responses" : {
+ "200" : {
+ "description" : "Configuration",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "type" : "string"
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "File is not found or readable",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ }
+ }
+ }
+ }
+ }
+ },
+ "put" : {
+ "tags" : [ "configuration" ],
+ "summary" : "Replace the current configuration file with the given configuration",
+ "operationId" : "putConfiguration",
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ },
+ "required" : true
},
- "policy_authorization": {
- "description": "Authorization request for A1 policy requests",
- "type": "object",
- "required": ["input"],
- "properties": {"input": {"$ref": "#/components/schemas/input"}}
- },
- "policytype_id_list_v2": {
- "description": "Information about policy types",
- "type": "object",
- "properties": {"policytype_ids": {
- "description": "Policy type identities",
- "type": "array",
- "items": {
- "description": "Policy type identities",
- "type": "string"
- }
- }}
+ "responses" : {
+ "200" : {
+ "description" : "Configuration updated",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/void"
+ }
+ }
+ }
+ },
+ "400" : {
+ "description" : "Invalid configuration provided",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ }
+ }
+ }
+ },
+ "500" : {
+ "description" : "Something went wrong when replacing the configuration. Try again.",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator root web endpoint",
+ "operationId" : "links",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "$ref" : "#/components/schemas/Link"
+ }
+ }
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "$ref" : "#/components/schemas/Link"
+ }
+ }
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "$ref" : "#/components/schemas/Link"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/loggers/{name}" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'loggers-name'",
+ "operationId" : "loggers-name",
+ "parameters" : [ {
+ "name" : "name",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ }
+ },
+ "post" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'loggers-name'",
+ "operationId" : "loggers-name_2",
+ "parameters" : [ {
+ "name" : "name",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "type" : "string",
+ "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", "OFF" ]
+ }
+ }
+ }
},
- "policy_info_v2": {
- "description": "Information for one A1-P Policy",
- "type": "object",
- "required": [
- "policy_data",
- "policy_id",
- "policytype_id",
- "ric_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 deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.",
- "type": "boolean",
- "example": false
- },
- "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"
- },
- "policy_data": {
- "description": "the configuration of the policy",
- "type": "object"
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/a1-policy/v2/services/{service_id}/keepalive" : {
+ "put" : {
+ "tags" : [ "Service Registry and Supervision" ],
+ "summary" : "Heartbeat indicates that the service is running",
+ "description" : "A registered service should invoke this operation regularly to indicate that it is still alive. If a registered service fails to invoke this operation before the end of a timeout period the service will be deregistered and all its A1 policies wil be removed. (This timeout can be set or disabled when each service is initially registered)",
+ "operationId" : "keepAliveService",
+ "parameters" : [ {
+ "name" : "service_id",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "Service supervision timer refreshed, OK",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "The service is not found, needs re-registration",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/metrics" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'metrics'",
+ "operationId" : "metrics",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/a1-policy/v2/rics" : {
+ "get" : {
+ "tags" : [ "NearRT-RIC Repository" ],
+ "summary" : "Query Near-RT RIC information",
+ "description" : "The call returns all Near-RT RICs that supports a given policy type identity",
+ "operationId" : "getRics",
+ "parameters" : [ {
+ "name" : "policytype_id",
+ "in" : "query",
+ "description" : "The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ric_info_list"
},
- "status_notification_uri": {
- "description": "Callback URI for policy status updates",
- "type": "string"
+ "examples" : {
+ "ric_info_list" : {
+ "$ref" : "#/components/examples/ric_info_list"
+ }
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Policy type is not found",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/a1-policy/v2/services" : {
+ "get" : {
+ "tags" : [ "Service Registry and Supervision" ],
+ "summary" : "Returns service information",
+ "description" : "Either information about a registered service with given identity or all registered services are returned.",
+ "operationId" : "getServices",
+ "parameters" : [ {
+ "name" : "service_id",
+ "in" : "query",
+ "description" : "The identity of the service",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/service_status_list"
},
- "policytype_id": {
- "description": "identity of the policy type",
- "type": "string"
+ "examples" : {
+ "service_status_list" : {
+ "$ref" : "#/components/examples/service_status_list"
+ }
}
+ }
}
+ },
+ "404" : {
+ "description" : "Service is not found",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ }
+ }
+ }
+ }
+ }
+ },
+ "put" : {
+ "tags" : [ "Service Registry and Supervision" ],
+ "summary" : "Register a service",
+ "description" : "Registering a service is needed to:<ul><li>Get callbacks about available NearRT RICs.</li><li>Activate supervision of the service. If a service is inactive, its policies will automatically be deleted.</li></ul>Policies can be created even if the service is not registerred. This is a feature which it is optional to use.",
+ "operationId" : "putService",
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/service_registration_info"
+ }
+ }
+ },
+ "required" : true
},
- "policy_id_list_v2": {
- "description": "A list of policy identities",
- "type": "object",
- "properties": {"policy_ids": {
- "description": "Policy identities",
- "type": "array",
- "items": {
- "description": "Policy identities",
- "type": "string"
- }
- }}
- },
- "service_list_v2": {
- "description": "List of service information",
- "type": "object",
- "properties": {"service_list": {
- "description": "List of service information",
- "type": "array",
- "items": {"$ref": "#/components/schemas/service_status_v2"}
- }}
- },
- "service_callback_info_v2": {
- "description": "Information transferred as in Service callbacks (callback_url)",
- "type": "object",
- "required": [
- "event_type",
- "ric_id"
- ],
- "properties": {
- "ric_id": {
- "description": "identity of a Near-RT RIC",
- "type": "string"
- },
- "event_type": {
- "description": "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management",
- "type": "string",
- "enum": ["AVAILABLE"]
+ "responses" : {
+ "200" : {
+ "description" : "Service updated",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "object"
}
+ }
}
+ },
+ "201" : {
+ "description" : "Service created",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ },
+ "400" : {
+ "description" : "The ServiceRegistrationInfo is not accepted",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ }
+ }
+ }
+ }
},
- "Link": {
- "type": "object",
- "properties": {
- "templated": {"type": "boolean"},
- "href": {"type": "string"}
- }
- }
- }},
- "openapi": "3.0.1",
- "paths": {
- "/a1-policy/v2/policy-instances": {"get": {
- "summary": "Query for A1 policy instances",
- "description": "Returns a list of A1 policies matching given search criteria. <br>If several query parameters are defined, the policies matching all conditions are returned.",
- "operationId": "getPolicyInstances",
- "responses": {
- "200": {
- "description": "Policies",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/policy_info_list_v2"}}}
- },
- "404": {
- "description": "Near-RT RIC, policy type or service not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- }
- },
- "parameters": [
- {
- "schema": {"type": "string"},
- "in": "query",
- "name": "policytype_id",
- "description": "Select policies with a given type identity.",
- "required": false
- },
- {
- "schema": {"type": "string"},
- "in": "query",
- "name": "ric_id",
- "description": "Select policies for a given Near-RT RIC identity.",
- "required": false
- },
- {
- "schema": {"type": "string"},
- "in": "query",
- "name": "service_id",
- "description": "Select policies owned by a given service.",
- "required": false
- },
- {
- "schema": {"type": "string"},
- "in": "query",
- "name": "type_name",
- "description": "Select policies of a given type name (type identity has the format <typename_version>)",
- "required": false
- }
- ],
- "tags": ["A1 Policy Management"]
- }},
- "/example-authz-check": {"post": {
- "summary": "Request for access authorization.",
- "requestBody": {
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/policy_authorization"}}},
- "required": true
- },
- "description": "The authorization function decides if access is granted.",
- "operationId": "performAccessControl",
- "responses": {"200": {
- "description": "OK",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/authorization_result"}}}
- }},
- "tags": ["Authorization API"]
- }},
- "/actuator/threaddump": {"get": {
- "summary": "Actuator web endpoint 'threaddump'",
- "operationId": "threaddump",
- "responses": {"200": {
- "description": "OK",
- "content": {
- "text/plain;charset=UTF-8": {"schema": {"type": "object"}},
- "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
- "application/json": {"schema": {"type": "object"}},
- "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
- }
- }},
- "tags": ["Actuator"]
- }},
- "/a1-policy/v2/status": {"get": {
- "summary": "Returns status and statistics of this service",
- "operationId": "getStatus",
- "responses": {"200": {
- "description": "Service is living",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/status_info_v2"}}}
- }},
- "tags": ["Health Check"]
- }},
- "/actuator/loggers": {"get": {
- "summary": "Actuator web endpoint 'loggers'",
- "operationId": "loggers",
- "responses": {"200": {
- "description": "OK",
- "content": {
- "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
- "application/json": {"schema": {"type": "object"}},
- "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
- }
- }},
- "tags": ["Actuator"]
- }},
- "/actuator/health/**": {"get": {
- "summary": "Actuator web endpoint 'health-path'",
- "operationId": "health-path",
- "responses": {"200": {
- "description": "OK",
- "content": {
- "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
- "application/json": {"schema": {"type": "object"}},
- "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
- }
- }},
- "tags": ["Actuator"]
- }},
- "/a1-policy/v2/rics/ric": {"get": {
- "summary": "Returns info for one Near-RT RIC",
- "description": "Either a Near-RT RIC identity or a Managed Element identity can be specified.<br>The intention with Managed Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU).",
- "operationId": "getRic",
- "responses": {
- "200": {
- "description": "Near-RT RIC is found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ric_info_v2"}}}
- },
- "404": {
- "description": "Near-RT RIC is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- }
- },
- "parameters": [
- {
- "schema": {"type": "string"},
- "in": "query",
- "name": "managed_element_id",
- "description": "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.",
- "required": false
- },
- {
- "schema": {"type": "string"},
- "in": "query",
- "name": "ric_id",
- "description": "The identity of a Near-RT RIC to get information for.",
- "required": false
- }
- ],
- "tags": ["NearRT-RIC Repository"]
- }},
- "/actuator/shutdown": {"post": {
- "summary": "Actuator web endpoint 'shutdown'",
- "operationId": "shutdown",
- "responses": {"200": {
- "description": "OK",
- "content": {
- "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
- "application/json": {"schema": {"type": "object"}},
- "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
- }
- }},
- "tags": ["Actuator"]
- }},
- "/a1-policy/v2/policy-types": {"get": {
- "summary": "Query policy type identities",
- "operationId": "getPolicyTypes",
- "responses": {
- "200": {
- "description": "Policy type IDs",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/policytype_id_list_v2"}}}
- },
- "404": {
- "description": "Near-RT RIC is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- }
- },
- "parameters": [
- {
- "schema": {"type": "string"},
- "in": "query",
- "name": "ric_id",
- "description": "Select types for the given Near-RT RIC identity.",
- "required": false
- },
- {
- "schema": {"type": "string"},
- "in": "query",
- "name": "type_name",
- "description": "Select types with the given type name (type identity has the format <typename_version>)",
- "required": false
- },
- {
- "schema": {"type": "string"},
- "in": "query",
- "name": "compatible_with_version",
- "description": "Select types that are compatible with the given version. This parameter is only applicable in conjunction with type_name. As an example version 1.9.1 is compatible with 1.0.0 but not the other way around. Matching types will be returned sorted in ascending order.",
- "required": false
- }
- ],
- "tags": ["A1 Policy Management"]
- }},
- "/a1-policy/v2/policies/{policy_id}": {
- "get": {
- "summary": "Returns a policy",
- "operationId": "getPolicy",
- "responses": {
- "200": {
- "description": "Policy found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/policy_info_v2"}}}
- },
- "404": {
- "description": "Policy is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
+ "callbacks" : {
+ "RICStatus" : {
+ "{$request.body#/callback_url}" : {
+ "post" : {
+ "tags" : [ "Service callbacks" ],
+ "summary" : "Callback for Near-RT RIC status",
+ "description" : "The URL to this call is registered at Service registration.",
+ "operationId" : "serviceCallback",
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/service_callback_info_v2"
+ }
}
+ },
+ "required" : true
},
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "policy_id",
- "required": true
- }],
- "tags": ["A1 Policy Management"]
- },
- "delete": {
- "summary": "Delete a policy",
- "operationId": "deletePolicy",
- "responses": {
- "200": {
- "description": "Not used",
- "content": {"*/*": {"schema": {"$ref": "#/components/schemas/void"}}}
- },
- "423": {
- "description": "Near-RT RIC is not operational",
- "content": {"*/*": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- },
- "204": {
- "description": "Policy deleted",
- "content": {"*/*": {"schema": {"$ref": "#/components/schemas/void"}}}
- },
- "404": {
- "description": "Policy is not found",
- "content": {"*/*": {"schema": {"$ref": "#/components/schemas/error_information"}}}
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/void"
+ }
+ }
}
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "policy_id",
- "required": true
- }],
- "tags": ["A1 Policy Management"]
+ }
+ }
+ }
}
- },
- "/actuator/metrics/{requiredMetricName}": {"get": {
- "summary": "Actuator web endpoint 'metrics-requiredMetricName'",
- "operationId": "metrics-requiredMetricName",
- "responses": {"200": {
- "description": "OK",
- "content": {
- "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
- "application/json": {"schema": {"type": "object"}},
- "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
- }
- }},
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "requiredMetricName",
- "required": true
- }],
- "tags": ["Actuator"]
- }},
- "/a1-policy/v2/configuration": {
- "get": {
- "summary": "Returns the contents of the application configuration file",
- "operationId": "getConfiguration",
- "responses": {
- "200": {
- "description": "Configuration",
- "content": {"application/json": {"schema": {"type": "object"}}}
- },
- "404": {
- "description": "File is not found or readable",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- }
+ }
+ }
+ }
+ },
+ "/actuator/info" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'info'",
+ "operationId" : "info",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/status" : {
+ "get" : {
+ "tags" : [ "Health Check" ],
+ "summary" : "Returns status and statistics of this service",
+ "operationId" : "getStatusV1",
+ "responses" : {
+ "200" : {
+ "description" : "Service is living",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/a1-policy/v2/policy-types/{policytype_id}" : {
+ "get" : {
+ "tags" : [ "A1 Policy Management" ],
+ "summary" : "Returns a policy type definition",
+ "operationId" : "getPolicyTypeDefinition",
+ "parameters" : [ {
+ "name" : "policytype_id",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "schema of the given policy type",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_type_definition"
},
- "tags": ["Management of configuration"]
- },
- "put": {
- "summary": "Replace the current configuration file with the given configuration",
- "requestBody": {
- "content": {"application/json": {"schema": {"type": "object"}}},
- "required": true
+ "examples" : {
+ "policy_type_definition" : {
+ "$ref" : "#/components/examples/policy_type_definition"
+ }
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Policy type is not found",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/logfile" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'logfile'",
+ "operationId" : "logfile",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "text/plain;charset=UTF-8" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/health" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'health'",
+ "operationId" : "health",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/a1-policy/v2/policies" : {
+ "get" : {
+ "tags" : [ "A1 Policy Management" ],
+ "summary" : "Query policy identities",
+ "description" : "Returns a list of A1 policies matching given search criteria. <br>If several query parameters are defined, the policies matching all conditions are returned.",
+ "operationId" : "getPolicyIds",
+ "parameters" : [ {
+ "name" : "policytype_id",
+ "in" : "query",
+ "description" : "Select policies of a given policy type identity.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "ric_id",
+ "in" : "query",
+ "description" : "Select policies of a given Near-RT RIC identity.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "service_id",
+ "in" : "query",
+ "description" : "Select policies owned by a given service.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "type_name",
+ "in" : "query",
+ "description" : "Select policies of types with the given type name (type identity has the format <typename_version>)",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "Policy identities",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_id_list"
},
- "operationId": "putConfiguration",
- "responses": {
- "200": {
- "description": "Configuration updated",
- "content": {"*/*": {"schema": {"$ref": "#/components/schemas/void"}}}
- },
- "400": {
- "description": "Invalid configuration provided",
- "content": {"*/*": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- },
- "500": {
- "description": "Something went wrong when replacing the configuration. Try again.",
- "content": {"*/*": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- }
+ "examples" : {
+ "policy_id_list" : {
+ "$ref" : "#/components/examples/policy_id_list"
+ }
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Near-RT RIC or type not found",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ }
+ }
+ }
+ }
+ }
+ },
+ "put" : {
+ "tags" : [ "A1 Policy Management" ],
+ "summary" : "Create or update a policy",
+ "operationId" : "putPolicy",
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_info"
+ }
+ }
+ },
+ "required" : true
+ },
+ "responses" : {
+ "200" : {
+ "description" : "Policy updated",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/void"
+ }
+ }
+ }
+ },
+ "201" : {
+ "description" : "Policy created",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/void"
+ }
+ }
+ }
+ },
+ "423" : {
+ "description" : "Near-RT RIC is not operational",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Near-RT RIC or policy type is not found",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/a1-policy/v2/services/{service_id}" : {
+ "delete" : {
+ "tags" : [ "Service Registry and Supervision" ],
+ "summary" : "Unregister a service",
+ "operationId" : "deleteService",
+ "parameters" : [ {
+ "name" : "service_id",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "Not used",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/void"
+ }
+ }
+ }
+ },
+ "204" : {
+ "description" : "Service unregistered",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Service not found",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/heapdump" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'heapdump'",
+ "operationId" : "heapdump",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/octet-stream" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/a1-policy/v2/policies/{policy_id}/status" : {
+ "get" : {
+ "tags" : [ "A1 Policy Management" ],
+ "summary" : "Returns a policy status",
+ "operationId" : "getPolicyStatus",
+ "parameters" : [ {
+ "name" : "policy_id",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "Policy status",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_status_info"
},
- "tags": ["Management of configuration"]
+ "examples" : {
+ "policy_status_info" : {
+ "$ref" : "#/components/examples/policy_status_info"
+ }
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Policy is not found",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ }
+ }
}
+ }
+ }
+ }
+ }
+ },
+ "components" : {
+ "schemas" : {
+ "policy_type_definition" : {
+ "type" : "object",
+ "properties" : {
+ "policy_schema" : {
+ "type" : "object",
+ "description" : "Policy type json schema. The schema is a json object following http://json-schema.org/draft-07/schema"
+ }
},
- "/actuator": {"get": {
- "summary": "Actuator root web endpoint",
- "operationId": "links",
- "responses": {"200": {
- "description": "OK",
- "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"
- }}
- }
- }},
- "tags": ["Actuator"]
- }},
- "/actuator/loggers/{name}": {
- "post": {
- "summary": "Actuator web endpoint 'loggers-name'",
- "requestBody": {"content": {"application/json": {"schema": {
- "type": "string",
- "enum": [
- "TRACE",
- "DEBUG",
- "INFO",
- "WARN",
- "ERROR",
- "FATAL",
- "OFF"
- ]
- }}}},
- "operationId": "loggers-name_2",
- "responses": {"200": {
- "description": "OK",
- "content": {"*/*": {"schema": {"type": "object"}}}
- }},
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "name",
- "required": true
- }],
- "tags": ["Actuator"]
- },
- "get": {
- "summary": "Actuator web endpoint 'loggers-name'",
- "operationId": "loggers-name",
- "responses": {"200": {
- "description": "OK",
- "content": {
- "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
- "application/json": {"schema": {"type": "object"}},
- "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
- }
- }},
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "name",
- "required": true
- }],
- "tags": ["Actuator"]
+ "description" : "Contains policy type schema definition"
+ },
+ "error_information" : {
+ "type" : "object",
+ "properties" : {
+ "detail" : {
+ "type" : "string",
+ "description" : " A human-readable explanation specific to this occurrence of the problem.",
+ "example" : "Policy type not found"
+ },
+ "status" : {
+ "type" : "integer",
+ "description" : "The HTTP status code generated by the origin server for this occurrence of the problem. ",
+ "format" : "int32",
+ "example" : 404
+ }
+ },
+ "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807"
+ },
+ "void" : {
+ "type" : "object",
+ "description" : "Void/empty"
+ },
+ "status_info" : {
+ "type" : "object",
+ "properties" : {
+ "status" : {
+ "type" : "string",
+ "description" : "status text"
+ }
+ }
+ },
+ "authorization_result" : {
+ "required" : [ "result" ],
+ "type" : "object",
+ "properties" : {
+ "result" : {
+ "type" : "boolean",
+ "description" : "If true, the access is granted"
+ }
+ },
+ "description" : "Result of authorization",
+ "example" : {
+ "result" : true
+ }
+ },
+ "ric_info" : {
+ "type" : "object",
+ "properties" : {
+ "ric_id" : {
+ "type" : "string",
+ "description" : "identity of the Near-RT RIC"
+ },
+ "managed_element_ids" : {
+ "type" : "array",
+ "description" : "O1 identities for managed entities",
+ "items" : {
+ "type" : "string",
+ "description" : "O1 identities for managed entities"
}
+ },
+ "state" : {
+ "type" : "string",
+ "description" : "Represents the states for a Near-RT RIC",
+ "enum" : [ "UNAVAILABLE", "AVAILABLE", "SYNCHRONIZING", "CONSISTENCY_CHECK" ]
+ },
+ "policytype_ids" : {
+ "type" : "array",
+ "description" : "supported policy types",
+ "items" : {
+ "type" : "string",
+ "description" : "supported policy types"
+ }
+ }
},
- "/a1-policy/v2/services/{service_id}/keepalive": {"put": {
- "summary": "Heartbeat indicates that the service is running",
- "description": "A registered service should invoke this operation regularly to indicate that it is still alive. If a registered service fails to invoke this operation before the end of a timeout period the service will be deregistered and all its A1 policies wil be removed. (This timeout can be set or disabled when each service is initially registered)",
- "operationId": "keepAliveService",
- "responses": {
- "200": {
- "description": "Service supervision timer refreshed, OK",
- "content": {"*/*": {"schema": {"type": "object"}}}
- },
- "404": {
- "description": "The service is not found, needs re-registration",
- "content": {"*/*": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "service_id",
- "required": true
- }],
- "tags": ["Service Registry and Supervision"]
- }},
- "/actuator/metrics": {"get": {
- "summary": "Actuator web endpoint 'metrics'",
- "operationId": "metrics",
- "responses": {"200": {
- "description": "OK",
- "content": {
- "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
- "application/json": {"schema": {"type": "object"}},
- "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
- }
- }},
- "tags": ["Actuator"]
- }},
- "/a1-policy/v2/rics": {"get": {
- "summary": "Query Near-RT RIC information",
- "description": "The call returns all Near-RT RICs that supports a given policy type identity",
- "operationId": "getRics",
- "responses": {
- "200": {
- "description": "OK",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ric_info_list_v2"}}}
- },
- "404": {
- "description": "Policy type is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "query",
- "name": "policytype_id",
- "description": "The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned",
- "required": false
- }],
- "tags": ["NearRT-RIC Repository"]
- }},
- "/a1-policy/v2/services": {
- "get": {
- "summary": "Returns service information",
- "description": "Either information about a registered service with given identity or all registered services are returned.",
- "operationId": "getServices",
- "responses": {
- "200": {
- "description": "OK",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/service_list_v2"}}}
- },
- "404": {
- "description": "Service is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "query",
- "name": "service_id",
- "description": "The identity of the service",
- "required": false
- }],
- "tags": ["Service Registry and Supervision"]
- },
- "put": {
- "summary": "Register a service",
- "requestBody": {
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/service_registration_info_v2"}}},
- "required": true
- },
- "description": "Registering a service is needed to:<ul><li>Get callbacks about available NearRT RICs.<\/li><li>Activate supervision of the service. If a service is inactive, its policies will automatically be deleted.<\/li><\/ul>Policies can be created even if the service is not registerred. This is a feature which it is optional to use.",
- "operationId": "putService",
- "responses": {
- "200": {
- "description": "Service updated",
- "content": {"*/*": {"schema": {"type": "object"}}}
- },
- "201": {
- "description": "Service created",
- "content": {"*/*": {"schema": {"type": "object"}}}
- },
- "400": {
- "description": "The ServiceRegistrationInfo is not accepted",
- "content": {"*/*": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- }
- },
- "tags": ["Service Registry and Supervision"]
+ "description" : "Information for a Near-RT RIC"
+ },
+ "service_registration_info" : {
+ "required" : [ "service_id" ],
+ "type" : "object",
+ "properties" : {
+ "callback_url" : {
+ "type" : "string",
+ "description" : "callback for notifying of Near-RT RIC state changes"
+ },
+ "service_id" : {
+ "type" : "string",
+ "description" : "identity of the service"
+ },
+ "keep_alive_interval_seconds" : {
+ "type" : "integer",
+ "description" : "keep alive interval for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled.",
+ "format" : "int64"
+ }
+ },
+ "description" : "Information for one service"
+ },
+ "policy_info_list" : {
+ "type" : "object",
+ "properties" : {
+ "policies" : {
+ "type" : "array",
+ "description" : "List of policy information",
+ "items" : {
+ "$ref" : "#/components/schemas/policy_info"
}
+ }
},
- "/actuator/info": {"get": {
- "summary": "Actuator web endpoint 'info'",
- "operationId": "info",
- "responses": {"200": {
- "description": "OK",
- "content": {
- "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
- "application/json": {"schema": {"type": "object"}},
- "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
- }
- }},
- "tags": ["Actuator"]
- }},
- "/status": {"get": {
- "summary": "Returns status and statistics of this service",
- "operationId": "getStatusV1",
- "responses": {"200": {
- "description": "Service is living",
- "content": {"*/*": {"schema": {"type": "string"}}}
- }},
- "tags": ["Health Check"]
- }},
- "/a1-policy/v2/policy-types/{policytype_id}": {"get": {
- "summary": "Returns a policy type definition",
- "operationId": "getPolicyType",
- "responses": {
- "200": {
- "description": "Policy type",
- "content": {"*/*": {"schema": {"$ref": "#/components/schemas/policytype_v2"}}}
- },
- "404": {
- "description": "Policy type is not found",
- "content": {"*/*": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "policytype_id",
- "required": true
- }],
- "tags": ["A1 Policy Management"]
- }},
- "/actuator/logfile": {"get": {
- "summary": "Actuator web endpoint 'logfile'",
- "operationId": "logfile",
- "responses": {"200": {
- "description": "OK",
- "content": {"text/plain;charset=UTF-8": {"schema": {"type": "object"}}}
- }},
- "tags": ["Actuator"]
- }},
- "/actuator/health": {"get": {
- "summary": "Actuator web endpoint 'health'",
- "operationId": "health",
- "responses": {"200": {
- "description": "OK",
- "content": {
- "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
- "application/json": {"schema": {"type": "object"}},
- "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
- }
- }},
- "tags": ["Actuator"]
- }},
- "/a1-policy/v2/policies": {
- "get": {
- "summary": "Query policy identities",
- "description": "Returns a list of A1 policies matching given search criteria. <br>If several query parameters are defined, the policies matching all conditions are returned.",
- "operationId": "getPolicyIds",
- "responses": {
- "200": {
- "description": "Policy identities",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/policy_id_list_v2"}}}
- },
- "404": {
- "description": "Near-RT RIC or type not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- }
- },
- "parameters": [
- {
- "schema": {"type": "string"},
- "in": "query",
- "name": "policytype_id",
- "description": "Select policies of a given policy type identity.",
- "required": false
- },
- {
- "schema": {"type": "string"},
- "in": "query",
- "name": "ric_id",
- "description": "Select policies of a given Near-RT RIC identity.",
- "required": false
- },
- {
- "schema": {"type": "string"},
- "in": "query",
- "name": "service_id",
- "description": "Select policies owned by a given service.",
- "required": false
- },
- {
- "schema": {"type": "string"},
- "in": "query",
- "name": "type_name",
- "description": "Select policies of types with the given type name (type identity has the format <typename_version>)",
- "required": false
- }
- ],
- "tags": ["A1 Policy Management"]
- },
- "put": {
- "summary": "Create or update a policy",
- "requestBody": {
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/policy_info_v2"}}},
- "required": true
- },
- "operationId": "putPolicy",
- "responses": {
- "200": {
- "description": "Policy updated",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/void"}}}
- },
- "201": {
- "description": "Policy created",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/void"}}}
- },
- "423": {
- "description": "Near-RT RIC is not operational",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- },
- "404": {
- "description": "Near-RT RIC or policy type is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- }
- },
- "tags": ["A1 Policy Management"]
+ "description" : "List of policy information"
+ },
+ "policy_status_info" : {
+ "type" : "object",
+ "properties" : {
+ "last_modified" : {
+ "type" : "string",
+ "description" : "timestamp, last modification time"
+ },
+ "status" : {
+ "type" : "object",
+ "description" : "the Policy status"
+ }
+ },
+ "description" : "Status for one A1-P Policy"
+ },
+ "service_status" : {
+ "type" : "object",
+ "properties" : {
+ "callback_url" : {
+ "type" : "string",
+ "description" : "callback for notifying of RIC synchronization"
+ },
+ "service_id" : {
+ "type" : "string",
+ "description" : "identity of the service"
+ },
+ "keep_alive_interval_seconds" : {
+ "type" : "integer",
+ "description" : "policy keep alive timeout",
+ "format" : "int64"
+ },
+ "time_since_last_activity_seconds" : {
+ "type" : "integer",
+ "description" : "time since last invocation by the service",
+ "format" : "int64"
+ }
+ }
+ },
+ "ric_info_list" : {
+ "type" : "object",
+ "properties" : {
+ "rics" : {
+ "type" : "array",
+ "description" : "List of Near-RT RIC information",
+ "items" : {
+ "$ref" : "#/components/schemas/ric_info"
}
+ }
},
- "/r-app/near-rt-ric-status": {"post": {
- "summary": "Callback for Near-RT RIC status",
- "requestBody": {
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/service_callback_info_v2"}}},
- "required": true
- },
- "description": "The URL to this call is registered at Service registration.",
- "operationId": "serviceCallback",
- "responses": {"200": {
- "description": "OK",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/void"}}}
- }},
- "tags": ["Service callbacks"]
- }},
- "/a1-policy/v2/services/{service_id}": {"delete": {
- "summary": "Unregister a service",
- "operationId": "deleteService",
- "responses": {
- "200": {
- "description": "Not used",
- "content": {"*/*": {"schema": {"$ref": "#/components/schemas/void"}}}
- },
- "204": {
- "description": "Service unregistered",
- "content": {"*/*": {"schema": {"type": "object"}}}
- },
- "404": {
- "description": "Service not found",
- "content": {"*/*": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "service_id",
- "required": true
- }],
- "tags": ["Service Registry and Supervision"]
- }},
- "/actuator/heapdump": {"get": {
- "summary": "Actuator web endpoint 'heapdump'",
- "operationId": "heapdump",
- "responses": {"200": {
- "description": "OK",
- "content": {"application/octet-stream": {"schema": {"type": "object"}}}
- }},
- "tags": ["Actuator"]
- }},
- "/a1-policy/v2/policies/{policy_id}/status": {"get": {
- "summary": "Returns a policy status",
- "operationId": "getPolicyStatus",
- "responses": {
- "200": {
- "description": "Policy status",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/policy_status_info_v2"}}}
- },
- "404": {
- "description": "Policy is not found",
- "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
- }
- },
- "parameters": [{
- "schema": {"type": "string"},
- "in": "path",
- "name": "policy_id",
- "required": true
- }],
- "tags": ["A1 Policy Management"]
- }}
- },
- "info": {
- "license": {
- "name": "Copyright (C) 2020-2023 Nordix Foundation. Licensed under the Apache License.",
- "url": "http://www.apache.org/licenses/LICENSE-2.0"
+ "description" : "List of Near-RT RIC information"
+ },
+ "input" : {
+ "required" : [ "access_type", "auth_token", "policy_type_id" ],
+ "type" : "object",
+ "properties" : {
+ "access_type" : {
+ "type" : "string",
+ "description" : "Access type",
+ "enum" : [ "READ", "WRITE", "DELETE" ]
+ },
+ "auth_token" : {
+ "type" : "string",
+ "description" : "Authorization token"
+ },
+ "policy_type_id" : {
+ "type" : "string",
+ "description" : "Policy type identifier"
+ }
},
- "description": "<h2>General<\/h2><p>The O-RAN Non-RT RIC Policy Management Service provides a REST API for management of A1 policies. <br/>The main tasks of the service are:<\/p><ul><li>A1 Policy creation, modification and deletion.<\/li><li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs<\/li><li>Maintaining a view of supported Near-RT RIC policy types<\/li><li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.<\/li><\/ul><h2>APIs provided or defined by the service<\/h2><h3>A1 Policy Management<\/h3><p>This is an API for management of A1 Policies.<\/p><ul><li>A1 Policy retrieval, creation, modification and deletion.<\/li><li>Retrieval of supported A1 Policy types for a Near-RT RIC<\/li><li>Retrieval of status for existing A1 policies<\/li><\/ul><h3>Management of configuration<\/h3><p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.<\/p><h3>Service callbacks<\/h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.<\/p><h3>NearRT-RIC Repository<\/h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.<\/p><h3>Health Check<\/h3><p>API used for supervision of the PMS component.<\/p><h3>Service Registry and Supervision<\/h3><p>API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.<\/p><h3>Authorization API<\/h3><p>API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.<\/p><h3>Spring Boot Actuator<\/h3><p>Provides generic functions used to monitor and manage the Spring web application.<\/p>",
- "title": "A1 Policy Management Service",
- "version": "1.2.0"
- },
- "tags": [
- {
- "name": "Authorization API",
- "description": "API used for authorization of information A1 policy access (this is provided by an authorization producer such as OPA).\nNote that this API is called by PMS, it is not provided.\n"
+ "description" : "input"
+ },
+ "policy_authorization" : {
+ "required" : [ "input" ],
+ "type" : "object",
+ "properties" : {
+ "input" : {
+ "$ref" : "#/components/schemas/input"
+ }
},
- {
- "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" : "Authorization request for A1 policy requests"
+ },
+ "policy_type_id_list" : {
+ "type" : "object",
+ "properties" : {
+ "policytype_ids" : {
+ "type" : "array",
+ "description" : "Policy type identities",
+ "items" : {
+ "type" : "string",
+ "description" : "Policy type identities"
}
+ }
+ },
+ "description" : "Information about policy types"
+ },
+ "policy_info" : {
+ "required" : [ "policy_data", "policy_id", "policytype_id", "ric_id", "service_id" ],
+ "type" : "object",
+ "properties" : {
+ "ric_id" : {
+ "type" : "string",
+ "description" : "identity of the target Near-RT RIC"
+ },
+ "policy_id" : {
+ "type" : "string",
+ "description" : "identity of the policy"
+ },
+ "transient" : {
+ "type" : "boolean",
+ "description" : "if true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.",
+ "nullable" : false,
+ "example" : false,
+ "default" : false
+ },
+ "service_id" : {
+ "type" : "string",
+ "description" : "the identity of the service owning the policy. This can be used to group the policies (it is possible to get all policies associated to a service). Note that the service does not need to be registered."
+ },
+ "policy_data" : {
+ "type" : "object",
+ "description" : "the configuration of the policy"
+ },
+ "status_notification_uri" : {
+ "type" : "string",
+ "description" : "Callback URI for policy status updates"
+ },
+ "policytype_id" : {
+ "type" : "string",
+ "description" : "identity of the policy type"
+ }
+ },
+ "description" : "Information for one A1-P Policy"
+ },
+ "policy_id_list" : {
+ "type" : "object",
+ "properties" : {
+ "policy_ids" : {
+ "type" : "array",
+ "description" : "Policy identities",
+ "items" : {
+ "type" : "string",
+ "description" : "Policy identities"
+ }
+ }
+ },
+ "description" : "A list of policy identities",
+ "example" : {
+ "policy_ids" : [ "policy_ids", "policy_ids" ]
+ }
+ },
+ "service_status_list" : {
+ "type" : "object",
+ "properties" : {
+ "service_list" : {
+ "type" : "array",
+ "description" : "List of service information",
+ "items" : {
+ "$ref" : "#/components/schemas/service_status"
+ }
+ }
+ }
+ },
+ "service_callback_info_v2" : {
+ "required" : [ "event_type", "ric_id" ],
+ "type" : "object",
+ "properties" : {
+ "ric_id" : {
+ "type" : "string",
+ "description" : "identity of a Near-RT RIC"
+ },
+ "event_type" : {
+ "type" : "string",
+ "description" : "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management",
+ "enum" : [ "AVAILABLE" ]
+ }
+ },
+ "description" : "Information transferred as in Service callbacks (callback_url)"
+ },
+ "Link" : {
+ "type" : "object",
+ "properties" : {
+ "templated" : {
+ "type" : "boolean"
+ },
+ "href" : {
+ "type" : "string"
+ }
+ }
+ }
+ },
+ "examples" : {
+ "service_status" : {
+ "description" : "List of service information",
+ "value" : {
+ "callback_url" : "callback_url",
+ "service_id" : "service_id",
+ "keep_alive_interval_seconds" : 0,
+ "time_since_last_activity_seconds" : 6
+ }
+ },
+ "service_status_list" : {
+ "description" : "List of service information",
+ "value" : {
+ "service_list" : [ {
+ "callback_url" : "callback_url",
+ "service_id" : "service_id",
+ "keep_alive_interval_seconds" : 0,
+ "time_since_last_activity_seconds" : 6
+ }, {
+ "callback_url" : "callback_url",
+ "service_id" : "service_id",
+ "keep_alive_interval_seconds" : 0,
+ "time_since_last_activity_seconds" : 6
+ } ]
+ }
+ },
+ "policy_type_definition" : {
+ "description" : "Schema of the given Policy type",
+ "value" : {
+ "policy_schema" : "{}"
+ }
+ },
+ "policy_type_id_list" : {
+ "description" : "Array of policy type id's",
+ "value" : {
+ "policy_type_id_list" : [ "policytype_id", "policytype_id" ]
+ }
+ },
+ "policy_info" : {
+ "description" : "Policy information of one A1-P policy",
+ "value" : {
+ "ric_id" : "ric_id",
+ "policy_id" : "policy_id",
+ "transient" : false,
+ "service_id" : "service_id",
+ "policy_data" : "{}",
+ "status_notification_uri" : "status_notification_uri",
+ "policytype_id" : "policytype_id"
+ }
+ },
+ "policy_info_list" : {
+ "description" : "List of policy information",
+ "value" : {
+ "policies" : [ {
+ "ric_id" : "ric_id",
+ "policy_id" : "policy_id",
+ "transient" : false,
+ "service_id" : "service_id",
+ "policy_data" : "{}",
+ "status_notification_uri" : "status_notification_uri",
+ "policytype_id" : "policytype_id"
+ }, {
+ "ric_id" : "ric_id",
+ "policy_id" : "policy_id",
+ "transient" : false,
+ "service_id" : "service_id",
+ "policy_data" : "{}",
+ "status_notification_uri" : "status_notification_uri",
+ "policytype_id" : "policytype_id"
+ } ]
+ }
+ },
+ "policy_id_list" : {
+ "description" : "A list of policy identities",
+ "value" : {
+ "policy_ids" : [ "policy_ids", "policy_ids" ]
+ }
+ },
+ "policy_status_info" : {
+ "description" : "Status for one A1-P Policy",
+ "value" : {
+ "last_modified" : "last_modified",
+ "status" : "{}"
+ }
+ },
+ "status_info" : {
+ "value" : {
+ "status" : "status"
+ }
+ },
+ "ric_info" : {
+ "value" : {
+ "ric_id" : "ric_id",
+ "managed_element_ids" : [ "managed_element_ids", "managed_element_ids" ],
+ "state" : "UNAVAILABLE",
+ "policytype_ids" : [ "policytype_ids", "policytype_ids" ]
+ }
+ },
+ "ric_info_list" : {
+ "value" : {
+ "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" ]
+ } ]
}
- ]
+ }
+ }
+ }
} \ No newline at end of file
diff --git a/docs/offeredapis/swagger/pms-api.yaml b/docs/offeredapis/swagger/pms-api.yaml
index 44dc2ba4..0895f50d 100644
--- a/docs/offeredapis/swagger/pms-api.yaml
+++ b/docs/offeredapis/swagger/pms-api.yaml
@@ -1,4 +1,25 @@
-openapi: 3.0.1
+# ============LICENSE_START=======================================================
+# Copyright (C) 2020-2023 Nordix Foundation
+# Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved.
+# Modifications Copyright (C) 2021 Pantheon.tech
+# Modifications Copyright (C) 2021 Bell Canada
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+openapi: 3.0.3
info:
description: "<h2>General</h2><p>The O-RAN Non-RT RIC Policy Management Service\
\ provides a REST API for management of A1 policies. <br/>The main tasks of the\
@@ -27,22 +48,23 @@ info:
\ Actuator</h3><p>Provides generic functions used to monitor and manage the Spring\
\ web application.</p>"
license:
- name: Copyright (C) 2020-2023 Nordix Foundation. Licensed under the Apache License.
+ name: Copyright (C) 2020-2023 Nordix Foundation. Licensed under the Apache License, and
+ Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved.
url: http://www.apache.org/licenses/LICENSE-2.0
title: A1 Policy Management Service
version: 1.2.0
servers:
-- url: /
+ - url: /
tags:
-- description: "API used for authorization of information A1 policy access (this is\
- \ provided by an authorization producer such as OPA).\nNote that this API is called\
- \ by PMS, it is not provided.\n"
- name: Authorization API
-- description: Monitor and interact
- externalDocs:
- description: Spring Boot Actuator Web API Documentation
- url: https://docs.spring.io/spring-boot/docs/current/actuator-api/html/
- name: Actuator
+ - description: "API used for authorization of information A1 policy access (this is
+ provided by an authorization producer such as OPA). <br> Note that this API is called
+ by PMS, it is not provided."
+ name: Authorization API
+ - description: Monitor and interact
+ externalDocs:
+ description: Spring Boot Actuator Web API Documentation
+ url: https://docs.spring.io/spring-boot/docs/current/actuator-api/html/
+ name: Actuator
paths:
/a1-policy/v2/policy-instances:
get:
@@ -51,45 +73,48 @@ paths:
\ are returned."
operationId: getPolicyInstances
parameters:
- - description: Select policies with a given type identity.
- explode: true
- in: query
- name: policytype_id
- required: false
- schema:
- type: string
- style: form
- - description: Select policies for a given Near-RT RIC identity.
- explode: true
- in: query
- name: ric_id
- required: false
- schema:
- type: string
- style: form
- - description: Select policies owned by a given service.
- explode: true
- in: query
- name: service_id
- required: false
- schema:
- type: string
- style: form
- - description: Select policies of a given type name (type identity has the format
- <typename_version>)
- explode: true
- in: query
- name: type_name
- required: false
- schema:
- type: string
- style: form
+ - description: Select policies with a given type identity.
+ explode: true
+ in: query
+ name: policytype_id
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Select policies for a given Near-RT RIC identity.
+ explode: true
+ in: query
+ name: ric_id
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Select policies owned by a given service.
+ explode: true
+ in: query
+ name: service_id
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Select policies of a given type name (type identity has the format
+ <typename_version>)
+ explode: true
+ in: query
+ name: type_name
+ required: false
+ schema:
+ type: string
+ style: form
responses:
"200":
content:
application/json:
+ examples:
+ policy_info_list:
+ $ref: '#/components/examples/policy_info_list'
schema:
- $ref: '#/components/schemas/policy_info_list_v2'
+ $ref: '#/components/schemas/policy_info_list'
description: Policies
"404":
content:
@@ -99,7 +124,7 @@ paths:
description: "Near-RT RIC, policy type or service not found"
summary: Query for A1 policy instances
tags:
- - A1 Policy Management
+ - A1 Policy Management
/example-authz-check:
post:
description: The authorization function decides if access is granted.
@@ -119,7 +144,7 @@ paths:
description: OK
summary: Request for access authorization.
tags:
- - Authorization API
+ - Authorization API
/actuator/threaddump:
get:
operationId: threaddump
@@ -141,7 +166,7 @@ paths:
description: OK
summary: Actuator web endpoint 'threaddump'
tags:
- - Actuator
+ - Actuator
/a1-policy/v2/status:
get:
operationId: getStatus
@@ -150,11 +175,14 @@ paths:
content:
application/json:
schema:
- $ref: '#/components/schemas/status_info_v2'
+ $ref: '#/components/schemas/status_info'
+ examples:
+ status_info:
+ $ref: '#/components/examples/status_info'
description: Service is living
summary: Returns status and statistics of this service
tags:
- - Health Check
+ - Health Check
/actuator/loggers:
get:
operationId: loggers
@@ -173,7 +201,7 @@ paths:
description: OK
summary: Actuator web endpoint 'loggers'
tags:
- - Actuator
+ - Actuator
/actuator/health/**:
get:
operationId: health-path
@@ -192,7 +220,7 @@ paths:
description: OK
summary: Actuator web endpoint 'health-path'
tags:
- - Actuator
+ - Actuator
/a1-policy/v2/rics/ric:
get:
description: Either a Near-RT RIC identity or a Managed Element identity can
@@ -200,29 +228,32 @@ paths:
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\
+ - 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
+ 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_v2'
+ $ref: '#/components/schemas/ric_info'
+ examples:
+ ric_info:
+ $ref: '#/components/examples/ric_info'
description: Near-RT RIC is found
"404":
content:
@@ -232,7 +263,7 @@ paths:
description: Near-RT RIC is not found
summary: Returns info for one Near-RT RIC
tags:
- - NearRT-RIC Repository
+ - NearRT-RIC Repository
/actuator/shutdown:
post:
operationId: shutdown
@@ -251,45 +282,48 @@ paths:
description: OK
summary: Actuator web endpoint 'shutdown'
tags:
- - Actuator
+ - Actuator
/a1-policy/v2/policy-types:
get:
operationId: getPolicyTypes
parameters:
- - description: Select types for the given Near-RT RIC identity.
- explode: true
- in: query
- name: ric_id
- required: false
- schema:
- type: string
- style: form
- - description: Select types with the given type name (type identity has the
- format <typename_version>)
- explode: true
- in: query
- name: type_name
- required: false
- schema:
- type: string
- style: form
- - description: Select types that are compatible with the given version. This
- parameter is only applicable in conjunction with type_name. As an example
- version 1.9.1 is compatible with 1.0.0 but not the other way around. Matching
- types will be returned sorted in ascending order.
- explode: true
- in: query
- name: compatible_with_version
- required: false
- schema:
- type: string
- style: form
+ - description: Select types for the given Near-RT RIC identity.
+ explode: true
+ in: query
+ name: ric_id
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Select types with the given type name (type identity has the
+ format <typename_version>)
+ explode: true
+ in: query
+ name: type_name
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Select types that are compatible with the given version. This
+ parameter is only applicable in conjunction with type_name. As an example
+ version 1.9.1 is compatible with 1.0.0 but not the other way around. Matching
+ types will be returned sorted in ascending order.
+ explode: true
+ in: query
+ name: compatible_with_version
+ required: false
+ schema:
+ type: string
+ style: form
responses:
"200":
content:
application/json:
+ examples:
+ policy_type_id_list:
+ $ref: '#/components/examples/policy_type_id_list'
schema:
- $ref: '#/components/schemas/policytype_id_list_v2'
+ $ref: '#/components/schemas/policy_type_id_list'
description: Policy type IDs
"404":
content:
@@ -299,18 +333,18 @@ paths:
description: Near-RT RIC is not found
summary: Query policy type identities
tags:
- - A1 Policy Management
+ - A1 Policy Management
/a1-policy/v2/policies/{policy_id}:
delete:
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:
@@ -338,23 +372,26 @@ paths:
description: Policy is not found
summary: Delete a policy
tags:
- - A1 Policy Management
+ - A1 Policy Management
get:
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_v2'
+ $ref: '#/components/schemas/policy_info'
+ examples:
+ policy_info:
+ $ref: '#/components/examples/policy_info'
description: Policy found
"404":
content:
@@ -364,18 +401,18 @@ paths:
description: Policy is not found
summary: Returns a policy
tags:
- - A1 Policy Management
+ - A1 Policy Management
/actuator/metrics/{requiredMetricName}:
get:
operationId: metrics-requiredMetricName
parameters:
- - explode: false
- in: path
- name: requiredMetricName
- required: true
- schema:
- type: string
- style: simple
+ - explode: false
+ in: path
+ name: requiredMetricName
+ required: true
+ schema:
+ type: string
+ style: simple
responses:
"200":
content:
@@ -391,7 +428,7 @@ paths:
description: OK
summary: Actuator web endpoint 'metrics-requiredMetricName'
tags:
- - Actuator
+ - Actuator
/a1-policy/v2/configuration:
get:
operationId: getConfiguration
@@ -400,7 +437,7 @@ paths:
content:
application/json:
schema:
- type: object
+ type: string
description: Configuration
"404":
content:
@@ -410,7 +447,7 @@ paths:
description: File is not found or readable
summary: Returns the contents of the application configuration file
tags:
- - Management of configuration
+ - configuration
put:
operationId: putConfiguration
requestBody:
@@ -441,7 +478,7 @@ paths:
again.
summary: Replace the current configuration file with the given configuration
tags:
- - Management of configuration
+ - configuration
/actuator:
get:
operationId: links
@@ -472,18 +509,18 @@ paths:
description: OK
summary: Actuator root web endpoint
tags:
- - Actuator
+ - Actuator
/actuator/loggers/{name}:
get:
operationId: loggers-name
parameters:
- - explode: false
- in: path
- name: name
- required: true
- schema:
- type: string
- style: simple
+ - explode: false
+ in: path
+ name: name
+ required: true
+ schema:
+ type: string
+ style: simple
responses:
"200":
content:
@@ -499,29 +536,29 @@ paths:
description: OK
summary: Actuator web endpoint 'loggers-name'
tags:
- - Actuator
+ - Actuator
post:
operationId: loggers-name_2
parameters:
- - explode: false
- in: path
- name: name
- required: true
- schema:
- type: string
- style: simple
+ - 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"
+ - TRACE
+ - DEBUG
+ - INFO
+ - WARN
+ - ERROR
+ - FATAL
+ - "OFF"
type: string
responses:
"200":
@@ -532,7 +569,7 @@ paths:
description: OK
summary: Actuator web endpoint 'loggers-name'
tags:
- - Actuator
+ - Actuator
/a1-policy/v2/services/{service_id}/keepalive:
put:
description: A registered service should invoke this operation regularly to
@@ -542,13 +579,13 @@ paths:
when each service is initially registered)
operationId: keepAliveService
parameters:
- - explode: false
- in: path
- name: service_id
- required: true
- schema:
- type: string
- style: simple
+ - explode: false
+ in: path
+ name: service_id
+ required: true
+ schema:
+ type: string
+ style: simple
responses:
"200":
content:
@@ -564,7 +601,7 @@ paths:
description: "The service is not found, needs re-registration"
summary: Heartbeat indicates that the service is running
tags:
- - Service Registry and Supervision
+ - Service Registry and Supervision
/actuator/metrics:
get:
operationId: metrics
@@ -583,28 +620,31 @@ paths:
description: OK
summary: Actuator web endpoint 'metrics'
tags:
- - Actuator
+ - Actuator
/a1-policy/v2/rics:
get:
description: The call returns all Near-RT RICs that supports a given policy
type identity
operationId: getRics
parameters:
- - description: "The identity of a policy type. If given, all Near-RT RICs supporting\
+ - 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: true
+ in: query
+ name: policytype_id
+ required: false
+ schema:
+ type: string
+ style: form
responses:
"200":
content:
application/json:
schema:
- $ref: '#/components/schemas/ric_info_list_v2'
+ $ref: '#/components/schemas/ric_info_list'
+ examples:
+ ric_info_list:
+ $ref: '#/components/examples/ric_info_list'
description: OK
"404":
content:
@@ -614,27 +654,30 @@ paths:
description: Policy type is not found
summary: Query Near-RT RIC information
tags:
- - NearRT-RIC Repository
+ - NearRT-RIC Repository
/a1-policy/v2/services:
get:
description: Either information about a registered service with given identity
or all registered services are returned.
operationId: getServices
parameters:
- - description: The identity of the service
- explode: true
- in: query
- name: service_id
- required: false
- schema:
- type: string
- style: form
+ - description: The identity of the service
+ explode: true
+ in: query
+ name: service_id
+ required: false
+ schema:
+ type: string
+ style: form
responses:
"200":
content:
application/json:
schema:
- $ref: '#/components/schemas/service_list_v2'
+ $ref: '#/components/schemas/service_status_list'
+ examples:
+ service_status_list:
+ $ref: '#/components/examples/service_status_list'
description: OK
"404":
content:
@@ -644,7 +687,7 @@ paths:
description: Service is not found
summary: Returns service information
tags:
- - Service Registry and Supervision
+ - Service Registry and Supervision
put:
description: "Registering a service is needed to:<ul><li>Get callbacks about\
\ available NearRT RICs.</li><li>Activate supervision of the service. If a\
@@ -656,7 +699,7 @@ paths:
content:
application/json:
schema:
- $ref: '#/components/schemas/service_registration_info_v2'
+ $ref: '#/components/schemas/service_registration_info'
required: true
responses:
"200":
@@ -679,7 +722,29 @@ paths:
description: The ServiceRegistrationInfo is not accepted
summary: Register a service
tags:
- - Service Registry and Supervision
+ - 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
+ summary: Callback for Near-RT RIC status
+ tags:
+ - Service callbacks
/actuator/info:
get:
operationId: info
@@ -698,7 +763,7 @@ paths:
description: OK
summary: Actuator web endpoint 'info'
tags:
- - Actuator
+ - Actuator
/status:
get:
operationId: getStatusV1
@@ -711,34 +776,37 @@ paths:
description: Service is living
summary: Returns status and statistics of this service
tags:
- - Health Check
+ - Health Check
/a1-policy/v2/policy-types/{policytype_id}:
get:
- operationId: getPolicyType
+ operationId: getPolicyTypeDefinition
parameters:
- - explode: false
- in: path
- name: policytype_id
- required: true
- schema:
- type: string
- style: simple
+ - explode: false
+ in: path
+ name: policytype_id
+ required: true
+ schema:
+ type: string
+ style: simple
responses:
"200":
content:
- '*/*':
+ application/json:
schema:
- $ref: '#/components/schemas/policytype_v2'
- description: Policy type
+ $ref: '#/components/schemas/policy_type_definition'
+ examples:
+ policy_type_definition:
+ $ref: '#/components/examples/policy_type_definition'
+ description: schema of the given policy type
"404":
content:
- '*/*':
+ application/json:
schema:
$ref: '#/components/schemas/error_information'
description: Policy type is not found
summary: Returns a policy type definition
tags:
- - A1 Policy Management
+ - A1 Policy Management
/actuator/logfile:
get:
operationId: logfile
@@ -751,7 +819,7 @@ paths:
description: OK
summary: Actuator web endpoint 'logfile'
tags:
- - Actuator
+ - Actuator
/actuator/health:
get:
operationId: health
@@ -770,7 +838,7 @@ paths:
description: OK
summary: Actuator web endpoint 'health'
tags:
- - Actuator
+ - Actuator
/a1-policy/v2/policies:
get:
description: "Returns a list of A1 policies matching given search criteria.\
@@ -778,45 +846,48 @@ paths:
\ are returned."
operationId: getPolicyIds
parameters:
- - description: Select policies of a given policy type identity.
- explode: true
- in: query
- name: policytype_id
- required: false
- schema:
- type: string
- style: form
- - description: Select policies of a given Near-RT RIC identity.
- explode: true
- in: query
- name: ric_id
- required: false
- schema:
- type: string
- style: form
- - description: Select policies owned by a given service.
- explode: true
- in: query
- name: service_id
- required: false
- schema:
- type: string
- style: form
- - description: Select policies of types with the given type name (type identity
- has the format <typename_version>)
- explode: true
- in: query
- name: type_name
- required: false
- schema:
- type: string
- style: form
+ - description: Select policies of a given policy type identity.
+ explode: true
+ in: query
+ name: policytype_id
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Select policies of a given Near-RT RIC identity.
+ explode: true
+ in: query
+ name: ric_id
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Select policies owned by a given service.
+ explode: true
+ in: query
+ name: service_id
+ required: false
+ schema:
+ type: string
+ style: form
+ - description: Select policies of types with the given type name (type identity
+ has the format <typename_version>)
+ explode: true
+ in: query
+ name: type_name
+ required: false
+ schema:
+ type: string
+ style: form
responses:
"200":
content:
application/json:
+ examples:
+ policy_id_list:
+ $ref: '#/components/examples/policy_id_list'
schema:
- $ref: '#/components/schemas/policy_id_list_v2'
+ $ref: '#/components/schemas/policy_id_list'
description: Policy identities
"404":
content:
@@ -826,14 +897,14 @@ paths:
description: Near-RT RIC or type not found
summary: Query policy identities
tags:
- - A1 Policy Management
+ - A1 Policy Management
put:
operationId: putPolicy
requestBody:
content:
application/json:
schema:
- $ref: '#/components/schemas/policy_info_v2'
+ $ref: '#/components/schemas/policy_info'
required: true
responses:
"200":
@@ -862,38 +933,18 @@ paths:
description: Near-RT RIC or policy type is not found
summary: Create or update a policy
tags:
- - A1 Policy Management
- /r-app/near-rt-ric-status:
- 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
- summary: Callback for Near-RT RIC status
- tags:
- - Service callbacks
+ - 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
+ - explode: false
+ in: path
+ name: service_id
+ required: true
+ schema:
+ type: string
+ style: simple
responses:
"200":
content:
@@ -915,7 +966,7 @@ paths:
description: Service not found
summary: Unregister a service
tags:
- - Service Registry and Supervision
+ - Service Registry and Supervision
/actuator/heapdump:
get:
operationId: heapdump
@@ -928,24 +979,27 @@ paths:
description: OK
summary: Actuator web endpoint 'heapdump'
tags:
- - Actuator
+ - Actuator
/a1-policy/v2/policies/{policy_id}/status:
get:
operationId: getPolicyStatus
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:
+ examples:
+ policy_status_info:
+ $ref: '#/components/examples/policy_status_info'
schema:
- $ref: '#/components/schemas/policy_status_info_v2'
+ $ref: '#/components/schemas/policy_status_info'
description: Policy status
"404":
content:
@@ -955,9 +1009,118 @@ paths:
description: Policy is not found
summary: Returns a policy status
tags:
- - A1 Policy Management
+ - A1 Policy Management
components:
+ examples:
+ service_status:
+ description: List of service information
+ value:
+ callback_url: callback_url
+ service_id: service_id
+ keep_alive_interval_seconds: 0
+ time_since_last_activity_seconds: 6
+ service_status_list:
+ description: List of service information
+ value:
+ service_list:
+ - callback_url: callback_url
+ service_id: service_id
+ keep_alive_interval_seconds: 0
+ time_since_last_activity_seconds: 6
+ - callback_url: callback_url
+ service_id: service_id
+ keep_alive_interval_seconds: 0
+ time_since_last_activity_seconds: 6
+ policy_type_definition:
+ description: Schema of the given Policy type
+ value:
+ policy_schema: "{}"
+ policy_type_id_list:
+ description: Array of policy type id's
+ value:
+ policy_type_id_list:
+ - policytype_id
+ - policytype_id
+ policy_info:
+ description: Policy information of one A1-P policy
+ value:
+ ric_id: ric_id
+ policy_id: policy_id
+ transient: false
+ service_id: service_id
+ policy_data: "{}"
+ status_notification_uri: status_notification_uri
+ policytype_id: policytype_id
+ policy_info_list:
+ description: List of policy information
+ value:
+ policies:
+ - ric_id: ric_id
+ policy_id: policy_id
+ transient: false
+ service_id: service_id
+ policy_data: "{}"
+ status_notification_uri: status_notification_uri
+ policytype_id: policytype_id
+ - ric_id: ric_id
+ policy_id: policy_id
+ transient: false
+ service_id: service_id
+ policy_data: "{}"
+ status_notification_uri: status_notification_uri
+ policytype_id: policytype_id
+ policy_id_list:
+ description: A list of policy identities
+ value:
+ policy_ids:
+ - policy_ids
+ - policy_ids
+ policy_status_info:
+ description: Status for one A1-P Policy
+ value:
+ last_modified: last_modified
+ status: "{}"
+ status_info:
+ value:
+ status: status
+ ric_info:
+ value:
+ ric_id: ric_id
+ managed_element_ids:
+ - managed_element_ids
+ - managed_element_ids
+ state: UNAVAILABLE
+ policytype_ids:
+ - policytype_ids
+ - policytype_ids
+ ric_info_list:
+ value:
+ 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
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:
@@ -976,9 +1139,7 @@ components:
void:
description: Void/empty
type: object
- status_info_v2:
- example:
- status: status
+ status_info:
properties:
status:
description: status text
@@ -993,19 +1154,10 @@ components:
description: "If true, the access is granted"
type: boolean
required:
- - result
+ - result
type: object
- ric_info_v2:
+ 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
@@ -1019,10 +1171,10 @@ 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
@@ -1031,7 +1183,7 @@ components:
type: string
type: array
type: object
- service_registration_info_v2:
+ service_registration_info:
description: Information for one service
properties:
callback_url:
@@ -1051,38 +1203,19 @@ components:
format: int64
type: integer
required:
- - service_id
+ - service_id
type: object
- policy_info_list_v2:
+ policy_info_list:
description: List of policy information
- example:
- 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
properties:
policies:
description: List of policy information
items:
- $ref: '#/components/schemas/policy_info_v2'
+ $ref: '#/components/schemas/policy_info'
type: array
type: object
- policy_status_info_v2:
+ policy_status_info:
description: Status for one A1-P Policy
- example:
- last_modified: last_modified
- status: "{}"
properties:
last_modified:
description: "timestamp, last modification time"
@@ -1091,13 +1224,7 @@ components:
description: the Policy status
type: object
type: object
- service_status_v2:
- description: List of service information
- example:
- callback_url: callback_url
- service_id: service_id
- keep_alive_interval_seconds: 0
- time_since_last_activity_seconds: 6
+ service_status:
properties:
callback_url:
description: callback for notifying of RIC synchronization
@@ -1114,52 +1241,24 @@ components:
format: int64
type: integer
type: object
- ric_info_list_v2:
+ 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/ric_info_v2'
+ $ref: '#/components/schemas/ric_info'
type: array
type: object
- policytype_v2:
- description: Policy type
- example:
- policy_schema: "{}"
- 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
input:
description: input
properties:
access_type:
description: Access type
enum:
- - READ
- - WRITE
- - DELETE
+ - READ
+ - WRITE
+ - DELETE
type: string
auth_token:
description: Authorization token
@@ -1168,9 +1267,9 @@ components:
description: Policy type identifier
type: string
required:
- - access_type
- - auth_token
- - policy_type_id
+ - access_type
+ - auth_token
+ - policy_type_id
type: object
policy_authorization:
description: Authorization request for A1 policy requests
@@ -1178,14 +1277,10 @@ components:
input:
$ref: '#/components/schemas/input'
required:
- - input
+ - input
type: object
- policytype_id_list_v2:
+ policy_type_id_list:
description: Information about policy types
- example:
- policytype_ids:
- - policytype_ids
- - policytype_ids
properties:
policytype_ids:
description: Policy type identities
@@ -1194,16 +1289,8 @@ components:
type: string
type: array
type: object
- policy_info_v2:
+ policy_info:
description: Information for one A1-P Policy
- example:
- 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
properties:
ric_id:
description: identity of the target Near-RT RIC
@@ -1217,6 +1304,7 @@ components:
\ 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
@@ -1233,17 +1321,18 @@ components:
description: identity of the policy type
type: string
required:
- - policy_data
- - policy_id
- - policytype_id
- - ric_id
+ - ric_id
+ - policy_id
+ - service_id
+ - policy_data
+ - policytype_id
type: object
- policy_id_list_v2:
+ 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
@@ -1252,23 +1341,12 @@ components:
type: string
type: array
type: object
- service_list_v2:
- description: List of service information
- 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
+ service_status_list:
properties:
service_list:
description: List of service information
items:
- $ref: '#/components/schemas/service_status_v2'
+ $ref: '#/components/schemas/service_status'
type: array
type: object
service_callback_info_v2:
@@ -1281,11 +1359,11 @@ components:
description: "values:\nAVAILABLE: the Near-RT RIC has become available\
\ for A1 Policy management"
enum:
- - AVAILABLE
+ - AVAILABLE
type: string
required:
- - event_type
- - ric_id
+ - event_type
+ - ric_id
type: object
Link:
properties: