diff options
10 files changed, 720 insertions, 2248 deletions
diff --git a/a1-policy-management/api/api.yaml b/a1-policy-management/api/api.yaml deleted file mode 100644 index ac10f4b6..00000000 --- a/a1-policy-management/api/api.yaml +++ /dev/null @@ -1,842 +0,0 @@ -openapi: 3.0.1 -info: - title: A1 Policy management service - description: 'The O-RAN Non-RT 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 RICs -Consistency monitoring of RIC capabilities (policy types) -Policy configuration. This includes: -One REST API towards all RICs in the network -Query functions that can find all policies in a 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 RIC - of A1 policices.' - version: "1.0" -servers: -- url: https://localhost:8433/ -- url: http://localhost:8081/ -tags: -- name: A1 Policy Management - description: Policy Controller -- name: Health check - description: Status Controller -- name: RIC Repository - description: Ric Repository Controller -- name: Service registry and supervision - description: Service Controller -paths: - /policies: - get: - tags: - - A1 Policy Management - summary: Query policies - operationId: getPoliciesUsingGET - parameters: - - name: ric - in: query - description: The name of the Near-RT RIC to get policies for. - allowEmptyValue: false - schema: - type: string - example: 'ric1' - - name: service - in: query - description: The name of the service to get policies for. - allowEmptyValue: false - schema: - type: string - example: 'controlpanel' - - name: type - in: query - description: The name of the policy type to get policies for. - allowEmptyValue: false - schema: - type: string - example: '1' - responses: - 200: - description: Policies - content: - text/plain;charset=ISO-8859-1: - schema: - type: array - items: - $ref: '#/components/schemas/PolicyInfo' - examples: - OSC: - $ref: '#/components/examples/Policies-OSC' - STD: - $ref: '#/components/examples/Policies-STD' - 404: - description: RIC or type not found - content: - text/plain;charset=ISO-8859-1: - schema: - type: string - example: RIC not found - deprecated: false - /policy: - get: - tags: - - A1 Policy Management - summary: Returns a policy configuration - operationId: getPolicyUsingGET - parameters: - - name: id - in: query - description: The identity of the policy instance. - required: true - allowEmptyValue: false - schema: - type: string - example: 'e26d76e1-b43f-427e-a3c2-b7c4e05a6431' - responses: - 200: - description: Policy found - content: - text/plain;charset=ISO-8859-1: - schema: - type: object - examples: - OSC: - $ref: '#/components/examples/Policy-OSC' - STD: - $ref: '#/components/examples/Policy-STD' - 404: - description: Policy is not found - content: - text/plain;charset=ISO-8859-1: - schema: - type: string - example: 'Could not find policy: e26d76e1-b43f-427e-a3c2-b7c4e05a6431' - deprecated: false - put: - tags: - - A1 Policy Management - summary: Put a policy - operationId: putPolicyUsingPUT - parameters: - - name: id - in: query - description: The identity of the policy instance. - required: true - allowEmptyValue: false - schema: - type: string - example: '73428e58-1670-4972-8498-e7e8f1003631' - - name: ric - in: query - description: The name of the Near-RT RIC where the policy will be created. - required: true - allowEmptyValue: false - schema: - type: string - example: 'ric1' - - name: service - in: query - description: The name of the service creating the policy. - required: true - allowEmptyValue: false - schema: - type: string - example: 'Service1' - - 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 Near-RT RIC. - allowEmptyValue: false - schema: - type: boolean - default: false - example: false - - name: type - in: query - description: The name of the policy type. The policy type is mandatory for OSC A1 version and should not be provided for STD A1 version. - allowEmptyValue: false - schema: - type: string - example: 'STD_PolicyModelUnconstrained_0.2.0' - requestBody: - description: jsonBody - content: - application/json: - schema: - type: object - example: - scope: - qosId: "3" - ueId: "1" - statement: - priorityLevel: 1 - required: true - responses: - 200: - description: Policy updated - 201: - description: Policy created - 404: - description: RIC or policy type is not found - 423: - description: RIC is not operational - content: - text/plain;charset=ISO-8859-1: - schema: - type: string - example: 'Ric is not operational, RIC name:ric1, state:UNAVAILABLE' - delete: - tags: - - A1 Policy Management - summary: Delete a policy - operationId: deletePolicyUsingDELETE - parameters: - - name: id - in: query - description: The identity of the policy instance. - required: true - allowEmptyValue: false - schema: - type: string - example: '73428e58-1670-4972-8498-e7e8f1003631' - responses: - 200: - description: OK - 204: - description: Policy deleted - 404: - description: Policy is not found - 423: - description: RIC is not operational - content: - text/plain;charset=ISO-8859-1: - schema: - type: string - example: 'Ric is not operational, RIC name:ric1,state:UNAVAILABLE' - deprecated: false - /policy_ids: - get: - tags: - - A1 Policy Management - summary: Query policies, only IDs returned - operationId: getPolicyIdsUsingGET - parameters: - - name: ric - in: query - description: The name of the Near-RT RIC to get policies for. - allowEmptyValue: false - schema: - type: string - example: 'ric1' - - name: service - in: query - description: The name of the service to get policies for. - allowEmptyValue: false - schema: - type: string - example: 'Service1' - - name: type - in: query - description: The name of the policy type to get policies for. - allowEmptyValue: false - schema: - type: string - example: '1' - responses: - 200: - description: Policy ids - content: - text/plain;charset=ISO-8859-1: - schema: - type: array - items: - type: string - examples: - OSC: - value: - - 73428e58-1670-4972-8498-e7e8f1003631 - - 73428e58-1670-4972-8498-e7e8f100363e - STD: - value: - - 73428e58-1670-4972-8498-e7e8f1003632 - - 73428e58-1670-4972-8498-e7e8f1003634 - 404: - description: RIC or type not found - content: - text/plain;charset=ISO-8859-1: - schema: - type: string - example: RIC not found - deprecated: false - /policy_schema: - get: - tags: - - A1 Policy Management - summary: Returns one policy type schema definition. Applicable only for OSC Version. - operationId: getPolicySchemaUsingGET - parameters: - - name: id - in: query - description: The identity of the policy type to get the definition for. - required: true - allowEmptyValue: false - schema: - type: string - example: '11' - responses: - 200: - description: Policy schema - content: - text/plain;charset=ISO-8859-1: - schema: - type: object - examples: - OSC: - value: - $schema: http://json-schema.org/draft-07/schema# - description: QoS policy type - title: "1" - type: object - properties: - scope: - additionalProperties: false - type: object - properties: - qosId: - type: string - ueId: - type: string - required: - - ueId - - qosId - statement: - additionalProperties: false - type: object - properties: - priorityLevel: - type: number - required: - - priorityLevel - 404: - description: Type not found - content: - text/plain;charset=ISO-8859-1: - schema: - type: string - example: 'org.oransc.policyagent.exceptions.ServiceException: Could - not find type: 11' - deprecated: false - /policy_schemas: - get: - tags: - - A1 Policy Management - summary: Returns policy type schema definitions - operationId: getPolicySchemasUsingGET - parameters: - - name: ric - in: query - description: The name of the Near-RT RIC to get the definitions for. - allowEmptyValue: false - schema: - type: string - example: ric1 - responses: - 200: - description: Policy schemas - content: - text/plain;charset=ISO-8859-1: - schema: - type: array - items: - type: object - properties: {} - examples: - OSC: - value: - - $schema: http://json-schema.org/draft-07/schema# - description: QoS policy type - title: "1" - type: object - properties: - scope: - additionalProperties: false - type: object - properties: - qosId: - type: string - ueId: - type: string - required: - - ueId - - qosId - statement: - additionalProperties: false - type: object - properties: - priorityLevel: - type: number - required: - - priorityLevel - 404: - description: RIC is not found - content: - text/plain;charset=ISO-8859-1: - schema: - type: string - example: 'org.oransc.policyagent.exceptions.ServiceException: Could - not find ric: ric1' - deprecated: false - /policy_status: - get: - tags: - - A1 Policy Management - summary: Returns a policy status - operationId: getPolicyStatusUsingGET - parameters: - - name: id - in: query - description: The identity of the policy. - required: true - allowEmptyValue: false - schema: - type: string - example: 73428e58-1670-4972-8498-e7e8f100363q - responses: - 200: - description: Policy status - content: - text/plain;charset=ISO-8859-1: - schema: - type: object - examples: - OSC: - value: - instance_status: NOT IN EFFECT - has_been_deleted: "false" - created_at: 07/20/2020, 17:15:39 - STD: - value: - enforceStatus: UNDEFINED - 404: - description: Policy is not found - content: - text/plain;charset=ISO-8859-1: - schema: - type: string - example: 'Could not find policy: 73428e58-1670-4972-8498-e7e8f100363q' - deprecated: false - /policy_types: - get: - tags: - - A1 Policy Management - summary: Query policy type names - operationId: getPolicyTypesUsingGET - parameters: - - name: ric - in: query - description: The name of the Near-RT RIC to get types for. - allowEmptyValue: false - schema: - type: string - example: 'ric11' - responses: - 200: - description: Policy type names - content: - text/plain;charset=ISO-8859-1: - schema: - type: array - items: - type: string - examples: - OSC: - value: - - "1" - 404: - description: RIC is not found - content: - text/plain;charset=ISO-8859-1: - schema: - type: string - example: 'org.oransc.policyagent.exceptions.ServiceException: Could - not find ric: ric11' - deprecated: false - /ric: - get: - tags: - - RIC Repository - summary: Returns the name of a RIC managing one Mananged Element - operationId: getRicUsingGET - parameters: - - name: managedElementId - in: query - description: The identity of the Managed Element - required: true - allowEmptyValue: false - schema: - type: string - example: 'Node 1' - responses: - 200: - description: RIC is found - content: - text/plain;charset=ISO-8859-1: - schema: - type: string - example: ric1 - 404: - description: RIC is not found - content: - text/plain;charset=ISO-8859-1: - schema: - type: string - example: No RIC found - deprecated: false - /rics: - get: - tags: - - RIC Repository - summary: Query Near-RT RIC information - operationId: getRicsUsingGET - parameters: - - name: policyType - in: query - description: The name of the policy type - allowEmptyValue: false - schema: - type: string - example: 'STD_PolicyModelUnconstrained_0.2.0' - responses: - 200: - description: OK - content: - text/plain;charset=ISO-8859-1: - schema: - type: array - items: - $ref: '#/components/schemas/RicInfo' - 404: - description: Policy type is not found - content: - text/plain;charset=ISO-8859-1: - schema: - type: string - example: Policy type not found - deprecated: false - /service: - put: - tags: - - Service registry and supervision - summary: Register a service - operationId: putServiceUsingPUT - requestBody: - description: registrationInfo - content: - application/json: - schema: - $ref: '#/components/schemas/ServiceRegistrationInfo' - required: true - responses: - 200: - description: Service updated - content: - text/plain;charset=ISO-8859-1: - schema: - type: string - example: OK - 201: - description: Service created - content: - text/plain;charset=ISO-8859-1: - schema: - type: string - example: OK - 400: - description: The ServiceRegistrationInfo is not accepted - content: - text/plain;charset=ISO-8859-1: - schema: - type: string - example: Missing mandatory parameter 'serviceName' - 404: - description: Not Found - deprecated: false - x-codegen-request-body-name: registrationInfo - /services: - get: - tags: - - Service registry and supervision - summary: Returns service information - operationId: getServicesUsingGET - parameters: - - name: name - in: query - description: The name of the service - allowEmptyValue: false - schema: - type: string - example: 'service1' - responses: - 200: - description: OK - content: - text/plain;charset=ISO-8859-1: - schema: - type: array - example: - - serviceName: "service1" - keepAliveIntervalSeconds: 1000 - timeSinceLastActivitySeconds: 7 - callbackUrl: http://localhost:8080 - items: - $ref: '#/components/schemas/ServiceStatus' - 404: - description: Service is not found - content: - text/plain;charset=ISO-8859-1: - schema: - type: string - example: Service not found - deprecated: false - delete: - tags: - - Service registry and supervision - summary: Delete a service - operationId: deleteServiceUsingDELETE - parameters: - - name: name - in: query - description: The name of the service - required: true - allowEmptyValue: false - schema: - type: string - example: 'service1' - responses: - 200: - description: OK - 204: - description: OK - 404: - description: Service not found - content: - text/plain;charset=ISO-8859-1: - schema: - type: string - example: 'Could not find service: service1' - deprecated: false - /services/keepalive: - put: - tags: - - Service registry and supervision - summary: Heartbeat from a serice - operationId: keepAliveServiceUsingPUT - parameters: - - name: name - in: query - description: The name of the service - required: true - allowEmptyValue: false - schema: - type: string - example: 'service1' - responses: - 200: - description: Service supervision timer refreshed, OK - content: - text/plain;charset=ISO-8859-1: - schema: - type: string - example: OK - 201: - description: Created - 404: - description: The service is not found, needs re-registration - content: - text/plain;charset=ISO-8859-1: - schema: - type: string - example: 'Could not find service: service1' - deprecated: false - /status: - get: - tags: - - Health check - summary: Returns status and statistics of this service - operationId: getStatusUsingGET - responses: - 200: - description: Service is living - content: - '*/*': - schema: - type: string - example: alive - 404: - description: Not Found - deprecated: false -components: - schemas: - PolicyInfo: - title: PolicyInfo - type: object - properties: - id: - type: string - description: identity of the policy - json: - type: object - properties: {} - description: the configuration of the policy - lastModified: - type: string - description: timestamp, last modification time - ric: - type: string - description: identity of the target Near-RT RIC - service: - type: string - description: the name of the service owning the policy - type: - type: string - description: name of the policy type - RicInfo: - title: RicInfo - 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 ric - state: - type: string - description: state info - example: - - ricName: ric1 - managedElementIds: - - ME-1 - - ME-2 - policyTypes: - - '1' - state: AVAILABLE - - ricName: ric3 - managedElementIds: - - ME-1 - - ME-2 - policyTypes: - - '' - state: AVAILABLE - - ricName: ric2 - managedElementIds: - - ME-1 - - ME-2 - policyTypes: [] - state: AVAILABLE - - ricName: ric4 - managedElementIds: - - ME-1 - - ME-2 - policyTypes: - - '' - state: AVAILABLE - ServiceRegistrationInfo: - title: ServiceRegistrationInfo - required: - - serviceName - type: object - properties: - callbackUrl: - type: string - description: callback for notifying of RIC synchronization - keepAliveIntervalSeconds: - type: integer - 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. - format: int64 - serviceName: - type: string - description: identity of the service - example: - callbackUrl: http://localhost:9080 - keepAliveIntervalSeconds: 1000 - serviceName: service1 - ServiceStatus: - title: ServiceStatus - type: object - properties: - callbackUrl: - type: string - description: callback for notifying of RIC synchronization - keepAliveIntervalSeconds: - type: integer - description: policy keep alive timeout - format: int64 - serviceName: - type: string - description: identity of the service - timeSinceLastActivitySeconds: - type: integer - description: time since last invocation by the service - format: int64 - examples: - Policies-STD: - value: - - id: a986eb38-aac3-4897-bdf5-0333ea2bf730 - type: '' - ric: ric3 - json: - scope: - ueId: ue1 - groupId: group1 - sliceId: slice1 - qosId: qos1 - cellId: cell1 - statement: - priorityLevel: 5 - service: controlpanel - lastModified: '2020-07-22T12:21:48.157854Z' - Policies-OSC: - value: - - id: 73428e58-1670-4972-8498-e7e8f1003631 - type: '1' - ric: ric1 - json: - scope: - qosId: '36' - ueId: '1' - statement: - priorityLevel: 1 - service: c - lastModified: '2020-07-20T17:16:18.244383Z' - - id: 73428e58-1670-4972-8498-e7e8f100363e - type: '1' - ric: ric1 - json: - scope: - qosId: '34' - ueId: '1' - statement: - priorityLevel: 1 - service: controlpanel - lastModified: '2020-07-20T17:15:39.320469Z' - Policy-STD: - value: - scope: - ueId: ue1 - groupId: group1 - sliceId: slice1 - qosId: qos1 - cellId: cell1 - statement: - priorityLevel: 5 - Policy-OSC: - value: - scope: - qosId: '36' - ueId: '1' - statement: - priorityLevel: 1
\ No newline at end of file diff --git a/a1-policy-management/api/api_generated.json b/a1-policy-management/api/api_generated.json deleted file mode 100644 index 399855fc..00000000 --- a/a1-policy-management/api/api_generated.json +++ /dev/null @@ -1,1383 +0,0 @@ -{ - "basePath": "/", - "paths": { - "/policy_types": {"get": { - "summary": "Query policy type names", - "deprecated": false, - "produces": ["*/*"], - "operationId": "getPolicyTypesUsingGET", - "responses": { - "200": { - "schema": { - "type": "array", - "items": {"type": "string"} - }, - "description": "Policy type names" - }, - "401": {"description": "Unauthorized"}, - "403": {"description": "Forbidden"}, - "404": { - "schema": {"type": "string"}, - "description": "Near-RT RIC is not found" - } - }, - "parameters": [{ - "in": "query", - "allowEmptyValue": false, - "name": "ric", - "description": "The name of the Near-RT RIC to get types for.", - "type": "string", - "required": false - }], - "tags": ["A1 Policy Management Version 1.0"] - }}, - "/v2/policy": { - "get": { - "summary": "Returns a policy configuration", - "deprecated": false, - "produces": ["application/json"], - "operationId": "getPolicyUsingGET_1", - "responses": { - "200": { - "schema": {"$ref": "#/definitions/json_object"}, - "description": "Policy found" - }, - "401": {"description": "Unauthorized"}, - "403": {"description": "Forbidden"}, - "404": { - "schema": {"$ref": "#/definitions/error_information"}, - "description": "Policy is not found" - } - }, - "parameters": [{ - "in": "query", - "allowEmptyValue": false, - "name": "policy_id", - "description": "The identity of the policy instance.", - "type": "string", - "required": true - }], - "tags": ["A1 Policy Management Version 2.0 (in progress)"] - }, - "delete": { - "summary": "Delete a policy", - "deprecated": false, - "produces": ["*/*"], - "operationId": "deletePolicyUsingDELETE_1", - "responses": { - "200": {"description": "Not used"}, - "401": {"description": "Unauthorized"}, - "423": { - "schema": {"$ref": "#/definitions/error_information"}, - "description": "Near-RT RIC is not operational" - }, - "204": {"description": "Policy deleted"}, - "403": {"description": "Forbidden"}, - "404": { - "schema": {"$ref": "#/definitions/error_information"}, - "description": "Policy is not found" - } - }, - "parameters": [{ - "in": "query", - "allowEmptyValue": false, - "name": "policy_id", - "description": "The identity of the policy instance.", - "type": "string", - "required": true - }], - "tags": ["A1 Policy Management Version 2.0 (in progress)"] - }, - "put": { - "summary": "Create or update a policy", - "deprecated": false, - "produces": ["application/json"], - "operationId": "putPolicyUsingPUT_1", - "responses": { - "200": {"description": "Policy updated"}, - "201": {"description": "Policy created"}, - "401": {"description": "Unauthorized"}, - "423": { - "schema": {"$ref": "#/definitions/error_information"}, - "description": "Near-RT RIC is not operational" - }, - "403": {"description": "Forbidden"}, - "404": { - "schema": {"$ref": "#/definitions/error_information"}, - "description": "Near-RT RIC or policy type is not found" - } - }, - "parameters": [ - { - "schema": {"type": "object"}, - "in": "body", - "name": "jsonBody", - "description": "jsonBody", - "required": true - }, - { - "in": "query", - "allowEmptyValue": false, - "name": "policy_id", - "description": "The identity of the policy instance.", - "type": "string", - "required": true - }, - { - "in": "query", - "allowEmptyValue": false, - "name": "policytype_id", - "description": "The identity of the policy type.", - "type": "string", - "required": false - }, - { - "in": "query", - "allowEmptyValue": false, - "name": "ric_id", - "description": "The identity of the Near-RT RIC where the policy will be created.", - "type": "string", - "required": true - }, - { - "in": "query", - "allowEmptyValue": false, - "name": "service_id", - "description": "The identity of the service creating the policy.", - "type": "string", - "required": true - }, - { - "default": false, - "in": "query", - "allowEmptyValue": false, - "name": "transient", - "x-example": false, - "description": "If the policy is transient or not (boolean defaulted to false). A policy is transient if it will not be recreated in the Near-RT RIC when it has been lost (for instance due to a restart)", - "type": "boolean", - "required": false - } - ], - "tags": ["A1 Policy Management Version 2.0 (in progress)"], - "consumes": ["application/json"] - } - }, - "/v2/status": {"get": { - "summary": "Returns status and statistics of this service", - "deprecated": false, - "produces": ["application/json"], - "operationId": "getStatusUsingGET_1", - "responses": { - "200": { - "schema": {"$ref": "#/definitions/status_info_v2"}, - "description": "Service is living" - }, - "401": {"description": "Unauthorized"}, - "403": {"description": "Forbidden"}, - "404": {"description": "Not Found"} - }, - "tags": ["A1 Policy Management Version 2.0 (in progress)"] - }}, - "/policy_ids": {"get": { - "summary": "Query policies, only policy identities returned", - "deprecated": false, - "produces": ["*/*"], - "operationId": "getPolicyIdsUsingGET", - "responses": { - "200": { - "schema": { - "type": "array", - "items": {"type": "string"} - }, - "description": "Policy identitiess" - }, - "401": {"description": "Unauthorized"}, - "403": {"description": "Forbidden"}, - "404": { - "schema": {"type": "string"}, - "description": "Near-RT RIC or type not found" - } - }, - "parameters": [ - { - "in": "query", - "allowEmptyValue": false, - "name": "ric", - "description": "The name of the Near-RT RIC to get policies for.", - "type": "string", - "required": false - }, - { - "in": "query", - "allowEmptyValue": false, - "name": "service", - "description": "The name of the service to get policies for.", - "type": "string", - "required": false - }, - { - "in": "query", - "allowEmptyValue": false, - "name": "type", - "description": "The name of the policy type to get policies for.", - "type": "string", - "required": false - } - ], - "tags": ["A1 Policy Management Version 1.0"] - }}, - "/policy_schemas": {"get": { - "summary": "Returns policy type schema definitions", - "deprecated": false, - "produces": ["*/*"], - "operationId": "getPolicySchemasUsingGET", - "responses": { - "200": { - "schema": { - "type": "array", - "items": {"type": "object"} - }, - "description": "Policy schemas" - }, - "401": {"description": "Unauthorized"}, - "403": {"description": "Forbidden"}, - "404": { - "schema": {"type": "string"}, - "description": "Near-RT RIC is not found" - } - }, - "parameters": [{ - "in": "query", - "allowEmptyValue": false, - "name": "ric", - "description": "The name of the Near-RT RIC to get the definitions for.", - "type": "string", - "required": false - }], - "tags": ["A1 Policy Management Version 1.0"] - }}, - "/v2/policy-types": {"get": { - "summary": "Query policy type identities", - "deprecated": false, - "produces": ["application/json"], - "operationId": "getPolicyTypesUsingGET_1", - "responses": { - "200": { - "schema": {"$ref": "#/definitions/policy_type_id_list_v2"}, - "description": "Policy type IDs" - }, - "401": {"description": "Unauthorized"}, - "403": {"description": "Forbidden"}, - "404": { - "schema": {"$ref": "#/definitions/error_information"}, - "description": "Near-RT RIC is not found" - } - }, - "parameters": [{ - "in": "query", - "allowEmptyValue": false, - "name": "ric_id", - "description": "The identity of the Near-RT RIC to get types for.", - "type": "string", - "required": false - }], - "tags": ["A1 Policy Management Version 2.0 (in progress)"] - }}, - "/v2/services": { - "get": { - "summary": "Returns service information", - "deprecated": false, - "produces": ["application/json"], - "description": "Either information about a registered service with given identity or all registered services are returned.", - "operationId": "getServicesUsingGET_1", - "responses": { - "200": { - "schema": {"$ref": "#/definitions/service_list_v2"}, - "description": "OK" - }, - "401": {"description": "Unauthorized"}, - "403": {"description": "Forbidden"}, - "404": { - "schema": {"$ref": "#/definitions/error_information"}, - "description": "Service is not found" - } - }, - "parameters": [{ - "in": "query", - "allowEmptyValue": false, - "name": "service_id", - "description": "The identity of the service", - "type": "string", - "required": false - }], - "tags": ["A1 Policy Management Version 2.0 (in progress)"] - }, - "delete": { - "summary": "Unregister a service", - "deprecated": false, - "produces": ["*/*"], - "operationId": "deleteServiceUsingDELETE_1", - "responses": { - "200": {"description": "Not used"}, - "401": {"description": "Unauthorized"}, - "204": { - "schema": {"type": "object"}, - "description": "Service unregistered" - }, - "403": {"description": "Forbidden"}, - "404": { - "schema": {"$ref": "#/definitions/error_information"}, - "description": "Service not found" - } - }, - "parameters": [{ - "in": "query", - "allowEmptyValue": false, - "name": "service_id", - "description": "The idenitity of the service", - "type": "string", - "required": true - }], - "tags": ["A1 Policy Management Version 2.0 (in progress)"] - }, - "put": { - "summary": "Register a service", - "deprecated": false, - "produces": ["*/*"], - "description": "Registering a service is needed to:<ul><li>Get callbacks.<\/li><li>Activate supervision of the service. If a service is inactive, its policies will be deleted.<\/li><\/ul>", - "operationId": "putServiceUsingPUT_1", - "responses": { - "200": { - "schema": {"type": "object"}, - "description": "Service updated" - }, - "201": { - "schema": {"type": "object"}, - "description": "Service created" - }, - "400": { - "schema": {"$ref": "#/definitions/error_information"}, - "description": "The ServiceRegistrationInfo is not accepted" - }, - "401": {"description": "Unauthorized"}, - "403": {"description": "Forbidden"}, - "404": {"description": "Not Found"} - }, - "parameters": [{ - "schema": {"$ref": "#/definitions/service_registration_info_v2"}, - "in": "body", - "name": "registrationInfo", - "description": "registrationInfo", - "required": true - }], - "tags": ["A1 Policy Management Version 2.0 (in progress)"], - "consumes": ["application/json"] - } - }, - "/services": { - "get": { - "summary": "Returns service information", - "deprecated": false, - "produces": ["*/*"], - "operationId": "getServicesUsingGET", - "responses": { - "200": { - "schema": { - "type": "array", - "items": {"$ref": "#/definitions/service_status_v1"} - }, - "description": "OK" - }, - "401": {"description": "Unauthorized"}, - "403": {"description": "Forbidden"}, - "404": { - "schema": {"type": "string"}, - "description": "Service is not found" - } - }, - "parameters": [{ - "in": "query", - "allowEmptyValue": false, - "name": "name", - "description": "The name of the service", - "type": "string", - "required": false - }], - "tags": ["A1 Policy Management Version 1.0"] - }, - "delete": { - "summary": "Delete a service", - "deprecated": false, - "produces": ["*/*"], - "operationId": "deleteServiceUsingDELETE", - "responses": { - "200": { - "schema": {"type": "string"}, - "description": "OK" - }, - "401": {"description": "Unauthorized"}, - "204": { - "schema": {"type": "string"}, - "description": "Service deleted" - }, - "403": {"description": "Forbidden"}, - "404": { - "schema": {"type": "string"}, - "description": "Service not found" - } - }, - "parameters": [{ - "in": "query", - "allowEmptyValue": false, - "name": "name", - "description": "The name of the service", - "type": "string", - "required": true - }], - "tags": ["A1 Policy Management Version 1.0"] - } - }, - "/ric": {"get": { - "summary": "Returns the name of a RIC managing one Mananged Element", - "deprecated": false, - "produces": ["*/*"], - "operationId": "getRicUsingGET", - "responses": { - "200": { - "schema": {"type": "string"}, - "description": "Near-RT RIC is found" - }, - "401": {"description": "Unauthorized"}, - "403": {"description": "Forbidden"}, - "404": { - "schema": {"type": "string"}, - "description": "Near-RT RIC is not found" - } - }, - "parameters": [{ - "in": "query", - "allowEmptyValue": false, - "name": "managedElementId", - "description": "The identity of the Managed Element", - "type": "string", - "required": true - }], - "tags": ["A1 Policy Management Version 1.0"] - }}, - "/services/keepalive": {"put": { - "summary": "Heartbeat from a serice", - "deprecated": false, - "produces": ["*/*"], - "operationId": "keepAliveServiceUsingPUT", - "responses": { - "200": { - "schema": {"type": "string"}, - "description": "Service supervision timer refreshed, OK" - }, - "201": {"description": "Created"}, - "401": {"description": "Unauthorized"}, - "403": {"description": "Forbidden"}, - "404": {"description": "The service is not found, needs re-registration"} - }, - "parameters": [{ - "in": "query", - "allowEmptyValue": false, - "name": "name", - "description": "The name of the service", - "type": "string", - "required": true - }], - "tags": ["A1 Policy Management Version 1.0"], - "consumes": ["application/json"] - }}, - "/v2/services/keepalive": {"put": { - "summary": "Heartbeat indicates that the service is running", - "deprecated": false, - "produces": ["*/*"], - "operationId": "keepAliveServiceUsingPUT_1", - "responses": { - "200": { - "schema": {"type": "object"}, - "description": "Service supervision timer refreshed, OK" - }, - "201": {"description": "Created"}, - "401": {"description": "Unauthorized"}, - "403": {"description": "Forbidden"}, - "404": { - "schema": {"$ref": "#/definitions/error_information"}, - "description": "The service is not found, needs re-registration" - } - }, - "parameters": [{ - "in": "query", - "allowEmptyValue": false, - "name": "service_id", - "description": "The identity of the service", - "type": "string", - "required": true - }], - "tags": ["A1 Policy Management Version 2.0 (in progress)"], - "consumes": ["application/json"] - }}, - "/v2/policy-schemas": {"get": { - "summary": "Returns policy type schema definitions", - "deprecated": false, - "produces": ["application/json"], - "operationId": "getPolicySchemasUsingGET_1", - "responses": { - "200": { - "schema": {"$ref": "#/definitions/policy_schema_list_v2"}, - "description": "Policy schemas" - }, - "401": {"description": "Unauthorized"}, - "403": {"description": "Forbidden"}, - "404": { - "schema": {"$ref": "#/definitions/error_information"}, - "description": "Near-RT RIC is not found" - } - }, - "parameters": [ - { - "in": "query", - "allowEmptyValue": false, - "name": "policytype_id", - "description": "The identity of the policy type to get the definition for. When this parameter is given, max one schema will be returned", - "type": "string", - "required": true - }, - { - "in": "query", - "allowEmptyValue": false, - "name": "ric_id", - "description": "The identity of the Near-RT RIC to get the definitions for.", - "type": "string", - "required": false - } - ], - "tags": ["A1 Policy Management Version 2.0 (in progress)"] - }}, - "/v2/ric": {"get": { - "summary": "Returns info for a Near-RT RIC", - "deprecated": false, - "produces": ["application/json"], - "description": "Either a Near-RT RIC identity or a Mananged Element identity can be specified.<br>The intention with Mananged Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU).", - "operationId": "getRicUsingGET_1", - "responses": { - "200": { - "schema": {"$ref": "#/definitions/ric_info_v2"}, - "description": "Near-RT RIC is found" - }, - "401": {"description": "Unauthorized"}, - "403": {"description": "Forbidden"}, - "404": { - "schema": {"$ref": "#/definitions/error_information"}, - "description": "Near-RT RIC is not found" - } - }, - "parameters": [ - { - "in": "query", - "allowEmptyValue": false, - "name": "managed_element_id", - "description": "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.", - "type": "string", - "required": false - }, - { - "in": "query", - "allowEmptyValue": false, - "name": "ric_id", - "description": "The identity of a Near-RT RIC to get information for.", - "type": "string", - "required": false - } - ], - "tags": ["A1 Policy Management Version 2.0 (in progress)"] - }}, - "/policy": { - "get": { - "summary": "Returns a policy configuration", - "deprecated": false, - "produces": ["*/*"], - "operationId": "getPolicyUsingGET", - "responses": { - "200": { - "schema": {"type": "object"}, - "description": "Policy found" - }, - "401": {"description": "Unauthorized"}, - "403": {"description": "Forbidden"}, - "404": {"description": "Policy is not found"} - }, - "parameters": [{ - "in": "query", - "allowEmptyValue": false, - "name": "id", - "description": "The identity of the policy instance.", - "type": "string", - "required": true - }], - "tags": ["A1 Policy Management Version 1.0"] - }, - "delete": { - "summary": "Delete a policy", - "deprecated": false, - "produces": ["*/*"], - "operationId": "deletePolicyUsingDELETE", - "responses": { - "200": {"description": "Not used"}, - "401": {"description": "Unauthorized"}, - "423": { - "schema": {"type": "string"}, - "description": "Near-RT RIC is not operational" - }, - "204": {"description": "Policy deleted"}, - "403": {"description": "Forbidden"}, - "404": { - "schema": {"type": "string"}, - "description": "Policy is not found" - } - }, - "parameters": [{ - "in": "query", - "allowEmptyValue": false, - "name": "id", - "description": "The identity of the policy instance.", - "type": "string", - "required": true - }], - "tags": ["A1 Policy Management Version 1.0"] - }, - "put": { - "summary": "Put a policy", - "deprecated": false, - "produces": ["*/*"], - "operationId": "putPolicyUsingPUT", - "responses": { - "200": {"description": "Policy updated"}, - "201": {"description": "Policy created"}, - "401": {"description": "Unauthorized"}, - "423": { - "schema": {"type": "string"}, - "description": "Near-RT RIC is not operational" - }, - "403": {"description": "Forbidden"}, - "404": { - "schema": {"type": "string"}, - "description": "Near-RT RIC or policy type is not found" - } - }, - "parameters": [ - { - "in": "query", - "allowEmptyValue": false, - "name": "id", - "description": "The identity of the policy instance.", - "type": "string", - "required": true - }, - { - "schema": {"type": "object"}, - "in": "body", - "name": "jsonBody", - "description": "jsonBody", - "required": true - }, - { - "in": "query", - "allowEmptyValue": false, - "name": "ric", - "description": "The name of the Near-RT RIC where the policy will be created.", - "type": "string", - "required": true - }, - { - "in": "query", - "allowEmptyValue": false, - "name": "service", - "description": "The name of the service creating the policy.", - "type": "string", - "required": true - }, - { - "default": false, - "in": "query", - "allowEmptyValue": false, - "name": "transient", - "x-example": false, - "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 Near-RT RIC.", - "type": "boolean", - "required": false - }, - { - "in": "query", - "allowEmptyValue": false, - "name": "type", - "description": "The name of the policy type.", - "type": "string", - "required": false - } - ], - "tags": ["A1 Policy Management Version 1.0"], - "consumes": ["application/json"] - } - }, - "/status": {"get": { - "summary": "Returns status and statistics of this service", - "deprecated": false, - "produces": ["*/*"], - "operationId": "getStatusUsingGET", - "responses": { - "200": { - "schema": {"type": "string"}, - "description": "Service is living" - }, - "401": {"description": "Unauthorized"}, - "403": {"description": "Forbidden"}, - "404": {"description": "Not Found"} - }, - "tags": ["A1 Policy Management Version 1.0"] - }}, - "/v2/policy-ids": {"get": { - "summary": "Query policies, only policy identities are returned", - "deprecated": false, - "produces": ["application/json"], - "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": "getPolicyIdsUsingGET_1", - "responses": { - "200": { - "schema": {"$ref": "#/definitions/policy_id_list_v2"}, - "description": "Policy identities" - }, - "401": {"description": "Unauthorized"}, - "403": {"description": "Forbidden"}, - "404": { - "schema": {"$ref": "#/definitions/error_information"}, - "description": "Near-RT RIC or type not found" - } - }, - "parameters": [ - { - "in": "query", - "allowEmptyValue": false, - "name": "policytype_id", - "description": "The identity of the policy type to get policies for.", - "type": "string", - "required": false - }, - { - "in": "query", - "allowEmptyValue": false, - "name": "ric_id", - "description": "The identity of the Near-RT RIC to get policies for.", - "type": "string", - "required": false - }, - { - "in": "query", - "allowEmptyValue": false, - "name": "service_id", - "description": "The identity of the service to get policies for.", - "type": "string", - "required": false - } - ], - "tags": ["A1 Policy Management Version 2.0 (in progress)"] - }}, - "/policies": {"get": { - "summary": "Query policies", - "deprecated": false, - "produces": ["*/*"], - "operationId": "getPoliciesUsingGET", - "responses": { - "200": { - "schema": { - "type": "array", - "items": {"$ref": "#/definitions/policy_info_v1"} - }, - "description": "Policies" - }, - "401": {"description": "Unauthorized"}, - "403": {"description": "Forbidden"}, - "404": { - "schema": {"type": "string"}, - "description": "Near-RT RIC or type not found" - } - }, - "parameters": [ - { - "in": "query", - "allowEmptyValue": false, - "name": "ric", - "description": "The name of the Near-RT RIC to get policies for.", - "type": "string", - "required": false - }, - { - "in": "query", - "allowEmptyValue": false, - "name": "service", - "description": "The name of the service to get policies for.", - "type": "string", - "required": false - }, - { - "in": "query", - "allowEmptyValue": false, - "name": "type", - "description": "The name of the policy type to get policies for.", - "type": "string", - "required": false - } - ], - "tags": ["A1 Policy Management Version 1.0"] - }}, - "/v2/policy-status": {"get": { - "summary": "Returns a policy status", - "deprecated": false, - "produces": ["application/json"], - "operationId": "getPolicyStatusUsingGET_1", - "responses": { - "200": { - "schema": {"$ref": "#/definitions/json_object"}, - "description": "Policy status" - }, - "401": {"description": "Unauthorized"}, - "403": {"description": "Forbidden"}, - "404": { - "schema": {"$ref": "#/definitions/error_information"}, - "description": "Policy is not found" - } - }, - "parameters": [{ - "in": "query", - "allowEmptyValue": false, - "name": "policy_id", - "description": "The identity of the policy.", - "type": "string", - "required": true - }], - "tags": ["A1 Policy Management Version 2.0 (in progress)"] - }}, - "/policy_schema": {"get": { - "summary": "Returns one policy type schema definition", - "deprecated": false, - "produces": ["*/*"], - "operationId": "getPolicySchemaUsingGET", - "responses": { - "200": { - "schema": {"type": "object"}, - "description": "Policy schema" - }, - "401": {"description": "Unauthorized"}, - "403": {"description": "Forbidden"}, - "404": { - "schema": {"type": "string"}, - "description": "The policy type is not found" - } - }, - "parameters": [{ - "in": "query", - "allowEmptyValue": false, - "name": "id", - "description": "The identity of the policy type to get the definition for.", - "type": "string", - "required": true - }], - "tags": ["A1 Policy Management Version 1.0"] - }}, - "/rics": {"get": { - "summary": "Query Near-RT RIC information", - "deprecated": false, - "produces": ["*/*"], - "operationId": "getRicsUsingGET", - "responses": { - "200": { - "schema": { - "type": "array", - "items": {"$ref": "#/definitions/ric_info_v1"} - }, - "description": "OK" - }, - "401": {"description": "Unauthorized"}, - "403": {"description": "Forbidden"}, - "404": { - "schema": {"type": "string"}, - "description": "Policy type is not found" - } - }, - "parameters": [{ - "in": "query", - "allowEmptyValue": false, - "name": "policyType", - "description": "The name of the policy type", - "type": "string", - "required": false - }], - "tags": ["A1 Policy Management Version 1.0"] - }}, - "/service": {"put": { - "summary": "Register a service", - "deprecated": false, - "produces": ["*/*"], - "operationId": "putServiceUsingPUT", - "responses": { - "200": { - "schema": {"type": "string"}, - "description": "Service updated" - }, - "201": { - "schema": {"type": "string"}, - "description": "Service created" - }, - "400": { - "schema": {"type": "string"}, - "description": "The ServiceRegistrationInfo is not accepted" - }, - "401": {"description": "Unauthorized"}, - "403": {"description": "Forbidden"}, - "404": {"description": "Not Found"} - }, - "parameters": [{ - "schema": {"$ref": "#/definitions/service_registration_info_v1"}, - "in": "body", - "name": "registrationInfo", - "description": "registrationInfo", - "required": true - }], - "tags": ["A1 Policy Management Version 1.0"], - "consumes": ["application/json"] - }}, - "/v2/policies": {"get": { - "summary": "Query for existing A1 policies", - "deprecated": false, - "produces": ["application/json"], - "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": "getPoliciesUsingGET_1", - "responses": { - "200": { - "schema": {"$ref": "#/definitions/policy_info_list_v2"}, - "description": "Policies" - }, - "401": {"description": "Unauthorized"}, - "403": {"description": "Forbidden"}, - "404": { - "schema": {"$ref": "#/definitions/error_information"}, - "description": "Near-RT RIC, policy type or service not found" - } - }, - "parameters": [ - { - "in": "query", - "allowEmptyValue": false, - "name": "policytype_id", - "description": "The identity of the policy type to get policies for.", - "type": "string", - "required": false - }, - { - "in": "query", - "allowEmptyValue": false, - "name": "ric_id", - "description": "The identity of the Near-RT RIC to get policies for.", - "type": "string", - "required": false - }, - { - "in": "query", - "allowEmptyValue": false, - "name": "service_id", - "description": "The identity of the service to get policies for.", - "type": "string", - "required": false - } - ], - "tags": ["A1 Policy Management Version 2.0 (in progress)"] - }}, - "/policy_status": {"get": { - "summary": "Returns a policy status", - "deprecated": false, - "produces": ["*/*"], - "operationId": "getPolicyStatusUsingGET", - "responses": { - "200": { - "schema": {"type": "object"}, - "description": "Policy status" - }, - "401": {"description": "Unauthorized"}, - "403": {"description": "Forbidden"}, - "404": { - "schema": {"type": "string"}, - "description": "Policy is not found" - } - }, - "parameters": [{ - "in": "query", - "allowEmptyValue": false, - "name": "id", - "description": "The identity of the policy.", - "type": "string", - "required": true - }], - "tags": ["A1 Policy Management Version 1.0"] - }}, - "/v2/rics": {"get": { - "summary": "Query Near-RT RIC information", - "deprecated": false, - "produces": ["application/json"], - "description": "The call returns all Near-RT RICs that supports a given policy type identity", - "operationId": "getRicsUsingGET_1", - "responses": { - "200": { - "schema": {"$ref": "#/definitions/ric_info_list_v2"}, - "description": "OK" - }, - "401": {"description": "Unauthorized"}, - "403": {"description": "Forbidden"}, - "404": { - "schema": {"$ref": "#/definitions/error_information"}, - "description": "Policy type is not found" - } - }, - "parameters": [{ - "in": "query", - "allowEmptyValue": false, - "name": "policytype_id", - "description": "The identity of a policy type. If given, all Near-RT RICs supporteing the policy type are returned", - "type": "string", - "required": false - }], - "tags": ["A1 Policy Management Version 2.0 (in progress)"] - }} - }, - "host": "localhost:33209", - "definitions": { - "error_information": { - "description": "Problem as defined in https://tools.ietf.org/html/rfc7807", - "type": "object", - "title": "error_information", - "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": 503 - } - } - }, - "void": { - "description": "Void/empty", - "type": "object", - "title": "void" - }, - "status_info_v2": { - "type": "object", - "title": "status_info_v2", - "properties": {"status": { - "description": "status text", - "type": "string" - }} - }, - "policy_info_v1": { - "type": "object", - "title": "policy_info_v1", - "properties": { - "service": { - "description": "the name of the service owning the policy", - "type": "string" - }, - "json": { - "description": "the configuration of the policy", - "type": "object" - }, - "id": { - "description": "identity of the policy", - "type": "string" - }, - "lastModified": { - "description": "timestamp, last modification time", - "type": "string" - }, - "type": { - "description": "name of the policy type", - "type": "string" - }, - "ric": { - "description": "identity of the target Near-RT RIC", - "type": "string" - } - } - }, - "policy_schema_list_v2": { - "description": "Policy type json schemas", - "type": "object", - "title": "policy_schema_list_v2", - "properties": {"policy_schemas": { - "description": "Policy type json schemas. The schema is a json object following http://json-schema.org/draft-07/schema", - "type": "array", - "items": {"type": "object"} - }} - }, - "Mono«ResponseEntity«object»»": { - "type": "object", - "title": "Mono«ResponseEntity«object»»" - }, - "ric_info_v2": { - "description": "Information for a Near-RT RIC", - "type": "object", - "title": "ric_info_v2", - "properties": { - "ric_id": { - "description": "identity of the Near-RT RIC", - "type": "string" - }, - "managed_element_ids": { - "description": "O1 identities for managed entities", - "type": "array", - "items": {"type": "string"} - }, - "state": { - "description": "State for the Near-RT RIC, values: \nUNAVAILABLE: The Near-RT RIC is not avialable, information may be inconsistent \nAVAILABLE: The normal state. Policies can be configured. +\nSYNCHRONIZING: The Policy Management Service is synchronizing the view of the Near-RT RIC. Policies cannot be configured. \nCONSISTENCY_CHECK: A consistency check between the Policy Management Service and the Near-RT RIC. Policies cannot be configured.", - "type": "string", - "enum": [ - "UNAVAILABLE", - "AVAILABLE", - "SYNCHRONIZING", - "CONSISTENCY_CHECK" - ] - }, - "policy_type_ids": { - "description": "supported policy types", - "type": "array", - "items": {"type": "string"} - } - } - }, - "service_registration_info_v1": { - "type": "object", - "title": "service_registration_info_v1", - "properties": { - "keepAliveIntervalSeconds": { - "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.", - "type": "integer" - }, - "callbackUrl": { - "description": "callback for notifying of RIC synchronization", - "type": "string" - }, - "serviceName": {"type": "string"} - } - }, - "policy_info_list_v2": { - "description": "List of policy information", - "type": "object", - "title": "policy_info_list_v2", - "properties": {"policies": { - "description": "List of policy information", - "type": "array", - "items": {"$ref": "#/definitions/policy_info_v2"} - }} - }, - "service_registration_info_v2": { - "description": "Information for one service", - "type": "object", - "title": "service_registration_info_v2", - "required": ["service_id"], - "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": "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.", - "type": "integer" - } - } - }, - "ric_info_v1": { - "type": "object", - "title": "ric_info_v1", - "properties": { - "managedElementIds": { - "description": "O1 identities for managed entities", - "type": "array", - "items": {"type": "string"} - }, - "policyTypes": { - "description": "supported policy types", - "type": "array", - "items": {"type": "string"} - }, - "state": { - "description": "state info", - "type": "string" - }, - "ricName": { - "description": "identity of the Near-RT RIC", - "type": "string" - } - } - }, - "policy_type_id_list_v2": { - "description": "Information about policy types", - "type": "object", - "title": "policy_type_id_list_v2", - "properties": {"policy_type_ids": { - "description": "Policy type identities", - "type": "array", - "items": {"type": "string"} - }} - }, - "service_status_v1": { - "type": "object", - "title": "service_status_v1", - "properties": { - "keepAliveIntervalSeconds": { - "format": "int64", - "description": "policy keep alive timeout", - "type": "integer" - }, - "callbackUrl": { - "description": "callback for notifying of RIC synchronization", - "type": "string" - }, - "timeSinceLastActivitySeconds": { - "format": "int64", - "description": "time since last invocation by the service", - "type": "integer" - }, - "serviceName": { - "description": "identity of the service", - "type": "string" - } - } - }, - "service_status_v2": { - "type": "object", - "title": "service_status_v2", - "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", - "title": "ric_info_list_v2", - "properties": {"rics": { - "description": "List of Near-RT RIC information", - "type": "array", - "items": {"$ref": "#/definitions/ric_info_v2"} - }} - }, - "policy_id_list_v2": { - "description": "A list of policy identities", - "type": "object", - "title": "policy_id_list_v2", - "properties": {"policy_ids": { - "description": "Policy identities", - "type": "array", - "items": {"type": "string"} - }} - }, - "policy_info_v2": { - "description": "Information for one A1-P Policy", - "type": "object", - "title": "policy_info_v2", - "properties": { - "ric_id": { - "description": "identity of the target Near-RT RIC", - "type": "string" - }, - "policy_id": { - "description": "identity of the policy", - "type": "string" - }, - "service_id": { - "description": "the name of the service owning the policy", - "type": "string" - }, - "policy_data": { - "description": "the configuration of the policy", - "type": "object" - }, - "last_modified": { - "description": "timestamp, last modification time", - "type": "string" - }, - "policy_type_id": { - "description": "name of the policy type", - "type": "string" - } - } - }, - "json_object": { - "description": "A JSON object defining the configuration of the policy. The schema is defined by the Policy Type.", - "type": "object", - "title": "json_object" - }, - "service_list_v2": { - "description": "List of service information", - "type": "object", - "title": "service_list_v2", - "properties": {"service_list": { - "description": "List of service information", - "type": "array", - "items": {"$ref": "#/definitions/service_status_v2"} - }} - }, - "Mono«ResponseEntity«string»»": { - "type": "object", - "title": "Mono«ResponseEntity«string»»" - } - }, - "swagger": "2.0", - "info": { - "x-audience": "external-partner", - "x-api-id": "60f9a0e7-343f-43bf-9194-d8d65688d465", - "contact": { - "name": "Ericsson Software Technology", - "email": "nonrtric@est.tech" - }, - "description": "The O-RAN Non-RT RIC Policy Management Service provides a REST API for management of A1 policices. \nIt provides support for:<ul><li>A1 Policy creation and modification.<\/li><li>Maintaining a view of supported Near-RT RIC policy types <\/li><li>Supervision of using services (R-APPs). When a service is unavailble, its policies are removed. <\/li> <li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs <\/li><\/ul>", - "title": "A1 Policy management service", - "version": "1.1.0" - }, - "tags": [ - { - "name": "A1 Policy Management Version 1.0", - "description": "Policy Controller" - }, - { - "name": "A1 Policy Management Version 2.0 (in progress)", - "description": "Policy Controller" - } - ] -}
\ No newline at end of file diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v1/ServiceController.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v1/ServiceController.java index 8f51c686..f11fd0d5 100644 --- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v1/ServiceController.java +++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v1/ServiceController.java @@ -146,7 +146,7 @@ public class ServiceController { } } - @ApiOperation(value = "Heartbeat from a serice") + @ApiOperation(value = "Heartbeat from a service") @ApiResponses(value = { // @ApiResponse(code = 200, message = "Service supervision timer refreshed, OK"), @ApiResponse(code = 404, message = "The service is not found, needs re-registration")}) diff --git a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/MockPolicyManagementService.java b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/MockPolicyManagementService.java index ab318615..92d75b54 100644 --- a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/MockPolicyManagementService.java +++ b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/MockPolicyManagementService.java @@ -156,7 +156,7 @@ class MockPolicyManagementService { private void keepServerAlive() throws InterruptedException, IOException { waitForConfigurationToBeLoaded(); loadInstances(); - logger.info("Keeping server alive!"); + logger.info("Keeping server alive! Listening on port: {}", port); synchronized (this) { this.wait(); } diff --git a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ApplicationTest.java b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ApplicationTest.java index 5e09099f..5128cd52 100644 --- a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ApplicationTest.java +++ b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ApplicationTest.java @@ -212,7 +212,7 @@ class ApplicationTest { ResponseEntity<String> resp = restClient("", false).getForEntity(url).block(); assertThat(resp.getStatusCode()).isEqualTo(HttpStatus.OK); String indented = (new JSONObject(resp.getBody())).toString(4); - try (PrintStream out = new PrintStream(new FileOutputStream("api/api_generated.json"))) { + try (PrintStream out = new PrintStream(new FileOutputStream("../docs/offeredapis/swagger/pms-api.json"))) { out.print(indented); } } diff --git a/docs/conf.py b/docs/conf.py index bb52b59d..29923a05 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -15,6 +15,12 @@ redoc = [ 'page': 'offeredapis/pms-api', 'spec': './offeredapis/swagger/pms-api.json', 'embed': True, + }, + { + 'name': 'A1 ADAPTER API', + 'page': 'offeredapis/a1-adapter-api', + 'spec': './offeredapis/swagger/a1-adapter-api.json', + 'embed': True, } ] diff --git a/docs/guide/developer-guide.rst b/docs/guide/developer-guide.rst index b6d4ce88..f067a3fa 100644 --- a/docs/guide/developer-guide.rst +++ b/docs/guide/developer-guide.rst @@ -36,6 +36,7 @@ The Policy Management Service can be accessed over the REST API. See :ref:`pms_a Dependencies ------------ + This project uses various frameworks which are managed with Maven dependency management tool (see *pom.xml* file at root level) : @@ -59,16 +60,21 @@ that are available. The second contains logging and security configurations. Configuration of certs ---------------------- -The Policy Management Service uses the default keystore and truststore that are built into the container. The paths and passwords for these stores are located in a yaml file: - oran/a1-policy-management/config/application.yaml +The Policy Management Service uses the default keystore and truststore that are built into the container. The paths and +passwords for these stores are located in a yaml file: :: + + oran/a1-policy-management/config/application.yaml -There is also Policy Management Service's own cert in the default truststore for mocking purposes and unit-testing (ApplicationTest.java). +There is also Policy Management Service's own cert in the default truststore for mocking purposes and unit-testing +(ApplicationTest.java). -The default keystore, truststore, and application.yaml files can be overridden by mounting new files using the "volumes" field of docker-compose or docker run command. +The default keystore, truststore, and application.yaml files can be overridden by mounting new files using the "volumes" +field of docker-compose or docker run command. -Assuming that the keystore, truststore, and application.yaml files are located in the same directory as docker-compose, the volumes field should have these entries: +Assuming that the keystore, truststore, and application.yaml files are located in the same directory as docker-compose, +the volumes field should have these entries: :: -`volumes:` + `volumes:` `- ./new_keystore.jks:/opt/app/policy-agent/etc/cert/keystore.jks:ro` `- ./new_truststore.jks:/opt/app/policy-agent/etc/cert/truststore.jks:ro` @@ -77,13 +83,13 @@ Assuming that the keystore, truststore, and application.yaml files are located i The target paths in the container should not be modified. -Example docker run command for mounting new files (assuming they are located in the current directory): +Example docker run command for mounting new files (assuming they are located in the current directory): :: -`docker run -p 8081:8081 -p 8433:8433 --name=policy-agent-container --network=nonrtric-docker-net --volume "$PWD/new_keystore.jks:/opt/app/policy-agent/etc/cert/keystore.jks" --volume "$PWD/new_truststore.jks:/opt/app/policy-agent/etc/cert/truststore.jks" --volume "$PWD/new_application.yaml:/opt/app/policy-agent/config/application.yaml" o-ran-sc/nonrtric-policy-agent:2.1.0-SNAPSHOT` + docker run -p 8081:8081 -p 8433:8433 --name=policy-agent-container --network=nonrtric-docker-net --volume "$PWD/new_keystore.jks:/opt/app/policy-agent/etc/cert/keystore.jks" --volume "$PWD/new_truststore.jks:/opt/app/policy-agent/etc/cert/truststore.jks" --volume "$PWD/new_application.yaml:/opt/app/policy-agent/config/application.yaml" o-ran-sc/nonrtric-policy-agent:2.1.0-SNAPSHOT -A1 Adapter -++++++++++ +A1 Adapter (Internal) ++++++++++++++++++++++ -TBD +The O-RAN A1 Adapter provides an internal REST CONF API for management of A1 policices, useful for test and verification. -The A1 Adapter can be accessed over the REST API. See :ref:`offered_apis` for how to use the API. +The A1 Adapter can be accessed over the REST CONF API. See :ref:`a1_adapter_api` for how to use the API. diff --git a/docs/offeredapis/offeredapis.rst b/docs/offeredapis/offeredapis.rst index c3a7c95f..08126c0d 100644 --- a/docs/offeredapis/offeredapis.rst +++ b/docs/offeredapis/offeredapis.rst @@ -12,7 +12,7 @@ Offered APIs Introduction ************ -The north bound ... +The north bound REST API of the Policy Management Service provides convenient methods to handle policies. Global ORAN architecture @@ -25,17 +25,11 @@ integration with other ONAP components and API resource/operation provided. :width: 500pt -API Endpoint -************ - -TBD - - API Version *********** APIs are described with a state version with "v" following the API Name, -e.g.: ``TBD``. +e.g.: ``v2/policy``. The schema associated with a REST API must have its version number aligned with that of the REST API. @@ -77,6 +71,7 @@ API Table :widths: 10,5, 5 "PMS API", ":download:`link <./swagger/pms-api.json>`", ":download:`link <./swagger/pms-api.yaml>`" + "A1 ADAPTER API (Internal)", ":download:`link <./swagger/a1-adapter-api.json>`", ":download:`link <./swagger/a1-adapter-api.yaml>`" .. _pms_api: @@ -85,3 +80,9 @@ PMS API ....... `PMS API <./pms-api.html>`_ +.. _a1_adapter_api: + +A1 ADAPTER API +.............. +`A1 ADAPTER API (Internal) <./a1-adapter-api.html>`_ + diff --git a/docs/offeredapis/swagger/a1-adapter-api.json b/docs/offeredapis/swagger/a1-adapter-api.json new file mode 100644 index 00000000..12951279 --- /dev/null +++ b/docs/offeredapis/swagger/a1-adapter-api.json @@ -0,0 +1,378 @@ +{ + "apiVersion": "1.0.0", + "swagger": "2.0", + "basePath": "/", + "info": { + "x-audience": "external-partner", + "contact": { + "name": "Ericsson Software Technology", + "email": "nonrtric@est.tech" + }, + "description": "The O-RAN A1 Adapter provides an internal REST CONF API for management of A1 policices, useful for test and verification. <b>Note!</b> For production, the https://docs.onap.org/projects/onap-ccsdk-oran/en/latest/offeredapis/pms-api.html should be used!", + "title": "A1 Adapter", + "version": "1.1.0" + }, + "paths": { + "/restconf/operations/A1-ADAPTER-API:putA1Policy": {"post": { + "summary": "Create or update a policy", + "description": "<b>Note!</b> For production, the https://docs.onap.org/projects/onap-ccsdk-oran/en/latest/offeredapis/pms-api.html PUT /policy method should be used!", + "nickname": "putA1Policy", + "produces": "application/json", + "responses": { + "200": { + "schema": {"$ref": "#/models/(putA1Policy)output"}, + "description": "Policy created/updated", + "examples": { + "application/json": { + "A1-ADAPTER-API:body": {}, + "A1-ADAPTER-API:http-status": 200 + } + } + } + }, + "parameters": [ + { + "schema": {"$ref": "#/models/(putA1Policy)input"}, + "in": "body", + "name": null, + "description": null, + "required": false + } + ] + } + }, + "/operations/A1-ADAPTER-API:getA1Policy": {"post": { + "summary": "Get policy configuration/s", + "description": "<b>Note!</b> For production, the https://docs.onap.org/projects/onap-ccsdk-oran/en/latest/offeredapis/pms-api.html GET /policy method should be used!", + "nickname": "getA1Policy", + "produces": "application/json", + "responses": { + "200": { + "schema": {"$ref": "#/models/(getA1Policy)output"}, + "description": "Policy found", + "examples": { + "application/json": { + "A1-ADAPTER-API:body": { + "id": "Policy 1", + "json": { + "scope": { + "ueId": "UE1 ", + "cellId": "Cell 1" + }, + "qosObjectives": { + "gfbr": 319.5, + "mfbr": 782.75, + "priorityLevel": 268.5, + "pdb": 44.0 + }, + "qoeObjectives": { + "qoeScore": 329.0, + "initialBuffering": 27.75, + "reBuffFreq": 539.0, + "stallRatio": 343.0 + }, + "resources": [] + }, + "ownerServiceName": "Service 1", + "ric": "ric1", + "type": "STD_PolicyModelUnconstrained_0.2.0", + "lastModified": "Wed, 01 Apr 2020 07:45:45 GMT" + }, + "A1-ADAPTER-API:http-status": 200 + } + } + } + }, + "parameters": [ + { + "schema": {"$ref": "#/models/(getA1Policy)input"}, + "in": "body", + "name": null, + "description": null, + "required": false + } + ] + } + }, + "/restconf/operations/A1-ADAPTER-API:getA1PolicyStatus": {"post": { + "summary": "Get a policy status", + "description": "<b>Note!</b> For production, the https://docs.onap.org/projects/onap-ccsdk-oran/en/latest/offeredapis/pms-api.html GET /policy-status method should be used!", + "nickname": "getA1PolicyStatus", + "produces": "application/json", + "responses": { + "200": { + "schema": {"$ref": "#/models/(getA1PolicyStatus)output"}, + "description": "Policy status", + "examples": { + "application/json": { + "A1-ADAPTER-API:body": { + "enforceStatus": "UNDEFINED" + }, + "A1-ADAPTER-API:http-status": 200 + } + } + } + }, + "parameters": [ + { + "schema": {"$ref": "#/models/(getA1PolicyStatus)input"}, + "in": "body", + "name": null, + "description": null, + "required": false + } + ] + } + }, + "/restconf/operations/A1-ADAPTER-API:getA1PolicyType": {"post": { + "summary": "Get a policy type schema definition", + "description": "<b>Note!</b> For production, the https://docs.onap.org/projects/onap-ccsdk-oran/en/latest/offeredapis/pms-api.html GET /policy-types method should be used!", + "nickname": "getA1PolicyType", + "produces": "application/json", + "responses": { + "200": { + "schema": {"$ref": "#/models/(getA1PolicyType)output"}, + "description": "Policy schema", + "examples": { + "application/json": { + "A1-ADAPTER-API:body": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Example_QoETarget_1.0.0", + "description": "Example QoE Target policy type", + "type": "object", + "properties": { + "scope": { + "type": "object", + "properties": { + "ueId": { + "type": "string" + }, + "sliceId": { + "type": "string" + }, + "qosId": { + "type": "string" + }, + "cellId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "ueId", + "sliceId" + ] + }, + "statement": { + "type": "object", + "properties": { + "qoeScore": { + "type": "number" + }, + "initialBuffering": { + "type": "number" + }, + "reBuffFreq": { + "type": "number" + }, + "stallRatio": { + "type": "number" + } + }, + "minProperties": 1, + "additionalProperties": false + } + } + }, + "A1-ADAPTER-API:http-status": 200 + } + } + } + }, + "parameters": [ + { + "schema": {"$ref": "#/models/(getA1PolicyType)input"}, + "in": "body", + "name": null, + "description": null, + "required": false + } + ] + } + }, + "/restconf/operations/A1-ADAPTER-API:deleteA1Policy": {"post": { + "summary": "Delete a policy", + "description": "<b>Note!</b> For production, the https://docs.onap.org/projects/onap-ccsdk-oran/en/latest/offeredapis/pms-api.html DELETE /policy method should be used!", + "nickname": "deleteA1Policy", + "produces": "application/json", + "responses": { + "200": { + "schema": {"$ref": "#/models/(deleteA1Policy)output"}, + "description": "Policy deleted", + "examples": { + "application/json": { + "A1-ADAPTER-API:body": {}, + "A1-ADAPTER-API:http-status": 200 + } + } + } + }, + "parameters": [ + { + "schema": {"$ref": "#/models/(deleteA1Policy)input"}, + "in": "body", + "name": null, + "description": null, + "required": false + } + ] + } + } + }, + "models": { + "(putA1Policy)input": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "properties": { + "A1-ADAPTER-API:near-rt-ric-url": { + "required": false, + "type": "Some near-rt-ric-url", + "example": "http://nearRtRic-sim1:8085/a1-p/policytypes/11/policies/5000" + }, + "A1-ADAPTER-API:body": { + "required": false, + "type": "Some body", + "example": { + "blocking_rate":20, + "enforce":true, + "trigger_threshold":10, + "window_length":10 + } + } + }, + "id": "(putA1Policy)input" + }, + "(putA1Policy)output": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "properties": { + "A1-ADAPTER-API:body": { + "required": false, + "type": "Some body" + }, + "A1-ADAPTER-API:http-status": { + "required": false, + "type": "-2147483648" + } + }, + "id": "(putA1Policy)output" + }, + "(getA1Policy)input": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "properties": { + "A1-ADAPTER-API:near-rt-ric-url": { + "required": false, + "type": "Some near-rt-ric-url", + "example": "http://localhost:8081/policy?id=Policy 1" + } + }, + "id": "(getA1Policy)input" + }, + "(getA1Policy)output": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "properties": { + "A1-ADAPTER-API:body": { + "required": false, + "type": "object" }, + "A1-ADAPTER-API:http-status": { + "required": false, + "type": "-2147483648" + } + }, + "id": "(getA1Policy)output" + }, + "(getA1PolicyStatus)input": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "properties": { + "A1-ADAPTER-API:near-rt-ric-url": { + "required": false, + "type": "Some near-rt-ric-url", + "example": "http://ricsim_g2_1:8085/A1-P/v1/policies/5000/status" + } + }, + "id": "(getA1PolicyStatus)input" + }, + "(getA1PolicyStatus)output": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "properties": { + "A1-ADAPTER-API:body": { + "required": false, + "type": "Some body" + }, + "A1-ADAPTER-API:http-status": { + "required": false, + "type": "-2147483648" + } + }, + "id": "(getA1PolicyStatus)output" + }, + "(getA1PolicyType)input": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "properties": { + "A1-ADAPTER-API:near-rt-ric-url": { + "required": false, + "type": "Some near-rt-ric-url", + "example": "http://nearRtRic-sim1:8085/a1-p/policytypes/11" + } + }, + "id": "(getA1PolicyType)input" + }, + "(getA1PolicyType)output": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "properties": { + "A1-ADAPTER-API:body": { + "required": false, + "type": "Some body" + }, + "A1-ADAPTER-API:http-status": { + "required": false, + "type": "-2147483648" + } + }, + "id": "(getA1PolicyType)output" + }, + "(deleteA1Policy)input": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "properties": { + "A1-ADAPTER-API:near-rt-ric-url": { + "required": false, + "type": "Some near-rt-ric-url", + "example": "http://localhost:8282/restconf/operations/A1-ADAPTER-API:deleteA1Policy" + } + }, + "id": "(deleteA1Policy)input" + }, + "(deleteA1Policy)output": { + "$schema": "http://json-schema.org/draft-04/schema", + "type": "object", + "properties": { + "A1-ADAPTER-API:body": { + "required": false, + "type": "Some body" + }, + "A1-ADAPTER-API:http-status": { + "required": false, + "type": "-2147483648" + } + }, + "id": "(deleteA1Policy)output" + } + } +}
\ No newline at end of file diff --git a/docs/offeredapis/swagger/a1-adapter-api.yaml b/docs/offeredapis/swagger/a1-adapter-api.yaml new file mode 100644 index 00000000..1db84156 --- /dev/null +++ b/docs/offeredapis/swagger/a1-adapter-api.yaml @@ -0,0 +1,306 @@ +apiVersion: 1.0.0 +swagger: '2.0' +basePath: / +info: + x-audience: external-partner + contact: + name: Ericsson Software Technology + email: nonrtric@est.tech + description: >- + The O-RAN A1 Adapter provides an internal REST API for management of A1 + policices, useful for test and verification. <b>Note!</b> For production, + the + https://docs.onap.org/projects/onap-ccsdk-oran/en/latest/offeredapis/pms-api.html + should be used! + title: A1 Adapter + version: 1.1.0 +paths: + '/restconf/operations/A1-ADAPTER-API:putA1Policy': + post: + summary: Create or update a policy + description: >- + <b>Note!</b> For production, the + https://docs.onap.org/projects/onap-ccsdk-oran/en/latest/offeredapis/pms-api.html + PUT /policy method should be used! + nickname: putA1Policy + produces: application/json + responses: + '200': + schema: + $ref: '#/models/(putA1Policy)output' + description: Policy created/updated + examples: + application/json: + 'A1-ADAPTER-API:body': {} + 'A1-ADAPTER-API:http-status': 200 + parameters: + - schema: + $ref: '#/models/(putA1Policy)input' + in: body + name: null + description: null + required: false + '/operations/A1-ADAPTER-API:getA1Policy': + post: + summary: Get policy configuration/s + description: >- + <b>Note!</b> For production, the + https://docs.onap.org/projects/onap-ccsdk-oran/en/latest/offeredapis/pms-api.html + GET /policy method should be used! + nickname: getA1Policy + produces: application/json + responses: + '200': + schema: + $ref: '#/models/(getA1Policy)output' + description: Policy found + examples: + application/json: + 'A1-ADAPTER-API:body': + id: Policy 1 + json: + scope: + ueId: 'UE1 ' + cellId: Cell 1 + qosObjectives: + gfbr: 319.5 + mfbr: 782.75 + priorityLevel: 268.5 + pdb: 44 + qoeObjectives: + qoeScore: 329 + initialBuffering: 27.75 + reBuffFreq: 539 + stallRatio: 343 + resources: [] + ownerServiceName: Service 1 + ric: ric1 + type: STD_PolicyModelUnconstrained_0.2.0 + lastModified: 'Wed, 01 Apr 2020 07:45:45 GMT' + 'A1-ADAPTER-API:http-status': 200 + parameters: + - schema: + $ref: '#/models/(getA1Policy)input' + in: body + name: null + description: null + required: false + '/restconf/operations/A1-ADAPTER-API:getA1PolicyStatus': + post: + summary: Get a policy status + description: >- + <b>Note!</b> For production, the + https://docs.onap.org/projects/onap-ccsdk-oran/en/latest/offeredapis/pms-api.html + GET /policy-status method should be used! + nickname: getA1PolicyStatus + produces: application/json + responses: + '200': + schema: + $ref: '#/models/(getA1PolicyStatus)output' + description: Policy status + examples: + application/json: + 'A1-ADAPTER-API:body': + enforceStatus: UNDEFINED + 'A1-ADAPTER-API:http-status': 200 + parameters: + - schema: + $ref: '#/models/(getA1PolicyStatus)input' + in: body + name: null + description: null + required: false + '/restconf/operations/A1-ADAPTER-API:getA1PolicyType': + post: + summary: Get a policy type schema definition + description: >- + <b>Note!</b> For production, the + https://docs.onap.org/projects/onap-ccsdk-oran/en/latest/offeredapis/pms-api.html + GET /policy-types method should be used! + nickname: getA1PolicyType + produces: application/json + responses: + '200': + schema: + $ref: '#/models/(getA1PolicyType)output' + description: Policy schema + examples: + application/json: + 'A1-ADAPTER-API:body': + $schema: 'http://json-schema.org/draft-07/schema#' + title: Example_QoETarget_1.0.0 + description: Example QoE Target policy type + type: object + properties: + scope: + type: object + properties: + ueId: + type: string + sliceId: + type: string + qosId: + type: string + cellId: + type: string + additionalProperties: false + required: + - ueId + - sliceId + statement: + type: object + properties: + qoeScore: + type: number + initialBuffering: + type: number + reBuffFreq: + type: number + stallRatio: + type: number + minProperties: 1 + additionalProperties: false + 'A1-ADAPTER-API:http-status': 200 + parameters: + - schema: + $ref: '#/models/(getA1PolicyType)input' + in: body + name: null + description: null + required: false + '/restconf/operations/A1-ADAPTER-API:deleteA1Policy': + post: + summary: Delete a policy + description: >- + <b>Note!</b> For production, the + https://docs.onap.org/projects/onap-ccsdk-oran/en/latest/offeredapis/pms-api.html + DELETE /policy method should be used! + nickname: deleteA1Policy + produces: application/json + responses: + '200': + schema: + $ref: '#/models/(deleteA1Policy)output' + description: Policy deleted + examples: + application/json: + 'A1-ADAPTER-API:body': {} + 'A1-ADAPTER-API:http-status': 200 + parameters: + - schema: + $ref: '#/models/(deleteA1Policy)input' + in: body + name: null + description: null + required: false +models: + (putA1Policy)input: + $schema: 'http://json-schema.org/draft-04/schema' + type: object + properties: + 'A1-ADAPTER-API:near-rt-ric-url': + required: false + type: Some near-rt-ric-url + example: 'http://nearRtRic-sim1:8085/a1-p/policytypes/11/policies/5000' + 'A1-ADAPTER-API:body': + required: false + type: Some body + example: + blocking_rate: 20 + enforce: true + trigger_threshold: 10 + window_length: 10 + id: (putA1Policy)input + (putA1Policy)output: + $schema: 'http://json-schema.org/draft-04/schema' + type: object + properties: + 'A1-ADAPTER-API:body': + required: false + type: Some body + 'A1-ADAPTER-API:http-status': + required: false + type: '-2147483648' + id: (putA1Policy)output + (getA1Policy)input: + $schema: 'http://json-schema.org/draft-04/schema' + type: object + properties: + 'A1-ADAPTER-API:near-rt-ric-url': + required: false + type: Some near-rt-ric-url + example: 'http://localhost:8081/policy?id=Policy 1' + id: (getA1Policy)input + (getA1Policy)output: + $schema: 'http://json-schema.org/draft-04/schema' + type: object + properties: + 'A1-ADAPTER-API:body': + required: false + type: object + 'A1-ADAPTER-API:http-status': + required: false + type: '-2147483648' + id: (getA1Policy)output + (getA1PolicyStatus)input: + $schema: 'http://json-schema.org/draft-04/schema' + type: object + properties: + 'A1-ADAPTER-API:near-rt-ric-url': + required: false + type: Some near-rt-ric-url + example: 'http://ricsim_g2_1:8085/A1-P/v1/policies/5000/status' + id: (getA1PolicyStatus)input + (getA1PolicyStatus)output: + $schema: 'http://json-schema.org/draft-04/schema' + type: object + properties: + 'A1-ADAPTER-API:body': + required: false + type: Some body + 'A1-ADAPTER-API:http-status': + required: false + type: '-2147483648' + id: (getA1PolicyStatus)output + (getA1PolicyType)input: + $schema: 'http://json-schema.org/draft-04/schema' + type: object + properties: + 'A1-ADAPTER-API:near-rt-ric-url': + required: false + type: Some near-rt-ric-url + example: 'http://nearRtRic-sim1:8085/a1-p/policytypes/11' + id: (getA1PolicyType)input + (getA1PolicyType)output: + $schema: 'http://json-schema.org/draft-04/schema' + type: object + properties: + 'A1-ADAPTER-API:body': + required: false + type: Some body + 'A1-ADAPTER-API:http-status': + required: false + type: '-2147483648' + id: (getA1PolicyType)output + (deleteA1Policy)input: + $schema: 'http://json-schema.org/draft-04/schema' + type: object + properties: + 'A1-ADAPTER-API:near-rt-ric-url': + required: false + type: Some near-rt-ric-url + example: >- + http://localhost:8282/restconf/operations/A1-ADAPTER-API:deleteA1Policy + id: (deleteA1Policy)input + (deleteA1Policy)output: + $schema: 'http://json-schema.org/draft-04/schema' + type: object + properties: + 'A1-ADAPTER-API:body': + required: false + type: Some body + 'A1-ADAPTER-API:http-status': + required: false + type: '-2147483648' + id: (deleteA1Policy)output |