aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorelinuxhenrik <henrik.b.andersson@est.tech>2020-12-07 14:54:19 +0100
committerelinuxhenrik <henrik.b.andersson@est.tech>2020-12-08 09:34:41 +0100
commitf28594d423c9da9988d6a23ab49c4e787a5ae089 (patch)
tree2666813cab4ec122160f2e8bc28adfef706747a4
parentacfcde2e7729939a9a9f9f8a085951585033c081 (diff)
Add generation of API yaml file
Change-Id: I3f3091c76b926425f9a2187e43dd03a1cdb4bda6 Issue-ID: CCSDK-2736 Signed-off-by: elinuxhenrik <henrik.b.andersson@est.tech>
-rw-r--r--.gitignore2
-rw-r--r--a1-policy-management/api/README.md0
-rw-r--r--a1-policy-management/api/pms-api.json1449
-rw-r--r--a1-policy-management/api/pms-api.yaml1617
-rw-r--r--a1-policy-management/pom.xml22
-rw-r--r--a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ApplicationTest.java2
-rw-r--r--docs/offeredapis/swagger/pms-api.json2
-rw-r--r--docs/offeredapis/swagger/pms-api.yaml2408
-rw-r--r--pom.xml25
9 files changed, 4418 insertions, 1109 deletions
diff --git a/.gitignore b/.gitignore
index 16a25344..a8cc7dcb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -41,3 +41,5 @@ out/
## Documentation ignores ##
.tox
_build/
+.swagger*
+docs/offeredapis/swagger/README.md
diff --git a/a1-policy-management/api/README.md b/a1-policy-management/api/README.md
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/a1-policy-management/api/README.md
diff --git a/a1-policy-management/api/pms-api.json b/a1-policy-management/api/pms-api.json
new file mode 100644
index 00000000..b1bea446
--- /dev/null
+++ b/a1-policy-management/api/pms-api.json
@@ -0,0 +1,1449 @@
+{
+ "basePath": "/",
+ "paths": {
+ "/policy_types": {"get": {
+ "summary": "Query policy type names",
+ "deprecated": false,
+ "produces": ["*/*"],
+ "operationId": "getPolicyTypesUsingGET_1",
+ "responses": {
+ "200": {
+ "schema": {
+ "type": "array",
+ "items": {"type": "string"}
+ },
+ "description": "Policy type names"
+ },
+ "401": {"description": "Unauthorized"},
+ "403": {"description": "Forbidden"},
+ "404": {
+ "schema": {"type": "string"},
+ "description": "Near-RT RIC is not found"
+ }
+ },
+ "parameters": [{
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "ric",
+ "description": "The name of the Near-RT RIC to get types for.",
+ "type": "string",
+ "required": false
+ }],
+ "tags": ["A1 Policy Management Version 1.0"]
+ }},
+ "/v2/status": {"get": {
+ "summary": "Returns status and statistics of this service",
+ "deprecated": false,
+ "produces": ["application/json"],
+ "operationId": "getStatusUsingGET_1",
+ "responses": {
+ "200": {
+ "schema": {"$ref": "#/definitions/status_info_v2"},
+ "description": "Service is living"
+ },
+ "401": {"description": "Unauthorized"},
+ "403": {"description": "Forbidden"},
+ "404": {"description": "Not Found"}
+ },
+ "tags": ["A1 Policy Management Version 2.0 (in progress)"]
+ }},
+ "/v2/policy-types": {"get": {
+ "summary": "Query policy type identities",
+ "deprecated": false,
+ "produces": ["application/json"],
+ "operationId": "getPolicyTypesUsingGET",
+ "responses": {
+ "200": {
+ "schema": {"$ref": "#/definitions/policytype_id_list_v2"},
+ "description": "Policy type IDs"
+ },
+ "401": {"description": "Unauthorized"},
+ "403": {"description": "Forbidden"},
+ "404": {
+ "schema": {"$ref": "#/definitions/error_information"},
+ "description": "Near-RT RIC is not found"
+ }
+ },
+ "parameters": [{
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "ric_id",
+ "description": "The identity of the Near-RT RIC to get types for.",
+ "type": "string",
+ "required": false
+ }],
+ "tags": ["A1 Policy Management Version 2.0 (in progress)"]
+ }},
+ "/services": {
+ "get": {
+ "summary": "Returns service information",
+ "deprecated": false,
+ "produces": ["*/*"],
+ "operationId": "getServicesUsingGET",
+ "responses": {
+ "200": {
+ "schema": {
+ "type": "array",
+ "items": {"$ref": "#/definitions/service_status_v1"}
+ },
+ "description": "OK"
+ },
+ "401": {"description": "Unauthorized"},
+ "403": {"description": "Forbidden"},
+ "404": {
+ "schema": {"type": "string"},
+ "description": "Service is not found"
+ }
+ },
+ "parameters": [{
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "name",
+ "description": "The name of the service",
+ "type": "string",
+ "required": false
+ }],
+ "tags": ["A1 Policy Management Version 1.0"]
+ },
+ "delete": {
+ "summary": "Delete a service",
+ "deprecated": false,
+ "produces": ["*/*"],
+ "operationId": "deleteServiceUsingDELETE",
+ "responses": {
+ "200": {
+ "schema": {"type": "string"},
+ "description": "OK"
+ },
+ "401": {"description": "Unauthorized"},
+ "204": {
+ "schema": {"type": "string"},
+ "description": "Service deleted"
+ },
+ "403": {"description": "Forbidden"},
+ "404": {
+ "schema": {"type": "string"},
+ "description": "Service not found"
+ }
+ },
+ "parameters": [{
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "name",
+ "description": "The name of the service",
+ "type": "string",
+ "required": true
+ }],
+ "tags": ["A1 Policy Management Version 1.0"]
+ }
+ },
+ "/v2/services/{service_id}": {"delete": {
+ "summary": "Unregister a service",
+ "deprecated": false,
+ "produces": ["*/*"],
+ "operationId": "deleteServiceUsingDELETE_1",
+ "responses": {
+ "200": {"description": "Not used"},
+ "401": {"description": "Unauthorized"},
+ "204": {
+ "schema": {"type": "object"},
+ "description": "Service unregistered"
+ },
+ "403": {"description": "Forbidden"},
+ "404": {
+ "schema": {"$ref": "#/definitions/error_information"},
+ "description": "Service not found"
+ }
+ },
+ "parameters": [{
+ "in": "path",
+ "name": "service_id",
+ "description": "service_id",
+ "type": "string",
+ "required": true
+ }],
+ "tags": ["A1 Policy Management Version 2.0 (in progress)"]
+ }},
+ "/policy": {
+ "get": {
+ "summary": "Returns a policy configuration",
+ "deprecated": false,
+ "produces": ["*/*"],
+ "operationId": "getPolicyUsingGET_1",
+ "responses": {
+ "200": {
+ "schema": {"type": "object"},
+ "description": "Policy found"
+ },
+ "401": {"description": "Unauthorized"},
+ "403": {"description": "Forbidden"},
+ "404": {"description": "Policy is not found"}
+ },
+ "parameters": [{
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "id",
+ "description": "The identity of the policy instance.",
+ "type": "string",
+ "required": true
+ }],
+ "tags": ["A1 Policy Management Version 1.0"]
+ },
+ "delete": {
+ "summary": "Delete a policy",
+ "deprecated": false,
+ "produces": ["*/*"],
+ "operationId": "deletePolicyUsingDELETE_1",
+ "responses": {
+ "200": {"description": "Not used"},
+ "401": {"description": "Unauthorized"},
+ "423": {
+ "schema": {"type": "string"},
+ "description": "Near-RT RIC is not operational"
+ },
+ "204": {"description": "Policy deleted"},
+ "403": {"description": "Forbidden"},
+ "404": {
+ "schema": {"type": "string"},
+ "description": "Policy is not found"
+ }
+ },
+ "parameters": [{
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "id",
+ "description": "The identity of the policy instance.",
+ "type": "string",
+ "required": true
+ }],
+ "tags": ["A1 Policy Management Version 1.0"]
+ },
+ "put": {
+ "summary": "Put a policy",
+ "deprecated": false,
+ "produces": ["*/*"],
+ "operationId": "putPolicyUsingPUT_1",
+ "responses": {
+ "200": {"description": "Policy updated"},
+ "201": {"description": "Policy created"},
+ "401": {"description": "Unauthorized"},
+ "423": {
+ "schema": {"type": "string"},
+ "description": "Near-RT RIC is not operational"
+ },
+ "403": {"description": "Forbidden"},
+ "404": {
+ "schema": {"type": "string"},
+ "description": "Near-RT RIC or policy type is not found"
+ }
+ },
+ "parameters": [
+ {
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "id",
+ "description": "The identity of the policy instance.",
+ "type": "string",
+ "required": true
+ },
+ {
+ "schema": {"type": "object"},
+ "in": "body",
+ "name": "jsonBody",
+ "description": "jsonBody",
+ "required": true
+ },
+ {
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "ric",
+ "description": "The name of the Near-RT RIC where the policy will be created.",
+ "type": "string",
+ "required": true
+ },
+ {
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "service",
+ "description": "The name of the service creating the policy.",
+ "type": "string",
+ "required": true
+ },
+ {
+ "default": false,
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "transient",
+ "x-example": false,
+ "description": "If the policy is transient or not (boolean defaulted to false). A policy is transient if it will be forgotten when the service needs to reconnect to the Near-RT RIC.",
+ "type": "boolean",
+ "required": false
+ },
+ {
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "type",
+ "description": "The name of the policy type.",
+ "type": "string",
+ "required": false
+ }
+ ],
+ "tags": ["A1 Policy Management Version 1.0"],
+ "consumes": ["application/json"]
+ }
+ },
+ "/policies": {"get": {
+ "summary": "Query policies",
+ "deprecated": false,
+ "produces": ["*/*"],
+ "operationId": "getPoliciesUsingGET",
+ "responses": {
+ "200": {
+ "schema": {
+ "type": "array",
+ "items": {"$ref": "#/definitions/policy_info_v1"}
+ },
+ "description": "Policies"
+ },
+ "401": {"description": "Unauthorized"},
+ "403": {"description": "Forbidden"},
+ "404": {
+ "schema": {"type": "string"},
+ "description": "Near-RT RIC or type not found"
+ }
+ },
+ "parameters": [
+ {
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "ric",
+ "description": "The name of the Near-RT RIC to get policies for.",
+ "type": "string",
+ "required": false
+ },
+ {
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "service",
+ "description": "The name of the service to get policies for.",
+ "type": "string",
+ "required": false
+ },
+ {
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "type",
+ "description": "The name of the policy type to get policies for.",
+ "type": "string",
+ "required": false
+ }
+ ],
+ "tags": ["A1 Policy Management Version 1.0"]
+ }},
+ "/v2/policies/{policy_id}": {
+ "get": {
+ "summary": "Returns a policy",
+ "deprecated": false,
+ "produces": ["application/json"],
+ "operationId": "getPolicyUsingGET",
+ "responses": {
+ "200": {
+ "schema": {"$ref": "#/definitions/policy_info_v2"},
+ "description": "Policy found"
+ },
+ "401": {"description": "Unauthorized"},
+ "403": {"description": "Forbidden"},
+ "404": {
+ "schema": {"$ref": "#/definitions/error_information"},
+ "description": "Policy is not found"
+ }
+ },
+ "parameters": [{
+ "in": "path",
+ "name": "policy_id",
+ "description": "policy_id",
+ "type": "string",
+ "required": true
+ }],
+ "tags": ["A1 Policy Management Version 2.0 (in progress)"]
+ },
+ "delete": {
+ "summary": "Delete a policy",
+ "deprecated": false,
+ "produces": ["*/*"],
+ "operationId": "deletePolicyUsingDELETE",
+ "responses": {
+ "200": {"description": "Not used"},
+ "401": {"description": "Unauthorized"},
+ "423": {
+ "schema": {"$ref": "#/definitions/error_information"},
+ "description": "Near-RT RIC is not operational"
+ },
+ "204": {"description": "Policy deleted"},
+ "403": {"description": "Forbidden"},
+ "404": {
+ "schema": {"$ref": "#/definitions/error_information"},
+ "description": "Policy is not found"
+ }
+ },
+ "parameters": [{
+ "in": "path",
+ "name": "policy_id",
+ "description": "policy_id",
+ "type": "string",
+ "required": true
+ }],
+ "tags": ["A1 Policy Management Version 2.0 (in progress)"]
+ }
+ },
+ "/policy_schema": {"get": {
+ "summary": "Returns one policy type schema definition",
+ "deprecated": false,
+ "produces": ["*/*"],
+ "operationId": "getPolicySchemaUsingGET",
+ "responses": {
+ "200": {
+ "schema": {"type": "object"},
+ "description": "Policy schema"
+ },
+ "401": {"description": "Unauthorized"},
+ "403": {"description": "Forbidden"},
+ "404": {
+ "schema": {"type": "string"},
+ "description": "The policy type is not found"
+ }
+ },
+ "parameters": [{
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "id",
+ "description": "The identity of the policy type to get the definition for.",
+ "type": "string",
+ "required": true
+ }],
+ "tags": ["A1 Policy Management Version 1.0"]
+ }},
+ "/rics": {"get": {
+ "summary": "Query Near-RT RIC information",
+ "deprecated": false,
+ "produces": ["*/*"],
+ "operationId": "getRicsUsingGET_1",
+ "responses": {
+ "200": {
+ "schema": {
+ "type": "array",
+ "items": {"$ref": "#/definitions/ric_info_v1"}
+ },
+ "description": "OK"
+ },
+ "401": {"description": "Unauthorized"},
+ "403": {"description": "Forbidden"},
+ "404": {
+ "schema": {"type": "string"},
+ "description": "Policy type is not found"
+ }
+ },
+ "parameters": [{
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "policyType",
+ "description": "The name of the policy type",
+ "type": "string",
+ "required": false
+ }],
+ "tags": ["A1 Policy Management Version 1.0"]
+ }},
+ "/policy_status": {"get": {
+ "summary": "Returns a policy status",
+ "deprecated": false,
+ "produces": ["*/*"],
+ "operationId": "getPolicyStatusUsingGET_1",
+ "responses": {
+ "200": {
+ "schema": {"type": "object"},
+ "description": "Policy status"
+ },
+ "401": {"description": "Unauthorized"},
+ "403": {"description": "Forbidden"},
+ "404": {
+ "schema": {"type": "string"},
+ "description": "Policy is not found"
+ }
+ },
+ "parameters": [{
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "id",
+ "description": "The identity of the policy.",
+ "type": "string",
+ "required": true
+ }],
+ "tags": ["A1 Policy Management Version 1.0"]
+ }},
+ "/v2/policies/{policy_id}/status": {"get": {
+ "summary": "Returns a policy status",
+ "deprecated": false,
+ "produces": ["application/json"],
+ "operationId": "getPolicyStatusUsingGET",
+ "responses": {
+ "200": {
+ "schema": {"$ref": "#/definitions/policy_status_info_v2"},
+ "description": "Policy status"
+ },
+ "401": {"description": "Unauthorized"},
+ "403": {"description": "Forbidden"},
+ "404": {
+ "schema": {"$ref": "#/definitions/error_information"},
+ "description": "Policy is not found"
+ }
+ },
+ "parameters": [{
+ "in": "path",
+ "name": "policy_id",
+ "description": "policy_id",
+ "type": "string",
+ "required": true
+ }],
+ "tags": ["A1 Policy Management Version 2.0 (in progress)"]
+ }},
+ "/v2/rics": {"get": {
+ "summary": "Query Near-RT RIC information",
+ "deprecated": false,
+ "produces": ["application/json"],
+ "description": "The call returns all Near-RT RICs that supports a given policy type identity",
+ "operationId": "getRicsUsingGET",
+ "responses": {
+ "200": {
+ "schema": {"$ref": "#/definitions/ric_info_list_v2"},
+ "description": "OK"
+ },
+ "401": {"description": "Unauthorized"},
+ "403": {"description": "Forbidden"},
+ "404": {
+ "schema": {"$ref": "#/definitions/error_information"},
+ "description": "Policy type is not found"
+ }
+ },
+ "parameters": [{
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "policytype_id",
+ "description": "The identity of a policy type. If given, all Near-RT RICs supporteing the policy type are returned",
+ "type": "string",
+ "required": false
+ }],
+ "tags": ["A1 Policy Management Version 2.0 (in progress)"]
+ }},
+ "/v2/configuration": {
+ "get": {
+ "summary": "Returns the contents of the configuration file",
+ "deprecated": false,
+ "produces": ["application/json"],
+ "description": "Note that the file contents is not relevant if the Consul is used.",
+ "operationId": "getConfigurationUsingGET",
+ "responses": {
+ "200": {
+ "schema": {"type": "object"},
+ "description": "Configuration"
+ },
+ "401": {"description": "Unauthorized"},
+ "403": {"description": "Forbidden"},
+ "404": {
+ "schema": {"$ref": "#/definitions/error_information"},
+ "description": "File is not found or readable"
+ }
+ },
+ "tags": ["Component Configuration"]
+ },
+ "put": {
+ "summary": "Replace the current configuration file with the given configuration",
+ "deprecated": false,
+ "produces": ["*/*"],
+ "description": "Note that the file is ignored if the Consul is used.",
+ "operationId": "putConfigurationUsingPUT",
+ "responses": {
+ "200": {"description": "Configuration updated"},
+ "201": {"description": "Created"},
+ "400": {
+ "schema": {"$ref": "#/definitions/error_information"},
+ "description": "Invalid configuration provided"
+ },
+ "401": {"description": "Unauthorized"},
+ "500": {
+ "schema": {"$ref": "#/definitions/error_information"},
+ "description": "Something went wrong when replacing the configuration. Try again."
+ },
+ "403": {"description": "Forbidden"},
+ "404": {"description": "Not Found"}
+ },
+ "parameters": [{
+ "schema": {"type": "object"},
+ "in": "body",
+ "name": "configuration",
+ "description": "configuration",
+ "required": true
+ }],
+ "tags": ["Component Configuration"],
+ "consumes": ["application/json"]
+ }
+ },
+ "/policy_ids": {"get": {
+ "summary": "Query policies, only policy identities returned",
+ "deprecated": false,
+ "produces": ["*/*"],
+ "operationId": "getPolicyIdsUsingGET_1",
+ "responses": {
+ "200": {
+ "schema": {
+ "type": "array",
+ "items": {"type": "string"}
+ },
+ "description": "Policy identitiess"
+ },
+ "401": {"description": "Unauthorized"},
+ "403": {"description": "Forbidden"},
+ "404": {
+ "schema": {"type": "string"},
+ "description": "Near-RT RIC or type not found"
+ }
+ },
+ "parameters": [
+ {
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "ric",
+ "description": "The name of the Near-RT RIC to get policies for.",
+ "type": "string",
+ "required": false
+ },
+ {
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "service",
+ "description": "The name of the service to get policies for.",
+ "type": "string",
+ "required": false
+ },
+ {
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "type",
+ "description": "The name of the policy type to get policies for.",
+ "type": "string",
+ "required": false
+ }
+ ],
+ "tags": ["A1 Policy Management Version 1.0"]
+ }},
+ "/policy_schemas": {"get": {
+ "summary": "Returns policy type schema definitions",
+ "deprecated": false,
+ "produces": ["*/*"],
+ "operationId": "getPolicySchemasUsingGET",
+ "responses": {
+ "200": {
+ "schema": {
+ "type": "array",
+ "items": {"type": "object"}
+ },
+ "description": "Policy schemas"
+ },
+ "401": {"description": "Unauthorized"},
+ "403": {"description": "Forbidden"},
+ "404": {
+ "schema": {"type": "string"},
+ "description": "Near-RT RIC is not found"
+ }
+ },
+ "parameters": [{
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "ric",
+ "description": "The name of the Near-RT RIC to get the definitions for.",
+ "type": "string",
+ "required": false
+ }],
+ "tags": ["A1 Policy Management Version 1.0"]
+ }},
+ "/v2/policy-instances": {"get": {
+ "summary": "Query for A1 policy instances",
+ "deprecated": false,
+ "produces": ["application/json"],
+ "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": "getPolicyInstancesUsingGET",
+ "responses": {
+ "200": {
+ "schema": {"$ref": "#/definitions/policy_info_list_v2"},
+ "description": "Policies"
+ },
+ "401": {"description": "Unauthorized"},
+ "403": {"description": "Forbidden"},
+ "404": {
+ "schema": {"$ref": "#/definitions/error_information"},
+ "description": "Near-RT RIC, policy type or service not found"
+ }
+ },
+ "parameters": [
+ {
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "policytype_id",
+ "description": "The identity of the policy type to get policies for.",
+ "type": "string",
+ "required": false
+ },
+ {
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "ric_id",
+ "description": "The identity of the Near-RT RIC to get policies for.",
+ "type": "string",
+ "required": false
+ },
+ {
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "service_id",
+ "description": "The identity of the service to get policies for.",
+ "type": "string",
+ "required": false
+ }
+ ],
+ "tags": ["A1 Policy Management Version 2.0 (in progress)"]
+ }},
+ "/v2/services": {
+ "get": {
+ "summary": "Returns service information",
+ "deprecated": false,
+ "produces": ["application/json"],
+ "description": "Either information about a registered service with given identity or all registered services are returned.",
+ "operationId": "getServicesUsingGET_1",
+ "responses": {
+ "200": {
+ "schema": {"$ref": "#/definitions/service_list_v2"},
+ "description": "OK"
+ },
+ "401": {"description": "Unauthorized"},
+ "403": {"description": "Forbidden"},
+ "404": {
+ "schema": {"$ref": "#/definitions/error_information"},
+ "description": "Service is not found"
+ }
+ },
+ "parameters": [{
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "service_id",
+ "description": "The identity of the service",
+ "type": "string",
+ "required": false
+ }],
+ "tags": ["A1 Policy Management Version 2.0 (in progress)"]
+ },
+ "put": {
+ "summary": "Register a service",
+ "deprecated": false,
+ "produces": ["*/*"],
+ "description": "Registering a service is needed to:<ul><li>Get callbacks.<\/li><li>Activate supervision of the service. If a service is inactive, its policies will be deleted.<\/li><\/ul>",
+ "operationId": "putServiceUsingPUT_1",
+ "responses": {
+ "200": {
+ "schema": {"type": "object"},
+ "description": "Service updated"
+ },
+ "201": {
+ "schema": {"type": "object"},
+ "description": "Service created"
+ },
+ "400": {
+ "schema": {"$ref": "#/definitions/error_information"},
+ "description": "The ServiceRegistrationInfo is not accepted"
+ },
+ "401": {"description": "Unauthorized"},
+ "403": {"description": "Forbidden"},
+ "404": {"description": "Not Found"}
+ },
+ "parameters": [{
+ "schema": {"$ref": "#/definitions/service_registration_info_v2"},
+ "in": "body",
+ "name": "registrationInfo",
+ "description": "registrationInfo",
+ "required": true
+ }],
+ "tags": ["A1 Policy Management Version 2.0 (in progress)"],
+ "consumes": ["application/json"]
+ }
+ },
+ "/ric": {"get": {
+ "summary": "Returns the name of a RIC managing one Mananged Element",
+ "deprecated": false,
+ "produces": ["*/*"],
+ "operationId": "getRicUsingGET_1",
+ "responses": {
+ "200": {
+ "schema": {"type": "string"},
+ "description": "Near-RT RIC is found"
+ },
+ "401": {"description": "Unauthorized"},
+ "403": {"description": "Forbidden"},
+ "404": {
+ "schema": {"type": "string"},
+ "description": "Near-RT RIC is not found"
+ }
+ },
+ "parameters": [{
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "managedElementId",
+ "description": "The identity of the Managed Element",
+ "type": "string",
+ "required": true
+ }],
+ "tags": ["A1 Policy Management Version 1.0"]
+ }},
+ "/services/keepalive": {"put": {
+ "summary": "Heartbeat from a service",
+ "deprecated": false,
+ "produces": ["*/*"],
+ "operationId": "keepAliveServiceUsingPUT",
+ "responses": {
+ "200": {
+ "schema": {"type": "string"},
+ "description": "Service supervision timer refreshed, OK"
+ },
+ "201": {"description": "Created"},
+ "401": {"description": "Unauthorized"},
+ "403": {"description": "Forbidden"},
+ "404": {"description": "The service is not found, needs re-registration"}
+ },
+ "parameters": [{
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "name",
+ "description": "The name of the service",
+ "type": "string",
+ "required": true
+ }],
+ "tags": ["A1 Policy Management Version 1.0"],
+ "consumes": ["application/json"]
+ }},
+ "/v2/services/{service_id}/keepalive": {"put": {
+ "summary": "Heartbeat indicates that the service is running",
+ "deprecated": false,
+ "produces": ["*/*"],
+ "operationId": "keepAliveServiceUsingPUT_1",
+ "responses": {
+ "200": {
+ "schema": {"type": "object"},
+ "description": "Service supervision timer refreshed, OK"
+ },
+ "201": {"description": "Created"},
+ "401": {"description": "Unauthorized"},
+ "403": {"description": "Forbidden"},
+ "404": {
+ "schema": {"$ref": "#/definitions/error_information"},
+ "description": "The service is not found, needs re-registration"
+ }
+ },
+ "parameters": [{
+ "in": "path",
+ "name": "service_id",
+ "description": "service_id",
+ "type": "string",
+ "required": true
+ }],
+ "tags": ["A1 Policy Management Version 2.0 (in progress)"],
+ "consumes": ["application/json"]
+ }},
+ "/status": {"get": {
+ "summary": "Returns status and statistics of this service",
+ "deprecated": false,
+ "produces": ["*/*"],
+ "operationId": "getStatusUsingGET",
+ "responses": {
+ "200": {
+ "schema": {"type": "string"},
+ "description": "Service is living"
+ },
+ "401": {"description": "Unauthorized"},
+ "403": {"description": "Forbidden"},
+ "404": {"description": "Not Found"}
+ },
+ "tags": ["A1 Policy Management Version 1.0"]
+ }},
+ "/v2/rics/ric": {"get": {
+ "summary": "Returns info for one Near-RT RIC",
+ "deprecated": false,
+ "produces": ["application/json"],
+ "description": "Either a Near-RT RIC identity or a Mananged Element identity can be specified.<br>The intention with Mananged Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU).",
+ "operationId": "getRicUsingGET",
+ "responses": {
+ "200": {
+ "schema": {"$ref": "#/definitions/ric_info_v2"},
+ "description": "Near-RT RIC is found"
+ },
+ "401": {"description": "Unauthorized"},
+ "403": {"description": "Forbidden"},
+ "404": {
+ "schema": {"$ref": "#/definitions/error_information"},
+ "description": "Near-RT RIC is not found"
+ }
+ },
+ "parameters": [
+ {
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "managed_element_id",
+ "description": "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.",
+ "type": "string",
+ "required": false
+ },
+ {
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "ric_id",
+ "description": "The identity of a Near-RT RIC to get information for.",
+ "type": "string",
+ "required": false
+ }
+ ],
+ "tags": ["A1 Policy Management Version 2.0 (in progress)"]
+ }},
+ "/r-app/pms-callback": {"post": {
+ "summary": "Callback for Near-RT RIC status",
+ "deprecated": false,
+ "produces": ["application/json"],
+ "description": "The URL to this call is registerred at Service registration.",
+ "operationId": "jobStatusCallbackUsingPOST",
+ "responses": {
+ "200": {"description": "OK"},
+ "201": {"description": "Created"},
+ "401": {"description": "Unauthorized"},
+ "403": {"description": "Forbidden"},
+ "404": {"description": "Not Found"}
+ },
+ "parameters": [{
+ "schema": {"$ref": "#/definitions/service_callback_info_v2"},
+ "in": "body",
+ "name": "body",
+ "description": "body",
+ "required": true
+ }],
+ "tags": ["R-App Callbacks"],
+ "consumes": ["application/json"]
+ }},
+ "/v2/policy-types/{policytype_id}": {"get": {
+ "summary": "Returns a policy type definition",
+ "deprecated": false,
+ "produces": ["application/json"],
+ "operationId": "getPolicyTypeUsingGET",
+ "responses": {
+ "200": {
+ "schema": {"$ref": "#/definitions/policytype_v2"},
+ "description": "Policy type"
+ },
+ "401": {"description": "Unauthorized"},
+ "403": {"description": "Forbidden"},
+ "404": {
+ "schema": {"$ref": "#/definitions/error_information"},
+ "description": "Policy type is not found"
+ }
+ },
+ "parameters": [{
+ "in": "path",
+ "name": "policytype_id",
+ "description": "policytype_id",
+ "type": "string",
+ "required": true
+ }],
+ "tags": ["A1 Policy Management Version 2.0 (in progress)"]
+ }},
+ "/service": {"put": {
+ "summary": "Register a service",
+ "deprecated": false,
+ "produces": ["*/*"],
+ "operationId": "putServiceUsingPUT",
+ "responses": {
+ "200": {
+ "schema": {"type": "string"},
+ "description": "Service updated"
+ },
+ "201": {
+ "schema": {"type": "string"},
+ "description": "Service created"
+ },
+ "400": {
+ "schema": {"type": "string"},
+ "description": "The ServiceRegistrationInfo is not accepted"
+ },
+ "401": {"description": "Unauthorized"},
+ "403": {"description": "Forbidden"},
+ "404": {"description": "Not Found"}
+ },
+ "parameters": [{
+ "schema": {"$ref": "#/definitions/service_registration_info_v1"},
+ "in": "body",
+ "name": "registrationInfo",
+ "description": "registrationInfo",
+ "required": true
+ }],
+ "tags": ["A1 Policy Management Version 1.0"],
+ "consumes": ["application/json"]
+ }},
+ "/v2/policies": {
+ "get": {
+ "summary": "Query policy identities",
+ "deprecated": false,
+ "produces": ["application/json"],
+ "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": "getPolicyIdsUsingGET",
+ "responses": {
+ "200": {
+ "schema": {"$ref": "#/definitions/policy_id_list_v2"},
+ "description": "Policy identities"
+ },
+ "401": {"description": "Unauthorized"},
+ "403": {"description": "Forbidden"},
+ "404": {
+ "schema": {"$ref": "#/definitions/error_information"},
+ "description": "Near-RT RIC or type not found"
+ }
+ },
+ "parameters": [
+ {
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "policytype_id",
+ "description": "The identity of the policy type to get policies for.",
+ "type": "string",
+ "required": false
+ },
+ {
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "ric_id",
+ "description": "The identity of the Near-RT RIC to get policies for.",
+ "type": "string",
+ "required": false
+ },
+ {
+ "in": "query",
+ "allowEmptyValue": false,
+ "name": "service_id",
+ "description": "The identity of the service to get policies for.",
+ "type": "string",
+ "required": false
+ }
+ ],
+ "tags": ["A1 Policy Management Version 2.0 (in progress)"]
+ },
+ "put": {
+ "summary": "Create or update a policy",
+ "deprecated": false,
+ "produces": ["application/json"],
+ "operationId": "putPolicyUsingPUT",
+ "responses": {
+ "200": {"description": "Policy updated"},
+ "201": {"description": "Policy created"},
+ "401": {"description": "Unauthorized"},
+ "423": {
+ "schema": {"$ref": "#/definitions/error_information"},
+ "description": "Near-RT RIC is not operational"
+ },
+ "403": {"description": "Forbidden"},
+ "404": {
+ "schema": {"$ref": "#/definitions/error_information"},
+ "description": "Near-RT RIC or policy type is not found"
+ }
+ },
+ "parameters": [{
+ "schema": {"$ref": "#/definitions/policy_info_v2"},
+ "in": "body",
+ "name": "policyInfo",
+ "description": "policyInfo",
+ "required": true
+ }],
+ "tags": ["A1 Policy Management Version 2.0 (in progress)"],
+ "consumes": ["application/json"]
+ }
+ }
+ },
+ "host": "localhost:46233",
+ "definitions": {
+ "error_information": {
+ "description": "Problem as defined in https://tools.ietf.org/html/rfc7807",
+ "type": "object",
+ "title": "error_information",
+ "properties": {
+ "detail": {
+ "description": " A human-readable explanation specific to this occurrence of the problem.",
+ "type": "string",
+ "example": "Policy type not found"
+ },
+ "status": {
+ "format": "int32",
+ "description": "The HTTP status code generated by the origin server for this occurrence of the problem. ",
+ "type": "integer",
+ "example": 503
+ }
+ }
+ },
+ "void": {
+ "description": "Void/empty",
+ "type": "object",
+ "title": "void"
+ },
+ "status_info_v2": {
+ "type": "object",
+ "title": "status_info_v2",
+ "properties": {"status": {
+ "description": "status text",
+ "type": "string"
+ }}
+ },
+ "policy_info_v1": {
+ "type": "object",
+ "title": "policy_info_v1",
+ "properties": {
+ "service": {
+ "description": "the name of the service owning the policy",
+ "type": "string"
+ },
+ "json": {
+ "description": "the configuration of the policy",
+ "type": "object"
+ },
+ "id": {
+ "description": "identity of the policy",
+ "type": "string"
+ },
+ "lastModified": {
+ "description": "timestamp, last modification time",
+ "type": "string"
+ },
+ "type": {
+ "description": "name of the policy type",
+ "type": "string"
+ },
+ "ric": {
+ "description": "identity of the target Near-RT RIC",
+ "type": "string"
+ }
+ }
+ },
+ "Mono«ResponseEntity«object»»": {
+ "type": "object",
+ "title": "Mono«ResponseEntity«object»»"
+ },
+ "ric_info_v2": {
+ "description": "Information for a Near-RT RIC",
+ "type": "object",
+ "title": "ric_info_v2",
+ "properties": {
+ "ric_id": {
+ "description": "identity of the Near-RT RIC",
+ "type": "string"
+ },
+ "managed_element_ids": {
+ "description": "O1 identities for managed entities",
+ "type": "array",
+ "items": {"type": "string"}
+ },
+ "state": {
+ "description": "State for the Near-RT RIC, values: \nUNAVAILABLE: The Near-RT RIC is not avialable, information may be inconsistent \nAVAILABLE: The normal state. Policies can be configured. +\nSYNCHRONIZING: The Policy Management Service is synchronizing the view of the Near-RT RIC. Policies cannot be configured. \nCONSISTENCY_CHECK: A consistency check between the Policy Management Service and the Near-RT RIC. Policies cannot be configured.",
+ "type": "string",
+ "enum": [
+ "UNAVAILABLE",
+ "AVAILABLE",
+ "SYNCHRONIZING",
+ "CONSISTENCY_CHECK"
+ ]
+ },
+ "policytype_ids": {
+ "description": "supported policy types",
+ "type": "array",
+ "items": {"type": "string"}
+ }
+ }
+ },
+ "service_registration_info_v1": {
+ "type": "object",
+ "title": "service_registration_info_v1",
+ "properties": {
+ "keepAliveIntervalSeconds": {
+ "format": "int64",
+ "description": "keep alive interval for the service. This is a heartbeat supervision of the service, which in regular intevals must invoke a 'keepAlive' REST call. When a service does not invoke this call within the given time, it is considered unavailble. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means no timeout supervision.",
+ "type": "integer"
+ },
+ "callbackUrl": {
+ "description": "callback for notifying of RIC synchronization",
+ "type": "string"
+ },
+ "serviceName": {"type": "string"}
+ }
+ },
+ "policy_info_list_v2": {
+ "description": "List of policy information",
+ "type": "object",
+ "title": "policy_info_list_v2",
+ "properties": {"policies": {
+ "description": "List of policy information",
+ "type": "array",
+ "items": {"$ref": "#/definitions/policy_info_v2"}
+ }}
+ },
+ "service_registration_info_v2": {
+ "description": "Information for one service",
+ "type": "object",
+ "title": "service_registration_info_v2",
+ "required": ["service_id"],
+ "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": {
+ "format": "int64",
+ "description": "keep alive interval for the service. This is a heartbeat supervision of the service, which in regular intevals must invoke a 'keepAlive' REST call. When a service does not invoke this call within the given time, it is considered unavailble. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means no timeout supervision.",
+ "type": "integer"
+ }
+ }
+ },
+ "ric_info_v1": {
+ "type": "object",
+ "title": "ric_info_v1",
+ "properties": {
+ "managedElementIds": {
+ "description": "O1 identities for managed entities",
+ "type": "array",
+ "items": {"type": "string"}
+ },
+ "policyTypes": {
+ "description": "supported policy types",
+ "type": "array",
+ "items": {"type": "string"}
+ },
+ "state": {
+ "description": "state info",
+ "type": "string"
+ },
+ "ricName": {
+ "description": "identity of the Near-RT RIC",
+ "type": "string"
+ }
+ }
+ },
+ "policy_status_info_v2": {
+ "description": "Status for one A1-P Policy",
+ "type": "object",
+ "title": "policy_status_info_v2",
+ "properties": {
+ "last_modified": {
+ "description": "timestamp, last modification time",
+ "type": "string"
+ },
+ "status": {
+ "description": "the Policy status",
+ "type": "object"
+ }
+ }
+ },
+ "service_status_v1": {
+ "type": "object",
+ "title": "service_status_v1",
+ "properties": {
+ "keepAliveIntervalSeconds": {
+ "format": "int64",
+ "description": "policy keep alive timeout",
+ "type": "integer"
+ },
+ "callbackUrl": {
+ "description": "callback for notifying of RIC synchronization",
+ "type": "string"
+ },
+ "timeSinceLastActivitySeconds": {
+ "format": "int64",
+ "description": "time since last invocation by the service",
+ "type": "integer"
+ },
+ "serviceName": {
+ "description": "identity of the service",
+ "type": "string"
+ }
+ }
+ },
+ "service_status_v2": {
+ "type": "object",
+ "title": "service_status_v2",
+ "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": {
+ "format": "int64",
+ "description": "policy keep alive timeout",
+ "type": "integer"
+ },
+ "time_since_last_activity_seconds": {
+ "format": "int64",
+ "description": "time since last invocation by the service",
+ "type": "integer"
+ }
+ }
+ },
+ "policytype_v2": {
+ "description": "Policy type",
+ "type": "object",
+ "title": "policytype_v2",
+ "properties": {"policy_schema": {
+ "description": "Policy type json scema. The schema is a json object following http://json-schema.org/draft-07/schema",
+ "type": "object"
+ }}
+ },
+ "ric_info_list_v2": {
+ "description": "List of Near-RT RIC information",
+ "type": "object",
+ "title": "ric_info_list_v2",
+ "properties": {"rics": {
+ "description": "List of Near-RT RIC information",
+ "type": "array",
+ "items": {"$ref": "#/definitions/ric_info_v2"}
+ }}
+ },
+ "policytype_id_list_v2": {
+ "description": "Information about policy types",
+ "type": "object",
+ "title": "policytype_id_list_v2",
+ "properties": {"policytype_ids": {
+ "description": "Policy type identities",
+ "type": "array",
+ "items": {"type": "string"}
+ }}
+ },
+ "policy_id_list_v2": {
+ "description": "A list of policy identities",
+ "type": "object",
+ "title": "policy_id_list_v2",
+ "properties": {"policy_ids": {
+ "description": "Policy identities",
+ "type": "array",
+ "items": {"type": "string"}
+ }}
+ },
+ "policy_info_v2": {
+ "description": "Information for one A1-P Policy",
+ "type": "object",
+ "title": "policy_info_v2",
+ "required": [
+ "policy_data",
+ "policy_id",
+ "policytype_id",
+ "ric_id",
+ "service_id"
+ ],
+ "properties": {
+ "ric_id": {
+ "description": "identity of the target Near-RT RIC",
+ "type": "string"
+ },
+ "policy_id": {
+ "description": "identity of the policy",
+ "type": "string"
+ },
+ "transient": {
+ "description": "if true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.",
+ "type": "boolean"
+ },
+ "service_id": {
+ "description": "the name of the service owning the policy",
+ "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"
+ }
+ }
+ },
+ "service_list_v2": {
+ "description": "List of service information",
+ "type": "object",
+ "title": "service_list_v2",
+ "properties": {"service_list": {
+ "description": "List of service information",
+ "type": "array",
+ "items": {"$ref": "#/definitions/service_status_v2"}
+ }}
+ },
+ "service_callback_info_v2": {
+ "description": "Information transferred as in Service callbacks (callback_url)",
+ "type": "object",
+ "title": "service_callback_info_v2",
+ "required": [
+ "event_type",
+ "ric_id"
+ ],
+ "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",
+ "type": "string",
+ "enum": ["AVAILABLE"]
+ }
+ }
+ },
+ "Mono«ResponseEntity«string»»": {
+ "type": "object",
+ "title": "Mono«ResponseEntity«string»»"
+ }
+ },
+ "swagger": "2.0",
+ "info": {
+ "x-audience": "external-partner",
+ "x-api-id": "60f9a0e7-343f-43bf-9194-d8d65688d465",
+ "contact": {
+ "name": "Ericsson Software Technology",
+ "email": "nonrtric@est.tech"
+ },
+ "description": "The O-RAN Non-RT RIC Policy Management Service provides a REST API for management of A1 policices. \nIt provides support for:<ul><li>A1 Policy creation and modification.<\/li><li>Maintaining a view of supported Near-RT RIC policy types <\/li><li>Supervision of using services (R-APPs). When a service is unavailble, its policies are removed. <\/li> <li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs <\/li><\/ul>",
+ "title": "A1 Policy management service",
+ "version": "1.1.0"
+ },
+ "tags": [
+ {
+ "name": "A1 Policy Management Version 1.0",
+ "description": "Policy Controller"
+ },
+ {
+ "name": "A1 Policy Management Version 2.0 (in progress)",
+ "description": "Policy Controller"
+ },
+ {
+ "name": "Component Configuration",
+ "description": "Configuration Controller"
+ },
+ {
+ "name": "R-App Callbacks",
+ "description": "Rapp Simulator Controller"
+ }
+ ]
+} \ No newline at end of file
diff --git a/a1-policy-management/api/pms-api.yaml b/a1-policy-management/api/pms-api.yaml
new file mode 100644
index 00000000..665c9b65
--- /dev/null
+++ b/a1-policy-management/api/pms-api.yaml
@@ -0,0 +1,1617 @@
+openapi: 3.0.1
+info:
+ title: A1 Policy management service
+ description: "The O-RAN Non-RT RIC Policy Management Service provides a REST API\
+ \ for management of A1 policices. \nIt provides support for:<ul><li>A1 Policy\
+ \ creation and modification.</li><li>Maintaining a view of supported Near-RT RIC\
+ \ policy types </li><li>Supervision of using services (R-APPs). When a service\
+ \ is unavailble, its policies are removed. </li> <li>Monitoring and maintaining\
+ \ consistency of the SMO view of A1 policies and the Near-RT RICs </li></ul>"
+ contact:
+ name: Ericsson Software Technology
+ email: nonrtric@est.tech
+ version: 1.1.0
+ x-audience: external-partner
+ x-api-id: 60f9a0e7-343f-43bf-9194-d8d65688d465
+servers:
+- url: //localhost:46233/
+tags:
+- name: A1 Policy Management Version 1.0
+ description: Policy Controller
+- name: A1 Policy Management Version 2.0 (in progress)
+ description: Policy Controller
+- name: Component Configuration
+ description: Configuration Controller
+- name: R-App Callbacks
+ description: Rapp Simulator Controller
+paths:
+ /policy_types:
+ get:
+ tags:
+ - A1 Policy Management Version 1.0
+ summary: Query policy type names
+ operationId: getPolicyTypesUsingGET_1
+ parameters:
+ - name: ric
+ in: query
+ description: The name of the Near-RT RIC to get types for.
+ allowEmptyValue: false
+ schema:
+ type: string
+ responses:
+ 200:
+ description: Policy type names
+ content:
+ '*/*':
+ schema:
+ type: array
+ items:
+ type: string
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: Near-RT RIC is not found
+ content:
+ '*/*':
+ schema:
+ type: string
+ deprecated: false
+ /v2/status:
+ get:
+ tags:
+ - A1 Policy Management Version 2.0 (in progress)
+ summary: Returns status and statistics of this service
+ operationId: getStatusUsingGET_1
+ responses:
+ 200:
+ description: Service is living
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/status_info_v2'
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: Not Found
+ content: {}
+ deprecated: false
+ /v2/policy-types:
+ get:
+ tags:
+ - A1 Policy Management Version 2.0 (in progress)
+ summary: Query policy type identities
+ operationId: getPolicyTypesUsingGET
+ parameters:
+ - name: ric_id
+ in: query
+ description: The identity of the Near-RT RIC to get types for.
+ allowEmptyValue: false
+ schema:
+ type: string
+ responses:
+ 200:
+ description: Policy type IDs
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/policytype_id_list_v2'
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: Near-RT RIC is not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/error_information'
+ deprecated: false
+ /services:
+ get:
+ tags:
+ - A1 Policy Management Version 1.0
+ summary: Returns service information
+ operationId: getServicesUsingGET
+ parameters:
+ - name: name
+ in: query
+ description: The name of the service
+ allowEmptyValue: false
+ schema:
+ type: string
+ responses:
+ 200:
+ description: OK
+ content:
+ '*/*':
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/service_status_v1'
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: Service is not found
+ content:
+ '*/*':
+ schema:
+ type: string
+ deprecated: false
+ delete:
+ tags:
+ - A1 Policy Management Version 1.0
+ summary: Delete a service
+ operationId: deleteServiceUsingDELETE
+ parameters:
+ - name: name
+ in: query
+ description: The name of the service
+ required: true
+ allowEmptyValue: false
+ schema:
+ type: string
+ responses:
+ 200:
+ description: OK
+ content:
+ '*/*':
+ schema:
+ type: string
+ 204:
+ description: Service deleted
+ content:
+ '*/*':
+ schema:
+ type: string
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: Service not found
+ content:
+ '*/*':
+ schema:
+ type: string
+ deprecated: false
+ /v2/services/{service_id}:
+ delete:
+ tags:
+ - A1 Policy Management Version 2.0 (in progress)
+ summary: Unregister a service
+ operationId: deleteServiceUsingDELETE_1
+ parameters:
+ - name: service_id
+ in: path
+ description: service_id
+ required: true
+ schema:
+ type: string
+ responses:
+ 200:
+ description: Not used
+ content: {}
+ 204:
+ description: Service unregistered
+ content:
+ '*/*':
+ schema:
+ type: object
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: Service not found
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/error_information'
+ deprecated: false
+ /policy:
+ get:
+ tags:
+ - A1 Policy Management Version 1.0
+ summary: Returns a policy configuration
+ operationId: getPolicyUsingGET_1
+ parameters:
+ - name: id
+ in: query
+ description: The identity of the policy instance.
+ required: true
+ allowEmptyValue: false
+ schema:
+ type: string
+ responses:
+ 200:
+ description: Policy found
+ content:
+ '*/*':
+ schema:
+ type: object
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: Policy is not found
+ content: {}
+ deprecated: false
+ put:
+ tags:
+ - A1 Policy Management Version 1.0
+ summary: Put a policy
+ operationId: putPolicyUsingPUT_1
+ parameters:
+ - name: id
+ in: query
+ description: The identity of the policy instance.
+ required: true
+ allowEmptyValue: false
+ schema:
+ type: string
+ - name: ric
+ in: query
+ description: The name of the Near-RT RIC where the policy will be created.
+ required: true
+ allowEmptyValue: false
+ schema:
+ type: string
+ - name: service
+ in: query
+ description: The name of the service creating the policy.
+ required: true
+ allowEmptyValue: false
+ schema:
+ type: string
+ - name: transient
+ in: query
+ description: If the policy is transient or not (boolean defaulted to false).
+ A policy is transient if it will be forgotten when the service needs to
+ reconnect to the Near-RT RIC.
+ allowEmptyValue: false
+ schema:
+ type: boolean
+ default: false
+ example: false
+ - name: type
+ in: query
+ description: The name of the policy type.
+ allowEmptyValue: false
+ schema:
+ type: string
+ requestBody:
+ description: jsonBody
+ content:
+ application/json:
+ schema:
+ type: object
+ required: true
+ responses:
+ 200:
+ description: Policy updated
+ content: {}
+ 201:
+ description: Policy created
+ content: {}
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: Near-RT RIC or policy type is not found
+ content:
+ '*/*':
+ schema:
+ type: string
+ 423:
+ description: Near-RT RIC is not operational
+ content:
+ '*/*':
+ schema:
+ type: string
+ deprecated: false
+ delete:
+ tags:
+ - A1 Policy Management Version 1.0
+ summary: Delete a policy
+ operationId: deletePolicyUsingDELETE_1
+ parameters:
+ - name: id
+ in: query
+ description: The identity of the policy instance.
+ required: true
+ allowEmptyValue: false
+ schema:
+ type: string
+ responses:
+ 200:
+ description: Not used
+ content: {}
+ 204:
+ description: Policy deleted
+ content: {}
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: Policy is not found
+ content:
+ '*/*':
+ schema:
+ type: string
+ 423:
+ description: Near-RT RIC is not operational
+ content:
+ '*/*':
+ schema:
+ type: string
+ deprecated: false
+ /policies:
+ get:
+ tags:
+ - A1 Policy Management Version 1.0
+ summary: Query policies
+ operationId: getPoliciesUsingGET
+ parameters:
+ - name: ric
+ in: query
+ description: The name of the Near-RT RIC to get policies for.
+ allowEmptyValue: false
+ schema:
+ type: string
+ - name: service
+ in: query
+ description: The name of the service to get policies for.
+ allowEmptyValue: false
+ schema:
+ type: string
+ - name: type
+ in: query
+ description: The name of the policy type to get policies for.
+ allowEmptyValue: false
+ schema:
+ type: string
+ responses:
+ 200:
+ description: Policies
+ content:
+ '*/*':
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/policy_info_v1'
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: Near-RT RIC or type not found
+ content:
+ '*/*':
+ schema:
+ type: string
+ deprecated: false
+ /v2/policies/{policy_id}:
+ get:
+ tags:
+ - A1 Policy Management Version 2.0 (in progress)
+ summary: Returns a policy
+ operationId: getPolicyUsingGET
+ parameters:
+ - name: policy_id
+ in: path
+ description: policy_id
+ required: true
+ schema:
+ type: string
+ responses:
+ 200:
+ description: Policy found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/policy_info_v2'
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: Policy is not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/error_information'
+ deprecated: false
+ delete:
+ tags:
+ - A1 Policy Management Version 2.0 (in progress)
+ summary: Delete a policy
+ operationId: deletePolicyUsingDELETE
+ parameters:
+ - name: policy_id
+ in: path
+ description: policy_id
+ required: true
+ schema:
+ type: string
+ responses:
+ 200:
+ description: Not used
+ content: {}
+ 204:
+ description: Policy deleted
+ content: {}
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: Policy is not found
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/error_information'
+ 423:
+ description: Near-RT RIC is not operational
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/error_information'
+ deprecated: false
+ /policy_schema:
+ get:
+ tags:
+ - A1 Policy Management Version 1.0
+ summary: Returns one policy type schema definition
+ operationId: getPolicySchemaUsingGET
+ parameters:
+ - name: id
+ in: query
+ description: The identity of the policy type to get the definition for.
+ required: true
+ allowEmptyValue: false
+ schema:
+ type: string
+ responses:
+ 200:
+ description: Policy schema
+ content:
+ '*/*':
+ schema:
+ type: object
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: The policy type is not found
+ content:
+ '*/*':
+ schema:
+ type: string
+ deprecated: false
+ /rics:
+ get:
+ tags:
+ - A1 Policy Management Version 1.0
+ summary: Query Near-RT RIC information
+ operationId: getRicsUsingGET_1
+ parameters:
+ - name: policyType
+ in: query
+ description: The name of the policy type
+ allowEmptyValue: false
+ schema:
+ type: string
+ responses:
+ 200:
+ description: OK
+ content:
+ '*/*':
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/ric_info_v1'
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: Policy type is not found
+ content:
+ '*/*':
+ schema:
+ type: string
+ deprecated: false
+ /policy_status:
+ get:
+ tags:
+ - A1 Policy Management Version 1.0
+ summary: Returns a policy status
+ operationId: getPolicyStatusUsingGET_1
+ parameters:
+ - name: id
+ in: query
+ description: The identity of the policy.
+ required: true
+ allowEmptyValue: false
+ schema:
+ type: string
+ responses:
+ 200:
+ description: Policy status
+ content:
+ '*/*':
+ schema:
+ type: object
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: Policy is not found
+ content:
+ '*/*':
+ schema:
+ type: string
+ deprecated: false
+ /v2/policies/{policy_id}/status:
+ get:
+ tags:
+ - A1 Policy Management Version 2.0 (in progress)
+ summary: Returns a policy status
+ operationId: getPolicyStatusUsingGET
+ parameters:
+ - name: policy_id
+ in: path
+ description: policy_id
+ required: true
+ schema:
+ type: string
+ responses:
+ 200:
+ description: Policy status
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/policy_status_info_v2'
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: Policy is not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/error_information'
+ deprecated: false
+ /v2/rics:
+ get:
+ tags:
+ - A1 Policy Management Version 2.0 (in progress)
+ summary: Query Near-RT RIC information
+ description: The call returns all Near-RT RICs that supports a given policy
+ type identity
+ operationId: getRicsUsingGET
+ parameters:
+ - name: policytype_id
+ in: query
+ description: The identity of a policy type. If given, all Near-RT RICs supporteing
+ the policy type are returned
+ allowEmptyValue: false
+ schema:
+ type: string
+ responses:
+ 200:
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ric_info_list_v2'
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: Policy type is not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/error_information'
+ deprecated: false
+ /v2/configuration:
+ get:
+ tags:
+ - Component Configuration
+ summary: Returns the contents of the configuration file
+ description: Note that the file contents is not relevant if the Consul is used.
+ operationId: getConfigurationUsingGET
+ responses:
+ 200:
+ description: Configuration
+ content:
+ application/json:
+ schema:
+ type: object
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: File is not found or readable
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/error_information'
+ deprecated: false
+ put:
+ tags:
+ - Component Configuration
+ summary: Replace the current configuration file with the given configuration
+ description: Note that the file is ignored if the Consul is used.
+ operationId: putConfigurationUsingPUT
+ requestBody:
+ description: configuration
+ content:
+ application/json:
+ schema:
+ type: object
+ required: true
+ responses:
+ 200:
+ description: Configuration updated
+ content: {}
+ 201:
+ description: Created
+ content: {}
+ 400:
+ description: Invalid configuration provided
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/error_information'
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: Not Found
+ content: {}
+ 500:
+ description: Something went wrong when replacing the configuration. Try
+ again.
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/error_information'
+ deprecated: false
+ /policy_ids:
+ get:
+ tags:
+ - A1 Policy Management Version 1.0
+ summary: Query policies, only policy identities returned
+ operationId: getPolicyIdsUsingGET_1
+ parameters:
+ - name: ric
+ in: query
+ description: The name of the Near-RT RIC to get policies for.
+ allowEmptyValue: false
+ schema:
+ type: string
+ - name: service
+ in: query
+ description: The name of the service to get policies for.
+ allowEmptyValue: false
+ schema:
+ type: string
+ - name: type
+ in: query
+ description: The name of the policy type to get policies for.
+ allowEmptyValue: false
+ schema:
+ type: string
+ responses:
+ 200:
+ description: Policy identitiess
+ content:
+ '*/*':
+ schema:
+ type: array
+ items:
+ type: string
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: Near-RT RIC or type not found
+ content:
+ '*/*':
+ schema:
+ type: string
+ deprecated: false
+ /policy_schemas:
+ get:
+ tags:
+ - A1 Policy Management Version 1.0
+ summary: Returns policy type schema definitions
+ operationId: getPolicySchemasUsingGET
+ parameters:
+ - name: ric
+ in: query
+ description: The name of the Near-RT RIC to get the definitions for.
+ allowEmptyValue: false
+ schema:
+ type: string
+ responses:
+ 200:
+ description: Policy schemas
+ content:
+ '*/*':
+ schema:
+ type: array
+ items:
+ type: object
+ properties: {}
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: Near-RT RIC is not found
+ content:
+ '*/*':
+ schema:
+ type: string
+ deprecated: false
+ /v2/policy-instances:
+ get:
+ tags:
+ - A1 Policy Management Version 2.0 (in progress)
+ 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: getPolicyInstancesUsingGET
+ parameters:
+ - name: policytype_id
+ in: query
+ description: The identity of the policy type to get policies for.
+ allowEmptyValue: false
+ schema:
+ type: string
+ - name: ric_id
+ in: query
+ description: The identity of the Near-RT RIC to get policies for.
+ allowEmptyValue: false
+ schema:
+ type: string
+ - name: service_id
+ in: query
+ description: The identity of the service to get policies for.
+ allowEmptyValue: false
+ schema:
+ type: string
+ responses:
+ 200:
+ description: Policies
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/policy_info_list_v2'
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: Near-RT RIC, policy type or service not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/error_information'
+ deprecated: false
+ /v2/services:
+ get:
+ tags:
+ - A1 Policy Management Version 2.0 (in progress)
+ summary: Returns service information
+ description: Either information about a registered service with given identity
+ or all registered services are returned.
+ operationId: getServicesUsingGET_1
+ parameters:
+ - name: service_id
+ in: query
+ description: The identity of the service
+ allowEmptyValue: false
+ schema:
+ type: string
+ responses:
+ 200:
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/service_list_v2'
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: Service is not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/error_information'
+ deprecated: false
+ put:
+ tags:
+ - A1 Policy Management Version 2.0 (in progress)
+ summary: Register a service
+ description: Registering a service is needed to:<ul><li>Get callbacks.</li><li>Activate
+ supervision of the service. If a service is inactive, its policies will be
+ deleted.</li></ul>
+ operationId: putServiceUsingPUT_1
+ requestBody:
+ description: registrationInfo
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/service_registration_info_v2'
+ required: true
+ responses:
+ 200:
+ description: Service updated
+ content:
+ '*/*':
+ schema:
+ type: object
+ 201:
+ description: Service created
+ content:
+ '*/*':
+ schema:
+ type: object
+ 400:
+ description: The ServiceRegistrationInfo is not accepted
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/error_information'
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: Not Found
+ content: {}
+ deprecated: false
+ /ric:
+ get:
+ tags:
+ - A1 Policy Management Version 1.0
+ summary: Returns the name of a RIC managing one Mananged Element
+ operationId: getRicUsingGET_1
+ parameters:
+ - name: managedElementId
+ in: query
+ description: The identity of the Managed Element
+ required: true
+ allowEmptyValue: false
+ schema:
+ type: string
+ responses:
+ 200:
+ description: Near-RT RIC is found
+ content:
+ '*/*':
+ schema:
+ type: string
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: Near-RT RIC is not found
+ content:
+ '*/*':
+ schema:
+ type: string
+ deprecated: false
+ /services/keepalive:
+ put:
+ tags:
+ - A1 Policy Management Version 1.0
+ summary: Heartbeat from a service
+ operationId: keepAliveServiceUsingPUT
+ parameters:
+ - name: name
+ in: query
+ description: The name of the service
+ required: true
+ allowEmptyValue: false
+ schema:
+ type: string
+ responses:
+ 200:
+ description: Service supervision timer refreshed, OK
+ content:
+ '*/*':
+ schema:
+ type: string
+ 201:
+ description: Created
+ content: {}
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: The service is not found, needs re-registration
+ content: {}
+ deprecated: false
+ /v2/services/{service_id}/keepalive:
+ put:
+ tags:
+ - A1 Policy Management Version 2.0 (in progress)
+ summary: Heartbeat indicates that the service is running
+ operationId: keepAliveServiceUsingPUT_1
+ parameters:
+ - name: service_id
+ in: path
+ description: service_id
+ required: true
+ schema:
+ type: string
+ responses:
+ 200:
+ description: Service supervision timer refreshed, OK
+ content:
+ '*/*':
+ schema:
+ type: object
+ 201:
+ description: Created
+ content: {}
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: The service is not found, needs re-registration
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/error_information'
+ deprecated: false
+ /status:
+ get:
+ tags:
+ - A1 Policy Management Version 1.0
+ summary: Returns status and statistics of this service
+ operationId: getStatusUsingGET
+ responses:
+ 200:
+ description: Service is living
+ content:
+ '*/*':
+ schema:
+ type: string
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: Not Found
+ content: {}
+ deprecated: false
+ /v2/rics/ric:
+ get:
+ tags:
+ - A1 Policy Management Version 2.0 (in progress)
+ summary: Returns info for one Near-RT RIC
+ description: Either a Near-RT RIC identity or a Mananged Element identity can
+ be specified.<br>The intention with Mananged Element identity is the ID used
+ in O1 for accessing the traffical element (such as the ID of CU).
+ operationId: getRicUsingGET
+ 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.
+ allowEmptyValue: false
+ schema:
+ type: string
+ - name: ric_id
+ in: query
+ description: The identity of a Near-RT RIC to get information for.
+ allowEmptyValue: false
+ schema:
+ type: string
+ responses:
+ 200:
+ description: Near-RT RIC is found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ric_info_v2'
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: Near-RT RIC is not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/error_information'
+ deprecated: false
+ /r-app/pms-callback:
+ post:
+ tags:
+ - R-App Callbacks
+ summary: Callback for Near-RT RIC status
+ description: The URL to this call is registerred at Service registration.
+ operationId: jobStatusCallbackUsingPOST
+ requestBody:
+ description: body
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/service_callback_info_v2'
+ required: true
+ responses:
+ 200:
+ description: OK
+ content: {}
+ 201:
+ description: Created
+ content: {}
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: Not Found
+ content: {}
+ deprecated: false
+ /v2/policy-types/{policytype_id}:
+ get:
+ tags:
+ - A1 Policy Management Version 2.0 (in progress)
+ summary: Returns a policy type definition
+ operationId: getPolicyTypeUsingGET
+ parameters:
+ - name: policytype_id
+ in: path
+ description: policytype_id
+ required: true
+ schema:
+ type: string
+ responses:
+ 200:
+ description: Policy type
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/policytype_v2'
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: Policy type is not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/error_information'
+ deprecated: false
+ /service:
+ put:
+ tags:
+ - A1 Policy Management Version 1.0
+ summary: Register a service
+ operationId: putServiceUsingPUT
+ requestBody:
+ description: registrationInfo
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/service_registration_info_v1'
+ required: true
+ responses:
+ 200:
+ description: Service updated
+ content:
+ '*/*':
+ schema:
+ type: string
+ 201:
+ description: Service created
+ content:
+ '*/*':
+ schema:
+ type: string
+ 400:
+ description: The ServiceRegistrationInfo is not accepted
+ content:
+ '*/*':
+ schema:
+ type: string
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: Not Found
+ content: {}
+ deprecated: false
+ /v2/policies:
+ get:
+ tags:
+ - A1 Policy Management Version 2.0 (in progress)
+ 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: getPolicyIdsUsingGET
+ parameters:
+ - name: policytype_id
+ in: query
+ description: The identity of the policy type to get policies for.
+ allowEmptyValue: false
+ schema:
+ type: string
+ - name: ric_id
+ in: query
+ description: The identity of the Near-RT RIC to get policies for.
+ allowEmptyValue: false
+ schema:
+ type: string
+ - name: service_id
+ in: query
+ description: The identity of the service to get policies for.
+ allowEmptyValue: false
+ schema:
+ type: string
+ responses:
+ 200:
+ description: Policy identities
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/policy_id_list_v2'
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: Near-RT RIC or type not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/error_information'
+ deprecated: false
+ put:
+ tags:
+ - A1 Policy Management Version 2.0 (in progress)
+ summary: Create or update a policy
+ operationId: putPolicyUsingPUT
+ requestBody:
+ description: policyInfo
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/policy_info_v2'
+ required: true
+ responses:
+ 200:
+ description: Policy updated
+ content: {}
+ 201:
+ description: Policy created
+ content: {}
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: Near-RT RIC or policy type is not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/error_information'
+ 423:
+ description: Near-RT RIC is not operational
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/error_information'
+ deprecated: false
+components:
+ schemas:
+ error_information:
+ title: 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
+ status:
+ type: integer
+ description: 'The HTTP status code generated by the origin server for this
+ occurrence of the problem. '
+ format: int32
+ example: 503
+ description: Problem as defined in https://tools.ietf.org/html/rfc7807
+ void:
+ title: void
+ type: object
+ description: Void/empty
+ status_info_v2:
+ title: status_info_v2
+ type: object
+ properties:
+ status:
+ type: string
+ description: status text
+ policy_info_v1:
+ title: policy_info_v1
+ type: object
+ properties:
+ service:
+ type: string
+ description: the name of the service owning the policy
+ json:
+ type: object
+ properties: {}
+ description: the configuration of the policy
+ id:
+ type: string
+ description: identity of the policy
+ lastModified:
+ type: string
+ description: timestamp, last modification time
+ type:
+ type: string
+ description: name of the policy type
+ ric:
+ type: string
+ description: identity of the target Near-RT RIC
+ Mono«ResponseEntity«object»»:
+ title: Mono«ResponseEntity«object»»
+ type: object
+ ric_info_v2:
+ title: ric_info_v2
+ 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
+ state:
+ type: string
+ description: "State for the Near-RT RIC, values: \nUNAVAILABLE: The Near-RT\
+ \ RIC is not avialable, information may be inconsistent \nAVAILABLE: The\
+ \ normal state. Policies can be configured. +\nSYNCHRONIZING: The Policy\
+ \ Management Service is synchronizing the view of the Near-RT RIC. Policies\
+ \ cannot be configured. \nCONSISTENCY_CHECK: A consistency check between\
+ \ the Policy Management Service and the Near-RT RIC. Policies cannot be\
+ \ configured."
+ enum:
+ - UNAVAILABLE
+ - AVAILABLE
+ - SYNCHRONIZING
+ - CONSISTENCY_CHECK
+ policytype_ids:
+ type: array
+ description: supported policy types
+ items:
+ type: string
+ description: Information for a Near-RT RIC
+ service_registration_info_v1:
+ title: service_registration_info_v1
+ type: object
+ properties:
+ keepAliveIntervalSeconds:
+ type: integer
+ description: keep alive interval for the service. This is a heartbeat supervision
+ of the service, which in regular intevals must invoke a 'keepAlive' REST
+ call. When a service does not invoke this call within the given time,
+ it is considered unavailble. An unavailable service will be automatically
+ deregistered and its policies will be deleted. Value 0 means no timeout
+ supervision.
+ format: int64
+ callbackUrl:
+ type: string
+ description: callback for notifying of RIC synchronization
+ serviceName:
+ type: string
+ policy_info_list_v2:
+ title: policy_info_list_v2
+ type: object
+ properties:
+ policies:
+ type: array
+ description: List of policy information
+ items:
+ $ref: '#/components/schemas/policy_info_v2'
+ description: List of policy information
+ service_registration_info_v2:
+ title: service_registration_info_v2
+ 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 a heartbeat supervision
+ of the service, which in regular intevals must invoke a 'keepAlive' REST
+ call. When a service does not invoke this call within the given time,
+ it is considered unavailble. An unavailable service will be automatically
+ deregistered and its policies will be deleted. Value 0 means no timeout
+ supervision.
+ format: int64
+ description: Information for one service
+ ric_info_v1:
+ title: ric_info_v1
+ type: object
+ properties:
+ managedElementIds:
+ type: array
+ description: O1 identities for managed entities
+ items:
+ type: string
+ policyTypes:
+ type: array
+ description: supported policy types
+ items:
+ type: string
+ state:
+ type: string
+ description: state info
+ ricName:
+ type: string
+ description: identity of the Near-RT RIC
+ policy_status_info_v2:
+ title: policy_status_info_v2
+ type: object
+ properties:
+ last_modified:
+ type: string
+ description: timestamp, last modification time
+ status:
+ type: object
+ properties: {}
+ description: the Policy status
+ description: Status for one A1-P Policy
+ service_status_v1:
+ title: service_status_v1
+ type: object
+ properties:
+ keepAliveIntervalSeconds:
+ type: integer
+ description: policy keep alive timeout
+ format: int64
+ callbackUrl:
+ type: string
+ description: callback for notifying of RIC synchronization
+ timeSinceLastActivitySeconds:
+ type: integer
+ description: time since last invocation by the service
+ format: int64
+ serviceName:
+ type: string
+ description: identity of the service
+ service_status_v2:
+ title: service_status_v2
+ 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
+ policytype_v2:
+ title: policytype_v2
+ type: object
+ properties:
+ policy_schema:
+ type: object
+ properties: {}
+ description: Policy type json scema. The schema is a json object following
+ http://json-schema.org/draft-07/schema
+ description: Policy type
+ ric_info_list_v2:
+ title: ric_info_list_v2
+ type: object
+ properties:
+ rics:
+ type: array
+ description: List of Near-RT RIC information
+ items:
+ $ref: '#/components/schemas/ric_info_v2'
+ description: List of Near-RT RIC information
+ policytype_id_list_v2:
+ title: policytype_id_list_v2
+ type: object
+ properties:
+ policytype_ids:
+ type: array
+ description: Policy type identities
+ items:
+ type: string
+ description: Information about policy types
+ policy_id_list_v2:
+ title: policy_id_list_v2
+ type: object
+ properties:
+ policy_ids:
+ type: array
+ description: Policy identities
+ items:
+ type: string
+ description: A list of policy identities
+ policy_info_v2:
+ title: policy_info_v2
+ required:
+ - policy_data
+ - policy_id
+ - policytype_id
+ - ric_id
+ - service_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.
+ service_id:
+ type: string
+ description: the name of the service owning the policy
+ policy_data:
+ type: object
+ properties: {}
+ 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
+ service_list_v2:
+ title: service_list_v2
+ type: object
+ properties:
+ service_list:
+ type: array
+ description: List of service information
+ items:
+ $ref: '#/components/schemas/service_status_v2'
+ description: List of service information
+ service_callback_info_v2:
+ title: 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:
+ AVAILABLE: the Near-RT RIC has become available for A1 Policy management
+ enum:
+ - AVAILABLE
+ description: Information transferred as in Service callbacks (callback_url)
+ Mono«ResponseEntity«string»»:
+ title: Mono«ResponseEntity«string»»
+ type: object
diff --git a/a1-policy-management/pom.xml b/a1-policy-management/pom.xml
index be8838ba..f218b52d 100644
--- a/a1-policy-management/pom.xml
+++ b/a1-policy-management/pom.xml
@@ -49,6 +49,7 @@
<docker-maven-plugin>0.30.0</docker-maven-plugin>
<surefire-maven-plugin.version>3.0.0-M5</surefire-maven-plugin.version><!-- Version must be higher than version 2.19.1 that is defined in the parent pom for JUnit 5 tests to be run. Do not remove! -->
<jacoco-maven-plugin.version>0.8.6</jacoco-maven-plugin.version>
+ <swagger-codegen-maven-plugin.version>3.0.11</swagger-codegen-maven-plugin.version>
<exec.skip>true</exec.skip>
<ccsdk.project.version>${project.version}</ccsdk.project.version>
</properties>
@@ -322,6 +323,27 @@
</executions>
</plugin>
<plugin>
+ <groupId>io.swagger.codegen.v3</groupId>
+ <artifactId>swagger-codegen-maven-plugin</artifactId>
+ <version>${swagger-codegen-maven-plugin.version}</version>
+ <executions>
+ <execution>
+ <phase>test</phase>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ <configuration>
+ <inputSpec>${project.basedir}/api/pms-api.json</inputSpec>
+ <language>openapi-yaml</language>
+ <output>${project.basedir}/api</output>
+ <configOptions>
+ <outputFile>pms-api.yaml</outputFile>
+ </configOptions>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>${docker-maven-plugin}</version>
diff --git a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ApplicationTest.java b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ApplicationTest.java
index 30ce4c3e..2170b3c1 100644
--- a/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ApplicationTest.java
+++ b/a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ApplicationTest.java
@@ -218,7 +218,7 @@ class ApplicationTest {
ResponseEntity<String> resp = restClient("", false).getForEntity(url).block();
assertThat(resp.getStatusCode()).isEqualTo(HttpStatus.OK);
String indented = (new JSONObject(resp.getBody())).toString(4);
- String docDir = "../docs/offeredapis/swagger/";
+ String docDir = "api/";
Files.createDirectories(Paths.get(docDir));
try (PrintStream out = new PrintStream(new FileOutputStream(docDir + "pms-api.json"))) {
out.print(indented);
diff --git a/docs/offeredapis/swagger/pms-api.json b/docs/offeredapis/swagger/pms-api.json
index 55bd0802..b1bea446 100644
--- a/docs/offeredapis/swagger/pms-api.json
+++ b/docs/offeredapis/swagger/pms-api.json
@@ -1068,7 +1068,7 @@
}
}
},
- "host": "localhost:37823",
+ "host": "localhost:46233",
"definitions": {
"error_information": {
"description": "Problem as defined in https://tools.ietf.org/html/rfc7807",
diff --git a/docs/offeredapis/swagger/pms-api.yaml b/docs/offeredapis/swagger/pms-api.yaml
index fa8721ac..665c9b65 100644
--- a/docs/offeredapis/swagger/pms-api.yaml
+++ b/docs/offeredapis/swagger/pms-api.yaml
@@ -1,1423 +1,1617 @@
-basePath: /
+openapi: 3.0.1
+info:
+ title: A1 Policy management service
+ description: "The O-RAN Non-RT RIC Policy Management Service provides a REST API\
+ \ for management of A1 policices. \nIt provides support for:<ul><li>A1 Policy\
+ \ creation and modification.</li><li>Maintaining a view of supported Near-RT RIC\
+ \ policy types </li><li>Supervision of using services (R-APPs). When a service\
+ \ is unavailble, its policies are removed. </li> <li>Monitoring and maintaining\
+ \ consistency of the SMO view of A1 policies and the Near-RT RICs </li></ul>"
+ contact:
+ name: Ericsson Software Technology
+ email: nonrtric@est.tech
+ version: 1.1.0
+ x-audience: external-partner
+ x-api-id: 60f9a0e7-343f-43bf-9194-d8d65688d465
+servers:
+- url: //localhost:46233/
+tags:
+- name: A1 Policy Management Version 1.0
+ description: Policy Controller
+- name: A1 Policy Management Version 2.0 (in progress)
+ description: Policy Controller
+- name: Component Configuration
+ description: Configuration Controller
+- name: R-App Callbacks
+ description: Rapp Simulator Controller
paths:
/policy_types:
get:
+ tags:
+ - A1 Policy Management Version 1.0
summary: Query policy type names
- deprecated: false
- produces:
- - '*/*'
operationId: getPolicyTypesUsingGET_1
+ parameters:
+ - name: ric
+ in: query
+ description: The name of the Near-RT RIC to get types for.
+ allowEmptyValue: false
+ schema:
+ type: string
responses:
- '200':
- schema:
- type: array
- items:
- type: string
+ 200:
description: Policy type names
- '401':
+ content:
+ '*/*':
+ schema:
+ type: array
+ items:
+ type: string
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
- schema:
- type: string
+ content: {}
+ 404:
description: Near-RT RIC is not found
- parameters:
- - in: query
- allowEmptyValue: false
- name: ric
- description: The name of the Near-RT RIC to get types for.
- type: string
- required: false
- tags:
- - A1 Policy Management Version 1.0
+ content:
+ '*/*':
+ schema:
+ type: string
+ deprecated: false
/v2/status:
get:
+ tags:
+ - A1 Policy Management Version 2.0 (in progress)
summary: Returns status and statistics of this service
- deprecated: false
- produces:
- - application/json
operationId: getStatusUsingGET_1
responses:
- '200':
- schema:
- $ref: '#/definitions/status_info_v2'
+ 200:
description: Service is living
- '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/status_info_v2'
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
+ content: {}
+ 404:
description: Not Found
- tags:
- - A1 Policy Management Version 2.0 (in progress)
+ content: {}
+ deprecated: false
/v2/policy-types:
get:
+ tags:
+ - A1 Policy Management Version 2.0 (in progress)
summary: Query policy type identities
- deprecated: false
- produces:
- - application/json
operationId: getPolicyTypesUsingGET
+ parameters:
+ - name: ric_id
+ in: query
+ description: The identity of the Near-RT RIC to get types for.
+ allowEmptyValue: false
+ schema:
+ type: string
responses:
- '200':
- schema:
- $ref: '#/definitions/policytype_id_list_v2'
+ 200:
description: Policy type IDs
- '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/policytype_id_list_v2'
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
- schema:
- $ref: '#/definitions/error_information'
+ content: {}
+ 404:
description: Near-RT RIC is not found
- parameters:
- - in: query
- allowEmptyValue: false
- name: ric_id
- description: The identity of the Near-RT RIC to get types for.
- type: string
- required: false
- tags:
- - A1 Policy Management Version 2.0 (in progress)
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/error_information'
+ deprecated: false
/services:
get:
+ tags:
+ - A1 Policy Management Version 1.0
summary: Returns service information
- deprecated: false
- produces:
- - '*/*'
operationId: getServicesUsingGET
+ parameters:
+ - name: name
+ in: query
+ description: The name of the service
+ allowEmptyValue: false
+ schema:
+ type: string
responses:
- '200':
- schema:
- type: array
- items:
- $ref: '#/definitions/service_status_v1'
+ 200:
description: OK
- '401':
+ content:
+ '*/*':
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/service_status_v1'
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
- schema:
- type: string
+ content: {}
+ 404:
description: Service is not found
- parameters:
- - in: query
- allowEmptyValue: false
- name: name
- description: The name of the service
- type: string
- required: false
- tags:
- - A1 Policy Management Version 1.0
+ content:
+ '*/*':
+ schema:
+ type: string
+ deprecated: false
delete:
+ tags:
+ - A1 Policy Management Version 1.0
summary: Delete a service
- deprecated: false
- produces:
- - '*/*'
operationId: deleteServiceUsingDELETE
+ parameters:
+ - name: name
+ in: query
+ description: The name of the service
+ required: true
+ allowEmptyValue: false
+ schema:
+ type: string
responses:
- '200':
- schema:
- type: string
+ 200:
description: OK
- '204':
- schema:
- type: string
+ content:
+ '*/*':
+ schema:
+ type: string
+ 204:
description: Service deleted
- '401':
+ content:
+ '*/*':
+ schema:
+ type: string
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
- schema:
- type: string
+ content: {}
+ 404:
description: Service not found
- parameters:
- - in: query
- allowEmptyValue: false
- name: name
- description: The name of the service
- type: string
- required: true
- tags:
- - A1 Policy Management Version 1.0
- '/v2/services/{service_id}':
+ content:
+ '*/*':
+ schema:
+ type: string
+ deprecated: false
+ /v2/services/{service_id}:
delete:
+ tags:
+ - A1 Policy Management Version 2.0 (in progress)
summary: Unregister a service
- deprecated: false
- produces:
- - '*/*'
operationId: deleteServiceUsingDELETE_1
+ parameters:
+ - name: service_id
+ in: path
+ description: service_id
+ required: true
+ schema:
+ type: string
responses:
- '200':
+ 200:
description: Not used
- '204':
- schema:
- type: object
+ content: {}
+ 204:
description: Service unregistered
- '401':
+ content:
+ '*/*':
+ schema:
+ type: object
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
- schema:
- $ref: '#/definitions/error_information'
+ content: {}
+ 404:
description: Service not found
- parameters:
- - in: path
- name: service_id
- description: service_id
- type: string
- required: true
- tags:
- - A1 Policy Management Version 2.0 (in progress)
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/error_information'
+ deprecated: false
/policy:
get:
+ tags:
+ - A1 Policy Management Version 1.0
summary: Returns a policy configuration
- deprecated: false
- produces:
- - '*/*'
operationId: getPolicyUsingGET_1
- responses:
- '200':
- schema:
- type: object
- description: Policy found
- '401':
- description: Unauthorized
- '403':
- description: Forbidden
- '404':
- description: Policy is not found
parameters:
- - in: query
- allowEmptyValue: false
- name: id
- description: The identity of the policy instance.
+ - name: id
+ in: query
+ description: The identity of the policy instance.
+ required: true
+ allowEmptyValue: false
+ schema:
type: string
- required: true
- tags:
- - A1 Policy Management Version 1.0
- delete:
- summary: Delete a policy
- deprecated: false
- produces:
- - '*/*'
- operationId: deletePolicyUsingDELETE_1
responses:
- '200':
- description: Not used
- '204':
- description: Policy deleted
- '401':
+ 200:
+ description: Policy found
+ content:
+ '*/*':
+ schema:
+ type: object
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
- schema:
- type: string
+ content: {}
+ 404:
description: Policy is not found
- '423':
- schema:
- type: string
- description: Near-RT RIC is not operational
- parameters:
- - in: query
- allowEmptyValue: false
- name: id
- description: The identity of the policy instance.
- type: string
- required: true
- tags:
- - A1 Policy Management Version 1.0
+ content: {}
+ deprecated: false
put:
+ tags:
+ - A1 Policy Management Version 1.0
summary: Put a policy
- deprecated: false
- produces:
- - '*/*'
operationId: putPolicyUsingPUT_1
+ parameters:
+ - name: id
+ in: query
+ description: The identity of the policy instance.
+ required: true
+ allowEmptyValue: false
+ schema:
+ type: string
+ - name: ric
+ in: query
+ description: The name of the Near-RT RIC where the policy will be created.
+ required: true
+ allowEmptyValue: false
+ schema:
+ type: string
+ - name: service
+ in: query
+ description: The name of the service creating the policy.
+ required: true
+ allowEmptyValue: false
+ schema:
+ type: string
+ - name: transient
+ in: query
+ description: If the policy is transient or not (boolean defaulted to false).
+ A policy is transient if it will be forgotten when the service needs to
+ reconnect to the Near-RT RIC.
+ allowEmptyValue: false
+ schema:
+ type: boolean
+ default: false
+ example: false
+ - name: type
+ in: query
+ description: The name of the policy type.
+ allowEmptyValue: false
+ schema:
+ type: string
+ requestBody:
+ description: jsonBody
+ content:
+ application/json:
+ schema:
+ type: object
+ required: true
responses:
- '200':
+ 200:
description: Policy updated
- '201':
+ content: {}
+ 201:
description: Policy created
- '401':
+ content: {}
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
- schema:
- type: string
+ content: {}
+ 404:
description: Near-RT RIC or policy type is not found
- '423':
- schema:
- type: string
+ content:
+ '*/*':
+ schema:
+ type: string
+ 423:
description: Near-RT RIC is not operational
+ content:
+ '*/*':
+ schema:
+ type: string
+ deprecated: false
+ delete:
+ tags:
+ - A1 Policy Management Version 1.0
+ summary: Delete a policy
+ operationId: deletePolicyUsingDELETE_1
parameters:
- - in: query
- allowEmptyValue: false
- name: id
- description: The identity of the policy instance.
- type: string
- required: true
- - schema:
- type: object
- in: body
- name: jsonBody
- description: jsonBody
- required: true
- - in: query
- allowEmptyValue: false
- name: ric
- description: The name of the Near-RT RIC where the policy will be created.
- type: string
- required: true
- - in: query
- allowEmptyValue: false
- name: service
- description: The name of the service creating the policy.
- type: string
- required: true
- - default: false
- in: query
- allowEmptyValue: false
- name: transient
- x-example: false
- description: If the policy is transient or not (boolean defaulted to false). A policy is transient if it will be forgotten when the service needs to reconnect to the Near-RT RIC.
- type: boolean
- required: false
- - in: query
- allowEmptyValue: false
- name: type
- description: The name of the policy type.
+ - name: id
+ in: query
+ description: The identity of the policy instance.
+ required: true
+ allowEmptyValue: false
+ schema:
type: string
- required: false
- tags:
- - A1 Policy Management Version 1.0
- consumes:
- - application/json
+ responses:
+ 200:
+ description: Not used
+ content: {}
+ 204:
+ description: Policy deleted
+ content: {}
+ 401:
+ description: Unauthorized
+ content: {}
+ 403:
+ description: Forbidden
+ content: {}
+ 404:
+ description: Policy is not found
+ content:
+ '*/*':
+ schema:
+ type: string
+ 423:
+ description: Near-RT RIC is not operational
+ content:
+ '*/*':
+ schema:
+ type: string
+ deprecated: false
/policies:
get:
+ tags:
+ - A1 Policy Management Version 1.0
summary: Query policies
- deprecated: false
- produces:
- - '*/*'
operationId: getPoliciesUsingGET
+ parameters:
+ - name: ric
+ in: query
+ description: The name of the Near-RT RIC to get policies for.
+ allowEmptyValue: false
+ schema:
+ type: string
+ - name: service
+ in: query
+ description: The name of the service to get policies for.
+ allowEmptyValue: false
+ schema:
+ type: string
+ - name: type
+ in: query
+ description: The name of the policy type to get policies for.
+ allowEmptyValue: false
+ schema:
+ type: string
responses:
- '200':
- schema:
- type: array
- items:
- $ref: '#/definitions/policy_info_v1'
+ 200:
description: Policies
- '401':
+ content:
+ '*/*':
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/policy_info_v1'
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
- schema:
- type: string
+ content: {}
+ 404:
description: Near-RT RIC or type not found
- parameters:
- - in: query
- allowEmptyValue: false
- name: ric
- description: The name of the Near-RT RIC to get policies for.
- type: string
- required: false
- - in: query
- allowEmptyValue: false
- name: service
- description: The name of the service to get policies for.
- type: string
- required: false
- - in: query
- allowEmptyValue: false
- name: type
- description: The name of the policy type to get policies for.
- type: string
- required: false
- tags:
- - A1 Policy Management Version 1.0
- '/v2/policies/{policy_id}':
+ content:
+ '*/*':
+ schema:
+ type: string
+ deprecated: false
+ /v2/policies/{policy_id}:
get:
+ tags:
+ - A1 Policy Management Version 2.0 (in progress)
summary: Returns a policy
- deprecated: false
- produces:
- - application/json
operationId: getPolicyUsingGET
+ parameters:
+ - name: policy_id
+ in: path
+ description: policy_id
+ required: true
+ schema:
+ type: string
responses:
- '200':
- schema:
- $ref: '#/definitions/policy_info_v2'
+ 200:
description: Policy found
- '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/policy_info_v2'
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
- schema:
- $ref: '#/definitions/error_information'
+ content: {}
+ 404:
description: Policy is not found
- parameters:
- - in: path
- name: policy_id
- description: policy_id
- type: string
- required: true
- tags:
- - A1 Policy Management Version 2.0 (in progress)
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/error_information'
+ deprecated: false
delete:
+ tags:
+ - A1 Policy Management Version 2.0 (in progress)
summary: Delete a policy
- deprecated: false
- produces:
- - '*/*'
operationId: deletePolicyUsingDELETE
+ parameters:
+ - name: policy_id
+ in: path
+ description: policy_id
+ required: true
+ schema:
+ type: string
responses:
- '200':
+ 200:
description: Not used
- '204':
+ content: {}
+ 204:
description: Policy deleted
- '401':
+ content: {}
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
- schema:
- $ref: '#/definitions/error_information'
+ content: {}
+ 404:
description: Policy is not found
- '423':
- schema:
- $ref: '#/definitions/error_information'
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/error_information'
+ 423:
description: Near-RT RIC is not operational
- parameters:
- - in: path
- name: policy_id
- description: policy_id
- type: string
- required: true
- tags:
- - A1 Policy Management Version 2.0 (in progress)
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/error_information'
+ deprecated: false
/policy_schema:
get:
+ tags:
+ - A1 Policy Management Version 1.0
summary: Returns one policy type schema definition
- deprecated: false
- produces:
- - '*/*'
operationId: getPolicySchemaUsingGET
+ parameters:
+ - name: id
+ in: query
+ description: The identity of the policy type to get the definition for.
+ required: true
+ allowEmptyValue: false
+ schema:
+ type: string
responses:
- '200':
- schema:
- type: object
+ 200:
description: Policy schema
- '401':
+ content:
+ '*/*':
+ schema:
+ type: object
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
- schema:
- type: string
+ content: {}
+ 404:
description: The policy type is not found
- parameters:
- - in: query
- allowEmptyValue: false
- name: id
- description: The identity of the policy type to get the definition for.
- type: string
- required: true
- tags:
- - A1 Policy Management Version 1.0
+ content:
+ '*/*':
+ schema:
+ type: string
+ deprecated: false
/rics:
get:
+ tags:
+ - A1 Policy Management Version 1.0
summary: Query Near-RT RIC information
- deprecated: false
- produces:
- - '*/*'
operationId: getRicsUsingGET_1
+ parameters:
+ - name: policyType
+ in: query
+ description: The name of the policy type
+ allowEmptyValue: false
+ schema:
+ type: string
responses:
- '200':
- schema:
- type: array
- items:
- $ref: '#/definitions/ric_info_v1'
+ 200:
description: OK
- '401':
+ content:
+ '*/*':
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/ric_info_v1'
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
- schema:
- type: string
+ content: {}
+ 404:
description: Policy type is not found
- parameters:
- - in: query
- allowEmptyValue: false
- name: policyType
- description: The name of the policy type
- type: string
- required: false
- tags:
- - A1 Policy Management Version 1.0
+ content:
+ '*/*':
+ schema:
+ type: string
+ deprecated: false
/policy_status:
get:
+ tags:
+ - A1 Policy Management Version 1.0
summary: Returns a policy status
- deprecated: false
- produces:
- - '*/*'
operationId: getPolicyStatusUsingGET_1
+ parameters:
+ - name: id
+ in: query
+ description: The identity of the policy.
+ required: true
+ allowEmptyValue: false
+ schema:
+ type: string
responses:
- '200':
- schema:
- type: object
+ 200:
description: Policy status
- '401':
+ content:
+ '*/*':
+ schema:
+ type: object
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
- schema:
- type: string
+ content: {}
+ 404:
description: Policy is not found
- parameters:
- - in: query
- allowEmptyValue: false
- name: id
- description: The identity of the policy.
- type: string
- required: true
- tags:
- - A1 Policy Management Version 1.0
- '/v2/policies/{policy_id}/status':
+ content:
+ '*/*':
+ schema:
+ type: string
+ deprecated: false
+ /v2/policies/{policy_id}/status:
get:
+ tags:
+ - A1 Policy Management Version 2.0 (in progress)
summary: Returns a policy status
- deprecated: false
- produces:
- - application/json
operationId: getPolicyStatusUsingGET
+ parameters:
+ - name: policy_id
+ in: path
+ description: policy_id
+ required: true
+ schema:
+ type: string
responses:
- '200':
- schema:
- $ref: '#/definitions/policy_status_info_v2'
+ 200:
description: Policy status
- '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/policy_status_info_v2'
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
- schema:
- $ref: '#/definitions/error_information'
+ content: {}
+ 404:
description: Policy is not found
- parameters:
- - in: path
- name: policy_id
- description: policy_id
- type: string
- required: true
- tags:
- - A1 Policy Management Version 2.0 (in progress)
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/error_information'
+ deprecated: false
/v2/rics:
get:
+ tags:
+ - A1 Policy Management Version 2.0 (in progress)
summary: Query Near-RT RIC information
- deprecated: false
- produces:
- - application/json
- description: The call returns all Near-RT RICs that supports a given policy type identity
+ description: The call returns all Near-RT RICs that supports a given policy
+ type identity
operationId: getRicsUsingGET
+ parameters:
+ - name: policytype_id
+ in: query
+ description: The identity of a policy type. If given, all Near-RT RICs supporteing
+ the policy type are returned
+ allowEmptyValue: false
+ schema:
+ type: string
responses:
- '200':
- schema:
- $ref: '#/definitions/ric_info_list_v2'
+ 200:
description: OK
- '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ric_info_list_v2'
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
- schema:
- $ref: '#/definitions/error_information'
+ content: {}
+ 404:
description: Policy type is not found
- parameters:
- - in: query
- allowEmptyValue: false
- name: policytype_id
- description: 'The identity of a policy type. If given, all Near-RT RICs supporteing the policy type are returned'
- type: string
- required: false
- tags:
- - A1 Policy Management Version 2.0 (in progress)
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/error_information'
+ deprecated: false
/v2/configuration:
get:
+ tags:
+ - Component Configuration
summary: Returns the contents of the configuration file
- deprecated: false
- produces:
- - application/json
+ description: Note that the file contents is not relevant if the Consul is used.
operationId: getConfigurationUsingGET
responses:
- '200':
- schema:
- type: object
+ 200:
description: Configuration
- '401':
+ content:
+ application/json:
+ schema:
+ type: object
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
- schema:
- $ref: '#/definitions/error_information'
+ content: {}
+ 404:
description: File is not found or readable
- tags:
- - Component Configuration
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/error_information'
+ deprecated: false
put:
+ tags:
+ - Component Configuration
summary: Replace the current configuration file with the given configuration
- deprecated: false
- produces:
- - '*/*'
description: Note that the file is ignored if the Consul is used.
operationId: putConfigurationUsingPUT
+ requestBody:
+ description: configuration
+ content:
+ application/json:
+ schema:
+ type: object
+ required: true
responses:
- '200':
+ 200:
description: Configuration updated
- '201':
+ content: {}
+ 201:
description: Created
- '400':
- schema:
- $ref: '#/definitions/error_information'
+ content: {}
+ 400:
description: Invalid configuration provided
- '401':
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/error_information'
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
+ content: {}
+ 404:
description: Not Found
- '500':
- schema:
- $ref: '#/definitions/error_information'
- description: Something went wrong when replacing the configuration. Try again.
- parameters:
- - schema:
- type: object
- in: body
- name: configuration
- description: configuration
- required: true
- tags:
- - Component Configuration
- consumes:
- - application/json
+ content: {}
+ 500:
+ description: Something went wrong when replacing the configuration. Try
+ again.
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/error_information'
+ deprecated: false
/policy_ids:
get:
- summary: 'Query policies, only policy identities returned'
- deprecated: false
- produces:
- - '*/*'
+ tags:
+ - A1 Policy Management Version 1.0
+ summary: Query policies, only policy identities returned
operationId: getPolicyIdsUsingGET_1
+ parameters:
+ - name: ric
+ in: query
+ description: The name of the Near-RT RIC to get policies for.
+ allowEmptyValue: false
+ schema:
+ type: string
+ - name: service
+ in: query
+ description: The name of the service to get policies for.
+ allowEmptyValue: false
+ schema:
+ type: string
+ - name: type
+ in: query
+ description: The name of the policy type to get policies for.
+ allowEmptyValue: false
+ schema:
+ type: string
responses:
- '200':
- schema:
- type: array
- items:
- type: string
+ 200:
description: Policy identitiess
- '401':
+ content:
+ '*/*':
+ schema:
+ type: array
+ items:
+ type: string
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
- schema:
- type: string
+ content: {}
+ 404:
description: Near-RT RIC or type not found
- parameters:
- - in: query
- allowEmptyValue: false
- name: ric
- description: The name of the Near-RT RIC to get policies for.
- type: string
- required: false
- - in: query
- allowEmptyValue: false
- name: service
- description: The name of the service to get policies for.
- type: string
- required: false
- - in: query
- allowEmptyValue: false
- name: type
- description: The name of the policy type to get policies for.
- type: string
- required: false
- tags:
- - A1 Policy Management Version 1.0
+ content:
+ '*/*':
+ schema:
+ type: string
+ deprecated: false
/policy_schemas:
get:
+ tags:
+ - A1 Policy Management Version 1.0
summary: Returns policy type schema definitions
- deprecated: false
- produces:
- - '*/*'
operationId: getPolicySchemasUsingGET
+ parameters:
+ - name: ric
+ in: query
+ description: The name of the Near-RT RIC to get the definitions for.
+ allowEmptyValue: false
+ schema:
+ type: string
responses:
- '200':
- schema:
- type: array
- items:
- type: object
+ 200:
description: Policy schemas
- '401':
+ content:
+ '*/*':
+ schema:
+ type: array
+ items:
+ type: object
+ properties: {}
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
- schema:
- type: string
+ content: {}
+ 404:
description: Near-RT RIC is not found
- parameters:
- - in: query
- allowEmptyValue: false
- name: ric
- description: The name of the Near-RT RIC to get the definitions for.
- type: string
- required: false
- tags:
- - A1 Policy Management Version 1.0
+ content:
+ '*/*':
+ schema:
+ type: string
+ deprecated: false
/v2/policy-instances:
get:
+ tags:
+ - A1 Policy Management Version 2.0 (in progress)
summary: Query for A1 policy instances
- deprecated: false
- produces:
- - application/json
- 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.'
+ 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: getPolicyInstancesUsingGET
+ parameters:
+ - name: policytype_id
+ in: query
+ description: The identity of the policy type to get policies for.
+ allowEmptyValue: false
+ schema:
+ type: string
+ - name: ric_id
+ in: query
+ description: The identity of the Near-RT RIC to get policies for.
+ allowEmptyValue: false
+ schema:
+ type: string
+ - name: service_id
+ in: query
+ description: The identity of the service to get policies for.
+ allowEmptyValue: false
+ schema:
+ type: string
responses:
- '200':
- schema:
- $ref: '#/definitions/policy_info_list_v2'
+ 200:
description: Policies
- '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/policy_info_list_v2'
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
- schema:
- $ref: '#/definitions/error_information'
- description: 'Near-RT RIC, policy type or service not found'
- parameters:
- - in: query
- allowEmptyValue: false
- name: policytype_id
- description: The identity of the policy type to get policies for.
- type: string
- required: false
- - in: query
- allowEmptyValue: false
- name: ric_id
- description: The identity of the Near-RT RIC to get policies for.
- type: string
- required: false
- - in: query
- allowEmptyValue: false
- name: service_id
- description: The identity of the service to get policies for.
- type: string
- required: false
- tags:
- - A1 Policy Management Version 2.0 (in progress)
+ content: {}
+ 404:
+ description: Near-RT RIC, policy type or service not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/error_information'
+ deprecated: false
/v2/services:
get:
+ tags:
+ - A1 Policy Management Version 2.0 (in progress)
summary: Returns service information
- deprecated: false
- produces:
- - application/json
- description: Either information about a registered service with given identity or all registered services are returned.
+ description: Either information about a registered service with given identity
+ or all registered services are returned.
operationId: getServicesUsingGET_1
+ parameters:
+ - name: service_id
+ in: query
+ description: The identity of the service
+ allowEmptyValue: false
+ schema:
+ type: string
responses:
- '200':
- schema:
- $ref: '#/definitions/service_list_v2'
+ 200:
description: OK
- '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/service_list_v2'
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
- schema:
- $ref: '#/definitions/error_information'
+ content: {}
+ 404:
description: Service is not found
- parameters:
- - in: query
- allowEmptyValue: false
- name: service_id
- description: The identity of the service
- type: string
- required: false
- tags:
- - A1 Policy Management Version 2.0 (in progress)
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/error_information'
+ deprecated: false
put:
+ tags:
+ - A1 Policy Management Version 2.0 (in progress)
summary: Register a service
- deprecated: false
- produces:
- - '*/*'
- description: 'Registering a service is needed to:<ul><li>Get callbacks.</li><li>Activate supervision of the service. If a service is inactive, its policies will be deleted.</li></ul>'
+ description: Registering a service is needed to:<ul><li>Get callbacks.</li><li>Activate
+ supervision of the service. If a service is inactive, its policies will be
+ deleted.</li></ul>
operationId: putServiceUsingPUT_1
+ requestBody:
+ description: registrationInfo
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/service_registration_info_v2'
+ required: true
responses:
- '200':
- schema:
- type: object
+ 200:
description: Service updated
- '201':
- schema:
- type: object
+ content:
+ '*/*':
+ schema:
+ type: object
+ 201:
description: Service created
- '400':
- schema:
- $ref: '#/definitions/error_information'
+ content:
+ '*/*':
+ schema:
+ type: object
+ 400:
description: The ServiceRegistrationInfo is not accepted
- '401':
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/error_information'
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
+ content: {}
+ 404:
description: Not Found
- parameters:
- - schema:
- $ref: '#/definitions/service_registration_info_v2'
- in: body
- name: registrationInfo
- description: registrationInfo
- required: true
- tags:
- - A1 Policy Management Version 2.0 (in progress)
- consumes:
- - application/json
+ content: {}
+ deprecated: false
/ric:
get:
+ tags:
+ - A1 Policy Management Version 1.0
summary: Returns the name of a RIC managing one Mananged Element
- deprecated: false
- produces:
- - '*/*'
operationId: getRicUsingGET_1
+ parameters:
+ - name: managedElementId
+ in: query
+ description: The identity of the Managed Element
+ required: true
+ allowEmptyValue: false
+ schema:
+ type: string
responses:
- '200':
- schema:
- type: string
+ 200:
description: Near-RT RIC is found
- '401':
+ content:
+ '*/*':
+ schema:
+ type: string
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
- schema:
- type: string
+ content: {}
+ 404:
description: Near-RT RIC is not found
- parameters:
- - in: query
- allowEmptyValue: false
- name: managedElementId
- description: The identity of the Managed Element
- type: string
- required: true
- tags:
- - A1 Policy Management Version 1.0
+ content:
+ '*/*':
+ schema:
+ type: string
+ deprecated: false
/services/keepalive:
put:
+ tags:
+ - A1 Policy Management Version 1.0
summary: Heartbeat from a service
- deprecated: false
- produces:
- - '*/*'
operationId: keepAliveServiceUsingPUT
+ parameters:
+ - name: name
+ in: query
+ description: The name of the service
+ required: true
+ allowEmptyValue: false
+ schema:
+ type: string
responses:
- '200':
- schema:
- type: string
- description: 'Service supervision timer refreshed, OK'
- '201':
+ 200:
+ description: Service supervision timer refreshed, OK
+ content:
+ '*/*':
+ schema:
+ type: string
+ 201:
description: Created
- '401':
+ content: {}
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
- description: 'The service is not found, needs re-registration'
- parameters:
- - in: query
- allowEmptyValue: false
- name: name
- description: The name of the service
- type: string
- required: true
- tags:
- - A1 Policy Management Version 1.0
- consumes:
- - application/json
- '/v2/services/{service_id}/keepalive':
+ content: {}
+ 404:
+ description: The service is not found, needs re-registration
+ content: {}
+ deprecated: false
+ /v2/services/{service_id}/keepalive:
put:
+ tags:
+ - A1 Policy Management Version 2.0 (in progress)
summary: Heartbeat indicates that the service is running
- deprecated: false
- produces:
- - '*/*'
operationId: keepAliveServiceUsingPUT_1
+ parameters:
+ - name: service_id
+ in: path
+ description: service_id
+ required: true
+ schema:
+ type: string
responses:
- '200':
- schema:
- type: object
- description: 'Service supervision timer refreshed, OK'
- '201':
+ 200:
+ description: Service supervision timer refreshed, OK
+ content:
+ '*/*':
+ schema:
+ type: object
+ 201:
description: Created
- '401':
+ content: {}
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
- schema:
- $ref: '#/definitions/error_information'
- description: 'The service is not found, needs re-registration'
- parameters:
- - in: path
- name: service_id
- description: service_id
- type: string
- required: true
- tags:
- - A1 Policy Management Version 2.0 (in progress)
- consumes:
- - application/json
+ content: {}
+ 404:
+ description: The service is not found, needs re-registration
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/error_information'
+ deprecated: false
/status:
get:
+ tags:
+ - A1 Policy Management Version 1.0
summary: Returns status and statistics of this service
- deprecated: false
- produces:
- - '*/*'
operationId: getStatusUsingGET
responses:
- '200':
- schema:
- type: string
+ 200:
description: Service is living
- '401':
+ content:
+ '*/*':
+ schema:
+ type: string
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
+ content: {}
+ 404:
description: Not Found
- tags:
- - A1 Policy Management Version 1.0
+ content: {}
+ deprecated: false
/v2/rics/ric:
get:
+ tags:
+ - A1 Policy Management Version 2.0 (in progress)
summary: Returns info for one Near-RT RIC
- deprecated: false
- produces:
- - application/json
- description: Either a Near-RT RIC identity or a Mananged Element identity can be specified.<br>The intention with Mananged Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU).
+ description: Either a Near-RT RIC identity or a Mananged Element identity can
+ be specified.<br>The intention with Mananged Element identity is the ID used
+ in O1 for accessing the traffical element (such as the ID of CU).
operationId: getRicUsingGET
+ 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.
+ allowEmptyValue: false
+ schema:
+ type: string
+ - name: ric_id
+ in: query
+ description: The identity of a Near-RT RIC to get information for.
+ allowEmptyValue: false
+ schema:
+ type: string
responses:
- '200':
- schema:
- $ref: '#/definitions/ric_info_v2'
+ 200:
description: Near-RT RIC is found
- '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ric_info_v2'
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
- schema:
- $ref: '#/definitions/error_information'
+ content: {}
+ 404:
description: Near-RT RIC is not found
- parameters:
- - in: query
- allowEmptyValue: false
- name: managed_element_id
- description: 'The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.'
- type: string
- required: false
- - in: query
- allowEmptyValue: false
- name: ric_id
- description: The identity of a Near-RT RIC to get information for.
- type: string
- required: false
- tags:
- - A1 Policy Management Version 2.0 (in progress)
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/error_information'
+ deprecated: false
/r-app/pms-callback:
post:
+ tags:
+ - R-App Callbacks
summary: Callback for Near-RT RIC status
- deprecated: false
- produces:
- - application/json
description: The URL to this call is registerred at Service registration.
operationId: jobStatusCallbackUsingPOST
+ requestBody:
+ description: body
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/service_callback_info_v2'
+ required: true
responses:
- '200':
+ 200:
description: OK
- '201':
+ content: {}
+ 201:
description: Created
- '401':
+ content: {}
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
+ content: {}
+ 404:
description: Not Found
- parameters:
- - schema:
- $ref: '#/definitions/service_callback_info_v2'
- in: body
- name: body
- description: body
- required: true
- tags:
- - R-App Callbacks
- consumes:
- - application/json
- '/v2/policy-types/{policytype_id}':
+ content: {}
+ deprecated: false
+ /v2/policy-types/{policytype_id}:
get:
+ tags:
+ - A1 Policy Management Version 2.0 (in progress)
summary: Returns a policy type definition
- deprecated: false
- produces:
- - application/json
operationId: getPolicyTypeUsingGET
+ parameters:
+ - name: policytype_id
+ in: path
+ description: policytype_id
+ required: true
+ schema:
+ type: string
responses:
- '200':
- schema:
- $ref: '#/definitions/policytype_v2'
+ 200:
description: Policy type
- '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/policytype_v2'
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
- schema:
- $ref: '#/definitions/error_information'
+ content: {}
+ 404:
description: Policy type is not found
- parameters:
- - in: path
- name: policytype_id
- description: policytype_id
- type: string
- required: true
- tags:
- - A1 Policy Management Version 2.0 (in progress)
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/error_information'
+ deprecated: false
/service:
put:
+ tags:
+ - A1 Policy Management Version 1.0
summary: Register a service
- deprecated: false
- produces:
- - '*/*'
operationId: putServiceUsingPUT
+ requestBody:
+ description: registrationInfo
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/service_registration_info_v1'
+ required: true
responses:
- '200':
- schema:
- type: string
+ 200:
description: Service updated
- '201':
- schema:
- type: string
+ content:
+ '*/*':
+ schema:
+ type: string
+ 201:
description: Service created
- '400':
- schema:
- type: string
+ content:
+ '*/*':
+ schema:
+ type: string
+ 400:
description: The ServiceRegistrationInfo is not accepted
- '401':
+ content:
+ '*/*':
+ schema:
+ type: string
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
+ content: {}
+ 404:
description: Not Found
- parameters:
- - schema:
- $ref: '#/definitions/service_registration_info_v1'
- in: body
- name: registrationInfo
- description: registrationInfo
- required: true
- tags:
- - A1 Policy Management Version 1.0
- consumes:
- - application/json
+ content: {}
+ deprecated: false
/v2/policies:
get:
+ tags:
+ - A1 Policy Management Version 2.0 (in progress)
summary: Query policy identities
- deprecated: false
- produces:
- - application/json
- 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.'
+ 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: getPolicyIdsUsingGET
+ parameters:
+ - name: policytype_id
+ in: query
+ description: The identity of the policy type to get policies for.
+ allowEmptyValue: false
+ schema:
+ type: string
+ - name: ric_id
+ in: query
+ description: The identity of the Near-RT RIC to get policies for.
+ allowEmptyValue: false
+ schema:
+ type: string
+ - name: service_id
+ in: query
+ description: The identity of the service to get policies for.
+ allowEmptyValue: false
+ schema:
+ type: string
responses:
- '200':
- schema:
- $ref: '#/definitions/policy_id_list_v2'
+ 200:
description: Policy identities
- '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/policy_id_list_v2'
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
- schema:
- $ref: '#/definitions/error_information'
+ content: {}
+ 404:
description: Near-RT RIC or type not found
- parameters:
- - in: query
- allowEmptyValue: false
- name: policytype_id
- description: The identity of the policy type to get policies for.
- type: string
- required: false
- - in: query
- allowEmptyValue: false
- name: ric_id
- description: The identity of the Near-RT RIC to get policies for.
- type: string
- required: false
- - in: query
- allowEmptyValue: false
- name: service_id
- description: The identity of the service to get policies for.
- type: string
- required: false
- tags:
- - A1 Policy Management Version 2.0 (in progress)
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/error_information'
+ deprecated: false
put:
+ tags:
+ - A1 Policy Management Version 2.0 (in progress)
summary: Create or update a policy
- deprecated: false
- produces:
- - application/json
operationId: putPolicyUsingPUT
+ requestBody:
+ description: policyInfo
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/policy_info_v2'
+ required: true
responses:
- '200':
+ 200:
description: Policy updated
- '201':
+ content: {}
+ 201:
description: Policy created
- '401':
+ content: {}
+ 401:
description: Unauthorized
- '403':
+ content: {}
+ 403:
description: Forbidden
- '404':
- schema:
- $ref: '#/definitions/error_information'
+ content: {}
+ 404:
description: Near-RT RIC or policy type is not found
- '423':
- schema:
- $ref: '#/definitions/error_information'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/error_information'
+ 423:
description: Near-RT RIC is not operational
- parameters:
- - schema:
- $ref: '#/definitions/policy_info_v2'
- in: body
- name: policyInfo
- description: policyInfo
- required: true
- tags:
- - A1 Policy Management Version 2.0 (in progress)
- consumes:
- - application/json
-host: 'localhost:46377'
-definitions:
- error_information:
- description: 'Problem as defined in https://tools.ietf.org/html/rfc7807'
- type: object
- title: error_information
- properties:
- detail:
- description: ' A human-readable explanation specific to this occurrence of the problem.'
- type: string
- example: Policy type not found
- status:
- format: int32
- description: 'The HTTP status code generated by the origin server for this occurrence of the problem. '
- type: integer
- example: 503
- void:
- description: Void/empty
- type: object
- title: void
- status_info_v2:
- type: object
- title: status_info_v2
- properties:
- status:
- description: status text
- type: string
- policy_info_v1:
- type: object
- title: policy_info_v1
- properties:
- service:
- description: the name of the service owning the policy
- type: string
- json:
- description: the configuration of the policy
- type: object
- id:
- description: identity of the policy
- type: string
- lastModified:
- description: 'timestamp, last modification time'
- type: string
- type:
- description: name of the policy type
- type: string
- ric:
- description: identity of the target Near-RT RIC
- type: string
- Mono«ResponseEntity«object»»:
- type: object
- title: Mono«ResponseEntity«object»»
- ric_info_v2:
- description: Information for a Near-RT RIC
- type: object
- title: ric_info_v2
- properties:
- ric_id:
- description: identity of the Near-RT RIC
- type: string
- managed_element_ids:
- description: O1 identities for managed entities
- type: array
- items:
- type: string
- state:
- description: |-
- State for the Near-RT RIC, values:
- UNAVAILABLE: The Near-RT RIC is not avialable, information may be inconsistent
- AVAILABLE: The normal state. Policies can be configured. +
- SYNCHRONIZING: The Policy Management Service is synchronizing the view of the Near-RT RIC. Policies cannot be configured.
- CONSISTENCY_CHECK: A consistency check between the Policy Management Service and the Near-RT RIC. Policies cannot be configured.
- type: string
- enum:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/error_information'
+ deprecated: false
+components:
+ schemas:
+ error_information:
+ title: 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
+ status:
+ type: integer
+ description: 'The HTTP status code generated by the origin server for this
+ occurrence of the problem. '
+ format: int32
+ example: 503
+ description: Problem as defined in https://tools.ietf.org/html/rfc7807
+ void:
+ title: void
+ type: object
+ description: Void/empty
+ status_info_v2:
+ title: status_info_v2
+ type: object
+ properties:
+ status:
+ type: string
+ description: status text
+ policy_info_v1:
+ title: policy_info_v1
+ type: object
+ properties:
+ service:
+ type: string
+ description: the name of the service owning the policy
+ json:
+ type: object
+ properties: {}
+ description: the configuration of the policy
+ id:
+ type: string
+ description: identity of the policy
+ lastModified:
+ type: string
+ description: timestamp, last modification time
+ type:
+ type: string
+ description: name of the policy type
+ ric:
+ type: string
+ description: identity of the target Near-RT RIC
+ Mono«ResponseEntity«object»»:
+ title: Mono«ResponseEntity«object»»
+ type: object
+ ric_info_v2:
+ title: ric_info_v2
+ 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
+ state:
+ type: string
+ description: "State for the Near-RT RIC, values: \nUNAVAILABLE: The Near-RT\
+ \ RIC is not avialable, information may be inconsistent \nAVAILABLE: The\
+ \ normal state. Policies can be configured. +\nSYNCHRONIZING: The Policy\
+ \ Management Service is synchronizing the view of the Near-RT RIC. Policies\
+ \ cannot be configured. \nCONSISTENCY_CHECK: A consistency check between\
+ \ the Policy Management Service and the Near-RT RIC. Policies cannot be\
+ \ configured."
+ enum:
- UNAVAILABLE
- AVAILABLE
- SYNCHRONIZING
- CONSISTENCY_CHECK
- policytype_ids:
- description: supported policy types
- type: array
- items:
- type: string
- service_registration_info_v1:
- type: object
- title: service_registration_info_v1
- properties:
- keepAliveIntervalSeconds:
- format: int64
- description: 'keep alive interval for the service. This is a heartbeat supervision of the service, which in regular intevals must invoke a ''keepAlive'' REST call. When a service does not invoke this call within the given time, it is considered unavailble. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means no timeout supervision.'
- type: integer
- callbackUrl:
- description: callback for notifying of RIC synchronization
- type: string
- serviceName:
- type: string
- policy_info_list_v2:
- description: List of policy information
- type: object
- title: policy_info_list_v2
- properties:
- policies:
- description: List of policy information
- type: array
- items:
- $ref: '#/definitions/policy_info_v2'
- service_registration_info_v2:
- description: Information for one service
- type: object
- title: service_registration_info_v2
- required:
+ policytype_ids:
+ type: array
+ description: supported policy types
+ items:
+ type: string
+ description: Information for a Near-RT RIC
+ service_registration_info_v1:
+ title: service_registration_info_v1
+ type: object
+ properties:
+ keepAliveIntervalSeconds:
+ type: integer
+ description: keep alive interval for the service. This is a heartbeat supervision
+ of the service, which in regular intevals must invoke a 'keepAlive' REST
+ call. When a service does not invoke this call within the given time,
+ it is considered unavailble. An unavailable service will be automatically
+ deregistered and its policies will be deleted. Value 0 means no timeout
+ supervision.
+ format: int64
+ callbackUrl:
+ type: string
+ description: callback for notifying of RIC synchronization
+ serviceName:
+ type: string
+ policy_info_list_v2:
+ title: policy_info_list_v2
+ type: object
+ properties:
+ policies:
+ type: array
+ description: List of policy information
+ items:
+ $ref: '#/components/schemas/policy_info_v2'
+ description: List of policy information
+ service_registration_info_v2:
+ title: service_registration_info_v2
+ required:
- service_id
- 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:
- format: int64
- description: 'keep alive interval for the service. This is a heartbeat supervision of the service, which in regular intevals must invoke a ''keepAlive'' REST call. When a service does not invoke this call within the given time, it is considered unavailble. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means no timeout supervision.'
- type: integer
- ric_info_v1:
- type: object
- title: ric_info_v1
- properties:
- managedElementIds:
- description: O1 identities for managed entities
- type: array
- items:
- type: string
- policyTypes:
- description: supported policy types
- type: array
- items:
- type: string
- state:
- description: state info
- type: string
- ricName:
- description: identity of the Near-RT RIC
- type: string
- policy_status_info_v2:
- description: Status for one A1-P Policy
- type: object
- title: policy_status_info_v2
- properties:
- last_modified:
- description: 'timestamp, last modification time'
- type: string
- status:
- description: the Policy status
- type: object
- service_status_v1:
- type: object
- title: service_status_v1
- properties:
- keepAliveIntervalSeconds:
- format: int64
- description: policy keep alive timeout
- type: integer
- callbackUrl:
- description: callback for notifying of RIC synchronization
- type: string
- timeSinceLastActivitySeconds:
- format: int64
- description: time since last invocation by the service
- type: integer
- serviceName:
- description: identity of the service
- type: string
- service_status_v2:
- type: object
- title: service_status_v2
- 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:
- format: int64
- description: policy keep alive timeout
- type: integer
- time_since_last_activity_seconds:
- format: int64
- description: time since last invocation by the service
- type: integer
- policytype_v2:
- description: Policy type
- type: object
- title: policytype_v2
- properties:
- policy_schema:
- description: 'Policy type json scema. The schema is a json object following http://json-schema.org/draft-07/schema'
- type: object
- ric_info_list_v2:
- description: List of Near-RT RIC information
- type: object
- title: ric_info_list_v2
- properties:
- rics:
- description: List of Near-RT RIC information
- type: array
- items:
- $ref: '#/definitions/ric_info_v2'
- policytype_id_list_v2:
- description: Information about policy types
- type: object
- title: policytype_id_list_v2
- properties:
- policytype_ids:
- description: Policy type identities
- type: array
- items:
- type: string
- policy_id_list_v2:
- description: A list of policy identities
- type: object
- title: policy_id_list_v2
- properties:
- policy_ids:
- description: Policy identities
- type: array
- items:
- type: string
- policy_info_v2:
- description: Information for one A1-P Policy
- type: object
- title: policy_info_v2
- required:
+ 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 a heartbeat supervision
+ of the service, which in regular intevals must invoke a 'keepAlive' REST
+ call. When a service does not invoke this call within the given time,
+ it is considered unavailble. An unavailable service will be automatically
+ deregistered and its policies will be deleted. Value 0 means no timeout
+ supervision.
+ format: int64
+ description: Information for one service
+ ric_info_v1:
+ title: ric_info_v1
+ type: object
+ properties:
+ managedElementIds:
+ type: array
+ description: O1 identities for managed entities
+ items:
+ type: string
+ policyTypes:
+ type: array
+ description: supported policy types
+ items:
+ type: string
+ state:
+ type: string
+ description: state info
+ ricName:
+ type: string
+ description: identity of the Near-RT RIC
+ policy_status_info_v2:
+ title: policy_status_info_v2
+ type: object
+ properties:
+ last_modified:
+ type: string
+ description: timestamp, last modification time
+ status:
+ type: object
+ properties: {}
+ description: the Policy status
+ description: Status for one A1-P Policy
+ service_status_v1:
+ title: service_status_v1
+ type: object
+ properties:
+ keepAliveIntervalSeconds:
+ type: integer
+ description: policy keep alive timeout
+ format: int64
+ callbackUrl:
+ type: string
+ description: callback for notifying of RIC synchronization
+ timeSinceLastActivitySeconds:
+ type: integer
+ description: time since last invocation by the service
+ format: int64
+ serviceName:
+ type: string
+ description: identity of the service
+ service_status_v2:
+ title: service_status_v2
+ 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
+ policytype_v2:
+ title: policytype_v2
+ type: object
+ properties:
+ policy_schema:
+ type: object
+ properties: {}
+ description: Policy type json scema. The schema is a json object following
+ http://json-schema.org/draft-07/schema
+ description: Policy type
+ ric_info_list_v2:
+ title: ric_info_list_v2
+ type: object
+ properties:
+ rics:
+ type: array
+ description: List of Near-RT RIC information
+ items:
+ $ref: '#/components/schemas/ric_info_v2'
+ description: List of Near-RT RIC information
+ policytype_id_list_v2:
+ title: policytype_id_list_v2
+ type: object
+ properties:
+ policytype_ids:
+ type: array
+ description: Policy type identities
+ items:
+ type: string
+ description: Information about policy types
+ policy_id_list_v2:
+ title: policy_id_list_v2
+ type: object
+ properties:
+ policy_ids:
+ type: array
+ description: Policy identities
+ items:
+ type: string
+ description: A list of policy identities
+ policy_info_v2:
+ title: policy_info_v2
+ required:
- policy_data
- policy_id
- policytype_id
- ric_id
- service_id
- properties:
- ric_id:
- description: identity of the target Near-RT RIC
- type: string
- policy_id:
- description: identity of the policy
- type: string
- transient:
- description: 'if true, the policy is deleted at RIC restart. If false, its value is maintained by this service until explicitly deleted. Default false.'
- type: boolean
- service_id:
- description: the name of the service owning the policy
- 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
- service_list_v2:
- description: List of service information
- type: object
- title: service_list_v2
- properties:
- service_list:
- description: List of service information
- type: array
- items:
- $ref: '#/definitions/service_status_v2'
- service_callback_info_v2:
- description: Information transferred as in Service callbacks (callback_url)
- type: object
- title: service_callback_info_v2
- required:
+ 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.
+ service_id:
+ type: string
+ description: the name of the service owning the policy
+ policy_data:
+ type: object
+ properties: {}
+ 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
+ service_list_v2:
+ title: service_list_v2
+ type: object
+ properties:
+ service_list:
+ type: array
+ description: List of service information
+ items:
+ $ref: '#/components/schemas/service_status_v2'
+ description: List of service information
+ service_callback_info_v2:
+ title: service_callback_info_v2
+ required:
- event_type
- ric_id
- properties:
- ric_id:
- description: identity of a Near-RT RIC
- type: string
- event_type:
- description: |-
- values:
- AVAILABLE: the Near-RT RIC has become available for A1 Policy management
- type: string
- enum:
+ type: object
+ properties:
+ ric_id:
+ type: string
+ description: identity of a Near-RT RIC
+ event_type:
+ type: string
+ description: |-
+ values:
+ AVAILABLE: the Near-RT RIC has become available for A1 Policy management
+ enum:
- AVAILABLE
- Mono«ResponseEntity«string»»:
- type: object
- title: Mono«ResponseEntity«string»»
-swagger: '2.0'
-info:
- x-audience: external-partner
- x-api-id: 60f9a0e7-343f-43bf-9194-d8d65688d465
- contact:
- name: Ericsson Software Technology
- email: nonrtric@est.tech
- description: |-
- The O-RAN Non-RT RIC Policy Management Service provides a REST API for management of A1 policices.
- It provides support for:<ul><li>A1 Policy creation and modification.</li><li>Maintaining a view of supported Near-RT RIC policy types </li><li>Supervision of using services (R-APPs). When a service is unavailble, its policies are removed. </li> <li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs </li></ul>
- title: A1 Policy management service
- version: 1.1.0
-tags:
- - name: A1 Policy Management Version 1.0
- description: Policy Controller
- - name: A1 Policy Management Version 2.0 (in progress)
- description: Policy Controller
- - name: Component Configuration
- description: Configuration Controller
- - name: R-App Callbacks
- description: Rapp Simulator Controller
-
+ description: Information transferred as in Service callbacks (callback_url)
+ Mono«ResponseEntity«string»»:
+ title: Mono«ResponseEntity«string»»
+ type: object
diff --git a/pom.xml b/pom.xml
index fe0f143a..7e732e0b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -42,6 +42,7 @@
<properties>
<sonar-maven-plugin.version>3.7.0.1746</sonar-maven-plugin.version>
+ <maven-resources-plugin.version>3.2.0</maven-resources-plugin.version>
</properties>
<build>
@@ -52,6 +53,30 @@
<artifactId>sonar-maven-plugin</artifactId>
<version>${sonar-maven-plugin.version}</version>
</plugin>
+ <plugin>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>${maven-resources-plugin.version}</version>
+ <executions>
+ <execution>
+ <id>copy-resource-one</id>
+ <phase>install</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${basedir}/docs/offeredapis/swagger</outputDirectory>
+ <resources>
+ <resource>
+ <directory>${basedir}/a1-policy-management/api</directory>
+ <includes>
+ <include>pms-api.*</include>
+ </includes>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
</project>