diff options
author | elinuxhenrik <henrik.b.andersson@est.tech> | 2020-11-16 09:31:07 +0100 |
---|---|---|
committer | elinuxhenrik <henrik.b.andersson@est.tech> | 2020-11-16 14:02:09 +0100 |
commit | 6b87e43900b61956ab23d965827fb1306f8db617 (patch) | |
tree | 71742927bdd08a1211a9fe17df78ecc85edbc65a /docs/offeredapis/swagger/pms-api.json | |
parent | 6e095a089f0ef20094b19f74f2b7b44ec92ad3d9 (diff) |
Add documentation
Change-Id: Ie27c53fcb38ae75b9771a42dc7dec39f4a1fd672
Issue-ID: CCSDK-2966
Signed-off-by: elinuxhenrik <henrik.b.andersson@est.tech>
Diffstat (limited to 'docs/offeredapis/swagger/pms-api.json')
-rw-r--r-- | docs/offeredapis/swagger/pms-api.json | 1259 |
1 files changed, 1259 insertions, 0 deletions
diff --git a/docs/offeredapis/swagger/pms-api.json b/docs/offeredapis/swagger/pms-api.json new file mode 100644 index 00000000..1837e098 --- /dev/null +++ b/docs/offeredapis/swagger/pms-api.json @@ -0,0 +1,1259 @@ +{ + "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 |