summaryrefslogtreecommitdiffstats
path: root/docs/offeredapis/swagger/pms-api-v3.json
diff options
context:
space:
mode:
Diffstat (limited to 'docs/offeredapis/swagger/pms-api-v3.json')
-rw-r--r--docs/offeredapis/swagger/pms-api-v3.json2134
1 files changed, 2134 insertions, 0 deletions
diff --git a/docs/offeredapis/swagger/pms-api-v3.json b/docs/offeredapis/swagger/pms-api-v3.json
new file mode 100644
index 00000000..c844073a
--- /dev/null
+++ b/docs/offeredapis/swagger/pms-api-v3.json
@@ -0,0 +1,2134 @@
+{
+ "openapi" : "3.0.3",
+ "info" : {
+ "contact" : {
+ "email" : "discuss-list@onap.com",
+ "url" : "https://www.onap.org/"
+ },
+ "description" : "<h2>General</h2><p>The O-RAN Non-RT RIC Policy Management Service provides a REST API for managemecnt of A1 policies. <br/>The main tasks of the service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining a view of supported Near-RT RIC policy types</li><li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.</li></ul><h2>APIs provided or defined by the service</h2><h3>A1 Policy Management</h3><p>This is an API for management of A1 Policies.</p><ul><li>A1 Policy retrieval, creation, modification and deletion.</li><li>Retrieval of supported A1 Policy types for a Near-RT RIC</li><li>Retrieval of status for existing A1 policies</li></ul><h3>Management of configuration</h3><p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.</p><h3>Service callbacks</h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.</p><h3>NearRT-RIC Repository</h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.</p><h3>Health Check</h3><p>API used for supervision of the PMS component.</p><h3>Service Registry and Supervision</h3><p>API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.</p><h3>Authorization API</h3><p>API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.</p>",
+ "license" : {
+ "name" : "Copyright (C) 2024 OpenInfra Foundation Europe. Licensed under the Apache License.",
+ "url" : "http://www.apache.org/licenses/LICENSE-2.0"
+ },
+ "title" : "A1 policy management API",
+ "version" : "1.0.0",
+ "x-api-id" : "a31c510b-20e6-4a08-af16-368c44d7fba8",
+ "x-audience" : "external-public"
+ },
+ "servers" : [ {
+ "url" : "{apiRoot}/a1-policy-management/v1",
+ "variables" : {
+ "apiRoot" : {
+ "default" : "https://example.com",
+ "description" : "This is the Host:Port or Address where the A1-Policy Management Service can be accessed"
+ }
+ }
+ } ],
+ "tags" : [ {
+ "description" : "API used to create polices, Policy Instances and get them as individual using an ID or get all policies/Instances.",
+ "name" : "A1 Policy Management"
+ }, {
+ "description" : "API used to get the NearRT-RIC for the managed element.",
+ "name" : "NearRT-RIC Repository"
+ }, {
+ "description" : "API used to keep the service Alive with in the timeout period",
+ "name" : "Service Registry and Supervision"
+ }, {
+ "description" : "API used to get the health status and statistics of this service",
+ "name" : "Health Check"
+ }, {
+ "name" : "Service callbacks"
+ }, {
+ "description" : "API used to create or fetch the application configuration.",
+ "name" : "Configuration"
+ } ],
+ "paths" : {
+ "/status" : {
+ "get" : {
+ "description" : "Returns status and statistics of this service",
+ "operationId" : "getStatus",
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "examples" : {
+ "status_info" : {
+ "$ref" : "#/components/examples/StatusInfo"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/components/schemas/StatusInfo"
+ }
+ }
+ },
+ "description" : "OK- Service is living Ok"
+ }
+ },
+ "tags" : [ "Health Check" ]
+ }
+ },
+ "/rics/ric" : {
+ "get" : {
+ "description" : "Either a Near-RT RIC identity or a Managed Element identity can be specified.<br>The intention with Managed Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU).",
+ "operationId" : "getRic",
+ "parameters" : [ {
+ "description" : "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.",
+ "explode" : true,
+ "in" : "query",
+ "name" : "managedElementId",
+ "required" : false,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "form"
+ }, {
+ "description" : "The identity of a Near-RT RIC to get information for.",
+ "explode" : true,
+ "in" : "query",
+ "name" : "ricId",
+ "required" : false,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "form"
+ }, {
+ "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+ "explode" : false,
+ "in" : "header",
+ "name" : "Accept",
+ "required" : false,
+ "schema" : {
+ "example" : "application/json",
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "examples" : {
+ "ric_info" : {
+ "$ref" : "#/components/examples/RicInfo"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/components/schemas/RicInfo"
+ }
+ }
+ },
+ "description" : "OK - Near-RT RIC is found OK"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Found"
+ }
+ },
+ "summary" : "Returns info for one Near-RT RIC",
+ "tags" : [ "NearRT-RIC Repository" ]
+ }
+ },
+ "/rics" : {
+ "get" : {
+ "description" : "The call returns all Near-RT RICs that supports a given policy type identity",
+ "operationId" : "getRics",
+ "parameters" : [ {
+ "description" : "The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned",
+ "explode" : true,
+ "in" : "query",
+ "name" : "policyTypeId",
+ "required" : false,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "form"
+ }, {
+ "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+ "explode" : false,
+ "in" : "header",
+ "name" : "Accept",
+ "required" : false,
+ "schema" : {
+ "example" : "application/json",
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "examples" : {
+ "ric_info_list" : {
+ "$ref" : "#/components/examples/RicInfoList"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/components/schemas/RicInfoList"
+ }
+ }
+ },
+ "description" : "OK"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Found"
+ }
+ },
+ "summary" : "Query Near-RT RIC information",
+ "tags" : [ "NearRT-RIC Repository" ]
+ }
+ },
+ "/policy-types" : {
+ "get" : {
+ "description" : "Query policy type identities",
+ "operationId" : "getPolicyTypes",
+ "parameters" : [ {
+ "description" : "Select types for the given Near-RT RIC identity.",
+ "explode" : true,
+ "in" : "query",
+ "name" : "nearRtRicId",
+ "required" : false,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "form"
+ }, {
+ "description" : "Select types with the given type name (type identity has the format <typename_version>)",
+ "explode" : true,
+ "in" : "query",
+ "name" : "typeName",
+ "required" : false,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "form"
+ }, {
+ "description" : "Select types that are compatible with the given version. This parameter is only applicable in conjunction with type_name. As an example version 1.9.1 is compatible with 1.0.0 but not the other way around. Matching types will be returned sorted in ascending order.",
+ "explode" : true,
+ "in" : "query",
+ "name" : "compatibleWithVersion",
+ "required" : false,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "form"
+ }, {
+ "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+ "explode" : false,
+ "in" : "header",
+ "name" : "Accept",
+ "required" : false,
+ "schema" : {
+ "example" : "application/json",
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "items" : {
+ "$ref" : "#/components/schemas/PolicyTypeInformation"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "description" : "OK - Policy Type IDs found Ok"
+ },
+ "400" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Bad Request"
+ },
+ "401" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Unauthorized"
+ },
+ "403" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Forbidden"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Found"
+ },
+ "406" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Acceptable"
+ },
+ "429" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Too Many Request"
+ },
+ "500" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Internal Server Error"
+ },
+ "502" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Bad Gateway"
+ },
+ "503" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Service Unavailable"
+ }
+ },
+ "tags" : [ "A1 Policy Management" ]
+ }
+ },
+ "/policy-types/{policyTypeId}" : {
+ "get" : {
+ "description" : "Returns a policy type definition",
+ "operationId" : "getPolicyTypeDefinition",
+ "parameters" : [ {
+ "explode" : false,
+ "in" : "path",
+ "name" : "policyTypeId",
+ "required" : true,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "simple"
+ }, {
+ "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+ "explode" : false,
+ "in" : "header",
+ "name" : "Accept",
+ "required" : false,
+ "schema" : {
+ "example" : "application/json",
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "examples" : {
+ "policyObject" : {
+ "$ref" : "#/components/examples/PolicyObject"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/components/schemas/PolicyObject"
+ }
+ }
+ },
+ "description" : "OK - schema of the given policy type"
+ },
+ "400" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Bad Request"
+ },
+ "401" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Unauthorized"
+ },
+ "403" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Forbidden"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Found"
+ },
+ "406" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Acceptable"
+ },
+ "429" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Too Many Request"
+ },
+ "500" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Internal Server Error"
+ },
+ "502" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Bad Gateway"
+ },
+ "503" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Service Unavailable"
+ }
+ },
+ "tags" : [ "A1 Policy Management" ]
+ }
+ },
+ "/policies/{policyId}" : {
+ "delete" : {
+ "description" : "Deleting the policy using policyId.",
+ "operationId" : "deletePolicy",
+ "parameters" : [ {
+ "explode" : false,
+ "in" : "path",
+ "name" : "policyId",
+ "required" : true,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "simple"
+ }, {
+ "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+ "explode" : false,
+ "in" : "header",
+ "name" : "Accept",
+ "required" : false,
+ "schema" : {
+ "example" : "application/json",
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "responses" : {
+ "204" : {
+ "description" : "The created A1 policy was deleted"
+ },
+ "400" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Bad Request"
+ },
+ "401" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Unauthorized"
+ },
+ "403" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Forbidden"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Found"
+ },
+ "423" : {
+ "content" : {
+ "application/problem+json" : {
+ "example" : {
+ "status" : 423,
+ "title" : "Locked",
+ "detail" : "State is Locked in the provided request."
+ },
+ "schema" : {
+ "$ref" : "#/components/schemas/ErrorInformation"
+ }
+ }
+ },
+ "description" : "Locked - HTTP Status code which can be used when the state is Locked"
+ },
+ "429" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Too Many Request"
+ },
+ "500" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Internal Server Error"
+ },
+ "502" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Bad Gateway"
+ },
+ "503" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Service Unavailable"
+ }
+ },
+ "summary" : "Delete a policy",
+ "tags" : [ "A1 Policy Management" ]
+ },
+ "get" : {
+ "description" : "Returns a policy",
+ "operationId" : "getPolicy",
+ "parameters" : [ {
+ "explode" : false,
+ "in" : "path",
+ "name" : "policyId",
+ "required" : true,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "simple"
+ }, {
+ "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+ "explode" : false,
+ "in" : "header",
+ "name" : "Accept",
+ "required" : false,
+ "schema" : {
+ "example" : "application/json",
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "examples" : {
+ "policyObject" : {
+ "$ref" : "#/components/examples/PolicyObject"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/components/schemas/PolicyObject"
+ }
+ }
+ },
+ "description" : "OK - Policy found"
+ },
+ "400" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Bad Request"
+ },
+ "401" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Unauthorized"
+ },
+ "403" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Forbidden"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Found"
+ },
+ "406" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Acceptable"
+ },
+ "429" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Too Many Request"
+ },
+ "500" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Internal Server Error"
+ },
+ "502" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Bad Gateway"
+ },
+ "503" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Service Unavailable"
+ }
+ },
+ "tags" : [ "A1 Policy Management" ]
+ },
+ "put" : {
+ "description" : "update a policy",
+ "operationId" : "putPolicy",
+ "parameters" : [ {
+ "explode" : false,
+ "in" : "path",
+ "name" : "policyId",
+ "required" : true,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "examples" : {
+ "policyObject" : {
+ "$ref" : "#/components/examples/PolicyObject"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/components/schemas/PolicyObject"
+ }
+ }
+ },
+ "required" : true
+ },
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/PolicyObject"
+ }
+ }
+ },
+ "description" : "OK - Policy updated"
+ },
+ "400" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Bad Request"
+ },
+ "401" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Unauthorized"
+ },
+ "403" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Forbidden"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Found"
+ },
+ "406" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Acceptable"
+ },
+ "411" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Length Required"
+ },
+ "413" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Payload Too Large"
+ },
+ "415" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Unsupported Media Type"
+ },
+ "423" : {
+ "content" : {
+ "application/problem+json" : {
+ "example" : {
+ "status" : 423,
+ "title" : "Locked",
+ "detail" : "State is Locked in the provided request."
+ },
+ "schema" : {
+ "$ref" : "#/components/schemas/ErrorInformation"
+ }
+ }
+ },
+ "description" : "Locked - HTTP Status code which can be used when the state is Locked"
+ },
+ "429" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Too Many Request"
+ },
+ "500" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Internal Server Error"
+ },
+ "502" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Bad Gateway"
+ },
+ "503" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Service Unavailable"
+ }
+ },
+ "tags" : [ "A1 Policy Management" ]
+ }
+ },
+ "/policies" : {
+ "get" : {
+ "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" : "getAllPolicies",
+ "parameters" : [ {
+ "description" : "Select policies of a given policy type identity.",
+ "explode" : true,
+ "in" : "query",
+ "name" : "policyTypeId",
+ "required" : false,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "form"
+ }, {
+ "description" : "Select policies of a given Near-RT RIC identity.",
+ "explode" : true,
+ "in" : "query",
+ "name" : "nearRtRicId",
+ "required" : false,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "form"
+ }, {
+ "description" : "Select policies owned by a given service.",
+ "explode" : true,
+ "in" : "query",
+ "name" : "serviceId",
+ "required" : false,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "form"
+ }, {
+ "description" : "Select policies of types with the given type name (type identity has the format <typename_version>)",
+ "explode" : true,
+ "in" : "query",
+ "name" : "typeName",
+ "required" : false,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "form"
+ }, {
+ "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+ "explode" : false,
+ "in" : "header",
+ "name" : "Accept",
+ "required" : false,
+ "schema" : {
+ "example" : "application/json",
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "items" : {
+ "$ref" : "#/components/schemas/PolicyInformation"
+ },
+ "type" : "array"
+ }
+ }
+ },
+ "description" : "OK - Policy identities"
+ },
+ "400" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Bad Request"
+ },
+ "401" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Unauthorized"
+ },
+ "403" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Forbidden"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Found"
+ },
+ "406" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Acceptable"
+ },
+ "429" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Too Many Request"
+ },
+ "500" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Internal Server Error"
+ },
+ "502" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Bad Gateway"
+ },
+ "503" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Service Unavailable"
+ }
+ },
+ "summary" : "Query policy identities",
+ "tags" : [ "A1 Policy Management" ]
+ },
+ "post" : {
+ "description" : "To create A1 policies",
+ "operationId" : "createPolicy",
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/PolicyObjectInformation"
+ }
+ }
+ },
+ "required" : true
+ },
+ "responses" : {
+ "201" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/PolicyObjectInformation"
+ }
+ }
+ },
+ "description" : "Success case 201 created",
+ "headers" : {
+ "Location" : {
+ "description" : "Contains the URI of the newly created resource",
+ "explode" : false,
+ "required" : true,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "simple"
+ }
+ }
+ },
+ "400" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Bad Request"
+ },
+ "401" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Unauthorized"
+ },
+ "403" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Forbidden"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Found"
+ },
+ "406" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Acceptable"
+ },
+ "423" : {
+ "content" : {
+ "application/problem+json" : {
+ "example" : {
+ "status" : 423,
+ "title" : "Locked",
+ "detail" : "State is Locked in the provided request."
+ },
+ "schema" : {
+ "$ref" : "#/components/schemas/ErrorInformation"
+ }
+ }
+ },
+ "description" : "Locked - HTTP Status code which can be used when the state is Locked"
+ },
+ "429" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Too Many Request"
+ },
+ "500" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Internal Server Error"
+ },
+ "502" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Bad Gateway"
+ },
+ "503" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Service Unavailable"
+ }
+ },
+ "tags" : [ "A1 Policy Management" ]
+ }
+ },
+ "/configuration" : {
+ "get" : {
+ "description" : "Returns the contents of the application configuration",
+ "operationId" : "getConfiguration",
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "type" : "string"
+ }
+ }
+ },
+ "description" : "OK - Application configuration received"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Found"
+ }
+ },
+ "tags" : [ "Configuration" ]
+ },
+ "put" : {
+ "description" : "Replace the current configuration file with the given configuration",
+ "operationId" : "putConfiguration",
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ },
+ "required" : true
+ },
+ "responses" : {
+ "200" : {
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/void"
+ }
+ }
+ },
+ "description" : "OK - Configuration updated"
+ },
+ "400" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Bad Request"
+ }
+ },
+ "tags" : [ "Configuration" ]
+ }
+ },
+ "/services/{serviceId}/keepalive" : {
+ "put" : {
+ "description" : "A registered service should invoke this operation regularly to indicate that it is still alive. If a registered service fails to invoke this operation before the end of a timeout period the service will be deregistered and all its A1 policies wil be removed. (This timeout can be set or disabled when each service is initially registered)",
+ "operationId" : "keepAliveService",
+ "parameters" : [ {
+ "explode" : false,
+ "in" : "path",
+ "name" : "serviceId",
+ "required" : true,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "simple"
+ }, {
+ "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+ "explode" : false,
+ "in" : "header",
+ "name" : "Accept",
+ "required" : false,
+ "schema" : {
+ "example" : "application/json",
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "type" : "string"
+ }
+ }
+ },
+ "required" : false
+ },
+ "responses" : {
+ "200" : {
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ },
+ "description" : "OK - Service supervision timer refreshed, OK"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Found"
+ }
+ },
+ "summary" : "Heartbeat indicates that the service is running",
+ "tags" : [ "Service Registry and Supervision" ]
+ }
+ },
+ "/services" : {
+ "get" : {
+ "description" : "Either information about a registered service with given identity or all registered services are returned.",
+ "operationId" : "getServices",
+ "parameters" : [ {
+ "description" : "The identity of the service",
+ "explode" : true,
+ "in" : "query",
+ "name" : "serviceId",
+ "required" : false,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "form"
+ }, {
+ "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+ "explode" : false,
+ "in" : "header",
+ "name" : "Accept",
+ "required" : false,
+ "schema" : {
+ "example" : "application/json",
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "examples" : {
+ "service_status_list" : {
+ "$ref" : "#/components/examples/ServiceStatusList"
+ }
+ },
+ "schema" : {
+ "$ref" : "#/components/schemas/ServiceStatusList"
+ }
+ }
+ },
+ "description" : "OK"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Found"
+ }
+ },
+ "summary" : "Returns service information",
+ "tags" : [ "Service Registry and Supervision" ]
+ },
+ "put" : {
+ "callbacks" : {
+ "RICStatus" : {
+ "{$request.body#/callback_url}" : {
+ "post" : {
+ "description" : "The URL to this call is registered at Service registration.",
+ "operationId" : "serviceCallback",
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ServiceCallbackInfo"
+ }
+ }
+ },
+ "required" : true
+ },
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/void"
+ }
+ }
+ },
+ "description" : "OK"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Found"
+ }
+ },
+ "summary" : "Callback for Near-RT RIC status",
+ "tags" : [ "Service callbacks" ]
+ }
+ }
+ }
+ },
+ "description" : "Registering a service is needed to:<ul><li>Get callbacks about available NearRT RICs.</li><li>Activate supervision of the service. If a service is inactive, its policies will automatically be deleted.</li></ul>Policies can be created even if the service is not registerred. This is a feature which it is optional to use.",
+ "operationId" : "putService",
+ "requestBody" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ServiceRegistrationInfo"
+ }
+ }
+ },
+ "required" : true
+ },
+ "responses" : {
+ "200" : {
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ },
+ "description" : "OK - Service updated"
+ },
+ "201" : {
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ },
+ "description" : "Created - Service created"
+ },
+ "400" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Bad Request"
+ }
+ },
+ "summary" : "Register a service",
+ "tags" : [ "Service Registry and Supervision" ]
+ }
+ },
+ "/services/{serviceId}" : {
+ "delete" : {
+ "description" : "Unregister a service",
+ "operationId" : "deleteService",
+ "parameters" : [ {
+ "explode" : false,
+ "in" : "path",
+ "name" : "serviceId",
+ "required" : true,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "simple"
+ }, {
+ "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+ "explode" : false,
+ "in" : "header",
+ "name" : "Accept",
+ "required" : false,
+ "schema" : {
+ "example" : "application/json",
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "responses" : {
+ "204" : {
+ "content" : {
+ "*/*" : {
+ "schema" : {
+ "type" : "object"
+ }
+ }
+ },
+ "description" : "No Content - Service unregistered"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Found"
+ }
+ },
+ "tags" : [ "Service Registry and Supervision" ]
+ }
+ }
+ },
+ "components" : {
+ "examples" : {
+ "ServiceStatusList" : {
+ "description" : "List of service information",
+ "value" : {
+ "serviceList" : [ {
+ "callbackUrl" : "callbackUrl",
+ "serviceId" : "serviceId",
+ "keepAliveIntervalSeconds" : 0,
+ "timeSinceLastActivitySeconds" : 6
+ }, {
+ "callbackUrl" : "callbackUrl",
+ "serviceId" : "serviceId",
+ "keepAliveIntervalSeconds" : 0,
+ "timeSinceLastActivitySeconds" : 6
+ } ]
+ }
+ },
+ "PolicyStatusInfo" : {
+ "description" : "Status for one A1-P Policy",
+ "value" : {
+ "lastModified" : "last_modified",
+ "status" : {
+ "value" : {
+ "status" : "status"
+ }
+ }
+ }
+ },
+ "StatusInfo" : {
+ "value" : {
+ "status" : "status"
+ }
+ },
+ "RicInfo" : {
+ "value" : {
+ "ricId" : "ricId",
+ "managedElementIds" : [ "managedElementId", "managedElementId" ],
+ "state" : "UNAVAILABLE",
+ "policyTypeIds" : [ "policyTypeId", "policyTypeId" ]
+ }
+ },
+ "RicInfoList" : {
+ "value" : {
+ "rics" : [ {
+ "ricId" : "ricId",
+ "managedElementIds" : [ "managedElementId", "managedElementId" ],
+ "state" : "UNAVAILABLE",
+ "policyTypeIds" : [ "policyTypeId", "policyTypeId" ]
+ }, {
+ "ricId" : "ricId",
+ "managedElementIds" : [ "managedElementId", "managedElementId" ],
+ "state" : "UNAVAILABLE",
+ "policyTypeIds" : [ "policyTypeId", "policyTypeId" ]
+ } ]
+ }
+ },
+ "PolicyObject" : {
+ "value" : {
+ "scope" : {
+ "ueId" : {
+ "guRanUeId" : {
+ "globalGnbId" : {
+ "plmnId" : {
+ "mcc" : "123",
+ "mnc" : "45"
+ },
+ "gnbId" : {
+ "gnbIdLength" : 24,
+ "gnbIdValue" : 12345678
+ }
+ },
+ "RanUeId" : "a31c510b20e64a74"
+ }
+ },
+ "groupId" : {
+ "spId" : 123
+ },
+ "qosId" : {
+ "5qI" : 1
+ },
+ "cellId" : {
+ "plmnId" : {
+ "mcc" : "123",
+ "mnc" : "45"
+ },
+ "cId" : {
+ "ncI" : 123
+ }
+ }
+ },
+ "qosObjectives" : {
+ "gfbr" : 100,
+ "mfbr" : 200,
+ "priorityLevel" : 3,
+ "pdb" : 50
+ }
+ }
+ }
+ },
+ "responses" : {
+ "400" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Bad Request"
+ },
+ "401" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Unauthorized"
+ },
+ "403" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Forbidden"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Found"
+ },
+ "405" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Method Not Allowed"
+ },
+ "406" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Acceptable"
+ },
+ "409" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Conflict"
+ },
+ "411" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Length Required"
+ },
+ "413" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Payload Too Large"
+ },
+ "415" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Unsupported Media Type"
+ },
+ "429" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Too Many Request"
+ },
+ "500" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Internal Server Error"
+ },
+ "502" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Bad Gateway"
+ },
+ "503" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Service Unavailable"
+ },
+ "Locked" : {
+ "content" : {
+ "application/problem+json" : {
+ "example" : {
+ "status" : 423,
+ "title" : "Locked",
+ "detail" : "State is Locked in the provided request."
+ },
+ "schema" : {
+ "$ref" : "#/components/schemas/ErrorInformation"
+ }
+ }
+ },
+ "description" : "Locked - HTTP Status code which can be used when the state is Locked"
+ }
+ },
+ "schemas" : {
+ "PolicyTypeInformation" : {
+ "description" : "Available policy types and for each policy type identifier the Near-RT RIC identifiers of those Near-RT RICs that support the related A1 policy type",
+ "properties" : {
+ "policyTypeId" : {
+ "description" : "Identity of the policy type",
+ "type" : "string"
+ },
+ "nearRtRicId" : {
+ "$ref" : "#/components/schemas/NearRtRicId"
+ }
+ },
+ "required" : [ "nearRtRicId", "policyTypeId" ],
+ "type" : "object"
+ },
+ "PolicyObjectInformation" : {
+ "description" : "Information related to the creation of the policy",
+ "properties" : {
+ "nearRtRicId" : {
+ "description" : "identity of the target Near-RT RIC",
+ "example" : "Near-RT-Ric-ID",
+ "type" : "string"
+ },
+ "transient" : {
+ "default" : false,
+ "description" : "if true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.",
+ "nullable" : false,
+ "type" : "boolean"
+ },
+ "policyId" : {
+ "description" : "identity of the Policy",
+ "example" : "POLICY-ID",
+ "type" : "string"
+ },
+ "serviceId" : {
+ "description" : "the identity of the service owning the policy. This can be used to group the policies (it is possible to get all policies associated to a service). Note that the service does not need to be registered.",
+ "example" : "rApp ID",
+ "type" : "string"
+ },
+ "policyObject" : {
+ "$ref" : "#/components/schemas/PolicyObject"
+ },
+ "policyTypeId" : {
+ "description" : "identity of the policy type",
+ "example" : "ORAN_QOS_1.0.0(typeName_SemVersion)",
+ "type" : "string"
+ }
+ },
+ "required" : [ "nearRtRicId", "policyObject", "policyTypeId" ],
+ "type" : "object"
+ },
+ "ErrorInformation" : {
+ "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807",
+ "properties" : {
+ "detail" : {
+ "description" : " A human-readable explanation specific to this occurrence of the problem.",
+ "example" : "Policy type not found",
+ "type" : "string"
+ },
+ "title" : {
+ "description" : "A specific error name",
+ "example" : "Not Found",
+ "type" : "string"
+ },
+ "status" : {
+ "description" : "The HTTP status code generated by the origin server for this occurrence of the problem. ",
+ "example" : 404,
+ "format" : "int32",
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ },
+ "PolicyObject" : {
+ "description" : "Policy Object is a JSON representation of an A1 policy",
+ "type" : "object"
+ },
+ "void" : {
+ "description" : "Void/empty",
+ "type" : "object"
+ },
+ "StatusInfo" : {
+ "properties" : {
+ "status" : {
+ "description" : "status text",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "AuthorizationResult" : {
+ "description" : "Result of authorization",
+ "example" : {
+ "result" : true
+ },
+ "properties" : {
+ "result" : {
+ "description" : "If true, the access is granted",
+ "type" : "boolean"
+ }
+ },
+ "required" : [ "result" ],
+ "type" : "object"
+ },
+ "RicInfo" : {
+ "description" : "Information for a Near-RT RIC",
+ "properties" : {
+ "ricId" : {
+ "description" : "identity of the Near-RT RIC",
+ "type" : "string"
+ },
+ "managedElementIds" : {
+ "description" : "O1 identities for managed entities",
+ "items" : {
+ "description" : "O1 identities for managed entities",
+ "type" : "string"
+ },
+ "type" : "array"
+ },
+ "state" : {
+ "description" : "Represents the states for a Near-RT RIC",
+ "enum" : [ "UNAVAILABLE", "AVAILABLE", "SYNCHRONIZING", "CONSISTENCY_CHECK" ],
+ "type" : "string"
+ },
+ "policyTypeIds" : {
+ "description" : "supported policy types",
+ "items" : {
+ "description" : "supported policy types",
+ "type" : "string"
+ },
+ "type" : "array"
+ }
+ },
+ "type" : "object"
+ },
+ "ServiceRegistrationInfo" : {
+ "description" : "Information for one service",
+ "properties" : {
+ "callbackUrl" : {
+ "description" : "callback for notifying of Near-RT RIC state changes",
+ "type" : "string"
+ },
+ "serviceId" : {
+ "description" : "identity of the service",
+ "type" : "string"
+ },
+ "keepAliveIntervalSeconds" : {
+ "description" : "keep alive interval for the service. This is used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled.",
+ "format" : "int64",
+ "type" : "integer"
+ }
+ },
+ "required" : [ "serviceId" ],
+ "type" : "object"
+ },
+ "PolicyStatusInfo" : {
+ "description" : "Status for one A1-P Policy",
+ "properties" : {
+ "lastModified" : {
+ "description" : "timestamp, last modification time",
+ "type" : "string"
+ },
+ "status" : {
+ "description" : "the Policy status",
+ "type" : "object"
+ }
+ },
+ "type" : "object"
+ },
+ "ServiceStatus" : {
+ "properties" : {
+ "callbackUrl" : {
+ "description" : "callback for notifying of RIC synchronization",
+ "type" : "string"
+ },
+ "serviceId" : {
+ "description" : "identity of the service",
+ "type" : "string"
+ },
+ "keepAliveIntervalSeconds" : {
+ "description" : "policy keep alive timeout",
+ "format" : "int64",
+ "type" : "integer"
+ },
+ "timeSinceLastActivitySeconds" : {
+ "description" : "time since last invocation by the service",
+ "format" : "int64",
+ "type" : "integer"
+ }
+ },
+ "type" : "object"
+ },
+ "RicInfoList" : {
+ "description" : "List of Near-RT RIC information",
+ "properties" : {
+ "rics" : {
+ "description" : "List of Near-RT RIC information",
+ "items" : {
+ "$ref" : "#/components/schemas/RicInfo"
+ },
+ "type" : "array"
+ }
+ },
+ "type" : "object"
+ },
+ "input" : {
+ "description" : "input",
+ "properties" : {
+ "accessType" : {
+ "description" : "Access type",
+ "enum" : [ "READ", "WRITE", "DELETE" ],
+ "type" : "string"
+ },
+ "authToken" : {
+ "description" : "Authorization token",
+ "type" : "string"
+ },
+ "policyTypeId" : {
+ "description" : "Policy type identifier",
+ "type" : "string"
+ }
+ },
+ "required" : [ "accessType", "authToken", "policyTypeId" ],
+ "type" : "object"
+ },
+ "PolicyAuthorization" : {
+ "description" : "Authorization request for A1 policy requests",
+ "properties" : {
+ "input" : {
+ "$ref" : "#/components/schemas/input"
+ }
+ },
+ "required" : [ "input" ],
+ "type" : "object"
+ },
+ "NearRtRicId" : {
+ "description" : "Identity of the policy",
+ "type" : "string"
+ },
+ "PolicyInformation" : {
+ "description" : "Near-RT RIC identifiers where A1 policies exist and for each Near-RT RIC identifier the policy identifiers of those policies that exist in that Near-RT RIC",
+ "properties" : {
+ "policyId" : {
+ "description" : "Identity of the policy",
+ "type" : "string"
+ },
+ "nearRtRicId" : {
+ "$ref" : "#/components/schemas/NearRtRicId"
+ }
+ },
+ "required" : [ "nearRtRicId", "policyId" ],
+ "type" : "object"
+ },
+ "ServiceStatusList" : {
+ "properties" : {
+ "serviceList" : {
+ "description" : "List of service information",
+ "items" : {
+ "$ref" : "#/components/schemas/ServiceStatus"
+ },
+ "type" : "array"
+ }
+ },
+ "type" : "object"
+ },
+ "ServiceCallbackInfo" : {
+ "description" : "Information transferred as in Service callbacks (callback_url)",
+ "properties" : {
+ "ricId" : {
+ "description" : "identity of a Near-RT RIC",
+ "type" : "string"
+ },
+ "eventType" : {
+ "description" : "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management",
+ "enum" : [ "AVAILABLE" ],
+ "type" : "string"
+ }
+ },
+ "required" : [ "eventType", "ricId" ],
+ "type" : "object"
+ },
+ "Link" : {
+ "properties" : {
+ "templated" : {
+ "type" : "boolean"
+ },
+ "href" : {
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ },
+ "ProblemDetails" : {
+ "description" : "A problem detail to carry details in an HTTP response according to RFC 7807",
+ "properties" : {
+ "type" : {
+ "description" : "a URI reference according to IETF RFC 3986 that identifies the problem type",
+ "type" : "string"
+ },
+ "title" : {
+ "description" : "human-readable summary of the problem type",
+ "type" : "string"
+ },
+ "status" : {
+ "description" : "the HTTP status code",
+ "type" : "number"
+ },
+ "detail" : {
+ "description" : "human-readable explanation ",
+ "type" : "string"
+ },
+ "instance" : {
+ "description" : "URI reference that identifies the specific occurrence of the problem",
+ "type" : "string"
+ }
+ },
+ "type" : "object"
+ }
+ }
+ }
+} \ No newline at end of file