diff options
Diffstat (limited to 'a1-policy-management/api/pms-api.json')
-rw-r--r-- | a1-policy-management/api/pms-api.json | 2884 |
1 files changed, 1865 insertions, 1019 deletions
diff --git a/a1-policy-management/api/pms-api.json b/a1-policy-management/api/pms-api.json index 33fa5e18..5dd8b493 100644 --- a/a1-policy-management/api/pms-api.json +++ b/a1-policy-management/api/pms-api.json @@ -1,1020 +1,1866 @@ -{ - "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/" - } - } - ] +{
+ "openapi" : "3.0.3",
+ "info" : {
+ "title" : "A1 Policy Management Service",
+ "description" : "<h2>General</h2><p>The O-RAN Non-RT RIC Policy Management Service provides a REST API for managemecnt of A1 policies. <br/>The main tasks of the service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining a view of supported Near-RT RIC policy types</li><li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.</li></ul><h2>APIs provided or defined by the service</h2><h3>A1 Policy Management</h3><p>This is an API for management of A1 Policies.</p><ul><li>A1 Policy retrieval, creation, modification and deletion.</li><li>Retrieval of supported A1 Policy types for a Near-RT RIC</li><li>Retrieval of status for existing A1 policies</li></ul><h3>Management of configuration</h3><p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.</p><h3>Service callbacks</h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.</p><h3>NearRT-RIC Repository</h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.</p><h3>Health Check</h3><p>API used for supervision of the PMS component.</p><h3>Service Registry and Supervision</h3><p>API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.</p><h3>Authorization API</h3><p>API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.</p><h3>Spring Boot Actuator</h3><p>Provides generic functions used to monitor and manage the Spring web application.</p>",
+ "contact" : {
+ "url" : "https://www.onap.org/",
+ "email" : "discuss-list@onap.com"
+ },
+ "license" : {
+ "name" : "Copyright (C) 2020-2023 Nordix Foundation. Licensed under the Apache License.",
+ "url" : "http://www.apache.org/licenses/LICENSE-2.0"
+ },
+ "version" : "1.3.0",
+ "x-api-id" : "a31c510b-20e6-4a08-af16-368c44d7fba8",
+ "x-audience" : "external-public"
+ },
+ "servers" : [ {
+ "url" : "/"
+ } ],
+ "tags" : [ {
+ "name" : "A1 Policy Management",
+ "description" : "API used to create polices, Policy Instances and get them as individual using an ID or get all policies/Instances."
+ }, {
+ "name" : "NearRT-RIC Repository",
+ "description" : "API used to get the NearRT-RIC for the managed element."
+ }, {
+ "name" : "Service Registry and Supervision",
+ "description" : "API used to keep the service Alive with in the timeout period"
+ }, {
+ "name" : "Health Check",
+ "description" : "API used to get the health status and statistics of this service"
+ }, {
+ "name" : "Service callbacks"
+ }, {
+ "name" : "Authorization API",
+ "description" : "API used for authorization of information A1 policy access (this is provided by an authorization producer such as OPA). <br> Note that this API is called by PMS, it is not provided."
+ }, {
+ "name" : "Configuration",
+ "description" : "API used to create or fetch the application configuration."
+ }, {
+ "name" : "Actuator",
+ "description" : "Monitor and interact",
+ "externalDocs" : {
+ "description" : "Spring Boot Actuator Web API Documentation",
+ "url" : "https://docs.spring.io/spring-boot/docs/current/actuator-api/html/"
+ }
+ } ],
+ "paths" : {
+ "/a1-policy/v2/policy-instances" : {
+ "get" : {
+ "tags" : [ "A1 Policy Management" ],
+ "summary" : "Query for A1 policy instances",
+ "description" : "Returns a list of A1 policies matching given search criteria. <br>If several query parameters are defined, the policies matching all conditions are returned.",
+ "operationId" : "getPolicyInstances",
+ "parameters" : [ {
+ "name" : "policytype_id",
+ "in" : "query",
+ "description" : "Select policies with a given type identity.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "ric_id",
+ "in" : "query",
+ "description" : "Select policies for a given Near-RT RIC identity.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "service_id",
+ "in" : "query",
+ "description" : "Select policies owned by a given service.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "type_name",
+ "in" : "query",
+ "description" : "Select policies of a given type name (type identity has the format <typename_version>)",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK - Returns A1 Policies which matches the criteria",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_info_list"
+ },
+ "examples" : {
+ "policy_info_list" : {
+ "$ref" : "#/components/examples/policy_info_list"
+ }
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found - Near-RT RIC, policy type or service not found",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/example-authz-check" : {
+ "post" : {
+ "tags" : [ "Authorization API" ],
+ "summary" : "Request for access authorization.",
+ "description" : "The authorization function decides if access is granted.",
+ "operationId" : "performAccessControl",
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_authorization"
+ }
+ }
+ },
+ "required" : true
+ },
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/authorization_result"
+ }
+ }
+ }
+ },
+ "403" : {
+ "description" : "Forbidden",
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ },
+ "example" : {
+ "status" : 403,
+ "title" : "Forbidden",
+ "detail" : "Your role does not allow to perform this action. Contact System Administrator to change your access rights."
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/threaddump" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'threaddump'",
+ "operationId" : "threaddump",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "text/plain;charset=UTF-8" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/a1-policy/v2/status" : {
+ "get" : {
+ "tags" : [ "Health Check" ],
+ "description" : "Returns status and statistics of this service",
+ "operationId" : "getStatus",
+ "responses" : {
+ "200" : {
+ "description" : "OK- Service is living Ok",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/status_info"
+ },
+ "examples" : {
+ "status_info" : {
+ "$ref" : "#/components/examples/status_info"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/loggers" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'loggers'",
+ "operationId" : "loggers",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/actuator/health/**" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'health-path'",
+ "operationId" : "health-path",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/a1-policy/v2/rics/ric" : {
+ "get" : {
+ "tags" : [ "NearRT-RIC Repository" ],
+ "summary" : "Returns info of Near-RT RIC queried by the ric-id and managed-element-id",
+ "description" : "Either a Near-RT RIC identity or a Managed Element identity can be specified.<br>The intention with Managed Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU).",
+ "operationId" : "getRic",
+ "parameters" : [ {
+ "name" : "managed_element_id",
+ "in" : "query",
+ "description" : "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "ric_id",
+ "in" : "query",
+ "description" : "The identity of a Near-RT RIC to get information for.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK - Near-RT RIC is found",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ric_info"
+ },
+ "examples" : {
+ "ric_info" : {
+ "$ref" : "#/components/examples/ric_info"
+ }
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/shutdown" : {
+ "post" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'shutdown'",
+ "operationId" : "shutdown",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/a1-policy/v2/policy-types" : {
+ "get" : {
+ "tags" : [ "A1 Policy Management" ],
+ "description" : "Query policy type identities",
+ "operationId" : "getPolicyTypes",
+ "parameters" : [ {
+ "name" : "ric_id",
+ "in" : "query",
+ "description" : "Select types for the given Near-RT RIC identity.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "type_name",
+ "in" : "query",
+ "description" : "Select types with the given type name (type identity has the format <typename_version>)",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "compatible_with_version",
+ "in" : "query",
+ "description" : "Select types that are compatible with the given version. This parameter is only applicable in conjunction with type_name. As an example version 1.9.1 is compatible with 1.0.0 but not the other way around. Matching types will be returned sorted in ascending order.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK - Policy Type IDs Found",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_type_id_list"
+ },
+ "examples" : {
+ "policy_type_id_list" : {
+ "$ref" : "#/components/examples/policy_type_id_list"
+ }
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "/a1-policy/v2/policies/{policy_id}" : {
+ "get" : {
+ "tags" : [ "A1 Policy Management" ],
+ "description" : "Returns a policy",
+ "operationId" : "getPolicy",
+ "parameters" : [ {
+ "name" : "policy_id",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK - Policy found",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_info"
+ },
+ "examples" : {
+ "policy_info" : {
+ "$ref" : "#/components/examples/policy_info"
+ }
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ },
+ "delete" : {
+ "tags" : [ "A1 Policy Management" ],
+ "summary" : "Delete a policy",
+ "description" : "Deleting the policy using the Policy's Policy ID.",
+ "operationId" : "deletePolicy",
+ "parameters" : [ {
+ "name" : "policy_id",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK - Policy deleted",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/void"
+ }
+ }
+ }
+ },
+ "423" : {
+ "description" : "Locked - HTTP Status code which can be used when the state is Locked",
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ },
+ "example" : {
+ "status" : 423,
+ "title" : "Locked",
+ "detail" : "Requested resource is in a locked state."
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/metrics/{requiredMetricName}" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'metrics-requiredMetricName'",
+ "operationId" : "metrics-requiredMetricName",
+ "parameters" : [ {
+ "name" : "requiredMetricName",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/a1-policy/v2/configuration" : {
+ "get" : {
+ "tags" : [ "Configuration" ],
+ "description" : "Returns the contents of the application configuration file",
+ "operationId" : "getConfiguration",
+ "responses" : {
+ "200" : {
+ "description" : "OK - Configuration",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "type" : "string"
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ },
+ "put" : {
+ "tags" : [ "Configuration" ],
+ "description" : "Replace the current configuration with the given configuration",
+ "operationId" : "putConfiguration",
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ },
+ "required" : true
+ },
+ "responses" : {
+ "200" : {
+ "description" : "OK - Configuration updated",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/void"
+ }
+ }
+ }
+ },
+ "400" : {
+ "description" : "Bad Request",
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ },
+ "example" : {
+ "status" : 400,
+ "title" : "Bad Request",
+ "detail" : "The provided request is not valid."
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/actuator" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator root web endpoint",
+ "operationId" : "links",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "$ref" : "#/components/schemas/Link"
+ }
+ }
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "$ref" : "#/components/schemas/Link"
+ }
+ }
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "$ref" : "#/components/schemas/Link"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/actuator/loggers/{name}" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'loggers-name'",
+ "operationId" : "loggers-name",
+ "parameters" : [ {
+ "name" : "name",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ },
+ "post" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'loggers-name'",
+ "operationId" : "loggers-name_2",
+ "parameters" : [ {
+ "name" : "name",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "type" : "string",
+ "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", "OFF" ]
+ }
+ }
+ }
+ },
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/a1-policy/v2/services/{service_id}/keepalive" : {
+ "put" : {
+ "tags" : [ "Service Registry and Supervision" ],
+ "summary" : "Heartbeat indicates that the service is running",
+ "description" : "A registered service should invoke this operation regularly to indicate that it is still alive. If a registered service fails to invoke this operation before the end of a timeout period the service will be deregistered and all its A1 policies wil be removed. (This timeout can be set or disabled when each service is initially registered)",
+ "operationId" : "keepAliveService",
+ "parameters" : [ {
+ "name" : "service_id",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK - Service supervision timer refreshed, OK",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/metrics" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'metrics'",
+ "operationId" : "metrics",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/a1-policy/v2/rics" : {
+ "get" : {
+ "tags" : [ "NearRT-RIC Repository" ],
+ "summary" : "Query Near-RT RIC information",
+ "description" : "The call returns all Near-RT RICs that supports a given policy type identity",
+ "operationId" : "getRics",
+ "parameters" : [ {
+ "name" : "policytype_id",
+ "in" : "query",
+ "description" : "The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ric_info_list"
+ },
+ "examples" : {
+ "ric_info_list" : {
+ "$ref" : "#/components/examples/ric_info_list"
+ }
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "/a1-policy/v2/services" : {
+ "get" : {
+ "tags" : [ "Service Registry and Supervision" ],
+ "summary" : "Returns service information",
+ "description" : "Either information about a registered service with given identity or all registered services are returned.",
+ "operationId" : "getServices",
+ "parameters" : [ {
+ "name" : "service_id",
+ "in" : "query",
+ "description" : "The identity of the service",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/service_status_list"
+ },
+ "examples" : {
+ "service_status_list" : {
+ "$ref" : "#/components/examples/service_status_list"
+ }
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ },
+ "put" : {
+ "tags" : [ "Service Registry and Supervision" ],
+ "summary" : "Register a service",
+ "description" : "Registering a service is needed to:<ul><li>Get callbacks about available NearRT RICs.</li><li>Activate supervision of the service. If a service is inactive, its policies will automatically be deleted.</li></ul>Policies can be created even if the service is not registerred. This is a feature which it is optional to use.",
+ "operationId" : "putService",
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/service_registration_info"
+ }
+ }
+ },
+ "required" : true
+ },
+ "responses" : {
+ "200" : {
+ "description" : "OK - Service updated",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ },
+ "201" : {
+ "description" : "Created - Service created",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ },
+ "400" : {
+ "description" : "Bad Request",
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ },
+ "example" : {
+ "status" : 400,
+ "title" : "Bad Request",
+ "detail" : "The provided request is not valid."
+ }
+ }
+ }
+ }
+ },
+ "callbacks" : {
+ "RICStatus" : {
+ "{$request.body#/callback_url}" : {
+ "post" : {
+ "tags" : [ "Service callbacks" ],
+ "summary" : "Callback for Near-RT RIC status",
+ "description" : "The URL to this call is registered at Service registration.",
+ "operationId" : "serviceCallback",
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/service_callback_info_v2"
+ }
+ }
+ },
+ "required" : true
+ },
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/void"
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/info" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'info'",
+ "operationId" : "info",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/status" : {
+ "get" : {
+ "tags" : [ "Health Check" ],
+ "description" : "Returns status and statistics of this service",
+ "operationId" : "getStatusV1",
+ "responses" : {
+ "200" : {
+ "description" : "OK - Service is living",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/a1-policy/v2/policy-types/{policytype_id}" : {
+ "get" : {
+ "tags" : [ "A1 Policy Management" ],
+ "description" : "Returns a policy type definition",
+ "operationId" : "getPolicyTypeDefinition",
+ "parameters" : [ {
+ "name" : "policytype_id",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK - schema of the given policy type",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_type_definition"
+ },
+ "examples" : {
+ "policy_type_definition" : {
+ "$ref" : "#/components/examples/policy_type_definition"
+ }
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/logfile" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'logfile'",
+ "operationId" : "logfile",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "text/plain;charset=UTF-8" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/actuator/health" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'health'",
+ "operationId" : "health",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/vnd.spring-boot.actuator.v3+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ },
+ "application/vnd.spring-boot.actuator.v2+json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/a1-policy/v2/policies" : {
+ "get" : {
+ "tags" : [ "A1 Policy Management" ],
+ "summary" : "Query policy identities",
+ "description" : "Returns a list of A1 policies matching given search criteria. <br>If several query parameters are defined, the policies matching all conditions are returned.",
+ "operationId" : "getPolicyIds",
+ "parameters" : [ {
+ "name" : "policytype_id",
+ "in" : "query",
+ "description" : "Select policies of a given policy type identity.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "ric_id",
+ "in" : "query",
+ "description" : "Select policies of a given Near-RT RIC identity.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "service_id",
+ "in" : "query",
+ "description" : "Select policies owned by a given service.",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ }, {
+ "name" : "type_name",
+ "in" : "query",
+ "description" : "Select policies of types with the given type name (type identity has the format <typename_version>)",
+ "required" : false,
+ "style" : "form",
+ "explode" : true,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK - Policy identities",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_id_list"
+ },
+ "examples" : {
+ "policy_id_list" : {
+ "$ref" : "#/components/examples/policy_id_list"
+ }
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ },
+ "put" : {
+ "tags" : [ "A1 Policy Management" ],
+ "description" : "Create or update a policy",
+ "operationId" : "putPolicy",
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_info"
+ }
+ }
+ },
+ "required" : true
+ },
+ "responses" : {
+ "200" : {
+ "description" : "OK - Policy updated",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/void"
+ }
+ }
+ }
+ },
+ "201" : {
+ "description" : "Created - Policy created",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/void"
+ }
+ }
+ }
+ },
+ "423" : {
+ "description" : "Locked - HTTP Status code which can be used when the state is Locked",
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ },
+ "example" : {
+ "status" : 423,
+ "title" : "Locked",
+ "detail" : "Requested resource is in a locked state."
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/a1-policy/v2/services/{service_id}" : {
+ "delete" : {
+ "tags" : [ "Service Registry and Supervision" ],
+ "description" : "Unregister a service",
+ "operationId" : "deleteService",
+ "parameters" : [ {
+ "name" : "service_id",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "204" : {
+ "description" : "No Content - Service unregistered",
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ }
+ },
+ "/actuator/heapdump" : {
+ "get" : {
+ "tags" : [ "Actuator" ],
+ "summary" : "Actuator web endpoint 'heapdump'",
+ "operationId" : "heapdump",
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "content" : {
+ "application/octet-stream" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ }
+ }
+ },
+ "x-internal" : true
+ }
+ },
+ "/a1-policy/v2/policies/{policy_id}/status" : {
+ "get" : {
+ "tags" : [ "A1 Policy Management" ],
+ "description" : "Returns a policy status",
+ "operationId" : "getPolicyStatus",
+ "parameters" : [ {
+ "name" : "policy_id",
+ "in" : "path",
+ "required" : true,
+ "style" : "simple",
+ "explode" : false,
+ "schema" : {
+ "type" : "string"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK - Policy status",
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/policy_status_info"
+ },
+ "examples" : {
+ "policy_status_info" : {
+ "$ref" : "#/components/examples/policy_status_info"
+ }
+ }
+ }
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "components" : {
+ "schemas" : {
+ "policy_type_definition" : {
+ "type" : "object",
+ "properties" : {
+ "policy_schema" : {
+ "type" : "object",
+ "description" : "Policy type json schema. The schema is a json object following http://json-schema.org/draft-07/schema"
+ }
+ },
+ "description" : "Contains policy type schema definition"
+ },
+ "error_information" : {
+ "type" : "object",
+ "properties" : {
+ "detail" : {
+ "type" : "string",
+ "description" : " A human-readable explanation specific to this occurrence of the problem.",
+ "example" : "Policy type not found"
+ },
+ "title" : {
+ "type" : "string",
+ "description" : "A specific error name",
+ "example" : "Not Found"
+ },
+ "status" : {
+ "type" : "integer",
+ "description" : "The HTTP status code generated by the origin server for this occurrence of the problem. ",
+ "format" : "int32",
+ "example" : 404
+ }
+ },
+ "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807"
+ },
+ "void" : {
+ "type" : "object",
+ "description" : "Void/empty"
+ },
+ "status_info" : {
+ "type" : "object",
+ "properties" : {
+ "status" : {
+ "type" : "string",
+ "description" : "status text"
+ }
+ }
+ },
+ "authorization_result" : {
+ "required" : [ "result" ],
+ "type" : "object",
+ "properties" : {
+ "result" : {
+ "type" : "boolean",
+ "description" : "If true, the access is granted"
+ }
+ },
+ "description" : "Result of authorization",
+ "example" : {
+ "result" : true
+ }
+ },
+ "ric_info" : {
+ "type" : "object",
+ "properties" : {
+ "ric_id" : {
+ "type" : "string",
+ "description" : "identity of the Near-RT RIC"
+ },
+ "managed_element_ids" : {
+ "type" : "array",
+ "description" : "O1 identities for managed entities",
+ "items" : {
+ "type" : "string",
+ "description" : "O1 identities for managed entities"
+ }
+ },
+ "state" : {
+ "type" : "string",
+ "description" : "Represents the states for a Near-RT RIC",
+ "enum" : [ "UNAVAILABLE", "AVAILABLE", "SYNCHRONIZING", "CONSISTENCY_CHECK" ]
+ },
+ "policytype_ids" : {
+ "type" : "array",
+ "description" : "supported policy types",
+ "items" : {
+ "type" : "string",
+ "description" : "supported policy types"
+ }
+ }
+ },
+ "description" : "Information for a Near-RT RIC"
+ },
+ "service_registration_info" : {
+ "required" : [ "service_id" ],
+ "type" : "object",
+ "properties" : {
+ "callback_url" : {
+ "type" : "string",
+ "description" : "callback for notifying of Near-RT RIC state changes"
+ },
+ "service_id" : {
+ "type" : "string",
+ "description" : "identity of the service"
+ },
+ "keep_alive_interval_seconds" : {
+ "type" : "integer",
+ "description" : "keep alive interval for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled.",
+ "format" : "int64"
+ }
+ },
+ "description" : "Information for one service"
+ },
+ "policy_info_list" : {
+ "type" : "object",
+ "properties" : {
+ "policies" : {
+ "type" : "array",
+ "description" : "List of policy information",
+ "items" : {
+ "$ref" : "#/components/schemas/policy_info"
+ }
+ }
+ },
+ "description" : "List of policy information"
+ },
+ "policy_status_info" : {
+ "type" : "object",
+ "properties" : {
+ "last_modified" : {
+ "type" : "string",
+ "description" : "timestamp, last modification time"
+ },
+ "status" : {
+ "type" : "object",
+ "description" : "the Policy status"
+ }
+ },
+ "description" : "Status for one A1-P Policy"
+ },
+ "service_status" : {
+ "type" : "object",
+ "properties" : {
+ "callback_url" : {
+ "type" : "string",
+ "description" : "callback for notifying of RIC synchronization"
+ },
+ "service_id" : {
+ "type" : "string",
+ "description" : "identity of the service"
+ },
+ "keep_alive_interval_seconds" : {
+ "type" : "integer",
+ "description" : "policy keep alive timeout",
+ "format" : "int64"
+ },
+ "time_since_last_activity_seconds" : {
+ "type" : "integer",
+ "description" : "time since last invocation by the service",
+ "format" : "int64"
+ }
+ }
+ },
+ "ric_info_list" : {
+ "type" : "object",
+ "properties" : {
+ "rics" : {
+ "type" : "array",
+ "description" : "List of Near-RT RIC information",
+ "items" : {
+ "$ref" : "#/components/schemas/ric_info"
+ }
+ }
+ },
+ "description" : "List of Near-RT RIC information"
+ },
+ "input" : {
+ "required" : [ "access_type", "auth_token", "policy_type_id" ],
+ "type" : "object",
+ "properties" : {
+ "access_type" : {
+ "type" : "string",
+ "description" : "Access type",
+ "enum" : [ "READ", "WRITE", "DELETE" ]
+ },
+ "auth_token" : {
+ "type" : "string",
+ "description" : "Authorization token"
+ },
+ "policy_type_id" : {
+ "type" : "string",
+ "description" : "Policy type identifier"
+ }
+ },
+ "description" : "input"
+ },
+ "policy_authorization" : {
+ "required" : [ "input" ],
+ "type" : "object",
+ "properties" : {
+ "input" : {
+ "$ref" : "#/components/schemas/input"
+ }
+ },
+ "description" : "Authorization request for A1 policy requests"
+ },
+ "policy_type_id_list" : {
+ "type" : "object",
+ "properties" : {
+ "policytype_ids" : {
+ "type" : "array",
+ "description" : "Policy type identities",
+ "items" : {
+ "type" : "string",
+ "description" : "Policy type identities"
+ }
+ }
+ },
+ "description" : "Information about policy types"
+ },
+ "policy_info" : {
+ "required" : [ "policy_data", "policy_id", "policytype_id", "ric_id" ],
+ "type" : "object",
+ "properties" : {
+ "ric_id" : {
+ "type" : "string",
+ "description" : "identity of the target Near-RT RIC"
+ },
+ "policy_id" : {
+ "type" : "string",
+ "description" : "identity of the policy"
+ },
+ "transient" : {
+ "type" : "boolean",
+ "description" : "if true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.",
+ "nullable" : false,
+ "example" : false,
+ "default" : false
+ },
+ "service_id" : {
+ "type" : "string",
+ "description" : "the identity of the service owning the policy. This can be used to group the policies (it is possible to get all policies associated to a service). Note that the service does not need to be registered.",
+ "default" : ""
+ },
+ "policy_data" : {
+ "type" : "object",
+ "description" : "the configuration of the policy"
+ },
+ "status_notification_uri" : {
+ "type" : "string",
+ "description" : "Callback URI for policy status updates"
+ },
+ "policytype_id" : {
+ "type" : "string",
+ "description" : "identity of the policy type"
+ }
+ },
+ "description" : "Information for one A1-P Policy"
+ },
+ "policy_id_list" : {
+ "type" : "object",
+ "properties" : {
+ "policy_ids" : {
+ "type" : "array",
+ "description" : "Policy identities",
+ "items" : {
+ "type" : "string",
+ "description" : "Policy identities"
+ }
+ }
+ },
+ "description" : "A list of policy identities",
+ "example" : {
+ "policy_ids" : [ "policy_ids", "policy_ids" ]
+ }
+ },
+ "service_status_list" : {
+ "type" : "object",
+ "properties" : {
+ "service_list" : {
+ "type" : "array",
+ "description" : "List of service information",
+ "items" : {
+ "$ref" : "#/components/schemas/service_status"
+ }
+ }
+ }
+ },
+ "service_callback_info_v2" : {
+ "required" : [ "event_type", "ric_id" ],
+ "type" : "object",
+ "properties" : {
+ "ric_id" : {
+ "type" : "string",
+ "description" : "identity of a Near-RT RIC"
+ },
+ "event_type" : {
+ "type" : "string",
+ "description" : "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management",
+ "enum" : [ "AVAILABLE" ]
+ }
+ },
+ "description" : "Information transferred as in Service callbacks (callback_url)"
+ },
+ "Link" : {
+ "type" : "object",
+ "properties" : {
+ "templated" : {
+ "type" : "boolean"
+ },
+ "href" : {
+ "type" : "string"
+ }
+ }
+ }
+ },
+ "responses" : {
+ "Locked" : {
+ "description" : "Locked - HTTP Status code which can be used when the state is Locked",
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ },
+ "example" : {
+ "status" : 423,
+ "title" : "Locked",
+ "detail" : "Requested resource is in a locked state."
+ }
+ }
+ }
+ },
+ "BadRequest" : {
+ "description" : "Bad Request",
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ },
+ "example" : {
+ "status" : 400,
+ "title" : "Bad Request",
+ "detail" : "The provided request is not valid."
+ }
+ }
+ }
+ },
+ "Forbidden" : {
+ "description" : "Forbidden",
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/error_information"
+ },
+ "example" : {
+ "status" : 403,
+ "title" : "Forbidden",
+ "detail" : "Your role does not allow to perform this action. Contact System Administrator to change your access rights."
+ }
+ }
+ }
+ },
+ "NotFound" : {
+ "description" : "Not Found",
+ "content" : {
+ "application/problem+json" : {
+ "example" : [ ]
+ }
+ }
+ }
+ },
+ "examples" : {
+ "service_status" : {
+ "description" : "List of service information",
+ "value" : {
+ "callback_url" : "callback_url",
+ "service_id" : "service_id",
+ "keep_alive_interval_seconds" : 0,
+ "time_since_last_activity_seconds" : 6
+ }
+ },
+ "service_status_list" : {
+ "description" : "List of service information",
+ "value" : {
+ "service_list" : [ {
+ "callback_url" : "callback_url",
+ "service_id" : "service_id",
+ "keep_alive_interval_seconds" : 0,
+ "time_since_last_activity_seconds" : 6
+ }, {
+ "callback_url" : "callback_url",
+ "service_id" : "service_id",
+ "keep_alive_interval_seconds" : 0,
+ "time_since_last_activity_seconds" : 6
+ } ]
+ }
+ },
+ "policy_type_definition" : {
+ "description" : "Schema of the given Policy type",
+ "value" : {
+ "policy_schema" : "{}"
+ }
+ },
+ "policy_type_id_list" : {
+ "description" : "Array of policy type id's",
+ "value" : {
+ "policy_type_id_list" : [ "policytype_id", "policytype_id" ]
+ }
+ },
+ "policy_info" : {
+ "description" : "Policy information of one A1-P policy",
+ "value" : {
+ "ric_id" : "ric_id",
+ "policy_id" : "policy_id",
+ "transient" : false,
+ "service_id" : "service_id",
+ "policy_data" : "{}",
+ "status_notification_uri" : "status_notification_uri",
+ "policytype_id" : "policytype_id"
+ }
+ },
+ "policy_info_list" : {
+ "description" : "List of policy information",
+ "value" : {
+ "policies" : [ {
+ "ric_id" : "ric_id",
+ "policy_id" : "policy_id",
+ "transient" : false,
+ "service_id" : "service_id",
+ "policy_data" : "{}",
+ "status_notification_uri" : "status_notification_uri",
+ "policytype_id" : "policytype_id"
+ }, {
+ "ric_id" : "ric_id",
+ "policy_id" : "policy_id",
+ "transient" : false,
+ "service_id" : "service_id",
+ "policy_data" : "{}",
+ "status_notification_uri" : "status_notification_uri",
+ "policytype_id" : "policytype_id"
+ } ]
+ }
+ },
+ "policy_id_list" : {
+ "description" : "A list of policy identities",
+ "value" : {
+ "policy_ids" : [ "some_policy_id", "some_policy_id" ]
+ }
+ },
+ "policy_status_info" : {
+ "description" : "Status for one A1-P Policy",
+ "value" : {
+ "last_modified" : "last_modified",
+ "status" : {
+ "value" : {
+ "status" : "status"
+ }
+ }
+ }
+ },
+ "status_info" : {
+ "value" : {
+ "status" : "status"
+ }
+ },
+ "ric_info" : {
+ "value" : {
+ "ric_id" : "ric_id",
+ "managed_element_ids" : [ "some_managed_element_id", "some_managed_element_id" ],
+ "state" : "UNAVAILABLE",
+ "policytype_ids" : [ "some_policytype_id", "some_policytype_id" ]
+ }
+ },
+ "ric_info_list" : {
+ "value" : {
+ "rics" : [ {
+ "ric_id" : "ric_id",
+ "managed_element_ids" : [ "some_managed_element_id", "some_managed_element_id" ],
+ "state" : "UNAVAILABLE",
+ "policytype_ids" : [ "policytype_id", "policytype_id" ]
+ }, {
+ "ric_id" : "ric_id",
+ "managed_element_ids" : [ "managed_element_ids", "managed_element_ids" ],
+ "state" : "UNAVAILABLE",
+ "policytype_ids" : [ "policytype_ids", "policytype_ids" ]
+ } ]
+ }
+ }
+ }
+ }
}
\ No newline at end of file |