swagger: '2.0' info: description: | The O-RAN NonRT-RIC PolicyAgent provides a REST API for management of policices. It provides support for: -Supervision of clients (R-APPs) to eliminate stray policies in case of failure -Consistency monitoring of the SMO view of policies and the actual situation in the NearRT-RICs -Consistency monitoring of NearRT-RIC capabilities (policy types)-Policy configuration. This includes:-One REST API towards all NearRT-RICs in the network -Query functions that can find all policies in a NearRT-RIC, all policies owned by a service (R-APP), all policies of a type etc. -Maps O1 resources (ManagedElement) as defined in O1 to the controlling NearRT-RIC of A1 policices. version: 1.1.0 title: A1 Policy management service contact: name: Ericsson Software Technology email: nonrtric@est.tech host: 'localhost:8081' basePath: / tags: - name: A1 Policy Management Version 1.0 description: Policy Controller - name: A1 Policy Management Version 2.0 (in progress) description: Policy Controller paths: /policies: get: tags: - A1 Policy Management Version 1.0 summary: Query policies operationId: getPoliciesUsingGET_1 produces: - '*/*' parameters: - name: ric in: query description: The name of the NearRT-RIC to get policies for. required: false type: string allowEmptyValue: false - name: service in: query description: The name of the service to get policies for. required: false type: string allowEmptyValue: false - name: type in: query description: The name of the policy type to get policies for. required: false type: string allowEmptyValue: false responses: '200': description: Policies schema: type: array items: $ref: '#/definitions/policy_info_v1' '401': description: Unauthorized '403': description: Forbidden '404': description: NearRT-RIC or type not found schema: type: string deprecated: false /policy: get: tags: - A1 Policy Management Version 1.0 summary: Returns a policy configuration operationId: getPolicyUsingGET_1 produces: - '*/*' parameters: - name: id in: query description: The identity of the policy instance. required: true type: string allowEmptyValue: false responses: '200': description: Policy found schema: type: object '401': description: Unauthorized '403': description: Forbidden '404': description: Policy is not found deprecated: false put: tags: - A1 Policy Management Version 1.0 summary: Put a policy operationId: putPolicyUsingPUT_1 consumes: - application/json produces: - '*/*' parameters: - name: id in: query description: The identity of the policy instance. required: true type: string allowEmptyValue: false - in: body name: jsonBody description: jsonBody required: true schema: type: object - name: ric in: query description: The name of the NearRT-RIC where the policy will be created. required: true type: string allowEmptyValue: false - name: service in: query description: The name of the service creating the policy. required: true type: string allowEmptyValue: false - name: transient in: query description: If the policy is transient or not (boolean defaulted to false). A policy is transient if it will be forgotten when the service needs to reconnect to the NearRT-RIC. required: false type: boolean default: false allowEmptyValue: false x-example: false - name: type in: query description: The name of the policy type. required: false type: string allowEmptyValue: false responses: '200': description: Policy updated '201': description: Policy created '401': description: Unauthorized '403': description: Forbidden '404': description: NearRT-RIC or policy type is not found schema: type: string '423': description: NearRT-RIC is not operational schema: type: string deprecated: false delete: tags: - A1 Policy Management Version 1.0 summary: Delete a policy operationId: deletePolicyUsingDELETE_1 produces: - '*/*' parameters: - name: id in: query description: The identity of the policy instance. required: true type: string allowEmptyValue: false responses: '200': description: Not used '204': description: Policy deleted '401': description: Unauthorized '403': description: Forbidden '404': description: Policy is not found schema: type: string '423': description: NearRT-RIC is not operational schema: type: string deprecated: false /policy_ids: get: tags: - A1 Policy Management Version 1.0 summary: 'Query policies, only IDs returned' operationId: getPolicyIdsUsingGET_1 produces: - '*/*' parameters: - name: ric in: query description: The name of the NearRT-RIC to get policies for. required: false type: string allowEmptyValue: false - name: service in: query description: The name of the service to get policies for. required: false type: string allowEmptyValue: false - name: type in: query description: The name of the policy type to get policies for. required: false type: string allowEmptyValue: false responses: '200': description: Policy ids schema: type: array items: type: string '401': description: Unauthorized '403': description: Forbidden '404': description: NearRT-RIC or type not found schema: type: string deprecated: false /policy_schema: get: tags: - A1 Policy Management Version 1.0 summary: Returns one policy type schema definition operationId: getPolicySchemaUsingGET produces: - '*/*' parameters: - name: id in: query description: The identity of the policy type to get the definition for. required: true type: string allowEmptyValue: false responses: '200': description: Policy schema schema: type: object '401': description: Unauthorized '403': description: Forbidden '404': description: The policy type is not found schema: type: string deprecated: false /policy_schemas: get: tags: - A1 Policy Management Version 1.0 summary: Returns policy type schema definitions operationId: getPolicySchemasUsingGET_1 produces: - '*/*' parameters: - name: ric in: query description: The name of the NearRT-RIC to get the definitions for. required: false type: string allowEmptyValue: false responses: '200': description: Policy schemas schema: type: array items: type: object '401': description: Unauthorized '403': description: Forbidden '404': description: NearRT-RIC is not found schema: type: string deprecated: false /policy_status: get: tags: - A1 Policy Management Version 1.0 summary: Returns a policy status operationId: getPolicyStatusUsingGET_1 produces: - '*/*' parameters: - name: id in: query description: The identity of the policy. required: true type: string allowEmptyValue: false responses: '200': description: Policy status schema: type: object '401': description: Unauthorized '403': description: Forbidden '404': description: Policy is not found schema: type: string deprecated: false /policy_types: get: tags: - A1 Policy Management Version 1.0 summary: Query policy type names operationId: getPolicyTypesUsingGET_1 produces: - '*/*' parameters: - name: ric in: query description: The name of the NearRT-RIC to get types for. required: false type: string allowEmptyValue: false responses: '200': description: Policy type names schema: type: array items: type: string '401': description: Unauthorized '403': description: Forbidden '404': description: NearRT-RIC is not found schema: type: string deprecated: false /ric: get: tags: - A1 Policy Management Version 1.0 summary: Returns the name of a RIC managing one Mananged Element operationId: getRicUsingGET produces: - '*/*' parameters: - name: managedElementId in: query description: The identity of the Managed Element required: true type: string allowEmptyValue: false responses: '200': description: NearRT-RIC is found schema: type: string '401': description: Unauthorized '403': description: Forbidden '404': description: NearRT-RIC is not found schema: type: string deprecated: false /rics: get: tags: - A1 Policy Management Version 1.0 summary: Query NearRT-RIC information operationId: getRicsUsingGET produces: - '*/*' parameters: - name: policyType in: query description: The name of the policy type required: false type: string allowEmptyValue: false responses: '200': description: OK schema: type: array items: $ref: '#/definitions/ric_info_v1' '401': description: Unauthorized '403': description: Forbidden '404': description: Policy type is not found schema: type: string deprecated: false /service: put: tags: - A1 Policy Management Version 1.0 summary: Register a service operationId: putServiceUsingPUT_1 consumes: - application/json produces: - '*/*' parameters: - in: body name: registrationInfo description: registrationInfo required: true schema: $ref: '#/definitions/service_registration_info_v1' responses: '200': description: Service updated schema: type: string '201': description: Service created schema: type: string '400': description: The ServiceRegistrationInfo is not accepted schema: type: string '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found deprecated: false /services: get: tags: - A1 Policy Management Version 1.0 summary: Returns service information operationId: getServicesUsingGET_1 produces: - '*/*' parameters: - name: name in: query description: The name of the service required: false type: string allowEmptyValue: false responses: '200': description: OK schema: type: array items: $ref: '#/definitions/service_status_v1' '401': description: Unauthorized '403': description: Forbidden '404': description: Service is not found schema: type: string deprecated: false delete: tags: - A1 Policy Management Version 1.0 summary: Delete a service operationId: deleteServiceUsingDELETE_1 produces: - '*/*' parameters: - name: name in: query description: The name of the service required: true type: string allowEmptyValue: false responses: '200': description: OK schema: type: string '204': description: Service deleted schema: type: string '401': description: Unauthorized '403': description: Forbidden '404': description: Service not found schema: type: string deprecated: false /services/keepalive: put: tags: - A1 Policy Management Version 1.0 summary: Heartbeat from a serice operationId: keepAliveServiceUsingPUT_1 consumes: - application/json produces: - '*/*' parameters: - name: name in: query description: The name of the service required: true type: string allowEmptyValue: false responses: '200': description: 'Service supervision timer refreshed, OK' schema: type: string '201': description: Created '401': description: Unauthorized '403': description: Forbidden '404': description: 'The service is not found, needs re-registration' deprecated: false /status: get: tags: - A1 Policy Management Version 1.0 summary: Returns status and statistics of this service operationId: getStatusUsingGET_1 produces: - '*/*' responses: '200': description: Service is living schema: type: string '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found deprecated: false /v2/policies: get: tags: - A1 Policy Management Version 2.0 (in progress) summary: Query policies description: 'If several query parameters are defined, the policies matching all conditions are returned' operationId: getPoliciesUsingGET produces: - application/json parameters: - name: policytype_id in: query description: The identity of the policy type to get policies for. required: false type: string allowEmptyValue: false - name: ric_id in: query description: The identity of the NearRT-RIC to get policies for. required: false type: string allowEmptyValue: false - name: service_id in: query description: The identity of the service to get policies for. required: false type: string allowEmptyValue: false responses: '200': description: Policies schema: $ref: '#/definitions/policy_info_list_v2' '401': description: Unauthorized '403': description: Forbidden '404': description: 'NearRT-RIC, policy type or service not found' schema: $ref: '#/definitions/error_information' deprecated: false /v2/policy: get: tags: - A1 Policy Management Version 2.0 (in progress) summary: Returns a policy configuration operationId: getPolicyUsingGET produces: - application/json parameters: - name: policy_id in: query description: The identity of the policy instance. required: true type: string allowEmptyValue: false responses: '200': description: Policy found schema: $ref: '#/definitions/json_object' '401': description: Unauthorized '403': description: Forbidden '404': description: Policy is not found schema: $ref: '#/definitions/error_information' deprecated: false put: tags: - A1 Policy Management Version 2.0 (in progress) summary: Create or update a policy operationId: putPolicyUsingPUT consumes: - application/json produces: - application/json parameters: - in: body name: jsonBody description: jsonBody required: true schema: type: object - name: policy_id in: query description: The identity of the policy instance. required: true type: string allowEmptyValue: false - name: policytype_id in: query description: The identity of the policy type. required: false type: string allowEmptyValue: false - name: ric_id in: query description: The identity of the NearRT-RIC where the policy will be created. required: true type: string allowEmptyValue: false - name: service_id in: query description: The identity of the service creating the policy. required: true type: string allowEmptyValue: false - name: transient in: query description: If the policy is transient or not (boolean defaulted to false). A policy is transient if it will not be recreated in the NearRT-RIC when it has been lost (for instance due to a restart) required: false type: boolean default: false allowEmptyValue: false x-example: false responses: '200': description: Policy updated '201': description: Policy created '401': description: Unauthorized '403': description: Forbidden '404': description: NearRT-RIC or policy type is not found schema: $ref: '#/definitions/error_information' '423': description: NearRT-RIC is not operational schema: $ref: '#/definitions/error_information' deprecated: false delete: tags: - A1 Policy Management Version 2.0 (in progress) summary: Delete a policy operationId: deletePolicyUsingDELETE produces: - '*/*' parameters: - name: policy_id in: query description: The identity of the policy instance. required: true type: string allowEmptyValue: false responses: '200': description: Not used '204': description: Policy deleted '401': description: Unauthorized '403': description: Forbidden '404': description: Policy is not found schema: $ref: '#/definitions/error_information' '423': description: NearRT-RIC is not operational schema: $ref: '#/definitions/error_information' deprecated: false /v2/policy-ids: get: tags: - A1 Policy Management Version 2.0 (in progress) summary: 'Query policies, only IDs returned' operationId: getPolicyIdsUsingGET produces: - application/json parameters: - name: policytype_id in: query description: The identity of the policy type to get policies for. required: false type: string allowEmptyValue: false - name: ric_id in: query description: The identity of the NearRT-RIC to get policies for. required: false type: string allowEmptyValue: false - name: service_id in: query description: The identity of the service to get policies for. required: false type: string allowEmptyValue: false responses: '200': description: Policy ids schema: $ref: '#/definitions/policy_id_list_v2' '401': description: Unauthorized '403': description: Forbidden '404': description: NearRT-RIC or type not found schema: $ref: '#/definitions/error_information' deprecated: false /v2/policy-schemas: get: tags: - A1 Policy Management Version 2.0 (in progress) summary: Returns policy type schema definitions operationId: getPolicySchemasUsingGET produces: - application/json parameters: - name: policytype_id in: query description: 'The identity of the policy type to get the definition for. When this parameter is given, max one schema will be returned' required: true type: string allowEmptyValue: false - name: ric_id in: query description: The identity of the NearRT-RIC to get the definitions for. required: false type: string allowEmptyValue: false responses: '200': description: Policy schemas schema: $ref: '#/definitions/policy_schema_list_v2' '401': description: Unauthorized '403': description: Forbidden '404': description: NearRT-RIC is not found schema: $ref: '#/definitions/error_information' deprecated: false /v2/policy-status: get: tags: - A1 Policy Management Version 2.0 (in progress) summary: Returns a policy status operationId: getPolicyStatusUsingGET produces: - application/json parameters: - name: policy_id in: query description: The identity of the policy. required: true type: string allowEmptyValue: false responses: '200': description: Policy status schema: $ref: '#/definitions/json_object' '401': description: Unauthorized '403': description: Forbidden '404': description: Policy is not found schema: $ref: '#/definitions/error_information' deprecated: false /v2/policy-types: get: tags: - A1 Policy Management Version 2.0 (in progress) summary: Query policy type identities operationId: getPolicyTypesUsingGET produces: - application/json parameters: - name: ric_id in: query description: The identity of the NearRT-RIC to get types for. required: false type: string allowEmptyValue: false responses: '200': description: Policy type IDs schema: $ref: '#/definitions/policy_type_id_list_v2' '401': description: Unauthorized '403': description: Forbidden '404': description: NearRT-RIC is not found schema: $ref: '#/definitions/error_information' deprecated: false /v2/ric: get: tags: - A1 Policy Management Version 2.0 (in progress) summary: Returns info for the NearRT-RIC with the given identity or managing one Mananged Element operationId: getRicUsingGET_1 produces: - application/json parameters: - name: managed_element_id in: query description: 'The identity of a Managed Element. If given, the NearRT-RIC managing the ME is returned.' required: false type: string allowEmptyValue: false - name: ric_id in: query description: The identity of a NearRT-RIC to get information for. required: false type: string allowEmptyValue: false responses: '200': description: NearRT-RIC is found schema: $ref: '#/definitions/ric_info_v2' '401': description: Unauthorized '403': description: Forbidden '404': description: NearRT-RIC is not found schema: $ref: '#/definitions/error_information' deprecated: false /v2/rics: get: tags: - A1 Policy Management Version 2.0 (in progress) summary: Query NearRT-RIC information operationId: getRicsUsingGET_1 produces: - application/json parameters: - name: policytype_id in: query description: 'The identity of a policy type. If given, all NearRT-RICs supporteing the policy type are returned' required: false type: string allowEmptyValue: false responses: '200': description: OK schema: $ref: '#/definitions/ric_info_list_v2' '401': description: Unauthorized '403': description: Forbidden '404': description: Policy type is not found schema: $ref: '#/definitions/error_information' deprecated: false /v2/services: get: tags: - A1 Policy Management Version 2.0 (in progress) summary: Returns service information operationId: getServicesUsingGET produces: - application/json parameters: - name: service_id in: query description: The identity of the service required: false type: string allowEmptyValue: false responses: '200': description: OK schema: $ref: '#/definitions/service_list_v2' '401': description: Unauthorized '403': description: Forbidden '404': description: Service is not found schema: $ref: '#/definitions/error_information' deprecated: false put: tags: - A1 Policy Management Version 2.0 (in progress) summary: Register a service operationId: putServiceUsingPUT consumes: - application/json produces: - '*/*' parameters: - in: body name: registrationInfo description: registrationInfo required: true schema: $ref: '#/definitions/service_registration_info_v2' responses: '200': description: Service updated schema: type: object '201': description: Service created schema: type: object '400': description: The ServiceRegistrationInfo is not accepted schema: $ref: '#/definitions/error_information' '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found deprecated: false delete: tags: - A1 Policy Management Version 2.0 (in progress) summary: Delete a service operationId: deleteServiceUsingDELETE produces: - '*/*' parameters: - name: service_id in: query description: The name of the service required: true type: string allowEmptyValue: false responses: '200': description: Not used '204': description: Service deleted schema: type: object '401': description: Unauthorized '403': description: Forbidden '404': description: Service not found schema: $ref: '#/definitions/error_information' deprecated: false /v2/services/keepalive: put: tags: - A1 Policy Management Version 2.0 (in progress) summary: Heartbeat indicates that the service is running operationId: keepAliveServiceUsingPUT consumes: - application/json produces: - '*/*' parameters: - name: service_id in: query description: The identity of the service required: true type: string allowEmptyValue: false responses: '200': description: 'Service supervision timer refreshed, OK' schema: type: object '201': description: Created '401': description: Unauthorized '403': description: Forbidden '404': description: 'The service is not found, needs re-registration' schema: $ref: '#/definitions/error_information' deprecated: false /v2/status: get: tags: - A1 Policy Management Version 2.0 (in progress) summary: Returns status and statistics of this service operationId: getStatusUsingGET produces: - application/json responses: '200': description: Service is living schema: $ref: '#/definitions/status_info_v2' '401': description: Unauthorized '403': description: Forbidden '404': description: Not Found deprecated: false definitions: Mono«ResponseEntity«object»»: type: object title: Mono«ResponseEntity«object»» Mono«ResponseEntity«string»»: type: object title: Mono«ResponseEntity«string»» error_information: type: object properties: detail: type: string example: Policy type not found description: ' A human-readable explanation specific to this occurrence of the problem.' status: type: integer format: int32 example: 503 description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' title: error_information description: 'Problem as defined in https://tools.ietf.org/html/rfc7807' json_object: type: object title: json_object description: A JSON object. The schema is defined by the Policy Type policy_id_list_v2: type: object properties: policy_ids: type: array description: Policy identities items: type: string title: policy_id_list_v2 description: A list of policy identities policy_info_list_v2: type: object properties: policies: type: array description: List of policy information items: $ref: '#/definitions/policy_info_v2' title: policy_info_list_v2 description: List of policy information policy_info_v1: type: object properties: id: type: string description: identity of the policy json: type: object description: the configuration of the policy lastModified: type: string description: 'timestamp, last modification time' ric: type: string description: identity of the target NearRT-RIC service: type: string description: the name of the service owning the policy type: type: string description: name of the policy type title: policy_info_v1 policy_info_v2: type: object properties: last_modified: type: string description: 'timestamp, last modification time' policy_data: type: object description: the configuration of the policy policy_id: type: string description: identity of the policy policy_type_id: type: string description: name of the policy type ric_id: type: string description: identity of the target NearRT-RIC service_id: type: string description: the name of the service owning the policy title: policy_info_v2 description: Information for one A1-P Policy policy_schema_list_v2: type: object properties: policy_schemas: type: array description: Policy type json schemas items: type: object title: policy_schema_list_v2 description: Policy type json schemas policy_type_id_list_v2: type: object properties: policy_type_ids: type: array description: Policy type identities items: type: string title: policy_type_id_list_v2 description: Information about policy types ric_info_list_v2: type: object properties: rics: type: array description: List of NearRT-RIC information items: $ref: '#/definitions/ric_info_v2' title: ric_info_list_v2 description: List of NearRT-RIC information ric_info_v1: type: object properties: managedElementIds: type: array description: O1 identities for managed entities items: type: string policyTypes: type: array description: supported policy types items: type: string ricName: type: string description: identity of the NearRT-RIC state: type: string description: state info title: ric_info_v1 ric_info_v2: type: object properties: managed_element_ids: type: array description: O1 identities for managed entities items: type: string policy_type_ids: type: array description: supported policy types items: type: string ric_id: type: string description: identity of the NearRT-RIC state: type: string description: |- State for the NearRT-RIC, values: UNAVAILABLE: The NearRT-RIC is not avialable, information may be inconsistent AVAILABLE: The normal state. Policies can be configured. + SYNCHRONIZING: The Policy Management Service is synchronizing the view of the NearRT-RIC. Policies cannot be configured. CONSISTENCY_CHECK: A consistency check between the Policy Management Service and the NearRT-RIC. Policies cannot be configured. enum: - UNAVAILABLE - AVAILABLE - SYNCHRONIZING - CONSISTENCY_CHECK title: ric_info_v2 description: Information for a NearRT-RIC service_list_v2: type: object properties: service_list: type: array description: List of service information items: $ref: '#/definitions/service_status_v2' title: service_list_v2 description: List of service information service_registration_info_v1: type: object properties: callbackUrl: type: string description: callback for notifying of RIC synchronization keepAliveIntervalSeconds: type: integer format: int64 description: 'keep alive interval for the service. This is a heartbeat supervision of the service, which in regular intevals must invoke a ''keepAlive'' REST call. When a service does not invoke this call within the given time, it is considered unavailble. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means no timeout supervision.' serviceName: type: string title: service_registration_info_v1 service_registration_info_v2: type: object required: - service_id properties: callback_url: type: string description: callback for notifying of RIC synchronization keep_alive_interval_seconds: type: integer format: int64 description: 'keep alive interval for the service. This is a heartbeat supervision of the service, which in regular intevals must invoke a ''keepAlive'' REST call. When a service does not invoke this call within the given time, it is considered unavailble. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means no timeout supervision.' service_id: type: string description: identity of the service title: service_registration_info_v2 description: Information for one service service_status_v1: type: object properties: callbackUrl: type: string description: callback for notifying of RIC synchronization keepAliveIntervalSeconds: type: integer format: int64 description: policy keep alive timeout serviceName: type: string description: identity of the service timeSinceLastActivitySeconds: type: integer format: int64 description: time since last invocation by the service title: service_status_v1 service_status_v2: type: object properties: callback_url: type: string description: callback for notifying of RIC synchronization keep_alive_interval_seconds: type: integer format: int64 description: policy keep alive timeout service_id: type: string description: identity of the service time_since_last_activity_seconds: type: integer format: int64 description: time since last invocation by the service title: service_status_v2 status_info_v2: type: object properties: status: type: string description: status text title: status_info_v2 void: type: object title: void description: Void/empty