aboutsummaryrefslogtreecommitdiffstats
path: root/docs/offeredapis/swagger
diff options
context:
space:
mode:
authorlapentafd <francesco.lapenta@est.tech>2025-01-20 12:24:34 +0000
committerSaul Gill <saul.gill@est.tech>2025-03-03 15:59:48 +0000
commit1a93ad4c8fd793406c6d4828dee15ae3b49c0d8f (patch)
treee06f81c3a8460f9249a92e82a44da0766914482f /docs/offeredapis/swagger
parentaaec2b107b6d72513969d8acf3868a5adb098c3f (diff)
Fix OpenAPI definitions (v3) and examples
- Added /policies/{policyId}/status endpoint - Creation of PolicyTypeObject, and used it instead of PolicyObject for /policy-types Issue-ID: CCSDK-4076 Change-Id: Ie4311d64cdbaa0c34f9c2d2c9e1de7fbc2248311 Signed-off-by: lapentafd <francesco.lapenta@est.tech> (cherry picked from commit c816596509144b1c2b8775471bc82610c77895e4)
Diffstat (limited to 'docs/offeredapis/swagger')
-rw-r--r--docs/offeredapis/swagger/a1pms-api-v3.json331
-rw-r--r--docs/offeredapis/swagger/pms-api-v3.json331
-rw-r--r--docs/offeredapis/swagger/pms-api-v3.yaml169
3 files changed, 818 insertions, 13 deletions
diff --git a/docs/offeredapis/swagger/a1pms-api-v3.json b/docs/offeredapis/swagger/a1pms-api-v3.json
index c844073a..d8d3041e 100644
--- a/docs/offeredapis/swagger/a1pms-api-v3.json
+++ b/docs/offeredapis/swagger/a1pms-api-v3.json
@@ -241,6 +241,11 @@
"200" : {
"content" : {
"application/json" : {
+ "examples" : {
+ "PolicyTypeInformation" : {
+ "$ref" : "#/components/examples/PolicyTypeInformation"
+ }
+ },
"schema" : {
"items" : {
"$ref" : "#/components/schemas/PolicyTypeInformation"
@@ -375,12 +380,12 @@
"content" : {
"application/json" : {
"examples" : {
- "policyObject" : {
- "$ref" : "#/components/examples/PolicyObject"
+ "PolicyTypeObject" : {
+ "$ref" : "#/components/examples/PolicyTypeObject"
}
},
"schema" : {
- "$ref" : "#/components/schemas/PolicyObject"
+ "$ref" : "#/components/schemas/PolicyTypeObject"
}
}
},
@@ -507,7 +512,7 @@
} ],
"responses" : {
"204" : {
- "description" : "The created A1 policy was deleted"
+ "description" : "The A1 policy was deleted"
},
"400" : {
"content" : {
@@ -549,6 +554,26 @@
},
"description" : "Not Found"
},
+ "405" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Method Not Allowed"
+ },
+ "406" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Acceptable"
+ },
"423" : {
"content" : {
"application/problem+json" : {
@@ -919,6 +944,136 @@
"tags" : [ "A1 Policy Management" ]
}
},
+ "/policies/{policyId}/status" : {
+ "get" : {
+ "description" : "Query a policy status",
+ "operationId" : "getPolicyStatus",
+ "parameters" : [ {
+ "explode" : false,
+ "in" : "path",
+ "name" : "policyId",
+ "required" : true,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "simple"
+ }, {
+ "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+ "explode" : false,
+ "in" : "header",
+ "name" : "Accept",
+ "required" : false,
+ "schema" : {
+ "example" : "application/json",
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/PolicyStatusObject"
+ }
+ }
+ },
+ "description" : "OK"
+ },
+ "400" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Bad Request"
+ },
+ "401" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Unauthorized"
+ },
+ "403" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Forbidden"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Found"
+ },
+ "406" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Acceptable"
+ },
+ "429" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Too Many Request"
+ },
+ "500" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Internal Server Error"
+ },
+ "502" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Bad Gateway"
+ },
+ "503" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Service Unavailable"
+ }
+ },
+ "tags" : [ "A1 Policy Management" ]
+ }
+ },
"/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.",
@@ -1158,6 +1313,16 @@
},
"description" : "Not Found"
},
+ "405" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Method Not Allowed"
+ },
"406" : {
"content" : {
"application/problem+json" : {
@@ -1168,6 +1333,36 @@
},
"description" : "Not Acceptable"
},
+ "409" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Conflict"
+ },
+ "413" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Payload Too Large"
+ },
+ "415" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Unsupported Media Type"
+ },
"423" : {
"content" : {
"application/problem+json" : {
@@ -1652,6 +1847,56 @@
"pdb" : 50
}
}
+ },
+ "PolicyTypeInformation" : {
+ "value" : [ {
+ "policyTypeId" : "STD_QOS2_0.1.0",
+ "nearRtRicId" : "ricsim_g3_2"
+ }, {
+ "policyTypeId" : "STD_QOS_0_2_0",
+ "nearRtRicId" : "ricsim_g3_2"
+ }, {
+ "policyTypeId" : "STD_QOS2_0.1.0",
+ "nearRtRicId" : "ricsim_g3_1"
+ }, {
+ "policyTypeId" : "STD_QOS_0_2_0",
+ "nearRtRicId" : "ricsim_g3_1"
+ } ]
+ },
+ "PolicyTypeObject" : {
+ "value" : {
+ "policySchema" : {
+ "$schema" : "http://json-schema.org/draft-07/schema#",
+ "title" : "STD_QOS_0_2_0",
+ "description" : "STD QOS2 policy type",
+ "type" : "object",
+ "properties" : {
+ "scope" : {
+ "type" : "object",
+ "properties" : {
+ "ueId" : {
+ "type" : "string"
+ },
+ "qosId" : {
+ "type" : "string"
+ }
+ },
+ "additionalProperties" : false,
+ "required" : [ "ueId", "qosId" ]
+ },
+ "qosObjectives" : {
+ "type" : "object",
+ "properties" : {
+ "priorityLevel" : {
+ "type" : "number"
+ }
+ },
+ "additionalProperties" : false,
+ "required" : [ "priorityLevel" ]
+ }
+ }
+ }
+ }
}
},
"responses" : {
@@ -1814,6 +2059,10 @@
"schemas" : {
"PolicyTypeInformation" : {
"description" : "Available policy types and for each policy type identifier the Near-RT RIC identifiers of those Near-RT RICs that support the related A1 policy type",
+ "example" : {
+ "policyTypeId" : "STD_QOS2_0.1.0",
+ "nearRtRicId" : "ricsim_g3_2"
+ },
"properties" : {
"policyTypeId" : {
"description" : "Identity of the policy type",
@@ -1888,6 +2137,80 @@
"description" : "Policy Object is a JSON representation of an A1 policy",
"type" : "object"
},
+ "PolicyTypeObject" : {
+ "description" : "policy type object as defined in A1TD",
+ "example" : {
+ "policySchema" : {
+ "$schema" : "http://json-schema.org/draft-07/schema#",
+ "title" : "STD_QOS_0_2_0",
+ "description" : "STD QOS policy type",
+ "type" : "object",
+ "properties" : {
+ "scope" : {
+ "type" : "object",
+ "properties" : {
+ "ueId" : {
+ "type" : "string"
+ },
+ "qosId" : {
+ "type" : "string"
+ }
+ },
+ "additionalProperties" : false,
+ "required" : [ "ueId", "qosId" ]
+ },
+ "qosObjectives" : {
+ "type" : "object",
+ "properties" : {
+ "priorityLevel" : {
+ "type" : "number"
+ }
+ },
+ "additionalProperties" : false,
+ "required" : [ "priorityLevel" ]
+ }
+ }
+ },
+ "statusSchema" : {
+ "$schema" : "http://json-schema.org/draft-07/schema#",
+ "title" : "STD_QOS_0.2.0",
+ "description" : "STD QOS policy type status",
+ "type" : "object",
+ "properties" : {
+ "enforceStatus" : {
+ "type" : "string"
+ },
+ "enforceReason" : {
+ "type" : "string"
+ },
+ "additionalProperties" : false,
+ "required" : [ "enforceStatus" ]
+ }
+ }
+ },
+ "properties" : {
+ "policySchema" : {
+ "$ref" : "#/components/schemas/PolicySchema"
+ },
+ "statusSchema" : {
+ "$ref" : "#/components/schemas/StatusSchema"
+ }
+ },
+ "required" : [ "policySchema" ],
+ "type" : "object"
+ },
+ "PolicySchema" : {
+ "description" : "The schemas are policy type specific",
+ "type" : "object"
+ },
+ "StatusSchema" : {
+ "description" : "The optional schema for policy status",
+ "type" : "object"
+ },
+ "PolicyStatusObject" : {
+ "description" : "A generic policy status object that can be used to transport any policy status. Additionally, a policy status shall be valid according to the schema of its specific policy type.",
+ "type" : "object"
+ },
"void" : {
"description" : "Void/empty",
"type" : "object"
diff --git a/docs/offeredapis/swagger/pms-api-v3.json b/docs/offeredapis/swagger/pms-api-v3.json
index c844073a..d8d3041e 100644
--- a/docs/offeredapis/swagger/pms-api-v3.json
+++ b/docs/offeredapis/swagger/pms-api-v3.json
@@ -241,6 +241,11 @@
"200" : {
"content" : {
"application/json" : {
+ "examples" : {
+ "PolicyTypeInformation" : {
+ "$ref" : "#/components/examples/PolicyTypeInformation"
+ }
+ },
"schema" : {
"items" : {
"$ref" : "#/components/schemas/PolicyTypeInformation"
@@ -375,12 +380,12 @@
"content" : {
"application/json" : {
"examples" : {
- "policyObject" : {
- "$ref" : "#/components/examples/PolicyObject"
+ "PolicyTypeObject" : {
+ "$ref" : "#/components/examples/PolicyTypeObject"
}
},
"schema" : {
- "$ref" : "#/components/schemas/PolicyObject"
+ "$ref" : "#/components/schemas/PolicyTypeObject"
}
}
},
@@ -507,7 +512,7 @@
} ],
"responses" : {
"204" : {
- "description" : "The created A1 policy was deleted"
+ "description" : "The A1 policy was deleted"
},
"400" : {
"content" : {
@@ -549,6 +554,26 @@
},
"description" : "Not Found"
},
+ "405" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Method Not Allowed"
+ },
+ "406" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Acceptable"
+ },
"423" : {
"content" : {
"application/problem+json" : {
@@ -919,6 +944,136 @@
"tags" : [ "A1 Policy Management" ]
}
},
+ "/policies/{policyId}/status" : {
+ "get" : {
+ "description" : "Query a policy status",
+ "operationId" : "getPolicyStatus",
+ "parameters" : [ {
+ "explode" : false,
+ "in" : "path",
+ "name" : "policyId",
+ "required" : true,
+ "schema" : {
+ "type" : "string"
+ },
+ "style" : "simple"
+ }, {
+ "description" : "Specifies the content type that the client expects to receive in response to the request. Only application/json is allowed.",
+ "explode" : false,
+ "in" : "header",
+ "name" : "Accept",
+ "required" : false,
+ "schema" : {
+ "example" : "application/json",
+ "type" : "string"
+ },
+ "style" : "simple"
+ } ],
+ "responses" : {
+ "200" : {
+ "content" : {
+ "application/json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/PolicyStatusObject"
+ }
+ }
+ },
+ "description" : "OK"
+ },
+ "400" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Bad Request"
+ },
+ "401" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Unauthorized"
+ },
+ "403" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Forbidden"
+ },
+ "404" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Found"
+ },
+ "406" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Not Acceptable"
+ },
+ "429" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Too Many Request"
+ },
+ "500" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Internal Server Error"
+ },
+ "502" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Bad Gateway"
+ },
+ "503" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Service Unavailable"
+ }
+ },
+ "tags" : [ "A1 Policy Management" ]
+ }
+ },
"/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.",
@@ -1158,6 +1313,16 @@
},
"description" : "Not Found"
},
+ "405" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Method Not Allowed"
+ },
"406" : {
"content" : {
"application/problem+json" : {
@@ -1168,6 +1333,36 @@
},
"description" : "Not Acceptable"
},
+ "409" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Conflict"
+ },
+ "413" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Payload Too Large"
+ },
+ "415" : {
+ "content" : {
+ "application/problem+json" : {
+ "schema" : {
+ "$ref" : "#/components/schemas/ProblemDetails"
+ }
+ }
+ },
+ "description" : "Unsupported Media Type"
+ },
"423" : {
"content" : {
"application/problem+json" : {
@@ -1652,6 +1847,56 @@
"pdb" : 50
}
}
+ },
+ "PolicyTypeInformation" : {
+ "value" : [ {
+ "policyTypeId" : "STD_QOS2_0.1.0",
+ "nearRtRicId" : "ricsim_g3_2"
+ }, {
+ "policyTypeId" : "STD_QOS_0_2_0",
+ "nearRtRicId" : "ricsim_g3_2"
+ }, {
+ "policyTypeId" : "STD_QOS2_0.1.0",
+ "nearRtRicId" : "ricsim_g3_1"
+ }, {
+ "policyTypeId" : "STD_QOS_0_2_0",
+ "nearRtRicId" : "ricsim_g3_1"
+ } ]
+ },
+ "PolicyTypeObject" : {
+ "value" : {
+ "policySchema" : {
+ "$schema" : "http://json-schema.org/draft-07/schema#",
+ "title" : "STD_QOS_0_2_0",
+ "description" : "STD QOS2 policy type",
+ "type" : "object",
+ "properties" : {
+ "scope" : {
+ "type" : "object",
+ "properties" : {
+ "ueId" : {
+ "type" : "string"
+ },
+ "qosId" : {
+ "type" : "string"
+ }
+ },
+ "additionalProperties" : false,
+ "required" : [ "ueId", "qosId" ]
+ },
+ "qosObjectives" : {
+ "type" : "object",
+ "properties" : {
+ "priorityLevel" : {
+ "type" : "number"
+ }
+ },
+ "additionalProperties" : false,
+ "required" : [ "priorityLevel" ]
+ }
+ }
+ }
+ }
}
},
"responses" : {
@@ -1814,6 +2059,10 @@
"schemas" : {
"PolicyTypeInformation" : {
"description" : "Available policy types and for each policy type identifier the Near-RT RIC identifiers of those Near-RT RICs that support the related A1 policy type",
+ "example" : {
+ "policyTypeId" : "STD_QOS2_0.1.0",
+ "nearRtRicId" : "ricsim_g3_2"
+ },
"properties" : {
"policyTypeId" : {
"description" : "Identity of the policy type",
@@ -1888,6 +2137,80 @@
"description" : "Policy Object is a JSON representation of an A1 policy",
"type" : "object"
},
+ "PolicyTypeObject" : {
+ "description" : "policy type object as defined in A1TD",
+ "example" : {
+ "policySchema" : {
+ "$schema" : "http://json-schema.org/draft-07/schema#",
+ "title" : "STD_QOS_0_2_0",
+ "description" : "STD QOS policy type",
+ "type" : "object",
+ "properties" : {
+ "scope" : {
+ "type" : "object",
+ "properties" : {
+ "ueId" : {
+ "type" : "string"
+ },
+ "qosId" : {
+ "type" : "string"
+ }
+ },
+ "additionalProperties" : false,
+ "required" : [ "ueId", "qosId" ]
+ },
+ "qosObjectives" : {
+ "type" : "object",
+ "properties" : {
+ "priorityLevel" : {
+ "type" : "number"
+ }
+ },
+ "additionalProperties" : false,
+ "required" : [ "priorityLevel" ]
+ }
+ }
+ },
+ "statusSchema" : {
+ "$schema" : "http://json-schema.org/draft-07/schema#",
+ "title" : "STD_QOS_0.2.0",
+ "description" : "STD QOS policy type status",
+ "type" : "object",
+ "properties" : {
+ "enforceStatus" : {
+ "type" : "string"
+ },
+ "enforceReason" : {
+ "type" : "string"
+ },
+ "additionalProperties" : false,
+ "required" : [ "enforceStatus" ]
+ }
+ }
+ },
+ "properties" : {
+ "policySchema" : {
+ "$ref" : "#/components/schemas/PolicySchema"
+ },
+ "statusSchema" : {
+ "$ref" : "#/components/schemas/StatusSchema"
+ }
+ },
+ "required" : [ "policySchema" ],
+ "type" : "object"
+ },
+ "PolicySchema" : {
+ "description" : "The schemas are policy type specific",
+ "type" : "object"
+ },
+ "StatusSchema" : {
+ "description" : "The optional schema for policy status",
+ "type" : "object"
+ },
+ "PolicyStatusObject" : {
+ "description" : "A generic policy status object that can be used to transport any policy status. Additionally, a policy status shall be valid according to the schema of its specific policy type.",
+ "type" : "object"
+ },
"void" : {
"description" : "Void/empty",
"type" : "object"
diff --git a/docs/offeredapis/swagger/pms-api-v3.yaml b/docs/offeredapis/swagger/pms-api-v3.yaml
index 46f881e5..8bcfdf4b 100644
--- a/docs/offeredapis/swagger/pms-api-v3.yaml
+++ b/docs/offeredapis/swagger/pms-api-v3.yaml
@@ -215,7 +215,9 @@ paths:
items:
$ref: '#/components/schemas/PolicyTypeInformation'
type: array
-
+ examples:
+ PolicyTypeInformation:
+ $ref: '#/components/examples/PolicyTypeInformation'
description: OK - Policy Type IDs found Ok
'400':
$ref: '#/components/responses/400'
@@ -261,10 +263,10 @@ paths:
content:
application/json:
schema:
- $ref: '#/components/schemas/PolicyObject'
+ $ref: '#/components/schemas/PolicyTypeObject'
examples:
- policyObject:
- $ref: '#/components/examples/PolicyObject'
+ PolicyTypeObject:
+ $ref: '#/components/examples/PolicyTypeObject'
description: OK - schema of the given policy type
'400':
$ref: '#/components/responses/400'
@@ -361,7 +363,7 @@ paths:
example: application/json
responses:
'204':
- description: 'The created A1 policy was deleted'
+ description: 'The A1 policy was deleted'
'400':
$ref: '#/components/responses/400'
'401':
@@ -370,6 +372,10 @@ paths:
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
+ '405':
+ $ref: '#/components/responses/405'
+ '406':
+ $ref: '#/components/responses/406'
'423':
$ref: '#/components/responses/Locked'
'429':
@@ -431,6 +437,53 @@ paths:
description: Returns a policy
tags:
- A1 Policy Management
+ /policies/{policyId}/status:
+ get:
+ operationId: getPolicyStatus
+ parameters:
+ - explode: false
+ in: path
+ name: policyId
+ required: true
+ schema:
+ type: string
+ style: simple
+ - description: Specifies the content type that the client expects to receive in response to the request.
+ Only application/json is allowed.
+ in: header
+ name: Accept
+ schema:
+ type: string
+ example: application/json
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/PolicyStatusObject'
+ description: OK
+ '400':
+ $ref: '#/components/responses/400'
+ '401':
+ $ref: '#/components/responses/401'
+ '403':
+ $ref: '#/components/responses/403'
+ '404':
+ $ref: '#/components/responses/404'
+ '406':
+ $ref: '#/components/responses/406'
+ '429':
+ $ref: '#/components/responses/429'
+ '500':
+ $ref: '#/components/responses/500'
+ '502':
+ $ref: '#/components/responses/502'
+ '503':
+ $ref: '#/components/responses/503'
+ description: 'Query a policy status'
+ tags:
+ - A1 Policy Management
+
/policies:
get:
description: "Returns a list of A1 policies matching given search criteria.\
@@ -537,8 +590,16 @@ paths:
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
+ '405':
+ $ref: '#/components/responses/405'
'406':
$ref: '#/components/responses/406'
+ '409':
+ $ref: '#/components/responses/409'
+ '413':
+ $ref: '#/components/responses/413'
+ '415':
+ $ref: '#/components/responses/415'
'423':
$ref: '#/components/responses/Locked'
'429':
@@ -831,6 +892,43 @@ components:
mfbr: 200
priorityLevel: 3
pdb: 50
+ PolicyTypeInformation:
+ value:
+ - policyTypeId: STD_QOS2_0.1.0
+ nearRtRicId: ricsim_g3_2
+ - policyTypeId: STD_QOS_0_2_0
+ nearRtRicId: ricsim_g3_2
+ - policyTypeId: STD_QOS2_0.1.0
+ nearRtRicId: ricsim_g3_1
+ - policyTypeId: STD_QOS_0_2_0
+ nearRtRicId: ricsim_g3_1
+ PolicyTypeObject:
+ value:
+ policySchema:
+ "$schema": http://json-schema.org/draft-07/schema#
+ title: STD_QOS_0_2_0
+ description: STD QOS2 policy type
+ type: object
+ properties:
+ scope:
+ type: object
+ properties:
+ ueId:
+ type: string
+ qosId:
+ type: string
+ additionalProperties: false
+ required:
+ - ueId
+ - qosId
+ qosObjectives:
+ type: object
+ properties:
+ priorityLevel:
+ type: number
+ additionalProperties: false
+ required:
+ - priorityLevel
schemas:
PolicyTypeInformation:
description: >-
@@ -847,6 +945,9 @@ components:
required:
- policyTypeId
- nearRtRicId
+ example:
+ policyTypeId: STD_QOS2_0.1.0
+ nearRtRicId: ricsim_g3_2
PolicyObjectInformation:
description: Information related to the creation of the policy
type: object
@@ -907,6 +1008,64 @@ components:
PolicyObject:
description: 'Policy Object is a JSON representation of an A1 policy'
type: object
+ PolicyTypeObject:
+ description: 'policy type object as defined in A1TD'
+ type: object
+ properties:
+ policySchema:
+ $ref: '#/components/schemas/PolicySchema'
+ statusSchema:
+ $ref: '#/components/schemas/StatusSchema'
+ required:
+ - "policySchema"
+ example:
+ policySchema:
+ "$schema": http://json-schema.org/draft-07/schema#
+ title: STD_QOS_0_2_0
+ description: STD QOS policy type
+ type: object
+ properties:
+ scope:
+ type: object
+ properties:
+ ueId:
+ type: string
+ qosId:
+ type: string
+ additionalProperties: false
+ required:
+ - ueId
+ - qosId
+ qosObjectives:
+ type: object
+ properties:
+ priorityLevel:
+ type: number
+ additionalProperties: false
+ required:
+ - priorityLevel
+ statusSchema:
+ "$schema": http://json-schema.org/draft-07/schema#
+ title: STD_QOS_0.2.0
+ description: STD QOS policy type status
+ type: object
+ properties:
+ enforceStatus:
+ type: string
+ enforceReason:
+ type: string
+ additionalProperties: false
+ required:
+ - enforceStatus
+ PolicySchema:
+ description: 'The schemas are policy type specific'
+ type: object
+ StatusSchema:
+ description: 'The optional schema for policy status'
+ type: object
+ PolicyStatusObject:
+ description: 'A generic policy status object that can be used to transport any policy status. Additionally, a policy status shall be valid according to the schema of its specific policy type.'
+ type: object
void:
description: Void/empty
type: object