| { |
| "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 |
| } |
| } |
| }, |
| "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" |
| } |
| } |
| } |
| }, |
| "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" |
| } |
| } |
| }, |
| "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" |
| } |
| } |
| }, |
| "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" |
| }, |
| "keep_alive_interval_seconds": { |
| "format": "int64", |
| "description": "policy keep alive timeout", |
| "type": "integer" |
| }, |
| "time_since_last_activity_seconds": { |
| "format": "int64", |
| "description": "time since last invocation by the service", |
| "type": "integer" |
| } |
| } |
| }, |
| "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" |
| ] |
| }, |
| "auth_token": { |
| "description": "Authorization token", |
| "type": "string" |
| }, |
| "policy_type_id": { |
| "description": "Policy type identifier", |
| "type": "string" |
| } |
| } |
| }, |
| "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" |
| } |
| }} |
| }, |
| "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" |
| }, |
| "status_notification_uri": { |
| "description": "Callback URI for policy status updates", |
| "type": "string" |
| }, |
| "policytype_id": { |
| "description": "identity of the policy type", |
| "type": "string" |
| } |
| } |
| }, |
| "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"] |
| } |
| } |
| }, |
| "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"}}} |
| } |
| }, |
| "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"}}} |
| } |
| }, |
| "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"}}} |
| } |
| }, |
| "tags": ["Management of configuration"] |
| }, |
| "put": { |
| "summary": "Replace the current configuration file with the given configuration", |
| "requestBody": { |
| "content": {"application/json": {"schema": {"type": "object"}}}, |
| "required": true |
| }, |
| "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"}}} |
| } |
| }, |
| "tags": ["Management of configuration"] |
| } |
| }, |
| "/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"] |
| } |
| }, |
| "/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"] |
| } |
| }, |
| "/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"] |
| } |
| }, |
| "/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": "<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" |
| }, |
| { |
| "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/" |
| } |
| } |
| ] |
| } |