aboutsummaryrefslogtreecommitdiffstats
path: root/docs/offeredapis/swagger/pms-api.json
diff options
context:
space:
mode:
Diffstat (limited to 'docs/offeredapis/swagger/pms-api.json')
-rw-r--r--docs/offeredapis/swagger/pms-api.json1259
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