From: saul.gill Date: Wed, 26 Mar 2025 13:23:28 +0000 (+0000) Subject: Split out open api files for managability X-Git-Tag: 2.1.0~10 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=3cf04f73eceebf78189593541f1fba6b00e0d17b;p=ccsdk%2Foran.git Split out open api files for managability Split V2 api files Split V3 api files Configured maven to output merged api files Fixed bug in rtd file Issue-ID: CCSDK-4108 Change-Id: Ic1eae5e517856fe97f0e3fa4991d5fc4e1c16fe3 Signed-off-by: saul.gill --- diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 3fb1e2fc..6e13b7f7 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -1,6 +1,6 @@ # ============LICENSE_START=============================================== # Copyright (C) 2020-2023 Nordix Foundation. All rights reserved. -# Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved. +# Copyright (C) 2024-2025 OpenInfra Foundation Europe. All rights reserved. # ======================================================================== # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -34,7 +34,6 @@ build: - cp -v -r docs/offeredapis/swagger/*.json ${READTHEDOCS_OUTPUT}html/openapi - cp -v -r docs/offeredapis/swagger/*.yaml ${READTHEDOCS_OUTPUT}html/openapi - cp -v -r docs/offeredapis/*.json ${READTHEDOCS_OUTPUT}html/openapi - - cp -v -r docs/offeredapis/*.yaml ${READTHEDOCS_OUTPUT}html/openapi python: install: diff --git a/a1-policy-management/api/offeredapis/openapitoolgen/offeredapis/pms-api/index.html b/a1-policy-management/api/offeredapis/openapitoolgen/offeredapis/pms-api/index.html index 08df1a87..697ddf6c 100644 --- a/a1-policy-management/api/offeredapis/openapitoolgen/offeredapis/pms-api/index.html +++ b/a1-policy-management/api/offeredapis/openapitoolgen/offeredapis/pms-api/index.html @@ -6047,7 +6047,7 @@ pub fn main() {

-

Replace the current Application Configuration with a new configuration. The new configuration, if accepted, will take effect after a short delay. The new configuration must comply with the Application Configuration schema, which can be found from the the Application Documentation (Developer Guide) +

Replace the current Application Configuration with a new configuration. The new configuration, if accepted, will take effect after a short delay. The new configuration must comply with the Application Configuration schema, which can be found from the the Application Documentation (Developer Guide)


