{ "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" }, "status": { "format": "int32", "description": "The HTTP status code generated by the origin server for this occurrence of the problem. ", "type": "integer", "example": 404 } }, "example": null }, "void": { "description": "Void/empty", "type": "object", "example": null }, "status_info_v2": { "type": "object", "properties": {"status": { "description": "status text", "type": "string", "example": null }}, "example": null }, "ric_info_v2": { "description": "Information for a Near-RT RIC", "type": "object", "properties": { "ric_id": { "description": "identity of the Near-RT RIC", "type": "string", "example": null }, "managed_element_ids": { "description": "O1 identities for managed entities", "type": "array", "items": { "description": "O1 identities for managed entities", "type": "string", "example": null }, "example": null }, "state": { "description": "Represents the states for a Near-RT RIC", "type": "string", "enum": [ "UNAVAILABLE", "AVAILABLE", "SYNCHRONIZING", "CONSISTENCY_CHECK" ], "example": null }, "policytype_ids": { "description": "supported policy types", "type": "array", "items": { "description": "supported policy types", "type": "string", "example": null }, "example": null } }, "example": null }, "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", "example": null }, "service_id": { "description": "identity of the service", "type": "string", "example": null }, "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", "example": null } }, "example": null }, "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"}, "example": null }}, "example": null }, "policy_status_info_v2": { "description": "Status for one A1-P Policy", "type": "object", "properties": { "last_modified": { "description": "timestamp, last modification time", "type": "string", "example": null }, "status": { "description": "the Policy status", "type": "object", "example": null } }, "example": null }, "service_status_v2": { "description": "List of service information", "type": "object", "properties": { "callback_url": { "description": "callback for notifying of RIC synchronization", "type": "string", "example": null }, "service_id": { "description": "identity of the service", "type": "string", "example": null }, "keep_alive_interval_seconds": { "format": "int64", "description": "policy keep alive timeout", "type": "integer", "example": null }, "time_since_last_activity_seconds": { "format": "int64", "description": "time since last invocation by the service", "type": "integer", "example": null } }, "example": null }, "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"}, "example": null }}, "example": null }, "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", "example": null }}, "example": null }, "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", "example": null }, "example": null }}, "example": null }, "policy_info_v2": { "description": "Information for one A1-P Policy", "type": "object", "required": [ "policy_data", "policy_id", "policytype_id", "ric_id", "service_id" ], "properties": { "ric_id": { "description": "identity of the target Near-RT RIC", "type": "string", "example": null }, "policy_id": { "description": "identity of the policy", "type": "string", "example": null }, "transient": { "description": "if true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.", "type": "boolean", "example": null }, "service_id": { "description": "the identity of the service owning the policy", "type": "string", "example": null }, "policy_data": { "description": "the configuration of the policy", "type": "object", "example": null }, "status_notification_uri": { "description": "Callback URI for policy status updates", "type": "string", "example": null }, "policytype_id": { "description": "identity of the policy type", "type": "string", "example": null } }, "example": null }, "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", "example": null }, "example": null }}, "example": null }, "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"}, "example": null }}, "example": null }, "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", "example": null }, "event_type": { "description": "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management", "type": "string", "enum": ["AVAILABLE"], "example": null } }, "example": null }, "Link": { "type": "object", "properties": { "templated": { "type": "boolean", "example": null }, "href": { "type": "string", "example": null } }, "example": null } }}, "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.
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"}, "example": null }} }, "404": { "description": "Near-RT RIC, policy type or service not found", "content": {"application/json": { "schema": {"$ref": "#/components/schemas/error_information"}, "example": null }} } }, "parameters": [ { "schema": { "type": "string", "example": null }, "in": "query", "name": "policytype_id", "description": "Select policies with a given type identity.", "required": false }, { "schema": { "type": "string", "example": null }, "in": "query", "name": "ric_id", "description": "Select policies for a given Near-RT RIC identity.", "required": false }, { "schema": { "type": "string", "example": null }, "in": "query", "name": "service_id", "description": "Select policies owned by a given service.", "required": false }, { "schema": { "type": "string", "example": null }, "in": "query", "name": "type_name", "description": "Select policies of a given type name (type identity has the format )", "required": false } ], "tags": ["A1 Policy Management"] }}, "/actuator/threaddump": {"get": { "summary": "Actuator web endpoint 'threaddump'", "operationId": "threaddump_2", "responses": {"200": { "description": "OK", "content": {"*/*": { "schema": { "type": "object", "example": null }, "example": null }} }}, "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"}, "example": null }} }}, "tags": ["Health Check"] }}, "/actuator/loggers": {"get": { "summary": "Actuator web endpoint 'loggers'", "operationId": "loggers", "responses": {"200": { "description": "OK", "content": {"*/*": { "schema": { "type": "object", "example": null }, "example": null }} }}, "tags": ["Actuator"] }}, "/actuator/health/**": {"get": { "summary": "Actuator web endpoint 'health-path'", "operationId": "health-path", "responses": {"200": { "description": "OK", "content": {"*/*": { "schema": { "type": "object", "example": null }, "example": null }} }}, "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.
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"}, "example": null }} }, "404": { "description": "Near-RT RIC is not found", "content": {"application/json": { "schema": {"$ref": "#/components/schemas/error_information"}, "example": null }} } }, "parameters": [ { "schema": { "type": "string", "example": null }, "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", "example": null }, "in": "query", "name": "ric_id", "description": "The identity of a Near-RT RIC to get information for.", "required": false } ], "tags": ["NearRT-RIC Repository"] }}, "/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"}, "example": null }} }, "404": { "description": "Near-RT RIC is not found", "content": {"application/json": { "schema": {"$ref": "#/components/schemas/error_information"}, "example": null }} } }, "parameters": [ { "schema": { "type": "string", "example": null }, "in": "query", "name": "ric_id", "description": "Select types for the given Near-RT RIC identity.", "required": false }, { "schema": { "type": "string", "example": null }, "in": "query", "name": "type_name", "description": "Select types with the given type name (type identity has the format )", "required": false }, { "schema": { "type": "string", "example": null }, "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"}, "example": null }} }, "404": { "description": "Policy is not found", "content": {"application/json": { "schema": {"$ref": "#/components/schemas/error_information"}, "example": null }} } }, "parameters": [{ "schema": { "type": "string", "example": null }, "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"}, "example": null }} }, "423": { "description": "Near-RT RIC is not operational", "content": {"*/*": { "schema": {"$ref": "#/components/schemas/error_information"}, "example": null }} }, "204": { "description": "Policy deleted", "content": {"*/*": { "schema": {"$ref": "#/components/schemas/void"}, "example": null }} }, "404": { "description": "Policy is not found", "content": {"*/*": { "schema": {"$ref": "#/components/schemas/error_information"}, "example": null }} } }, "parameters": [{ "schema": { "type": "string", "example": null }, "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": {"*/*": { "schema": { "type": "object", "example": null }, "example": null }} }}, "parameters": [{ "schema": { "type": "string", "example": null }, "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", "example": null }, "example": null }} }, "404": { "description": "File is not found or readable", "content": {"application/json": { "schema": {"$ref": "#/components/schemas/error_information"}, "example": null }} } }, "tags": ["Management of configuration"] }, "put": { "summary": "Replace the current configuration file with the given configuration", "requestBody": { "content": {"application/json": { "schema": { "type": "object", "example": null }, "example": null }}, "required": true }, "operationId": "putConfiguration", "responses": { "200": { "description": "Configuration updated", "content": {"*/*": { "schema": {"$ref": "#/components/schemas/void"}, "example": null }} }, "400": { "description": "Invalid configuration provided", "content": {"*/*": { "schema": {"$ref": "#/components/schemas/error_information"}, "example": null }} }, "500": { "description": "Something went wrong when replacing the configuration. Try again.", "content": {"*/*": { "schema": {"$ref": "#/components/schemas/error_information"}, "example": null }} } }, "tags": ["Management of configuration"] } }, "/actuator": {"get": { "summary": "Actuator root web endpoint", "operationId": "links", "responses": {"200": { "description": "OK", "content": {"*/*": { "schema": { "additionalProperties": { "additionalProperties": {"$ref": "#/components/schemas/Link"}, "type": "object", "example": null }, "type": "object", "example": null }, "example": null }} }}, "tags": ["Actuator"] }}, "/actuator/loggers/{name}": { "post": { "summary": "Actuator web endpoint 'loggers-name'", "operationId": "loggers-name", "responses": {"200": { "description": "OK", "content": {"*/*": { "schema": { "type": "object", "example": null }, "example": null }} }}, "parameters": [{ "schema": { "type": "string", "example": null }, "in": "path", "name": "name", "required": true }], "tags": ["Actuator"] }, "get": { "summary": "Actuator web endpoint 'loggers-name'", "operationId": "loggers-name_2", "responses": {"200": { "description": "OK", "content": {"*/*": { "schema": { "type": "object", "example": null }, "example": null }} }}, "parameters": [{ "schema": { "type": "string", "example": null }, "in": "path", "name": "name", "required": true }], "tags": ["Actuator"] } }, "/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", "example": null }, "example": null }} }, "404": { "description": "The service is not found, needs re-registration", "content": {"*/*": { "schema": {"$ref": "#/components/schemas/error_information"}, "example": null }} } }, "parameters": [{ "schema": { "type": "string", "example": null }, "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": {"*/*": { "schema": { "type": "object", "example": null }, "example": null }} }}, "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"}, "example": null }} }, "404": { "description": "Policy type is not found", "content": {"application/json": { "schema": {"$ref": "#/components/schemas/error_information"}, "example": null }} } }, "parameters": [{ "schema": { "type": "string", "example": null }, "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"}, "example": null }} }, "404": { "description": "Service is not found", "content": {"application/json": { "schema": {"$ref": "#/components/schemas/error_information"}, "example": null }} } }, "parameters": [{ "schema": { "type": "string", "example": null }, "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"}, "example": null }}, "required": true }, "description": "Registering a service is needed to: