From 9f1d9499e4e1ca40fddffb195353148cc3271b9c Mon Sep 17 00:00:00 2001 From: PatrikBuhr Date: Mon, 17 Apr 2023 13:00:15 +0200 Subject: A1 PMS support for fine grained access control -A1 London Documentation updates. Issue-ID: CCSDK-3889 Signed-off-by: PatrikBuhr Change-Id: Iaa73d0128a4c466ed2b3d1803af66368d3c37fa6 --- .../openapitoolgen/offeredapis/pms-api/index.html | 407 +++++++++++++++++++++ docs/offeredapis/swagger/pms-api.json | 6 +- docs/offeredapis/swagger/pms-api.yaml | 64 ++++ 3 files changed, 474 insertions(+), 3 deletions(-) (limited to 'docs/offeredapis') diff --git a/docs/offeredapis/openapitoolgen/offeredapis/pms-api/index.html b/docs/offeredapis/openapitoolgen/offeredapis/pms-api/index.html index c8f97a81..8b29a313 100644 --- a/docs/offeredapis/openapitoolgen/offeredapis/pms-api/index.html +++ b/docs/offeredapis/openapitoolgen/offeredapis/pms-api/index.html @@ -846,6 +846,17 @@ ul.nav-tabs { +
+ + + + + + + +

Responses

+

+

+ + + + + + +
+
+
+ +
+ +
+
+ + +
+

Callbacks

diff --git a/docs/offeredapis/swagger/pms-api.json b/docs/offeredapis/swagger/pms-api.json index 9efa7b75..33fa5e18 100644 --- a/docs/offeredapis/swagger/pms-api.json +++ b/docs/offeredapis/swagger/pms-api.json @@ -936,7 +936,7 @@ "description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/void"}}} }}, - "tags": ["Callbacks"] + "tags": ["Service callbacks"] }}, "/a1-policy/v2/services/{service_id}": {"delete": { "summary": "Unregister a service", @@ -999,9 +999,9 @@ "name": "Copyright (C) 2020-2023 Nordix Foundation. Licensed under the Apache License.", "url": "http://www.apache.org/licenses/LICENSE-2.0" }, - "description": "

General<\/h2>

The O-RAN Non-RT RIC Policy Management Service provides a REST API for management of A1 policies.
The main tasks of the service are:<\/p>

  • A1 Policy creation, modification and deletion.<\/li>
  • Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs<\/li>
  • Maintaining a view of supported Near-RT RIC policy types<\/li>
  • Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.<\/li><\/ul>

    APIs provided by the service<\/h2>

    A1 Policy Management<\/h3>

    This is an API for management of A1 Policies.<\/p>

    • A1 Policy retrieval, creation, modification and deletion.<\/li>
    • Retrieval of supported A1 Policy types for a Near-RT RIC<\/li>
    • Retrieval of status for existing A1 policies<\/li><\/ul>

      Management of configuration<\/h3>

      API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.<\/p>

      Callbacks<\/h3>

      These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.<\/p>

      NearRT-RIC Repository<\/h3>

      This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.<\/p>

      Health Check<\/h3>

      API used for supervision of the PMS component.<\/p>

      Service Registry and Supervision<\/h3>

      API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.<\/p>

      Spring Boot Actuator<\/h3>

      Provides generic functions used to monitor and manage the Spring web application.<\/p>", + "description": "

      General<\/h2>

      The O-RAN Non-RT RIC Policy Management Service provides a REST API for management of A1 policies.
      The main tasks of the service are:<\/p>

      • A1 Policy creation, modification and deletion.<\/li>
      • Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs<\/li>
      • Maintaining a view of supported Near-RT RIC policy types<\/li>
      • Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.<\/li><\/ul>

        APIs provided or defined by the service<\/h2>

        A1 Policy Management<\/h3>

        This is an API for management of A1 Policies.<\/p>

        • A1 Policy retrieval, creation, modification and deletion.<\/li>
        • Retrieval of supported A1 Policy types for a Near-RT RIC<\/li>
        • Retrieval of status for existing A1 policies<\/li><\/ul>

          Management of configuration<\/h3>

          API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.<\/p>

          Service callbacks<\/h3>

          These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.<\/p>

          NearRT-RIC Repository<\/h3>

          This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.<\/p>

          Health Check<\/h3>

          API used for supervision of the PMS component.<\/p>

          Service Registry and Supervision<\/h3>

          API used for registering services that uses PMS. Each A1 policy is optionally owned by a service. PMS can supervise each registered service by a heart-beat supervision and will automatically remove policies for unavailable services. Note that a service does not need to be registered in order to create A1 Policies. This is a feature that is optional to use.<\/p>

          Authorization API<\/h3>

          API used for access control of A1 Policy access. If configured, an external authorization provider is requested to grant access to the A1 Policy type.<\/p>

          Spring Boot Actuator<\/h3>

          Provides generic functions used to monitor and manage the Spring web application.<\/p>", "title": "A1 Policy Management Service", - "version": "1.1.0" + "version": "1.2.0" }, "tags": [ { diff --git a/docs/offeredapis/swagger/pms-api.yaml b/docs/offeredapis/swagger/pms-api.yaml index 0cd28d07..a905c40e 100644 --- a/docs/offeredapis/swagger/pms-api.yaml +++ b/docs/offeredapis/swagger/pms-api.yaml @@ -31,6 +31,10 @@ info: servers: - url: / tags: +- description: "API used for authorization of information A1 policy access (this is\ + \ provided by an authorization producer such as OPA).\nNote that this API is called\ + \ by PMS, it is not provided.\n" + name: Authorization API - description: Monitor and interact externalDocs: description: Spring Boot Actuator Web API Documentation @@ -93,6 +97,26 @@ paths: summary: Query for A1 policy instances tags: - A1 Policy Management + /example-authz-check: + post: + description: The authorization function decides if access is granted. + operationId: performAccessControl + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/policy_authorization' + required: true + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/authorization_result' + description: OK + summary: Request for access authorization. + tags: + - Authorization API /actuator/threaddump: get: operationId: threaddump @@ -957,6 +981,17 @@ components: description: status text type: string type: object + authorization_result: + description: Result of authorization + example: + result: true + properties: + result: + description: "If true, the access is granted" + type: boolean + required: + - result + type: object ric_info_v2: description: Information for a Near-RT RIC example: @@ -1113,6 +1148,35 @@ components: http://json-schema.org/draft-07/schema type: object type: object + input: + description: input + properties: + access_type: + description: Access type + enum: + - READ + - WRITE + - DELETE + type: string + auth_token: + description: Authorization token + type: string + policy_type_id: + description: Policy type identifier + type: string + required: + - access_type + - auth_token + - policy_type_id + type: object + policy_authorization: + description: Authorization request for A1 policy requests + properties: + input: + $ref: '#/components/schemas/input' + required: + - input + type: object policytype_id_list_v2: description: Information about policy types example: -- cgit 1.2.3-korg