aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--a1-policy-management/api/api.yaml842
-rw-r--r--a1-policy-management/api/api_generated.json1383
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v1/ServiceController.java2
-rw-r--r--a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/MockPolicyManagementService.java2
-rw-r--r--a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ApplicationTest.java2
-rw-r--r--docs/conf.py6
-rw-r--r--docs/guide/developer-guide.rst30
-rw-r--r--docs/offeredapis/offeredapis.rst17
-rw-r--r--docs/offeredapis/swagger/a1-adapter-api.json378
-rw-r--r--docs/offeredapis/swagger/a1-adapter-api.yaml306
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