diff options
Diffstat (limited to 'docs/offeredapis/swagger/pms-api.json')
-rw-r--r-- | docs/offeredapis/swagger/pms-api.json | 3728 |
1 files changed, 1863 insertions, 1865 deletions
diff --git a/docs/offeredapis/swagger/pms-api.json b/docs/offeredapis/swagger/pms-api.json index 5dd8b493..deb57430 100644 --- a/docs/offeredapis/swagger/pms-api.json +++ b/docs/offeredapis/swagger/pms-api.json @@ -1,1866 +1,1864 @@ -{
- "openapi" : "3.0.3",
- "info" : {
- "title" : "A1 Policy Management Service",
- "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><h3>Spring Boot Actuator</h3><p>Provides generic functions used to monitor and manage the Spring web application.</p>",
- "contact" : {
- "url" : "https://www.onap.org/",
- "email" : "discuss-list@onap.com"
- },
- "license" : {
- "name" : "Copyright (C) 2020-2023 Nordix Foundation. Licensed under the Apache License.",
- "url" : "http://www.apache.org/licenses/LICENSE-2.0"
- },
- "version" : "1.3.0",
- "x-api-id" : "a31c510b-20e6-4a08-af16-368c44d7fba8",
- "x-audience" : "external-public"
- },
- "servers" : [ {
- "url" : "/"
- } ],
- "tags" : [ {
- "name" : "A1 Policy Management",
- "description" : "API used to create polices, Policy Instances and get them as individual using an ID or get all policies/Instances."
- }, {
- "name" : "NearRT-RIC Repository",
- "description" : "API used to get the NearRT-RIC for the managed element."
- }, {
- "name" : "Service Registry and Supervision",
- "description" : "API used to keep the service Alive with in the timeout period"
- }, {
- "name" : "Health Check",
- "description" : "API used to get the health status and statistics of this service"
- }, {
- "name" : "Service callbacks"
- }, {
- "name" : "Authorization API",
- "description" : "API used for authorization of information A1 policy access (this is provided by an authorization producer such as OPA). <br> Note that this API is called by PMS, it is not provided."
- }, {
- "name" : "Configuration",
- "description" : "API used to create or fetch the application configuration."
- }, {
- "name" : "Actuator",
- "description" : "Monitor and interact",
- "externalDocs" : {
- "description" : "Spring Boot Actuator Web API Documentation",
- "url" : "https://docs.spring.io/spring-boot/docs/current/actuator-api/html/"
- }
- } ],
- "paths" : {
- "/a1-policy/v2/policy-instances" : {
- "get" : {
- "tags" : [ "A1 Policy Management" ],
- "summary" : "Query for A1 policy instances",
- "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" : "getPolicyInstances",
- "parameters" : [ {
- "name" : "policytype_id",
- "in" : "query",
- "description" : "Select policies with a given type identity.",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- }, {
- "name" : "ric_id",
- "in" : "query",
- "description" : "Select policies for a given Near-RT RIC identity.",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- }, {
- "name" : "service_id",
- "in" : "query",
- "description" : "Select policies owned by a given service.",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- }, {
- "name" : "type_name",
- "in" : "query",
- "description" : "Select policies of a given type name (type identity has the format <typename_version>)",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "OK - Returns A1 Policies which matches the criteria",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_info_list"
- },
- "examples" : {
- "policy_info_list" : {
- "$ref" : "#/components/examples/policy_info_list"
- }
- }
- }
- }
- },
- "404" : {
- "description" : "Not Found - Near-RT RIC, policy type or service not found",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- }
- }
- }
- }
- }
- }
- },
- "/example-authz-check" : {
- "post" : {
- "tags" : [ "Authorization API" ],
- "summary" : "Request for access authorization.",
- "description" : "The authorization function decides if access is granted.",
- "operationId" : "performAccessControl",
- "requestBody" : {
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_authorization"
- }
- }
- },
- "required" : true
- },
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/authorization_result"
- }
- }
- }
- },
- "403" : {
- "description" : "Forbidden",
- "content" : {
- "application/problem+json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- },
- "example" : {
- "status" : 403,
- "title" : "Forbidden",
- "detail" : "Your role does not allow to perform this action. Contact System Administrator to change your access rights."
- }
- }
- }
- }
- }
- }
- },
- "/actuator/threaddump" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'threaddump'",
- "operationId" : "threaddump",
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "text/plain;charset=UTF-8" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- },
- "x-internal" : true
- }
- },
- "/a1-policy/v2/status" : {
- "get" : {
- "tags" : [ "Health Check" ],
- "description" : "Returns status and statistics of this service",
- "operationId" : "getStatus",
- "responses" : {
- "200" : {
- "description" : "OK- Service is living Ok",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/status_info"
- },
- "examples" : {
- "status_info" : {
- "$ref" : "#/components/examples/status_info"
- }
- }
- }
- }
- }
- }
- }
- },
- "/actuator/loggers" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'loggers'",
- "operationId" : "loggers",
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- },
- "x-internal" : true
- }
- },
- "/actuator/health/**" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'health-path'",
- "operationId" : "health-path",
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- },
- "x-internal" : true
- }
- },
- "/a1-policy/v2/rics/ric" : {
- "get" : {
- "tags" : [ "NearRT-RIC Repository" ],
- "summary" : "Returns info of Near-RT RIC queried by the ric-id and managed-element-id",
- "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" : [ {
- "name" : "managed_element_id",
- "in" : "query",
- "description" : "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- }, {
- "name" : "ric_id",
- "in" : "query",
- "description" : "The identity of a Near-RT RIC to get information for.",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "OK - Near-RT RIC is found",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/ric_info"
- },
- "examples" : {
- "ric_info" : {
- "$ref" : "#/components/examples/ric_info"
- }
- }
- }
- }
- },
- "404" : {
- "description" : "Not Found",
- "content" : {
- "application/problem+json" : {
- "example" : [ ]
- }
- }
- }
- }
- }
- },
- "/actuator/shutdown" : {
- "post" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'shutdown'",
- "operationId" : "shutdown",
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- },
- "x-internal" : true
- }
- },
- "/a1-policy/v2/policy-types" : {
- "get" : {
- "tags" : [ "A1 Policy Management" ],
- "description" : "Query policy type identities",
- "operationId" : "getPolicyTypes",
- "parameters" : [ {
- "name" : "ric_id",
- "in" : "query",
- "description" : "Select types for the given Near-RT RIC identity.",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- }, {
- "name" : "type_name",
- "in" : "query",
- "description" : "Select types with the given type name (type identity has the format <typename_version>)",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- }, {
- "name" : "compatible_with_version",
- "in" : "query",
- "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.",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "OK - Policy Type IDs Found",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_type_id_list"
- },
- "examples" : {
- "policy_type_id_list" : {
- "$ref" : "#/components/examples/policy_type_id_list"
- }
- }
- }
- }
- },
- "404" : {
- "description" : "Not Found",
- "content" : {
- "application/problem+json" : {
- "example" : [ ]
- }
- }
- }
- }
- }
- },
- "/a1-policy/v2/policies/{policy_id}" : {
- "get" : {
- "tags" : [ "A1 Policy Management" ],
- "description" : "Returns a policy",
- "operationId" : "getPolicy",
- "parameters" : [ {
- "name" : "policy_id",
- "in" : "path",
- "required" : true,
- "style" : "simple",
- "explode" : false,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "OK - Policy found",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_info"
- },
- "examples" : {
- "policy_info" : {
- "$ref" : "#/components/examples/policy_info"
- }
- }
- }
- }
- },
- "404" : {
- "description" : "Not Found",
- "content" : {
- "application/problem+json" : {
- "example" : [ ]
- }
- }
- }
- }
- },
- "delete" : {
- "tags" : [ "A1 Policy Management" ],
- "summary" : "Delete a policy",
- "description" : "Deleting the policy using the Policy's Policy ID.",
- "operationId" : "deletePolicy",
- "parameters" : [ {
- "name" : "policy_id",
- "in" : "path",
- "required" : true,
- "style" : "simple",
- "explode" : false,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "OK - Policy deleted",
- "content" : {
- "*/*" : {
- "schema" : {
- "$ref" : "#/components/schemas/void"
- }
- }
- }
- },
- "423" : {
- "description" : "Locked - HTTP Status code which can be used when the state is Locked",
- "content" : {
- "application/problem+json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- },
- "example" : {
- "status" : 423,
- "title" : "Locked",
- "detail" : "Requested resource is in a locked state."
- }
- }
- }
- }
- }
- }
- },
- "/actuator/metrics/{requiredMetricName}" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'metrics-requiredMetricName'",
- "operationId" : "metrics-requiredMetricName",
- "parameters" : [ {
- "name" : "requiredMetricName",
- "in" : "path",
- "required" : true,
- "style" : "simple",
- "explode" : false,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- },
- "x-internal" : true
- }
- },
- "/a1-policy/v2/configuration" : {
- "get" : {
- "tags" : [ "Configuration" ],
- "description" : "Returns the contents of the application configuration file",
- "operationId" : "getConfiguration",
- "responses" : {
- "200" : {
- "description" : "OK - Configuration",
- "content" : {
- "application/json" : {
- "schema" : {
- "type" : "string"
- }
- }
- }
- },
- "404" : {
- "description" : "Not Found",
- "content" : {
- "application/problem+json" : {
- "example" : [ ]
- }
- }
- }
- },
- "x-internal" : true
- },
- "put" : {
- "tags" : [ "Configuration" ],
- "description" : "Replace the current configuration with the given configuration",
- "operationId" : "putConfiguration",
- "requestBody" : {
- "content" : {
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- }
- },
- "required" : true
- },
- "responses" : {
- "200" : {
- "description" : "OK - Configuration updated",
- "content" : {
- "*/*" : {
- "schema" : {
- "$ref" : "#/components/schemas/void"
- }
- }
- }
- },
- "400" : {
- "description" : "Bad Request",
- "content" : {
- "application/problem+json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- },
- "example" : {
- "status" : 400,
- "title" : "Bad Request",
- "detail" : "The provided request is not valid."
- }
- }
- }
- }
- },
- "x-internal" : true
- }
- },
- "/actuator" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator root web endpoint",
- "operationId" : "links",
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object",
- "additionalProperties" : {
- "type" : "object",
- "additionalProperties" : {
- "$ref" : "#/components/schemas/Link"
- }
- }
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object",
- "additionalProperties" : {
- "type" : "object",
- "additionalProperties" : {
- "$ref" : "#/components/schemas/Link"
- }
- }
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object",
- "additionalProperties" : {
- "type" : "object",
- "additionalProperties" : {
- "$ref" : "#/components/schemas/Link"
- }
- }
- }
- }
- }
- }
- },
- "x-internal" : true
- }
- },
- "/actuator/loggers/{name}" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'loggers-name'",
- "operationId" : "loggers-name",
- "parameters" : [ {
- "name" : "name",
- "in" : "path",
- "required" : true,
- "style" : "simple",
- "explode" : false,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- },
- "x-internal" : true
- },
- "post" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'loggers-name'",
- "operationId" : "loggers-name_2",
- "parameters" : [ {
- "name" : "name",
- "in" : "path",
- "required" : true,
- "style" : "simple",
- "explode" : false,
- "schema" : {
- "type" : "string"
- }
- } ],
- "requestBody" : {
- "content" : {
- "application/json" : {
- "schema" : {
- "type" : "string",
- "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", "OFF" ]
- }
- }
- }
- },
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "*/*" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- },
- "x-internal" : true
- }
- },
- "/a1-policy/v2/services/{service_id}/keepalive" : {
- "put" : {
- "tags" : [ "Service Registry and Supervision" ],
- "summary" : "Heartbeat indicates that the service is running",
- "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" : [ {
- "name" : "service_id",
- "in" : "path",
- "required" : true,
- "style" : "simple",
- "explode" : false,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "OK - Service supervision timer refreshed, OK",
- "content" : {
- "*/*" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- },
- "404" : {
- "description" : "Not Found",
- "content" : {
- "application/problem+json" : {
- "example" : [ ]
- }
- }
- }
- }
- }
- },
- "/actuator/metrics" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'metrics'",
- "operationId" : "metrics",
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- },
- "x-internal" : true
- }
- },
- "/a1-policy/v2/rics" : {
- "get" : {
- "tags" : [ "NearRT-RIC Repository" ],
- "summary" : "Query Near-RT RIC information",
- "description" : "The call returns all Near-RT RICs that supports a given policy type identity",
- "operationId" : "getRics",
- "parameters" : [ {
- "name" : "policytype_id",
- "in" : "query",
- "description" : "The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/ric_info_list"
- },
- "examples" : {
- "ric_info_list" : {
- "$ref" : "#/components/examples/ric_info_list"
- }
- }
- }
- }
- },
- "404" : {
- "description" : "Not Found",
- "content" : {
- "application/problem+json" : {
- "example" : [ ]
- }
- }
- }
- }
- }
- },
- "/a1-policy/v2/services" : {
- "get" : {
- "tags" : [ "Service Registry and Supervision" ],
- "summary" : "Returns service information",
- "description" : "Either information about a registered service with given identity or all registered services are returned.",
- "operationId" : "getServices",
- "parameters" : [ {
- "name" : "service_id",
- "in" : "query",
- "description" : "The identity of the service",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/service_status_list"
- },
- "examples" : {
- "service_status_list" : {
- "$ref" : "#/components/examples/service_status_list"
- }
- }
- }
- }
- },
- "404" : {
- "description" : "Not Found",
- "content" : {
- "application/problem+json" : {
- "example" : [ ]
- }
- }
- }
- }
- },
- "put" : {
- "tags" : [ "Service Registry and Supervision" ],
- "summary" : "Register a service",
- "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/service_registration_info"
- }
- }
- },
- "required" : true
- },
- "responses" : {
- "200" : {
- "description" : "OK - Service updated",
- "content" : {
- "*/*" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- },
- "201" : {
- "description" : "Created - Service created",
- "content" : {
- "*/*" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- },
- "400" : {
- "description" : "Bad Request",
- "content" : {
- "application/problem+json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- },
- "example" : {
- "status" : 400,
- "title" : "Bad Request",
- "detail" : "The provided request is not valid."
- }
- }
- }
- }
- },
- "callbacks" : {
- "RICStatus" : {
- "{$request.body#/callback_url}" : {
- "post" : {
- "tags" : [ "Service callbacks" ],
- "summary" : "Callback for Near-RT RIC status",
- "description" : "The URL to this call is registered at Service registration.",
- "operationId" : "serviceCallback",
- "requestBody" : {
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/service_callback_info_v2"
- }
- }
- },
- "required" : true
- },
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/void"
- }
- }
- }
- },
- "404" : {
- "description" : "Not Found",
- "content" : {
- "application/problem+json" : {
- "example" : [ ]
- }
- }
- }
- }
- }
- }
- }
- }
- }
- },
- "/actuator/info" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'info'",
- "operationId" : "info",
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- },
- "x-internal" : true
- }
- },
- "/status" : {
- "get" : {
- "tags" : [ "Health Check" ],
- "description" : "Returns status and statistics of this service",
- "operationId" : "getStatusV1",
- "responses" : {
- "200" : {
- "description" : "OK - Service is living",
- "content" : {
- "*/*" : {
- "schema" : {
- "type" : "string"
- }
- }
- }
- }
- }
- }
- },
- "/a1-policy/v2/policy-types/{policytype_id}" : {
- "get" : {
- "tags" : [ "A1 Policy Management" ],
- "description" : "Returns a policy type definition",
- "operationId" : "getPolicyTypeDefinition",
- "parameters" : [ {
- "name" : "policytype_id",
- "in" : "path",
- "required" : true,
- "style" : "simple",
- "explode" : false,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "OK - schema of the given policy type",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_type_definition"
- },
- "examples" : {
- "policy_type_definition" : {
- "$ref" : "#/components/examples/policy_type_definition"
- }
- }
- }
- }
- },
- "404" : {
- "description" : "Not Found",
- "content" : {
- "application/problem+json" : {
- "example" : [ ]
- }
- }
- }
- }
- }
- },
- "/actuator/logfile" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'logfile'",
- "operationId" : "logfile",
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "text/plain;charset=UTF-8" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- },
- "x-internal" : true
- }
- },
- "/actuator/health" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'health'",
- "operationId" : "health",
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/vnd.spring-boot.actuator.v3+json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/json" : {
- "schema" : {
- "type" : "object"
- }
- },
- "application/vnd.spring-boot.actuator.v2+json" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- },
- "x-internal" : true
- }
- },
- "/a1-policy/v2/policies" : {
- "get" : {
- "tags" : [ "A1 Policy Management" ],
- "summary" : "Query policy identities",
- "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" : "getPolicyIds",
- "parameters" : [ {
- "name" : "policytype_id",
- "in" : "query",
- "description" : "Select policies of a given policy type identity.",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- }, {
- "name" : "ric_id",
- "in" : "query",
- "description" : "Select policies of a given Near-RT RIC identity.",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- }, {
- "name" : "service_id",
- "in" : "query",
- "description" : "Select policies owned by a given service.",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- }, {
- "name" : "type_name",
- "in" : "query",
- "description" : "Select policies of types with the given type name (type identity has the format <typename_version>)",
- "required" : false,
- "style" : "form",
- "explode" : true,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "OK - Policy identities",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_id_list"
- },
- "examples" : {
- "policy_id_list" : {
- "$ref" : "#/components/examples/policy_id_list"
- }
- }
- }
- }
- },
- "404" : {
- "description" : "Not Found",
- "content" : {
- "application/problem+json" : {
- "example" : [ ]
- }
- }
- }
- }
- },
- "put" : {
- "tags" : [ "A1 Policy Management" ],
- "description" : "Create or update a policy",
- "operationId" : "putPolicy",
- "requestBody" : {
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_info"
- }
- }
- },
- "required" : true
- },
- "responses" : {
- "200" : {
- "description" : "OK - Policy updated",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/void"
- }
- }
- }
- },
- "201" : {
- "description" : "Created - Policy created",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/void"
- }
- }
- }
- },
- "423" : {
- "description" : "Locked - HTTP Status code which can be used when the state is Locked",
- "content" : {
- "application/problem+json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- },
- "example" : {
- "status" : 423,
- "title" : "Locked",
- "detail" : "Requested resource is in a locked state."
- }
- }
- }
- }
- }
- }
- },
- "/a1-policy/v2/services/{service_id}" : {
- "delete" : {
- "tags" : [ "Service Registry and Supervision" ],
- "description" : "Unregister a service",
- "operationId" : "deleteService",
- "parameters" : [ {
- "name" : "service_id",
- "in" : "path",
- "required" : true,
- "style" : "simple",
- "explode" : false,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "204" : {
- "description" : "No Content - Service unregistered",
- "content" : {
- "*/*" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- },
- "404" : {
- "description" : "Not Found",
- "content" : {
- "application/problem+json" : {
- "example" : [ ]
- }
- }
- }
- }
- }
- },
- "/actuator/heapdump" : {
- "get" : {
- "tags" : [ "Actuator" ],
- "summary" : "Actuator web endpoint 'heapdump'",
- "operationId" : "heapdump",
- "responses" : {
- "200" : {
- "description" : "OK",
- "content" : {
- "application/octet-stream" : {
- "schema" : {
- "type" : "object"
- }
- }
- }
- }
- },
- "x-internal" : true
- }
- },
- "/a1-policy/v2/policies/{policy_id}/status" : {
- "get" : {
- "tags" : [ "A1 Policy Management" ],
- "description" : "Returns a policy status",
- "operationId" : "getPolicyStatus",
- "parameters" : [ {
- "name" : "policy_id",
- "in" : "path",
- "required" : true,
- "style" : "simple",
- "explode" : false,
- "schema" : {
- "type" : "string"
- }
- } ],
- "responses" : {
- "200" : {
- "description" : "OK - Policy status",
- "content" : {
- "application/json" : {
- "schema" : {
- "$ref" : "#/components/schemas/policy_status_info"
- },
- "examples" : {
- "policy_status_info" : {
- "$ref" : "#/components/examples/policy_status_info"
- }
- }
- }
- }
- },
- "404" : {
- "description" : "Not Found",
- "content" : {
- "application/problem+json" : {
- "example" : [ ]
- }
- }
- }
- }
- }
- }
- },
- "components" : {
- "schemas" : {
- "policy_type_definition" : {
- "type" : "object",
- "properties" : {
- "policy_schema" : {
- "type" : "object",
- "description" : "Policy type json schema. The schema is a json object following http://json-schema.org/draft-07/schema"
- }
- },
- "description" : "Contains policy type schema definition"
- },
- "error_information" : {
- "type" : "object",
- "properties" : {
- "detail" : {
- "type" : "string",
- "description" : " A human-readable explanation specific to this occurrence of the problem.",
- "example" : "Policy type not found"
- },
- "title" : {
- "type" : "string",
- "description" : "A specific error name",
- "example" : "Not Found"
- },
- "status" : {
- "type" : "integer",
- "description" : "The HTTP status code generated by the origin server for this occurrence of the problem. ",
- "format" : "int32",
- "example" : 404
- }
- },
- "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807"
- },
- "void" : {
- "type" : "object",
- "description" : "Void/empty"
- },
- "status_info" : {
- "type" : "object",
- "properties" : {
- "status" : {
- "type" : "string",
- "description" : "status text"
- }
- }
- },
- "authorization_result" : {
- "required" : [ "result" ],
- "type" : "object",
- "properties" : {
- "result" : {
- "type" : "boolean",
- "description" : "If true, the access is granted"
- }
- },
- "description" : "Result of authorization",
- "example" : {
- "result" : true
- }
- },
- "ric_info" : {
- "type" : "object",
- "properties" : {
- "ric_id" : {
- "type" : "string",
- "description" : "identity of the Near-RT RIC"
- },
- "managed_element_ids" : {
- "type" : "array",
- "description" : "O1 identities for managed entities",
- "items" : {
- "type" : "string",
- "description" : "O1 identities for managed entities"
- }
- },
- "state" : {
- "type" : "string",
- "description" : "Represents the states for a Near-RT RIC",
- "enum" : [ "UNAVAILABLE", "AVAILABLE", "SYNCHRONIZING", "CONSISTENCY_CHECK" ]
- },
- "policytype_ids" : {
- "type" : "array",
- "description" : "supported policy types",
- "items" : {
- "type" : "string",
- "description" : "supported policy types"
- }
- }
- },
- "description" : "Information for a Near-RT RIC"
- },
- "service_registration_info" : {
- "required" : [ "service_id" ],
- "type" : "object",
- "properties" : {
- "callback_url" : {
- "type" : "string",
- "description" : "callback for notifying of Near-RT RIC state changes"
- },
- "service_id" : {
- "type" : "string",
- "description" : "identity of the service"
- },
- "keep_alive_interval_seconds" : {
- "type" : "integer",
- "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"
- }
- },
- "description" : "Information for one service"
- },
- "policy_info_list" : {
- "type" : "object",
- "properties" : {
- "policies" : {
- "type" : "array",
- "description" : "List of policy information",
- "items" : {
- "$ref" : "#/components/schemas/policy_info"
- }
- }
- },
- "description" : "List of policy information"
- },
- "policy_status_info" : {
- "type" : "object",
- "properties" : {
- "last_modified" : {
- "type" : "string",
- "description" : "timestamp, last modification time"
- },
- "status" : {
- "type" : "object",
- "description" : "the Policy status"
- }
- },
- "description" : "Status for one A1-P Policy"
- },
- "service_status" : {
- "type" : "object",
- "properties" : {
- "callback_url" : {
- "type" : "string",
- "description" : "callback for notifying of RIC synchronization"
- },
- "service_id" : {
- "type" : "string",
- "description" : "identity of the service"
- },
- "keep_alive_interval_seconds" : {
- "type" : "integer",
- "description" : "policy keep alive timeout",
- "format" : "int64"
- },
- "time_since_last_activity_seconds" : {
- "type" : "integer",
- "description" : "time since last invocation by the service",
- "format" : "int64"
- }
- }
- },
- "ric_info_list" : {
- "type" : "object",
- "properties" : {
- "rics" : {
- "type" : "array",
- "description" : "List of Near-RT RIC information",
- "items" : {
- "$ref" : "#/components/schemas/ric_info"
- }
- }
- },
- "description" : "List of Near-RT RIC information"
- },
- "input" : {
- "required" : [ "access_type", "auth_token", "policy_type_id" ],
- "type" : "object",
- "properties" : {
- "access_type" : {
- "type" : "string",
- "description" : "Access type",
- "enum" : [ "READ", "WRITE", "DELETE" ]
- },
- "auth_token" : {
- "type" : "string",
- "description" : "Authorization token"
- },
- "policy_type_id" : {
- "type" : "string",
- "description" : "Policy type identifier"
- }
- },
- "description" : "input"
- },
- "policy_authorization" : {
- "required" : [ "input" ],
- "type" : "object",
- "properties" : {
- "input" : {
- "$ref" : "#/components/schemas/input"
- }
- },
- "description" : "Authorization request for A1 policy requests"
- },
- "policy_type_id_list" : {
- "type" : "object",
- "properties" : {
- "policytype_ids" : {
- "type" : "array",
- "description" : "Policy type identities",
- "items" : {
- "type" : "string",
- "description" : "Policy type identities"
- }
- }
- },
- "description" : "Information about policy types"
- },
- "policy_info" : {
- "required" : [ "policy_data", "policy_id", "policytype_id", "ric_id" ],
- "type" : "object",
- "properties" : {
- "ric_id" : {
- "type" : "string",
- "description" : "identity of the target Near-RT RIC"
- },
- "policy_id" : {
- "type" : "string",
- "description" : "identity of the policy"
- },
- "transient" : {
- "type" : "boolean",
- "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,
- "example" : false,
- "default" : false
- },
- "service_id" : {
- "type" : "string",
- "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.",
- "default" : ""
- },
- "policy_data" : {
- "type" : "object",
- "description" : "the configuration of the policy"
- },
- "status_notification_uri" : {
- "type" : "string",
- "description" : "Callback URI for policy status updates"
- },
- "policytype_id" : {
- "type" : "string",
- "description" : "identity of the policy type"
- }
- },
- "description" : "Information for one A1-P Policy"
- },
- "policy_id_list" : {
- "type" : "object",
- "properties" : {
- "policy_ids" : {
- "type" : "array",
- "description" : "Policy identities",
- "items" : {
- "type" : "string",
- "description" : "Policy identities"
- }
- }
- },
- "description" : "A list of policy identities",
- "example" : {
- "policy_ids" : [ "policy_ids", "policy_ids" ]
- }
- },
- "service_status_list" : {
- "type" : "object",
- "properties" : {
- "service_list" : {
- "type" : "array",
- "description" : "List of service information",
- "items" : {
- "$ref" : "#/components/schemas/service_status"
- }
- }
- }
- },
- "service_callback_info_v2" : {
- "required" : [ "event_type", "ric_id" ],
- "type" : "object",
- "properties" : {
- "ric_id" : {
- "type" : "string",
- "description" : "identity of a Near-RT RIC"
- },
- "event_type" : {
- "type" : "string",
- "description" : "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management",
- "enum" : [ "AVAILABLE" ]
- }
- },
- "description" : "Information transferred as in Service callbacks (callback_url)"
- },
- "Link" : {
- "type" : "object",
- "properties" : {
- "templated" : {
- "type" : "boolean"
- },
- "href" : {
- "type" : "string"
- }
- }
- }
- },
- "responses" : {
- "Locked" : {
- "description" : "Locked - HTTP Status code which can be used when the state is Locked",
- "content" : {
- "application/problem+json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- },
- "example" : {
- "status" : 423,
- "title" : "Locked",
- "detail" : "Requested resource is in a locked state."
- }
- }
- }
- },
- "BadRequest" : {
- "description" : "Bad Request",
- "content" : {
- "application/problem+json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- },
- "example" : {
- "status" : 400,
- "title" : "Bad Request",
- "detail" : "The provided request is not valid."
- }
- }
- }
- },
- "Forbidden" : {
- "description" : "Forbidden",
- "content" : {
- "application/problem+json" : {
- "schema" : {
- "$ref" : "#/components/schemas/error_information"
- },
- "example" : {
- "status" : 403,
- "title" : "Forbidden",
- "detail" : "Your role does not allow to perform this action. Contact System Administrator to change your access rights."
- }
- }
- }
- },
- "NotFound" : {
- "description" : "Not Found",
- "content" : {
- "application/problem+json" : {
- "example" : [ ]
- }
- }
- }
- },
- "examples" : {
- "service_status" : {
- "description" : "List of service information",
- "value" : {
- "callback_url" : "callback_url",
- "service_id" : "service_id",
- "keep_alive_interval_seconds" : 0,
- "time_since_last_activity_seconds" : 6
- }
- },
- "service_status_list" : {
- "description" : "List of service information",
- "value" : {
- "service_list" : [ {
- "callback_url" : "callback_url",
- "service_id" : "service_id",
- "keep_alive_interval_seconds" : 0,
- "time_since_last_activity_seconds" : 6
- }, {
- "callback_url" : "callback_url",
- "service_id" : "service_id",
- "keep_alive_interval_seconds" : 0,
- "time_since_last_activity_seconds" : 6
- } ]
- }
- },
- "policy_type_definition" : {
- "description" : "Schema of the given Policy type",
- "value" : {
- "policy_schema" : "{}"
- }
- },
- "policy_type_id_list" : {
- "description" : "Array of policy type id's",
- "value" : {
- "policy_type_id_list" : [ "policytype_id", "policytype_id" ]
- }
- },
- "policy_info" : {
- "description" : "Policy information of one A1-P policy",
- "value" : {
- "ric_id" : "ric_id",
- "policy_id" : "policy_id",
- "transient" : false,
- "service_id" : "service_id",
- "policy_data" : "{}",
- "status_notification_uri" : "status_notification_uri",
- "policytype_id" : "policytype_id"
- }
- },
- "policy_info_list" : {
- "description" : "List of policy information",
- "value" : {
- "policies" : [ {
- "ric_id" : "ric_id",
- "policy_id" : "policy_id",
- "transient" : false,
- "service_id" : "service_id",
- "policy_data" : "{}",
- "status_notification_uri" : "status_notification_uri",
- "policytype_id" : "policytype_id"
- }, {
- "ric_id" : "ric_id",
- "policy_id" : "policy_id",
- "transient" : false,
- "service_id" : "service_id",
- "policy_data" : "{}",
- "status_notification_uri" : "status_notification_uri",
- "policytype_id" : "policytype_id"
- } ]
- }
- },
- "policy_id_list" : {
- "description" : "A list of policy identities",
- "value" : {
- "policy_ids" : [ "some_policy_id", "some_policy_id" ]
- }
- },
- "policy_status_info" : {
- "description" : "Status for one A1-P Policy",
- "value" : {
- "last_modified" : "last_modified",
- "status" : {
- "value" : {
- "status" : "status"
- }
- }
- }
- },
- "status_info" : {
- "value" : {
- "status" : "status"
- }
- },
- "ric_info" : {
- "value" : {
- "ric_id" : "ric_id",
- "managed_element_ids" : [ "some_managed_element_id", "some_managed_element_id" ],
- "state" : "UNAVAILABLE",
- "policytype_ids" : [ "some_policytype_id", "some_policytype_id" ]
- }
- },
- "ric_info_list" : {
- "value" : {
- "rics" : [ {
- "ric_id" : "ric_id",
- "managed_element_ids" : [ "some_managed_element_id", "some_managed_element_id" ],
- "state" : "UNAVAILABLE",
- "policytype_ids" : [ "policytype_id", "policytype_id" ]
- }, {
- "ric_id" : "ric_id",
- "managed_element_ids" : [ "managed_element_ids", "managed_element_ids" ],
- "state" : "UNAVAILABLE",
- "policytype_ids" : [ "policytype_ids", "policytype_ids" ]
- } ]
- }
- }
- }
- }
+{ + "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><h3>Spring Boot Actuator</h3><p>Provides generic functions used to monitor and manage the Spring web application.</p>", + "license" : { + "name" : "Copyright (C) 2020-2023 Nordix Foundation. Licensed under the Apache License.", + "url" : "http://www.apache.org/licenses/LICENSE-2.0" + }, + "title" : "A1 Policy Management Service", + "version" : "1.3.0", + "x-api-id" : "a31c510b-20e6-4a08-af16-368c44d7fba8", + "x-audience" : "external-public" + }, + "servers" : [ { + "url" : "/" + } ], + "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 for authorization of information A1 policy access (this is provided by an authorization producer such as OPA). <br> Note that this API is called by PMS, it is not provided.", + "name" : "Authorization API" + }, { + "description" : "API used to create or fetch the application configuration.", + "name" : "Configuration" + }, { + "description" : "Monitor and interact", + "externalDocs" : { + "description" : "Spring Boot Actuator Web API Documentation", + "url" : "https://docs.spring.io/spring-boot/docs/current/actuator-api/html/" + }, + "name" : "Actuator" + } ], + "paths" : { + "/a1-policy/v2/policy-instances" : { + "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" : "getPolicyInstances", + "parameters" : [ { + "description" : "Select policies with a given type identity.", + "explode" : true, + "in" : "query", + "name" : "policytype_id", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "form" + }, { + "description" : "Select policies for a given Near-RT RIC identity.", + "explode" : true, + "in" : "query", + "name" : "ric_id", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "form" + }, { + "description" : "Select policies owned by a given service.", + "explode" : true, + "in" : "query", + "name" : "service_id", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "form" + }, { + "description" : "Select policies of a given type name (type identity has the format <typename_version>)", + "explode" : true, + "in" : "query", + "name" : "type_name", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "form" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "examples" : { + "policy_info_list" : { + "$ref" : "#/components/examples/policy_info_list" + } + }, + "schema" : { + "$ref" : "#/components/schemas/policy_info_list" + } + } + }, + "description" : "OK - Returns A1 Policies which matches the criteria" + }, + "404" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/error_information" + } + } + }, + "description" : "Not Found - Near-RT RIC, policy type or service not found" + } + }, + "summary" : "Query for A1 policy instances", + "tags" : [ "A1 Policy Management" ] + } + }, + "/example-authz-check" : { + "post" : { + "description" : "The authorization function decides if access is granted.", + "operationId" : "performAccessControl", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/policy_authorization" + } + } + }, + "required" : true + }, + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/authorization_result" + } + } + }, + "description" : "OK" + }, + "403" : { + "content" : { + "application/problem+json" : { + "example" : { + "status" : 403, + "title" : "Forbidden", + "detail" : "Your role does not allow to perform this action. Contact System Administrator to change your access rights." + }, + "schema" : { + "$ref" : "#/components/schemas/error_information" + } + } + }, + "description" : "Forbidden" + } + }, + "summary" : "Request for access authorization.", + "tags" : [ "Authorization API" ] + } + }, + "/actuator/threaddump" : { + "get" : { + "operationId" : "threaddump", + "responses" : { + "200" : { + "content" : { + "text/plain;charset=UTF-8" : { + "schema" : { + "type" : "object" + } + }, + "application/vnd.spring-boot.actuator.v3+json" : { + "schema" : { + "type" : "object" + } + }, + "application/json" : { + "schema" : { + "type" : "object" + } + }, + "application/vnd.spring-boot.actuator.v2+json" : { + "schema" : { + "type" : "object" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator web endpoint 'threaddump'", + "tags" : [ "Actuator" ], + "x-internal" : true + } + }, + "/a1-policy/v2/status" : { + "get" : { + "description" : "Returns status and statistics of this service", + "operationId" : "getStatus", + "responses" : { + "200" : { + "content" : { + "application/json" : { + "examples" : { + "status_info" : { + "$ref" : "#/components/examples/status_info" + } + }, + "schema" : { + "$ref" : "#/components/schemas/status_info" + } + } + }, + "description" : "OK- Service is living Ok" + } + }, + "tags" : [ "Health Check" ] + } + }, + "/actuator/loggers" : { + "get" : { + "operationId" : "loggers", + "responses" : { + "200" : { + "content" : { + "application/vnd.spring-boot.actuator.v3+json" : { + "schema" : { + "type" : "object" + } + }, + "application/json" : { + "schema" : { + "type" : "object" + } + }, + "application/vnd.spring-boot.actuator.v2+json" : { + "schema" : { + "type" : "object" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator web endpoint 'loggers'", + "tags" : [ "Actuator" ], + "x-internal" : true + } + }, + "/actuator/health/**" : { + "get" : { + "operationId" : "health-path", + "responses" : { + "200" : { + "content" : { + "application/vnd.spring-boot.actuator.v3+json" : { + "schema" : { + "type" : "object" + } + }, + "application/json" : { + "schema" : { + "type" : "object" + } + }, + "application/vnd.spring-boot.actuator.v2+json" : { + "schema" : { + "type" : "object" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator web endpoint 'health-path'", + "tags" : [ "Actuator" ], + "x-internal" : true + } + }, + "/a1-policy/v2/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" : "managed_element_id", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "form" + }, { + "description" : "The identity of a Near-RT RIC to get information for.", + "explode" : true, + "in" : "query", + "name" : "ric_id", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "form" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "examples" : { + "ric_info" : { + "$ref" : "#/components/examples/ric_info" + } + }, + "schema" : { + "$ref" : "#/components/schemas/ric_info" + } + } + }, + "description" : "OK - Near-RT RIC is found" + }, + "404" : { + "content" : { + "application/problem+json" : { + "example" : [ ] + } + }, + "description" : "Not Found" + } + }, + "summary" : "Returns info of Near-RT RIC queried by the ric-id and managed-element-id", + "tags" : [ "NearRT-RIC Repository" ] + } + }, + "/actuator/shutdown" : { + "post" : { + "operationId" : "shutdown", + "responses" : { + "200" : { + "content" : { + "application/vnd.spring-boot.actuator.v3+json" : { + "schema" : { + "type" : "object" + } + }, + "application/json" : { + "schema" : { + "type" : "object" + } + }, + "application/vnd.spring-boot.actuator.v2+json" : { + "schema" : { + "type" : "object" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator web endpoint 'shutdown'", + "tags" : [ "Actuator" ], + "x-internal" : true + } + }, + "/a1-policy/v2/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" : "ric_id", + "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" : "type_name", + "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" : "compatible_with_version", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "form" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "examples" : { + "policy_type_id_list" : { + "$ref" : "#/components/examples/policy_type_id_list" + } + }, + "schema" : { + "$ref" : "#/components/schemas/policy_type_id_list" + } + } + }, + "description" : "OK - Policy Type IDs Found" + }, + "404" : { + "content" : { + "application/problem+json" : { + "example" : [ ] + } + }, + "description" : "Not Found" + } + }, + "tags" : [ "A1 Policy Management" ] + } + }, + "/a1-policy/v2/policies/{policy_id}" : { + "delete" : { + "description" : "Deleting the policy using the Policy's Policy ID.", + "operationId" : "deletePolicy", + "parameters" : [ { + "explode" : false, + "in" : "path", + "name" : "policy_id", + "required" : true, + "schema" : { + "type" : "string" + }, + "style" : "simple" + } ], + "responses" : { + "200" : { + "content" : { + "*/*" : { + "schema" : { + "$ref" : "#/components/schemas/void" + } + } + }, + "description" : "OK - Policy deleted" + }, + "423" : { + "content" : { + "application/problem+json" : { + "example" : { + "status" : 423, + "title" : "Locked", + "detail" : "Requested resource is in a locked state." + }, + "schema" : { + "$ref" : "#/components/schemas/error_information" + } + } + }, + "description" : "Locked - HTTP Status code which can be used when the state is Locked" + } + }, + "summary" : "Delete a policy", + "tags" : [ "A1 Policy Management" ] + }, + "get" : { + "description" : "Returns a policy", + "operationId" : "getPolicy", + "parameters" : [ { + "explode" : false, + "in" : "path", + "name" : "policy_id", + "required" : true, + "schema" : { + "type" : "string" + }, + "style" : "simple" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "examples" : { + "policy_info" : { + "$ref" : "#/components/examples/policy_info" + } + }, + "schema" : { + "$ref" : "#/components/schemas/policy_info" + } + } + }, + "description" : "OK - Policy found" + }, + "404" : { + "content" : { + "application/problem+json" : { + "example" : [ ] + } + }, + "description" : "Not Found" + } + }, + "tags" : [ "A1 Policy Management" ] + } + }, + "/actuator/metrics/{requiredMetricName}" : { + "get" : { + "operationId" : "metrics-requiredMetricName", + "parameters" : [ { + "explode" : false, + "in" : "path", + "name" : "requiredMetricName", + "required" : true, + "schema" : { + "type" : "string" + }, + "style" : "simple" + } ], + "responses" : { + "200" : { + "content" : { + "application/vnd.spring-boot.actuator.v3+json" : { + "schema" : { + "type" : "object" + } + }, + "application/json" : { + "schema" : { + "type" : "object" + } + }, + "application/vnd.spring-boot.actuator.v2+json" : { + "schema" : { + "type" : "object" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator web endpoint 'metrics-requiredMetricName'", + "tags" : [ "Actuator" ], + "x-internal" : true + } + }, + "/a1-policy/v2/configuration" : { + "get" : { + "description" : "Returns the contents of the application configuration file", + "operationId" : "getConfiguration", + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "type" : "string" + } + } + }, + "description" : "OK - Configuration" + }, + "404" : { + "content" : { + "application/problem+json" : { + "example" : [ ] + } + }, + "description" : "Not Found" + } + }, + "tags" : [ "Configuration" ] + }, + "put" : { + "description" : "Replace the current configuration 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" : { + "example" : { + "status" : 400, + "title" : "Bad Request", + "detail" : "The provided request is not valid." + }, + "schema" : { + "$ref" : "#/components/schemas/error_information" + } + } + }, + "description" : "Bad Request" + } + }, + "tags" : [ "Configuration" ] + } + }, + "/actuator" : { + "get" : { + "operationId" : "links", + "responses" : { + "200" : { + "content" : { + "application/vnd.spring-boot.actuator.v3+json" : { + "schema" : { + "additionalProperties" : { + "additionalProperties" : { + "$ref" : "#/components/schemas/Link" + }, + "type" : "object" + }, + "type" : "object" + } + }, + "application/json" : { + "schema" : { + "additionalProperties" : { + "additionalProperties" : { + "$ref" : "#/components/schemas/Link" + }, + "type" : "object" + }, + "type" : "object" + } + }, + "application/vnd.spring-boot.actuator.v2+json" : { + "schema" : { + "additionalProperties" : { + "additionalProperties" : { + "$ref" : "#/components/schemas/Link" + }, + "type" : "object" + }, + "type" : "object" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator root web endpoint", + "tags" : [ "Actuator" ], + "x-internal" : true + } + }, + "/actuator/loggers/{name}" : { + "get" : { + "operationId" : "loggers-name", + "parameters" : [ { + "explode" : false, + "in" : "path", + "name" : "name", + "required" : true, + "schema" : { + "type" : "string" + }, + "style" : "simple" + } ], + "responses" : { + "200" : { + "content" : { + "application/vnd.spring-boot.actuator.v3+json" : { + "schema" : { + "type" : "object" + } + }, + "application/json" : { + "schema" : { + "type" : "object" + } + }, + "application/vnd.spring-boot.actuator.v2+json" : { + "schema" : { + "type" : "object" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator web endpoint 'loggers-name'", + "tags" : [ "Actuator" ], + "x-internal" : true + }, + "post" : { + "operationId" : "loggers-name_2", + "parameters" : [ { + "explode" : false, + "in" : "path", + "name" : "name", + "required" : true, + "schema" : { + "type" : "string" + }, + "style" : "simple" + } ], + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", "OFF" ], + "type" : "string" + } + } + } + }, + "responses" : { + "200" : { + "content" : { + "*/*" : { + "schema" : { + "type" : "object" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator web endpoint 'loggers-name'", + "tags" : [ "Actuator" ], + "x-internal" : true + } + }, + "/a1-policy/v2/services/{service_id}/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" : "service_id", + "required" : true, + "schema" : { + "type" : "string" + }, + "style" : "simple" + } ], + "responses" : { + "200" : { + "content" : { + "*/*" : { + "schema" : { + "type" : "object" + } + } + }, + "description" : "OK - Service supervision timer refreshed, OK" + }, + "404" : { + "content" : { + "application/problem+json" : { + "example" : [ ] + } + }, + "description" : "Not Found" + } + }, + "summary" : "Heartbeat indicates that the service is running", + "tags" : [ "Service Registry and Supervision" ] + } + }, + "/actuator/metrics" : { + "get" : { + "operationId" : "metrics", + "responses" : { + "200" : { + "content" : { + "application/vnd.spring-boot.actuator.v3+json" : { + "schema" : { + "type" : "object" + } + }, + "application/json" : { + "schema" : { + "type" : "object" + } + }, + "application/vnd.spring-boot.actuator.v2+json" : { + "schema" : { + "type" : "object" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator web endpoint 'metrics'", + "tags" : [ "Actuator" ], + "x-internal" : true + } + }, + "/a1-policy/v2/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" : "policytype_id", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "form" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "examples" : { + "ric_info_list" : { + "$ref" : "#/components/examples/ric_info_list" + } + }, + "schema" : { + "$ref" : "#/components/schemas/ric_info_list" + } + } + }, + "description" : "OK" + }, + "404" : { + "content" : { + "application/problem+json" : { + "example" : [ ] + } + }, + "description" : "Not Found" + } + }, + "summary" : "Query Near-RT RIC information", + "tags" : [ "NearRT-RIC Repository" ] + } + }, + "/a1-policy/v2/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" : "service_id", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "form" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "examples" : { + "service_status_list" : { + "$ref" : "#/components/examples/service_status_list" + } + }, + "schema" : { + "$ref" : "#/components/schemas/service_status_list" + } + } + }, + "description" : "OK" + }, + "404" : { + "content" : { + "application/problem+json" : { + "example" : [ ] + } + }, + "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/service_callback_info_v2" + } + } + }, + "required" : true + }, + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/void" + } + } + }, + "description" : "OK" + }, + "404" : { + "content" : { + "application/problem+json" : { + "example" : [ ] + } + }, + "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/service_registration_info" + } + } + }, + "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" : { + "example" : { + "status" : 400, + "title" : "Bad Request", + "detail" : "The provided request is not valid." + }, + "schema" : { + "$ref" : "#/components/schemas/error_information" + } + } + }, + "description" : "Bad Request" + } + }, + "summary" : "Register a service", + "tags" : [ "Service Registry and Supervision" ] + } + }, + "/actuator/info" : { + "get" : { + "operationId" : "info", + "responses" : { + "200" : { + "content" : { + "application/vnd.spring-boot.actuator.v3+json" : { + "schema" : { + "type" : "object" + } + }, + "application/json" : { + "schema" : { + "type" : "object" + } + }, + "application/vnd.spring-boot.actuator.v2+json" : { + "schema" : { + "type" : "object" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator web endpoint 'info'", + "tags" : [ "Actuator" ], + "x-internal" : true + } + }, + "/status" : { + "get" : { + "description" : "Returns status and statistics of this service", + "operationId" : "getStatusV1", + "responses" : { + "200" : { + "content" : { + "*/*" : { + "schema" : { + "type" : "string" + } + } + }, + "description" : "OK - Service is living" + } + }, + "tags" : [ "Health Check" ] + } + }, + "/a1-policy/v2/policy-types/{policytype_id}" : { + "get" : { + "description" : "Returns a policy type definition", + "operationId" : "getPolicyTypeDefinition", + "parameters" : [ { + "explode" : false, + "in" : "path", + "name" : "policytype_id", + "required" : true, + "schema" : { + "type" : "string" + }, + "style" : "simple" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "examples" : { + "policy_type_definition" : { + "$ref" : "#/components/examples/policy_type_definition" + } + }, + "schema" : { + "$ref" : "#/components/schemas/policy_type_definition" + } + } + }, + "description" : "OK - schema of the given policy type" + }, + "404" : { + "content" : { + "application/problem+json" : { + "example" : [ ] + } + }, + "description" : "Not Found" + } + }, + "tags" : [ "A1 Policy Management" ] + } + }, + "/actuator/logfile" : { + "get" : { + "operationId" : "logfile", + "responses" : { + "200" : { + "content" : { + "text/plain;charset=UTF-8" : { + "schema" : { + "type" : "object" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator web endpoint 'logfile'", + "tags" : [ "Actuator" ], + "x-internal" : true + } + }, + "/actuator/health" : { + "get" : { + "operationId" : "health", + "responses" : { + "200" : { + "content" : { + "application/vnd.spring-boot.actuator.v3+json" : { + "schema" : { + "type" : "object" + } + }, + "application/json" : { + "schema" : { + "type" : "object" + } + }, + "application/vnd.spring-boot.actuator.v2+json" : { + "schema" : { + "type" : "object" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator web endpoint 'health'", + "tags" : [ "Actuator" ], + "x-internal" : true + } + }, + "/a1-policy/v2/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" : "getPolicyIds", + "parameters" : [ { + "description" : "Select policies of a given policy type identity.", + "explode" : true, + "in" : "query", + "name" : "policytype_id", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "form" + }, { + "description" : "Select policies of a given Near-RT RIC identity.", + "explode" : true, + "in" : "query", + "name" : "ric_id", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "form" + }, { + "description" : "Select policies owned by a given service.", + "explode" : true, + "in" : "query", + "name" : "service_id", + "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" : "type_name", + "required" : false, + "schema" : { + "type" : "string" + }, + "style" : "form" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "examples" : { + "policy_id_list" : { + "$ref" : "#/components/examples/policy_id_list" + } + }, + "schema" : { + "$ref" : "#/components/schemas/policy_id_list" + } + } + }, + "description" : "OK - Policy identities" + }, + "404" : { + "content" : { + "application/problem+json" : { + "example" : [ ] + } + }, + "description" : "Not Found" + } + }, + "summary" : "Query policy identities", + "tags" : [ "A1 Policy Management" ] + }, + "put" : { + "description" : "Create or update a policy", + "operationId" : "putPolicy", + "requestBody" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/policy_info" + } + } + }, + "required" : true + }, + "responses" : { + "200" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/void" + } + } + }, + "description" : "OK - Policy updated" + }, + "201" : { + "content" : { + "application/json" : { + "schema" : { + "$ref" : "#/components/schemas/void" + } + } + }, + "description" : "Created - Policy created" + }, + "423" : { + "content" : { + "application/problem+json" : { + "example" : { + "status" : 423, + "title" : "Locked", + "detail" : "Requested resource is in a locked state." + }, + "schema" : { + "$ref" : "#/components/schemas/error_information" + } + } + }, + "description" : "Locked - HTTP Status code which can be used when the state is Locked" + } + }, + "tags" : [ "A1 Policy Management" ] + } + }, + "/a1-policy/v2/services/{service_id}" : { + "delete" : { + "description" : "Unregister a service", + "operationId" : "deleteService", + "parameters" : [ { + "explode" : false, + "in" : "path", + "name" : "service_id", + "required" : true, + "schema" : { + "type" : "string" + }, + "style" : "simple" + } ], + "responses" : { + "204" : { + "content" : { + "*/*" : { + "schema" : { + "type" : "object" + } + } + }, + "description" : "No Content - Service unregistered" + }, + "404" : { + "content" : { + "application/problem+json" : { + "example" : [ ] + } + }, + "description" : "Not Found" + } + }, + "tags" : [ "Service Registry and Supervision" ] + } + }, + "/actuator/heapdump" : { + "get" : { + "operationId" : "heapdump", + "responses" : { + "200" : { + "content" : { + "application/octet-stream" : { + "schema" : { + "type" : "object" + } + } + }, + "description" : "OK" + } + }, + "summary" : "Actuator web endpoint 'heapdump'", + "tags" : [ "Actuator" ], + "x-internal" : true + } + }, + "/a1-policy/v2/policies/{policy_id}/status" : { + "get" : { + "description" : "Returns a policy status", + "operationId" : "getPolicyStatus", + "parameters" : [ { + "explode" : false, + "in" : "path", + "name" : "policy_id", + "required" : true, + "schema" : { + "type" : "string" + }, + "style" : "simple" + } ], + "responses" : { + "200" : { + "content" : { + "application/json" : { + "examples" : { + "policy_status_info" : { + "$ref" : "#/components/examples/policy_status_info" + } + }, + "schema" : { + "$ref" : "#/components/schemas/policy_status_info" + } + } + }, + "description" : "OK - Policy status" + }, + "404" : { + "content" : { + "application/problem+json" : { + "example" : [ ] + } + }, + "description" : "Not Found" + } + }, + "tags" : [ "A1 Policy Management" ] + } + } + }, + "components" : { + "examples" : { + "service_status" : { + "description" : "List of service information", + "value" : { + "callback_url" : "callback_url", + "service_id" : "service_id", + "keep_alive_interval_seconds" : 0, + "time_since_last_activity_seconds" : 6 + } + }, + "service_status_list" : { + "description" : "List of service information", + "value" : { + "service_list" : [ { + "callback_url" : "callback_url", + "service_id" : "service_id", + "keep_alive_interval_seconds" : 0, + "time_since_last_activity_seconds" : 6 + }, { + "callback_url" : "callback_url", + "service_id" : "service_id", + "keep_alive_interval_seconds" : 0, + "time_since_last_activity_seconds" : 6 + } ] + } + }, + "policy_type_definition" : { + "description" : "Schema of the given Policy type", + "value" : { + "policy_schema" : "{}" + } + }, + "policy_type_id_list" : { + "description" : "Array of policy type id's", + "value" : { + "policy_type_id_list" : [ "policytype_id", "policytype_id" ] + } + }, + "policy_info" : { + "description" : "Policy information of one A1-P policy", + "value" : { + "ric_id" : "ric_id", + "policy_id" : "policy_id", + "transient" : false, + "service_id" : "service_id", + "policy_data" : "{}", + "status_notification_uri" : "status_notification_uri", + "policytype_id" : "policytype_id" + } + }, + "policy_info_list" : { + "description" : "List of policy information", + "value" : { + "policies" : [ { + "ric_id" : "ric_id", + "policy_id" : "policy_id", + "transient" : false, + "service_id" : "service_id", + "policy_data" : "{}", + "status_notification_uri" : "status_notification_uri", + "policytype_id" : "policytype_id" + }, { + "ric_id" : "ric_id", + "policy_id" : "policy_id", + "transient" : false, + "service_id" : "service_id", + "policy_data" : "{}", + "status_notification_uri" : "status_notification_uri", + "policytype_id" : "policytype_id" + } ] + } + }, + "policy_id_list" : { + "description" : "A list of policy identities", + "value" : { + "policy_ids" : [ "some_policy_id", "some_policy_id" ] + } + }, + "policy_status_info" : { + "description" : "Status for one A1-P Policy", + "value" : { + "last_modified" : "last_modified", + "status" : { + "value" : { + "status" : "status" + } + } + } + }, + "status_info" : { + "value" : { + "status" : "status" + } + }, + "ric_info" : { + "value" : { + "ric_id" : "ric_id", + "managed_element_ids" : [ "some_managed_element_id", "some_managed_element_id" ], + "state" : "UNAVAILABLE", + "policytype_ids" : [ "some_policytype_id", "some_policytype_id" ] + } + }, + "ric_info_list" : { + "value" : { + "rics" : [ { + "ric_id" : "ric_id", + "managed_element_ids" : [ "some_managed_element_id", "some_managed_element_id" ], + "state" : "UNAVAILABLE", + "policytype_ids" : [ "policytype_id", "policytype_id" ] + }, { + "ric_id" : "ric_id", + "managed_element_ids" : [ "managed_element_ids", "managed_element_ids" ], + "state" : "UNAVAILABLE", + "policytype_ids" : [ "policytype_ids", "policytype_ids" ] + } ] + } + } + }, + "responses" : { + "Locked" : { + "content" : { + "application/problem+json" : { + "example" : { + "status" : 423, + "title" : "Locked", + "detail" : "Requested resource is in a locked state." + }, + "schema" : { + "$ref" : "#/components/schemas/error_information" + } + } + }, + "description" : "Locked - HTTP Status code which can be used when the state is Locked" + }, + "BadRequest" : { + "content" : { + "application/problem+json" : { + "example" : { + "status" : 400, + "title" : "Bad Request", + "detail" : "The provided request is not valid." + }, + "schema" : { + "$ref" : "#/components/schemas/error_information" + } + } + }, + "description" : "Bad Request" + }, + "Forbidden" : { + "content" : { + "application/problem+json" : { + "example" : { + "status" : 403, + "title" : "Forbidden", + "detail" : "Your role does not allow to perform this action. Contact System Administrator to change your access rights." + }, + "schema" : { + "$ref" : "#/components/schemas/error_information" + } + } + }, + "description" : "Forbidden" + }, + "NotFound" : { + "content" : { + "application/problem+json" : { + "example" : [ ] + } + }, + "description" : "Not Found" + } + }, + "schemas" : { + "policy_type_definition" : { + "description" : "Contains policy type schema definition", + "properties" : { + "policy_schema" : { + "description" : "Policy type json schema. The schema is a json object following http://json-schema.org/draft-07/schema", + "type" : "object" + } + }, + "type" : "object" + }, + "error_information" : { + "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" + }, + "void" : { + "description" : "Void/empty", + "type" : "object" + }, + "status_info" : { + "properties" : { + "status" : { + "description" : "status text", + "type" : "string" + } + }, + "type" : "object" + }, + "authorization_result" : { + "description" : "Result of authorization", + "example" : { + "result" : true + }, + "properties" : { + "result" : { + "description" : "If true, the access is granted", + "type" : "boolean" + } + }, + "required" : [ "result" ], + "type" : "object" + }, + "ric_info" : { + "description" : "Information for a Near-RT RIC", + "properties" : { + "ric_id" : { + "description" : "identity of the Near-RT RIC", + "type" : "string" + }, + "managed_element_ids" : { + "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" + }, + "policytype_ids" : { + "description" : "supported policy types", + "items" : { + "description" : "supported policy types", + "type" : "string" + }, + "type" : "array" + } + }, + "type" : "object" + }, + "service_registration_info" : { + "description" : "Information for one service", + "properties" : { + "callback_url" : { + "description" : "callback for notifying of Near-RT RIC state changes", + "type" : "string" + }, + "service_id" : { + "description" : "identity of the service", + "type" : "string" + }, + "keep_alive_interval_seconds" : { + "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" : [ "service_id" ], + "type" : "object" + }, + "policy_info_list" : { + "description" : "List of policy information", + "properties" : { + "policies" : { + "description" : "List of policy information", + "items" : { + "$ref" : "#/components/schemas/policy_info" + }, + "type" : "array" + } + }, + "type" : "object" + }, + "policy_status_info" : { + "description" : "Status for one A1-P Policy", + "properties" : { + "last_modified" : { + "description" : "timestamp, last modification time", + "type" : "string" + }, + "status" : { + "description" : "the Policy status", + "type" : "object" + } + }, + "type" : "object" + }, + "service_status" : { + "properties" : { + "callback_url" : { + "description" : "callback for notifying of RIC synchronization", + "type" : "string" + }, + "service_id" : { + "description" : "identity of the service", + "type" : "string" + }, + "keep_alive_interval_seconds" : { + "description" : "policy keep alive timeout", + "format" : "int64", + "type" : "integer" + }, + "time_since_last_activity_seconds" : { + "description" : "time since last invocation by the service", + "format" : "int64", + "type" : "integer" + } + }, + "type" : "object" + }, + "ric_info_list" : { + "description" : "List of Near-RT RIC information", + "properties" : { + "rics" : { + "description" : "List of Near-RT RIC information", + "items" : { + "$ref" : "#/components/schemas/ric_info" + }, + "type" : "array" + } + }, + "type" : "object" + }, + "input" : { + "description" : "input", + "properties" : { + "access_type" : { + "description" : "Access type", + "enum" : [ "READ", "WRITE", "DELETE" ], + "type" : "string" + }, + "auth_token" : { + "description" : "Authorization token", + "type" : "string" + }, + "policy_type_id" : { + "description" : "Policy type identifier", + "type" : "string" + } + }, + "required" : [ "access_type", "auth_token", "policy_type_id" ], + "type" : "object" + }, + "policy_authorization" : { + "description" : "Authorization request for A1 policy requests", + "properties" : { + "input" : { + "$ref" : "#/components/schemas/input" + } + }, + "required" : [ "input" ], + "type" : "object" + }, + "policy_type_id_list" : { + "description" : "Information about policy types", + "properties" : { + "policytype_ids" : { + "description" : "Policy type identities", + "items" : { + "description" : "Policy type identities", + "type" : "string" + }, + "type" : "array" + } + }, + "type" : "object" + }, + "policy_info" : { + "description" : "Information for one A1-P Policy", + "properties" : { + "ric_id" : { + "description" : "identity of the target Near-RT RIC", + "type" : "string" + }, + "policy_id" : { + "description" : "identity of the policy", + "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.", + "example" : false, + "nullable" : false, + "type" : "boolean" + }, + "service_id" : { + "default" : "", + "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.", + "type" : "string" + }, + "policy_data" : { + "description" : "the configuration of the policy", + "type" : "object" + }, + "status_notification_uri" : { + "description" : "Callback URI for policy status updates", + "type" : "string" + }, + "policytype_id" : { + "description" : "identity of the policy type", + "type" : "string" + } + }, + "required" : [ "policy_data", "policy_id", "policytype_id", "ric_id" ], + "type" : "object" + }, + "policy_id_list" : { + "description" : "A list of policy identities", + "example" : { + "policy_ids" : [ "policy_ids", "policy_ids" ] + }, + "properties" : { + "policy_ids" : { + "description" : "Policy identities", + "items" : { + "description" : "Policy identities", + "type" : "string" + }, + "type" : "array" + } + }, + "type" : "object" + }, + "service_status_list" : { + "properties" : { + "service_list" : { + "description" : "List of service information", + "items" : { + "$ref" : "#/components/schemas/service_status" + }, + "type" : "array" + } + }, + "type" : "object" + }, + "service_callback_info_v2" : { + "description" : "Information transferred as in Service callbacks (callback_url)", + "properties" : { + "ric_id" : { + "description" : "identity of a Near-RT RIC", + "type" : "string" + }, + "event_type" : { + "description" : "values:\nAVAILABLE: the Near-RT RIC has become available for A1 Policy management", + "enum" : [ "AVAILABLE" ], + "type" : "string" + } + }, + "required" : [ "event_type", "ric_id" ], + "type" : "object" + }, + "Link" : { + "properties" : { + "templated" : { + "type" : "boolean" + }, + "href" : { + "type" : "string" + } + }, + "type" : "object" + } + } + } }
\ No newline at end of file |