diff --git a/a1-policy-management/api/offeredapis/openapitoolgen/offeredapis/pms-api/v3/custom/index.html b/a1-policy-management/api/offeredapis/openapitoolgen/offeredapis/pms-api/v3/custom/index.html index 61b74d18..87eac8e5 100644 --- a/a1-policy-management/api/offeredapis/openapitoolgen/offeredapis/pms-api/v3/custom/index.html +++ b/a1-policy-management/api/offeredapis/openapitoolgen/offeredapis/pms-api/v3/custom/index.html @@ -878,7 +878,7 @@ ul.nav-tabs { "$ref" : "#/components/schemas/NearRtRicId" } }, - "description" : "Information tuple for a single A1 Policy Instance. Contains the A1 Policy Instance ID, and the ID of the Near-RT RIC where the policy is created. \n" + "description" : "Information tuple for a single A1 Policy Instance. Contains the A1 Policy Instance ID, and the ID of the Near-RT RIC where the policy is created.\n" }; defs["PolicyObjectInformation"] = { "required" : [ "nearRtRicId", "policyObject", "policyTypeId" ], diff --git a/a1-policy-management/api/offeredapis/openapitoolgen/offeredapis/pms-api/v3/index.html b/a1-policy-management/api/offeredapis/openapitoolgen/offeredapis/pms-api/v3/index.html index cfc8c659..a9c59bf5 100644 --- a/a1-policy-management/api/offeredapis/openapitoolgen/offeredapis/pms-api/v3/index.html +++ b/a1-policy-management/api/offeredapis/openapitoolgen/offeredapis/pms-api/v3/index.html @@ -878,7 +878,7 @@ ul.nav-tabs { "$ref" : "#/components/schemas/NearRtRicId" } }, - "description" : "Information tuple for a single A1 Policy Instance. Contains the A1 Policy Instance ID, and the ID of the Near-RT RIC where the policy is created. \n" + "description" : "Information tuple for a single A1 Policy Instance. Contains the A1 Policy Instance ID, and the ID of the Near-RT RIC where the policy is created.\n" }; defs["PolicyObjectInformation"] = { "required" : [ "nearRtRicId", "policyObject", "policyTypeId" ], @@ -11466,7 +11466,7 @@ pub fn main() {

-

Replace the current Application Configuration with a new configuration. The new configuration, if accepted, will take effect after a short delay. The new configuration must comply with the Application Configuration schema, which can be found from the the Application Documentation (Developer Guide) +

Replace the current Application Configuration with a new configuration. The new configuration, if accepted, will take effect after a short delay. The new configuration must comply with the Application Configuration schema, which can be found from the the Application Documentation (Developer Guide)


diff --git a/a1-policy-management/api/offeredapis/swagger/custom/a1pms-api-custom-v3.json b/a1-policy-management/api/offeredapis/swagger/custom/a1pms-api-custom-v3.json index 7b221983..37dd6ff9 100644 --- a/a1-policy-management/api/offeredapis/swagger/custom/a1pms-api-custom-v3.json +++ b/a1-policy-management/api/offeredapis/swagger/custom/a1pms-api-custom-v3.json @@ -93,19 +93,15 @@ "schema" : { "nullable" : false, "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" : { @@ -154,15 +150,12 @@ "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" : { @@ -231,15 +224,12 @@ "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" : { @@ -370,15 +360,12 @@ "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" : { @@ -506,15 +493,12 @@ "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" : { @@ -653,15 +637,12 @@ "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" : { @@ -777,14 +758,12 @@ "description" : "Update an existing A1 Policy instance's policy data using its policy ID.", "operationId" : "updatePolicy", "parameters" : [ { - "explode" : false, "in" : "path", "name" : "policyId", "required" : true, "schema" : { "type" : "string" - }, - "style" : "simple" + } } ], "requestBody" : { "content" : { @@ -967,15 +946,12 @@ "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" : { @@ -1129,15 +1105,12 @@ "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" : { @@ -1273,21 +1246,17 @@ "headers" : { "Location" : { "description" : "Contains the URI of the newly created A1 Policy Instances. This URI includes the A1 Policy Instance ID for the newly created policy instance.\n", - "explode" : false, "required" : true, "schema" : { "type" : "string" - }, - "style" : "simple" + } }, "Content-Type" : { "description" : "Media Type of the response", - "explode" : false, "schema" : { "example" : "application/json", "type" : "string" - }, - "style" : "simple" + } } } }, @@ -1471,7 +1440,7 @@ "tags" : [ "Configuration" ] }, "put" : { - "description" : "Replace the current Application Configuration with a new configuration. The new configuration, if accepted, will take effect after a short delay. The new configuration must comply with the Application Configuration schema, which can be found from the the Application Documentation (Developer Guide) \n", + "description" : "Replace the current Application Configuration with a new configuration. The new configuration, if accepted, will take effect after a short delay. The new configuration must comply with the Application Configuration schema, which can be found from the the Application Documentation (Developer Guide)\n", "operationId" : "putConfiguration", "requestBody" : { "content" : { @@ -1524,15 +1493,12 @@ "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" : { @@ -1586,15 +1552,12 @@ "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" : { @@ -1734,15 +1697,12 @@ "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" : { @@ -1773,22 +1733,6 @@ }, "components" : { "examples" : { - "ServiceStatusList" : { - "description" : "List of service information", - "value" : { - "serviceList" : [ { - "callbackUrl" : "http://callback.url", - "serviceId" : "serviceId1", - "keepAliveIntervalSeconds" : 0, - "timeSinceLastActivitySeconds" : 6 - }, { - "callbackUrl" : "http://callback.url", - "serviceId" : "serviceId2", - "keepAliveIntervalSeconds" : 500, - "timeSinceLastActivitySeconds" : 401 - } ] - } - }, "StatusInfo" : { "value" : { "status" : "success" @@ -1817,48 +1761,6 @@ } ] } }, - "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 - } - } - }, "PolicyTypeInformation" : { "value" : [ { "policyTypeId" : "STD_QOS2_0.1.0", @@ -1908,10 +1810,68 @@ } } } + }, + "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 + } + } + }, + "ServiceStatusList" : { + "description" : "List of service information", + "value" : { + "serviceList" : [ { + "callbackUrl" : "http://callback.url", + "serviceId" : "serviceId1", + "keepAliveIntervalSeconds" : 0, + "timeSinceLastActivitySeconds" : 6 + }, { + "callbackUrl" : "http://callback.url", + "serviceId" : "serviceId2", + "keepAliveIntervalSeconds" : 500, + "timeSinceLastActivitySeconds" : 401 + } ] + } } }, "responses" : { - "400" : { + "404" : { "content" : { "application/problem+json" : { "schema" : { @@ -1919,9 +1879,9 @@ } } }, - "description" : "Bad Request" + "description" : "Not Found" }, - "401" : { + "400" : { "content" : { "application/problem+json" : { "schema" : { @@ -1929,9 +1889,9 @@ } } }, - "description" : "Unauthorized" + "description" : "Bad Request" }, - "403" : { + "401" : { "content" : { "application/problem+json" : { "schema" : { @@ -1939,9 +1899,9 @@ } } }, - "description" : "Forbidden" + "description" : "Unauthorized" }, - "404" : { + "403" : { "content" : { "application/problem+json" : { "schema" : { @@ -1949,9 +1909,9 @@ } } }, - "description" : "Not Found" + "description" : "Forbidden" }, - "405" : { + "406" : { "content" : { "application/problem+json" : { "schema" : { @@ -1959,9 +1919,9 @@ } } }, - "description" : "Method Not Allowed" + "description" : "Not Acceptable" }, - "406" : { + "429" : { "content" : { "application/problem+json" : { "schema" : { @@ -1969,9 +1929,9 @@ } } }, - "description" : "Not Acceptable" + "description" : "Too Many Requests" }, - "409" : { + "500" : { "content" : { "application/problem+json" : { "schema" : { @@ -1979,9 +1939,9 @@ } } }, - "description" : "Conflict" + "description" : "Internal Server Error" }, - "411" : { + "502" : { "content" : { "application/problem+json" : { "schema" : { @@ -1989,9 +1949,9 @@ } } }, - "description" : "Length Required" + "description" : "Bad Gateway" }, - "413" : { + "503" : { "content" : { "application/problem+json" : { "schema" : { @@ -1999,9 +1959,9 @@ } } }, - "description" : "Payload Too Large" + "description" : "Service Unavailable" }, - "415" : { + "411" : { "content" : { "application/problem+json" : { "schema" : { @@ -2009,9 +1969,9 @@ } } }, - "description" : "Unsupported Media Type" + "description" : "Length Required" }, - "429" : { + "413" : { "content" : { "application/problem+json" : { "schema" : { @@ -2019,9 +1979,9 @@ } } }, - "description" : "Too Many Requests" + "description" : "Payload Too Large" }, - "500" : { + "415" : { "content" : { "application/problem+json" : { "schema" : { @@ -2029,19 +1989,24 @@ } } }, - "description" : "Internal Server Error" + "description" : "Unsupported Media Type" }, - "502" : { + "Locked" : { "content" : { "application/problem+json" : { + "example" : { + "status" : 423, + "title" : "Locked", + "detail" : "State is Locked in the provided request." + }, "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" + "$ref" : "#/components/schemas/ErrorInformation" } } }, - "description" : "Bad Gateway" + "description" : "Locked - HTTP Status code which can be used when the state is Locked" }, - "503" : { + "405" : { "content" : { "application/problem+json" : { "schema" : { @@ -2049,106 +2014,121 @@ } } }, - "description" : "Service Unavailable" + "description" : "Method Not Allowed" }, - "Locked" : { + "409" : { "content" : { "application/problem+json" : { - "example" : { - "status" : 423, - "title" : "Locked", - "detail" : "State is Locked in the provided request." - }, "schema" : { - "$ref" : "#/components/schemas/ErrorInformation" + "$ref" : "#/components/schemas/ProblemDetails" } } }, - "description" : "Locked - HTTP Status code which can be used when the state is Locked" + "description" : "Conflict" } }, "schemas" : { - "PolicyTypeInformation" : { - "description" : "A data tuple to indicate that an identified A1 Policy Type is supported at an identified Near-RT RIC.", - "example" : { - "policyTypeId" : "STD_QOS2_0.1.0", - "nearRtRicId" : "ric_g3_2" - }, + "StatusInfo" : { "properties" : { - "policyTypeId" : { - "description" : "A1 Policy Type identifier", + "status" : { + "description" : "Status text", "type" : "string" - }, - "nearRtRicId" : { - "$ref" : "#/components/schemas/NearRtRicId" } }, - "required" : [ "nearRtRicId", "policyTypeId" ], "type" : "object" }, - "PolicyObjectInformation" : { - "description" : "Information to create an A1 Policy Instance", + "ProblemDetails" : { + "description" : "Object to carry details about a problem in an HTTP response according to IETF RFC 7807", "properties" : { - "nearRtRicId" : { - "description" : "Identity of the target Near-RT RIC", - "example" : "Near-RT-Ric-ID1", + "type" : { + "description" : "URI reference according to IETF RFC 3986 that identifies the problem type", "type" : "string" }, - "transient" : { - "default" : false, - "description" : "If true, the policy is automatically deleted if the targeted Near-RT RIC restarts or recovers. If false, the A1 Policy Instance remains, and is re-pushed to the targeted Near-RT RIC after a restart or recovery. If false, the A1 Policy Instance is maintained and must be deleted separately in the event of Near-RT RIC restart or recovery. Default is false.\n", - "nullable" : false, - "type" : "boolean" - }, - "policyId" : { - "description" : "An optional identity to be used for the new A1 Policy Instance. If this value is present, it must be unique. If not present the new A1 Policy Instance will be assigned a newly generated unique ID, and the new ID can be extracted from the 'Location' header in the response.\n", - "example" : "POLICY-ID1", + "title" : { + "description" : "Human-readable summary of the problem type", "type" : "string" }, - "serviceId" : { - "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. If the service is registered, the newly created A1 Policy Instance will be subject to the same supervision rules as the the service's other policies.", - "example" : "rApp 1", - "type" : "string" + "status" : { + "description" : "HTTP status code", + "type" : "number" }, - "policyObject" : { - "$ref" : "#/components/schemas/PolicyObject" + "detail" : { + "description" : "Human-readable explanation", + "type" : "string" }, - "policyTypeId" : { - "description" : "A1 Policy Type identity", - "example" : "ORAN_QOS_1.0.0 '(typeName_SemVersion)'", + "instance" : { + "description" : "URI reference that identifies the specific occurrence of the problem", "type" : "string" } }, - "required" : [ "nearRtRicId", "policyObject", "policyTypeId" ], "type" : "object" }, - "ErrorInformation" : { - "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807", + "RicInfo" : { + "description" : "Information for a Near-RT RIC", "properties" : { - "detail" : { - "description" : "A human-readable explanation specific to this occurrence of the problem.", - "example" : "Policy type not found", + "ricId" : { + "description" : "Identity of the Near-RT RIC", "type" : "string" }, - "title" : { - "description" : "A specific error name", - "example" : "Not Found", + "managedElementIds" : { + "description" : "Identities for managed entities", + "items" : { + "description" : "Identity for a managed entity", + "type" : "string" + }, + "type" : "array" + }, + "state" : { + "description" : "Represents the state of a Near-RT RIC", + "enum" : [ "UNAVAILABLE", "AVAILABLE", "SYNCHRONIZING", "CONSISTENCY_CHECK" ], "type" : "string" }, - "status" : { - "description" : "The HTTP status code generated by the origin server for this occurrence of the problem.\n", - "example" : 404, - "format" : "int32", - "type" : "integer" + "policyTypeIds" : { + "description" : "Supported A1 Policy Types", + "items" : { + "description" : "Supported A1 Policy Type ID", + "type" : "string" + }, + "type" : "array" } }, "type" : "object" }, - "PolicyObject" : { - "description" : "Policy Object is a JSON representation policy data for an A1 Policy Instance. The schema for this policy data is defined in the corresponding A1 Policy Type. \n", + "RicInfoList" : { + "description" : "Collection of Near-RT RIC information objects", + "properties" : { + "rics" : { + "description" : "List of Near-RT RIC information objects", + "items" : { + "$ref" : "#/components/schemas/RicInfo" + }, + "type" : "array" + } + }, "type" : "object" }, + "PolicyTypeInformation" : { + "description" : "A data tuple to indicate that an identified A1 Policy Type is supported at an identified Near-RT RIC.", + "example" : { + "policyTypeId" : "STD_QOS2_0.1.0", + "nearRtRicId" : "ric_g3_2" + }, + "properties" : { + "policyTypeId" : { + "description" : "A1 Policy Type identifier", + "type" : "string" + }, + "nearRtRicId" : { + "$ref" : "#/components/schemas/NearRtRicId" + } + }, + "required" : [ "nearRtRicId", "policyTypeId" ], + "type" : "object" + }, + "NearRtRicId" : { + "description" : "Identity of the Near-RT RIC", + "type" : "string" + }, "PolicyTypeObject" : { "description" : "An A1 Policy Type, as defined in O-RAN Alliance A1TD", "example" : { @@ -2219,72 +2199,101 @@ "description" : "A schema to define the contents of the status information for A1 Policy Instances. Status schemas are Policy Type specific. All status information for all A1 Policy Instances of an A1 Policy Type should comply with the type's status schema.\n", "type" : "object" }, - "PolicyStatusObject" : { - "description" : "A generic policy status object that can be used to transport any policy status. Additionally, a schema for policy status can be defined in the corresponding A1 Policy Type.\n", - "type" : "object" - }, - "void" : { - "description" : "Void/empty", + "PolicyObject" : { + "description" : "Policy Object is a JSON representation policy data for an A1 Policy Instance. The schema for this policy data is defined in the corresponding A1 Policy Type.\n", "type" : "object" }, - "StatusInfo" : { + "ErrorInformation" : { + "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807", "properties" : { - "status" : { - "description" : "Status text", + "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.\n", + "example" : 404, + "format" : "int32", + "type" : "integer" } }, "type" : "object" }, - "RicInfo" : { - "description" : "Information for a Near-RT RIC", + "PolicyStatusObject" : { + "description" : "A generic policy status object that can be used to transport any policy status. Additionally, a schema for policy status can be defined in the corresponding A1 Policy Type.\n", + "type" : "object" + }, + "PolicyInformation" : { + "description" : "Information tuple for a single A1 Policy Instance. Contains the A1 Policy Instance ID, and the ID of the Near-RT RIC where the policy is created.\n", "properties" : { - "ricId" : { - "description" : "Identity of the Near-RT RIC", - "type" : "string" - }, - "managedElementIds" : { - "description" : "Identities for managed entities", - "items" : { - "description" : "Identity for a managed entity", - "type" : "string" - }, - "type" : "array" - }, - "state" : { - "description" : "Represents the state of a Near-RT RIC", - "enum" : [ "UNAVAILABLE", "AVAILABLE", "SYNCHRONIZING", "CONSISTENCY_CHECK" ], + "policyId" : { + "description" : "Identity of the A1 Policy Instance", "type" : "string" }, - "policyTypeIds" : { - "description" : "Supported A1 Policy Types", - "items" : { - "description" : "Supported A1 Policy Type ID", - "type" : "string" - }, - "type" : "array" + "nearRtRicId" : { + "$ref" : "#/components/schemas/NearRtRicId" } }, + "required" : [ "nearRtRicId", "policyId" ], "type" : "object" }, - "ServiceRegistrationInfo" : { - "description" : "Information for a service to be registered", + "PolicyObjectInformation" : { + "description" : "Information to create an A1 Policy Instance", "properties" : { - "callbackUrl" : { - "description" : "Callback URL for notifying of Near-RT RIC state changes", + "nearRtRicId" : { + "description" : "Identity of the target Near-RT RIC", + "example" : "Near-RT-Ric-ID1", + "type" : "string" + }, + "transient" : { + "default" : false, + "description" : "If true, the policy is automatically deleted if the targeted Near-RT RIC restarts or recovers. If false, the A1 Policy Instance remains, and is re-pushed to the targeted Near-RT RIC after a restart or recovery. If false, the A1 Policy Instance is maintained and must be deleted separately in the event of Near-RT RIC restart or recovery. Default is false.\n", + "nullable" : false, + "type" : "boolean" + }, + "policyId" : { + "description" : "An optional identity to be used for the new A1 Policy Instance. If this value is present, it must be unique. If not present the new A1 Policy Instance will be assigned a newly generated unique ID, and the new ID can be extracted from the 'Location' header in the response.\n", + "example" : "POLICY-ID1", "type" : "string" }, "serviceId" : { - "description" : "Identity of the service", + "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. If the service is registered, the newly created A1 Policy Instance will be subject to the same supervision rules as the the service's other policies.", + "example" : "rApp 1", "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.\n", - "format" : "int64", - "type" : "integer" + "policyObject" : { + "$ref" : "#/components/schemas/PolicyObject" + }, + "policyTypeId" : { + "description" : "A1 Policy Type identity", + "example" : "ORAN_QOS_1.0.0 '(typeName_SemVersion)'", + "type" : "string" + } + }, + "required" : [ "nearRtRicId", "policyObject", "policyTypeId" ], + "type" : "object" + }, + "void" : { + "description" : "Void/empty", + "type" : "object" + }, + "ServiceStatusList" : { + "properties" : { + "serviceList" : { + "description" : "List of Service Status objects, describing a collection of registered services.", + "items" : { + "$ref" : "#/components/schemas/ServiceStatus" + }, + "type" : "array" } }, - "required" : [ "serviceId" ], "type" : "object" }, "ServiceStatus" : { @@ -2311,47 +2320,24 @@ }, "type" : "object" }, - "RicInfoList" : { - "description" : "Collection of Near-RT RIC information objects", - "properties" : { - "rics" : { - "description" : "List of Near-RT RIC information objects", - "items" : { - "$ref" : "#/components/schemas/RicInfo" - }, - "type" : "array" - } - }, - "type" : "object" - }, - "NearRtRicId" : { - "description" : "Identity of the Near-RT RIC", - "type" : "string" - }, - "PolicyInformation" : { - "description" : "Information tuple for a single A1 Policy Instance. Contains the A1 Policy Instance ID, and the ID of the Near-RT RIC where the policy is created. \n", + "ServiceRegistrationInfo" : { + "description" : "Information for a service to be registered", "properties" : { - "policyId" : { - "description" : "Identity of the A1 Policy Instance", + "callbackUrl" : { + "description" : "Callback URL for notifying of Near-RT RIC state changes", "type" : "string" }, - "nearRtRicId" : { - "$ref" : "#/components/schemas/NearRtRicId" - } - }, - "required" : [ "nearRtRicId", "policyId" ], - "type" : "object" - }, - "ServiceStatusList" : { - "properties" : { - "serviceList" : { - "description" : "List of Service Status objects, describing a collection of registered services.", - "items" : { - "$ref" : "#/components/schemas/ServiceStatus" - }, - "type" : "array" + "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.\n", + "format" : "int64", + "type" : "integer" } }, + "required" : [ "serviceId" ], "type" : "object" }, "ServiceCallbackInfo" : { @@ -2369,32 +2355,6 @@ }, "required" : [ "eventType", "ricId" ], "type" : "object" - }, - "ProblemDetails" : { - "description" : "Object to carry details about a problem in an HTTP response according to IETF RFC 7807", - "properties" : { - "type" : { - "description" : "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" : "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" } } } diff --git a/a1-policy-management/api/offeredapis/swagger/pms-api-v3.json b/a1-policy-management/api/offeredapis/swagger/pms-api-v3.json index 7b221983..37dd6ff9 100644 --- a/a1-policy-management/api/offeredapis/swagger/pms-api-v3.json +++ b/a1-policy-management/api/offeredapis/swagger/pms-api-v3.json @@ -93,19 +93,15 @@ "schema" : { "nullable" : false, "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" : { @@ -154,15 +150,12 @@ "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" : { @@ -231,15 +224,12 @@ "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" : { @@ -370,15 +360,12 @@ "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" : { @@ -506,15 +493,12 @@ "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" : { @@ -653,15 +637,12 @@ "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" : { @@ -777,14 +758,12 @@ "description" : "Update an existing A1 Policy instance's policy data using its policy ID.", "operationId" : "updatePolicy", "parameters" : [ { - "explode" : false, "in" : "path", "name" : "policyId", "required" : true, "schema" : { "type" : "string" - }, - "style" : "simple" + } } ], "requestBody" : { "content" : { @@ -967,15 +946,12 @@ "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" : { @@ -1129,15 +1105,12 @@ "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" : { @@ -1273,21 +1246,17 @@ "headers" : { "Location" : { "description" : "Contains the URI of the newly created A1 Policy Instances. This URI includes the A1 Policy Instance ID for the newly created policy instance.\n", - "explode" : false, "required" : true, "schema" : { "type" : "string" - }, - "style" : "simple" + } }, "Content-Type" : { "description" : "Media Type of the response", - "explode" : false, "schema" : { "example" : "application/json", "type" : "string" - }, - "style" : "simple" + } } } }, @@ -1471,7 +1440,7 @@ "tags" : [ "Configuration" ] }, "put" : { - "description" : "Replace the current Application Configuration with a new configuration. The new configuration, if accepted, will take effect after a short delay. The new configuration must comply with the Application Configuration schema, which can be found from the the Application Documentation (Developer Guide) \n", + "description" : "Replace the current Application Configuration with a new configuration. The new configuration, if accepted, will take effect after a short delay. The new configuration must comply with the Application Configuration schema, which can be found from the the Application Documentation (Developer Guide)\n", "operationId" : "putConfiguration", "requestBody" : { "content" : { @@ -1524,15 +1493,12 @@ "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" : { @@ -1586,15 +1552,12 @@ "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" : { @@ -1734,15 +1697,12 @@ "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" : { @@ -1773,22 +1733,6 @@ }, "components" : { "examples" : { - "ServiceStatusList" : { - "description" : "List of service information", - "value" : { - "serviceList" : [ { - "callbackUrl" : "http://callback.url", - "serviceId" : "serviceId1", - "keepAliveIntervalSeconds" : 0, - "timeSinceLastActivitySeconds" : 6 - }, { - "callbackUrl" : "http://callback.url", - "serviceId" : "serviceId2", - "keepAliveIntervalSeconds" : 500, - "timeSinceLastActivitySeconds" : 401 - } ] - } - }, "StatusInfo" : { "value" : { "status" : "success" @@ -1817,48 +1761,6 @@ } ] } }, - "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 - } - } - }, "PolicyTypeInformation" : { "value" : [ { "policyTypeId" : "STD_QOS2_0.1.0", @@ -1908,10 +1810,68 @@ } } } + }, + "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 + } + } + }, + "ServiceStatusList" : { + "description" : "List of service information", + "value" : { + "serviceList" : [ { + "callbackUrl" : "http://callback.url", + "serviceId" : "serviceId1", + "keepAliveIntervalSeconds" : 0, + "timeSinceLastActivitySeconds" : 6 + }, { + "callbackUrl" : "http://callback.url", + "serviceId" : "serviceId2", + "keepAliveIntervalSeconds" : 500, + "timeSinceLastActivitySeconds" : 401 + } ] + } } }, "responses" : { - "400" : { + "404" : { "content" : { "application/problem+json" : { "schema" : { @@ -1919,9 +1879,9 @@ } } }, - "description" : "Bad Request" + "description" : "Not Found" }, - "401" : { + "400" : { "content" : { "application/problem+json" : { "schema" : { @@ -1929,9 +1889,9 @@ } } }, - "description" : "Unauthorized" + "description" : "Bad Request" }, - "403" : { + "401" : { "content" : { "application/problem+json" : { "schema" : { @@ -1939,9 +1899,9 @@ } } }, - "description" : "Forbidden" + "description" : "Unauthorized" }, - "404" : { + "403" : { "content" : { "application/problem+json" : { "schema" : { @@ -1949,9 +1909,9 @@ } } }, - "description" : "Not Found" + "description" : "Forbidden" }, - "405" : { + "406" : { "content" : { "application/problem+json" : { "schema" : { @@ -1959,9 +1919,9 @@ } } }, - "description" : "Method Not Allowed" + "description" : "Not Acceptable" }, - "406" : { + "429" : { "content" : { "application/problem+json" : { "schema" : { @@ -1969,9 +1929,9 @@ } } }, - "description" : "Not Acceptable" + "description" : "Too Many Requests" }, - "409" : { + "500" : { "content" : { "application/problem+json" : { "schema" : { @@ -1979,9 +1939,9 @@ } } }, - "description" : "Conflict" + "description" : "Internal Server Error" }, - "411" : { + "502" : { "content" : { "application/problem+json" : { "schema" : { @@ -1989,9 +1949,9 @@ } } }, - "description" : "Length Required" + "description" : "Bad Gateway" }, - "413" : { + "503" : { "content" : { "application/problem+json" : { "schema" : { @@ -1999,9 +1959,9 @@ } } }, - "description" : "Payload Too Large" + "description" : "Service Unavailable" }, - "415" : { + "411" : { "content" : { "application/problem+json" : { "schema" : { @@ -2009,9 +1969,9 @@ } } }, - "description" : "Unsupported Media Type" + "description" : "Length Required" }, - "429" : { + "413" : { "content" : { "application/problem+json" : { "schema" : { @@ -2019,9 +1979,9 @@ } } }, - "description" : "Too Many Requests" + "description" : "Payload Too Large" }, - "500" : { + "415" : { "content" : { "application/problem+json" : { "schema" : { @@ -2029,19 +1989,24 @@ } } }, - "description" : "Internal Server Error" + "description" : "Unsupported Media Type" }, - "502" : { + "Locked" : { "content" : { "application/problem+json" : { + "example" : { + "status" : 423, + "title" : "Locked", + "detail" : "State is Locked in the provided request." + }, "schema" : { - "$ref" : "#/components/schemas/ProblemDetails" + "$ref" : "#/components/schemas/ErrorInformation" } } }, - "description" : "Bad Gateway" + "description" : "Locked - HTTP Status code which can be used when the state is Locked" }, - "503" : { + "405" : { "content" : { "application/problem+json" : { "schema" : { @@ -2049,106 +2014,121 @@ } } }, - "description" : "Service Unavailable" + "description" : "Method Not Allowed" }, - "Locked" : { + "409" : { "content" : { "application/problem+json" : { - "example" : { - "status" : 423, - "title" : "Locked", - "detail" : "State is Locked in the provided request." - }, "schema" : { - "$ref" : "#/components/schemas/ErrorInformation" + "$ref" : "#/components/schemas/ProblemDetails" } } }, - "description" : "Locked - HTTP Status code which can be used when the state is Locked" + "description" : "Conflict" } }, "schemas" : { - "PolicyTypeInformation" : { - "description" : "A data tuple to indicate that an identified A1 Policy Type is supported at an identified Near-RT RIC.", - "example" : { - "policyTypeId" : "STD_QOS2_0.1.0", - "nearRtRicId" : "ric_g3_2" - }, + "StatusInfo" : { "properties" : { - "policyTypeId" : { - "description" : "A1 Policy Type identifier", + "status" : { + "description" : "Status text", "type" : "string" - }, - "nearRtRicId" : { - "$ref" : "#/components/schemas/NearRtRicId" } }, - "required" : [ "nearRtRicId", "policyTypeId" ], "type" : "object" }, - "PolicyObjectInformation" : { - "description" : "Information to create an A1 Policy Instance", + "ProblemDetails" : { + "description" : "Object to carry details about a problem in an HTTP response according to IETF RFC 7807", "properties" : { - "nearRtRicId" : { - "description" : "Identity of the target Near-RT RIC", - "example" : "Near-RT-Ric-ID1", + "type" : { + "description" : "URI reference according to IETF RFC 3986 that identifies the problem type", "type" : "string" }, - "transient" : { - "default" : false, - "description" : "If true, the policy is automatically deleted if the targeted Near-RT RIC restarts or recovers. If false, the A1 Policy Instance remains, and is re-pushed to the targeted Near-RT RIC after a restart or recovery. If false, the A1 Policy Instance is maintained and must be deleted separately in the event of Near-RT RIC restart or recovery. Default is false.\n", - "nullable" : false, - "type" : "boolean" - }, - "policyId" : { - "description" : "An optional identity to be used for the new A1 Policy Instance. If this value is present, it must be unique. If not present the new A1 Policy Instance will be assigned a newly generated unique ID, and the new ID can be extracted from the 'Location' header in the response.\n", - "example" : "POLICY-ID1", + "title" : { + "description" : "Human-readable summary of the problem type", "type" : "string" }, - "serviceId" : { - "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. If the service is registered, the newly created A1 Policy Instance will be subject to the same supervision rules as the the service's other policies.", - "example" : "rApp 1", - "type" : "string" + "status" : { + "description" : "HTTP status code", + "type" : "number" }, - "policyObject" : { - "$ref" : "#/components/schemas/PolicyObject" + "detail" : { + "description" : "Human-readable explanation", + "type" : "string" }, - "policyTypeId" : { - "description" : "A1 Policy Type identity", - "example" : "ORAN_QOS_1.0.0 '(typeName_SemVersion)'", + "instance" : { + "description" : "URI reference that identifies the specific occurrence of the problem", "type" : "string" } }, - "required" : [ "nearRtRicId", "policyObject", "policyTypeId" ], "type" : "object" }, - "ErrorInformation" : { - "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807", + "RicInfo" : { + "description" : "Information for a Near-RT RIC", "properties" : { - "detail" : { - "description" : "A human-readable explanation specific to this occurrence of the problem.", - "example" : "Policy type not found", + "ricId" : { + "description" : "Identity of the Near-RT RIC", "type" : "string" }, - "title" : { - "description" : "A specific error name", - "example" : "Not Found", + "managedElementIds" : { + "description" : "Identities for managed entities", + "items" : { + "description" : "Identity for a managed entity", + "type" : "string" + }, + "type" : "array" + }, + "state" : { + "description" : "Represents the state of a Near-RT RIC", + "enum" : [ "UNAVAILABLE", "AVAILABLE", "SYNCHRONIZING", "CONSISTENCY_CHECK" ], "type" : "string" }, - "status" : { - "description" : "The HTTP status code generated by the origin server for this occurrence of the problem.\n", - "example" : 404, - "format" : "int32", - "type" : "integer" + "policyTypeIds" : { + "description" : "Supported A1 Policy Types", + "items" : { + "description" : "Supported A1 Policy Type ID", + "type" : "string" + }, + "type" : "array" } }, "type" : "object" }, - "PolicyObject" : { - "description" : "Policy Object is a JSON representation policy data for an A1 Policy Instance. The schema for this policy data is defined in the corresponding A1 Policy Type. \n", + "RicInfoList" : { + "description" : "Collection of Near-RT RIC information objects", + "properties" : { + "rics" : { + "description" : "List of Near-RT RIC information objects", + "items" : { + "$ref" : "#/components/schemas/RicInfo" + }, + "type" : "array" + } + }, "type" : "object" }, + "PolicyTypeInformation" : { + "description" : "A data tuple to indicate that an identified A1 Policy Type is supported at an identified Near-RT RIC.", + "example" : { + "policyTypeId" : "STD_QOS2_0.1.0", + "nearRtRicId" : "ric_g3_2" + }, + "properties" : { + "policyTypeId" : { + "description" : "A1 Policy Type identifier", + "type" : "string" + }, + "nearRtRicId" : { + "$ref" : "#/components/schemas/NearRtRicId" + } + }, + "required" : [ "nearRtRicId", "policyTypeId" ], + "type" : "object" + }, + "NearRtRicId" : { + "description" : "Identity of the Near-RT RIC", + "type" : "string" + }, "PolicyTypeObject" : { "description" : "An A1 Policy Type, as defined in O-RAN Alliance A1TD", "example" : { @@ -2219,72 +2199,101 @@ "description" : "A schema to define the contents of the status information for A1 Policy Instances. Status schemas are Policy Type specific. All status information for all A1 Policy Instances of an A1 Policy Type should comply with the type's status schema.\n", "type" : "object" }, - "PolicyStatusObject" : { - "description" : "A generic policy status object that can be used to transport any policy status. Additionally, a schema for policy status can be defined in the corresponding A1 Policy Type.\n", - "type" : "object" - }, - "void" : { - "description" : "Void/empty", + "PolicyObject" : { + "description" : "Policy Object is a JSON representation policy data for an A1 Policy Instance. The schema for this policy data is defined in the corresponding A1 Policy Type.\n", "type" : "object" }, - "StatusInfo" : { + "ErrorInformation" : { + "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807", "properties" : { - "status" : { - "description" : "Status text", + "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.\n", + "example" : 404, + "format" : "int32", + "type" : "integer" } }, "type" : "object" }, - "RicInfo" : { - "description" : "Information for a Near-RT RIC", + "PolicyStatusObject" : { + "description" : "A generic policy status object that can be used to transport any policy status. Additionally, a schema for policy status can be defined in the corresponding A1 Policy Type.\n", + "type" : "object" + }, + "PolicyInformation" : { + "description" : "Information tuple for a single A1 Policy Instance. Contains the A1 Policy Instance ID, and the ID of the Near-RT RIC where the policy is created.\n", "properties" : { - "ricId" : { - "description" : "Identity of the Near-RT RIC", - "type" : "string" - }, - "managedElementIds" : { - "description" : "Identities for managed entities", - "items" : { - "description" : "Identity for a managed entity", - "type" : "string" - }, - "type" : "array" - }, - "state" : { - "description" : "Represents the state of a Near-RT RIC", - "enum" : [ "UNAVAILABLE", "AVAILABLE", "SYNCHRONIZING", "CONSISTENCY_CHECK" ], + "policyId" : { + "description" : "Identity of the A1 Policy Instance", "type" : "string" }, - "policyTypeIds" : { - "description" : "Supported A1 Policy Types", - "items" : { - "description" : "Supported A1 Policy Type ID", - "type" : "string" - }, - "type" : "array" + "nearRtRicId" : { + "$ref" : "#/components/schemas/NearRtRicId" } }, + "required" : [ "nearRtRicId", "policyId" ], "type" : "object" }, - "ServiceRegistrationInfo" : { - "description" : "Information for a service to be registered", + "PolicyObjectInformation" : { + "description" : "Information to create an A1 Policy Instance", "properties" : { - "callbackUrl" : { - "description" : "Callback URL for notifying of Near-RT RIC state changes", + "nearRtRicId" : { + "description" : "Identity of the target Near-RT RIC", + "example" : "Near-RT-Ric-ID1", + "type" : "string" + }, + "transient" : { + "default" : false, + "description" : "If true, the policy is automatically deleted if the targeted Near-RT RIC restarts or recovers. If false, the A1 Policy Instance remains, and is re-pushed to the targeted Near-RT RIC after a restart or recovery. If false, the A1 Policy Instance is maintained and must be deleted separately in the event of Near-RT RIC restart or recovery. Default is false.\n", + "nullable" : false, + "type" : "boolean" + }, + "policyId" : { + "description" : "An optional identity to be used for the new A1 Policy Instance. If this value is present, it must be unique. If not present the new A1 Policy Instance will be assigned a newly generated unique ID, and the new ID can be extracted from the 'Location' header in the response.\n", + "example" : "POLICY-ID1", "type" : "string" }, "serviceId" : { - "description" : "Identity of the service", + "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. If the service is registered, the newly created A1 Policy Instance will be subject to the same supervision rules as the the service's other policies.", + "example" : "rApp 1", "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.\n", - "format" : "int64", - "type" : "integer" + "policyObject" : { + "$ref" : "#/components/schemas/PolicyObject" + }, + "policyTypeId" : { + "description" : "A1 Policy Type identity", + "example" : "ORAN_QOS_1.0.0 '(typeName_SemVersion)'", + "type" : "string" + } + }, + "required" : [ "nearRtRicId", "policyObject", "policyTypeId" ], + "type" : "object" + }, + "void" : { + "description" : "Void/empty", + "type" : "object" + }, + "ServiceStatusList" : { + "properties" : { + "serviceList" : { + "description" : "List of Service Status objects, describing a collection of registered services.", + "items" : { + "$ref" : "#/components/schemas/ServiceStatus" + }, + "type" : "array" } }, - "required" : [ "serviceId" ], "type" : "object" }, "ServiceStatus" : { @@ -2311,47 +2320,24 @@ }, "type" : "object" }, - "RicInfoList" : { - "description" : "Collection of Near-RT RIC information objects", - "properties" : { - "rics" : { - "description" : "List of Near-RT RIC information objects", - "items" : { - "$ref" : "#/components/schemas/RicInfo" - }, - "type" : "array" - } - }, - "type" : "object" - }, - "NearRtRicId" : { - "description" : "Identity of the Near-RT RIC", - "type" : "string" - }, - "PolicyInformation" : { - "description" : "Information tuple for a single A1 Policy Instance. Contains the A1 Policy Instance ID, and the ID of the Near-RT RIC where the policy is created. \n", + "ServiceRegistrationInfo" : { + "description" : "Information for a service to be registered", "properties" : { - "policyId" : { - "description" : "Identity of the A1 Policy Instance", + "callbackUrl" : { + "description" : "Callback URL for notifying of Near-RT RIC state changes", "type" : "string" }, - "nearRtRicId" : { - "$ref" : "#/components/schemas/NearRtRicId" - } - }, - "required" : [ "nearRtRicId", "policyId" ], - "type" : "object" - }, - "ServiceStatusList" : { - "properties" : { - "serviceList" : { - "description" : "List of Service Status objects, describing a collection of registered services.", - "items" : { - "$ref" : "#/components/schemas/ServiceStatus" - }, - "type" : "array" + "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.\n", + "format" : "int64", + "type" : "integer" } }, + "required" : [ "serviceId" ], "type" : "object" }, "ServiceCallbackInfo" : { @@ -2369,32 +2355,6 @@ }, "required" : [ "eventType", "ricId" ], "type" : "object" - }, - "ProblemDetails" : { - "description" : "Object to carry details about a problem in an HTTP response according to IETF RFC 7807", - "properties" : { - "type" : { - "description" : "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" : "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" } } } diff --git a/a1-policy-management/api/offeredapis/swagger/pms-api-v3.yaml b/a1-policy-management/api/offeredapis/swagger/pms-api-v3.yaml index 0865ff2b..f4e16793 100644 --- a/a1-policy-management/api/offeredapis/swagger/pms-api-v3.yaml +++ b/a1-policy-management/api/offeredapis/swagger/pms-api-v3.yaml @@ -19,625 +19,982 @@ openapi: 3.0.3 info: - title: ONAP CCSDK - A1 Policy Management API - version: 1.0.0 - x-api-id: e9776a07-0813-4fca-9801-6f892f0a7c13 - x-audience: external-public - description: "

General

The ONAP CCSDK A1 Policy Management Service\ - \ provides a REST API for managing A1 policies.
This document describes the latest API set - \ to perform tasks for:

APIs\ - \ provided or defined by the service

\ - \

Note: parts of this API are strongly based on extracts of the O-RAN Alliance R1 Interface specification\ - \ for A1 Policy Management, and those parts should be considered '© O-RAN ALLIANCE - All rights reserved.'

\ - \

A1 Policy Management

\ - \

This is the latest API for managing A1 Policies. This API is partially compliant with O-RAN\ - \ Alliance R1 Interface specifications for A1 Policy Management: