| { |
| "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" |
| } |
| } |
| } |
| } |