diff options
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | a1-policy-management/api/README.md | 0 | ||||
-rw-r--r-- | a1-policy-management/api/pms-api.json | 1449 | ||||
-rw-r--r-- | a1-policy-management/api/pms-api.yaml | 1617 | ||||
-rw-r--r-- | a1-policy-management/pom.xml | 22 | ||||
-rw-r--r-- | a1-policy-management/src/test/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ApplicationTest.java | 2 | ||||
-rw-r--r-- | docs/offeredapis/swagger/pms-api.json | 2 | ||||
-rw-r--r-- | docs/offeredapis/swagger/pms-api.yaml | 2408 | ||||
-rw-r--r-- | pom.xml | 25 |
9 files changed, 4418 insertions, 1109 deletions
@@ -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 @@ -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> |