Updating API doc files
[ccsdk/oran.git] / docs / offeredapis / swagger / pms-api.json
index 33fa5e1..d6d212f 100644 (file)
 {
-    "components": {"schemas": {
-        "error_information": {
-            "description": "Problem as defined in https://tools.ietf.org/html/rfc7807",
-            "type": "object",
-            "properties": {
-                "detail": {
-                    "description": " A human-readable explanation specific to this occurrence of the problem.",
-                    "type": "string",
-                    "example": "Policy type not found"
+  "openapi" : "3.0.3",
+  "info" : {
+    "title" : "A1 Policy Management Service",
+    "description" : "<h2>General</h2><p>The O-RAN Non-RT RIC Policy Management Service provides a REST API for management of A1 policies. <br/>The main tasks of the service are:</p><ul><li>A1 Policy creation, modification and deletion.</li><li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs</li><li>Maintaining a view of supported Near-RT RIC policy types</li><li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.</li></ul><h2>APIs provided or defined by the service</h2><h3>A1 Policy Management</h3><p>This is an API for management of A1 Policies.</p><ul><li>A1 Policy retrieval, creation, modification and deletion.</li><li>Retrieval of supported A1 Policy types for a Near-RT RIC</li><li>Retrieval of status for existing A1 policies</li></ul><h3>Management of configuration</h3><p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.</p><h3>Service callbacks</h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.</p><h3>NearRT-RIC Repository</h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.</p><h3>Health Check</h3><p>API used for supervision of the PMS component.</p><h3>Service Registry and Supervision</h3><p>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><h3>Authorization API</h3><p>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><h3>Spring Boot Actuator</h3><p>Provides generic functions  used to monitor and manage the Spring web application.</p>",
+    "license" : {
+      "name" : "Copyright (C) 2020-2023 Nordix Foundation. Licensed under the Apache License, and Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved.",
+      "url" : "http://www.apache.org/licenses/LICENSE-2.0"
+    },
+    "version" : "1.2.0"
+  },
+  "servers" : [ {
+    "url" : "/"
+  } ],
+  "tags" : [ {
+    "name" : "Authorization API",
+    "description" : "API used for authorization of information A1 policy access (this is provided by an authorization producer such as OPA). <br> Note that this API is called by PMS, it is not provided."
+  }, {
+    "name" : "Actuator",
+    "description" : "Monitor and interact",
+    "externalDocs" : {
+      "description" : "Spring Boot Actuator Web API Documentation",
+      "url" : "https://docs.spring.io/spring-boot/docs/current/actuator-api/html/"
+    }
+  } ],
+  "paths" : {
+    "/a1-policy/v2/policy-instances" : {
+      "get" : {
+        "tags" : [ "A1 Policy Management" ],
+        "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" : "getPolicyInstances",
+        "parameters" : [ {
+          "name" : "policytype_id",
+          "in" : "query",
+          "description" : "Select policies with a given type identity.",
+          "required" : false,
+          "style" : "form",
+          "explode" : true,
+          "schema" : {
+            "type" : "string"
+          }
+        }, {
+          "name" : "ric_id",
+          "in" : "query",
+          "description" : "Select policies for a given Near-RT RIC identity.",
+          "required" : false,
+          "style" : "form",
+          "explode" : true,
+          "schema" : {
+            "type" : "string"
+          }
+        }, {
+          "name" : "service_id",
+          "in" : "query",
+          "description" : "Select policies owned by a given service.",
+          "required" : false,
+          "style" : "form",
+          "explode" : true,
+          "schema" : {
+            "type" : "string"
+          }
+        }, {
+          "name" : "type_name",
+          "in" : "query",
+          "description" : "Select policies of a given type name (type identity has the format <typename_version>)",
+          "required" : false,
+          "style" : "form",
+          "explode" : true,
+          "schema" : {
+            "type" : "string"
+          }
+        } ],
+        "responses" : {
+          "200" : {
+            "description" : "Policies",
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/policy_info_list"
                 },
-                "status": {
-                    "format": "int32",
-                    "description": "The HTTP status code generated by the origin server for this occurrence of the problem. ",
-                    "type": "integer",
-                    "example": 404
+                "examples" : {
+                  "policy_info_list" : {
+                    "$ref" : "#/components/examples/policy_info_list"
+                  }
                 }
+              }
             }
-        },
-        "void": {
-            "description": "Void/empty",
-            "type": "object"
-        },
-        "status_info_v2": {
-            "type": "object",
-            "properties": {"status": {
-                "description": "status text",
-                "type": "string"
-            }}
-        },
-        "authorization_result": {
-            "description": "Result of authorization",
-            "type": "object",
-            "required": ["result"],
-            "properties": {"result": {
-                "description": "If true, the access is granted",
-                "type": "boolean"
-            }}
-        },
-        "ric_info_v2": {
-            "description": "Information for a Near-RT RIC",
-            "type": "object",
-            "properties": {
-                "ric_id": {
-                    "description": "identity of the Near-RT RIC",
-                    "type": "string"
-                },
-                "managed_element_ids": {
-                    "description": "O1 identities for managed entities",
-                    "type": "array",
-                    "items": {
-                        "description": "O1 identities for managed entities",
-                        "type": "string"
-                    }
-                },
-                "state": {
-                    "description": "Represents the states for a Near-RT RIC",
-                    "type": "string",
-                    "enum": [
-                        "UNAVAILABLE",
-                        "AVAILABLE",
-                        "SYNCHRONIZING",
-                        "CONSISTENCY_CHECK"
-                    ]
-                },
-                "policytype_ids": {
-                    "description": "supported policy types",
-                    "type": "array",
-                    "items": {
-                        "description": "supported policy types",
-                        "type": "string"
-                    }
+          },
+          "404" : {
+            "description" : "Near-RT RIC, policy type or service not found",
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/error_information"
                 }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/example-authz-check" : {
+      "post" : {
+        "tags" : [ "Authorization API" ],
+        "summary" : "Request for access authorization.",
+        "description" : "The authorization function decides if access is granted.",
+        "operationId" : "performAccessControl",
+        "requestBody" : {
+          "content" : {
+            "application/json" : {
+              "schema" : {
+                "$ref" : "#/components/schemas/policy_authorization"
+              }
             }
+          },
+          "required" : true
         },
-        "service_registration_info_v2": {
-            "description": "Information for one service",
-            "type": "object",
-            "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 used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled.",
-                    "type": "integer"
+        "responses" : {
+          "200" : {
+            "description" : "OK",
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/authorization_result"
                 }
+              }
             }
-        },
-        "policy_info_list_v2": {
-            "description": "List of policy information",
-            "type": "object",
-            "properties": {"policies": {
-                "description": "List of policy information",
-                "type": "array",
-                "items": {"$ref": "#/components/schemas/policy_info_v2"}
-            }}
-        },
-        "policy_status_info_v2": {
-            "description": "Status for one A1-P Policy",
-            "type": "object",
-            "properties": {
-                "last_modified": {
-                    "description": "timestamp, last modification time",
-                    "type": "string"
-                },
-                "status": {
-                    "description": "the Policy status",
-                    "type": "object"
+          }
+        }
+      }
+    },
+    "/actuator/threaddump" : {
+      "get" : {
+        "tags" : [ "Actuator" ],
+        "summary" : "Actuator web endpoint 'threaddump'",
+        "operationId" : "threaddump",
+        "responses" : {
+          "200" : {
+            "description" : "OK",
+            "content" : {
+              "text/plain;charset=UTF-8" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              },
+              "application/vnd.spring-boot.actuator.v3+json" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              },
+              "application/json" : {
+                "schema" : {
+                  "type" : "object"
                 }
+              },
+              "application/vnd.spring-boot.actuator.v2+json" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              }
             }
-        },
-        "service_status_v2": {
-            "description": "List of service information",
-            "type": "object",
-            "properties": {
-                "callback_url": {
-                    "description": "callback for notifying of RIC synchronization",
-                    "type": "string"
-                },
-                "service_id": {
-                    "description": "identity of the service",
-                    "type": "string"
+          }
+        }
+      }
+    },
+    "/a1-policy/v2/status" : {
+      "get" : {
+        "tags" : [ "Health Check" ],
+        "summary" : "Returns status and statistics of this service",
+        "operationId" : "getStatus",
+        "responses" : {
+          "200" : {
+            "description" : "Service is living",
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/status_info"
                 },
-                "keep_alive_interval_seconds": {
-                    "format": "int64",
-                    "description": "policy keep alive timeout",
-                    "type": "integer"
+                "examples" : {
+                  "status_info" : {
+                    "$ref" : "#/components/examples/status_info"
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/actuator/loggers" : {
+      "get" : {
+        "tags" : [ "Actuator" ],
+        "summary" : "Actuator web endpoint 'loggers'",
+        "operationId" : "loggers",
+        "responses" : {
+          "200" : {
+            "description" : "OK",
+            "content" : {
+              "application/vnd.spring-boot.actuator.v3+json" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              },
+              "application/json" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              },
+              "application/vnd.spring-boot.actuator.v2+json" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/actuator/health/**" : {
+      "get" : {
+        "tags" : [ "Actuator" ],
+        "summary" : "Actuator web endpoint 'health-path'",
+        "operationId" : "health-path",
+        "responses" : {
+          "200" : {
+            "description" : "OK",
+            "content" : {
+              "application/vnd.spring-boot.actuator.v3+json" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              },
+              "application/json" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              },
+              "application/vnd.spring-boot.actuator.v2+json" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/a1-policy/v2/rics/ric" : {
+      "get" : {
+        "tags" : [ "NearRT-RIC Repository" ],
+        "summary" : "Returns info for one Near-RT RIC",
+        "description" : "Either a Near-RT RIC identity or a Managed Element identity can be specified.<br>The intention with Managed Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU).",
+        "operationId" : "getRic",
+        "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.",
+          "required" : false,
+          "style" : "form",
+          "explode" : true,
+          "schema" : {
+            "type" : "string"
+          }
+        }, {
+          "name" : "ric_id",
+          "in" : "query",
+          "description" : "The identity of a Near-RT RIC to get information for.",
+          "required" : false,
+          "style" : "form",
+          "explode" : true,
+          "schema" : {
+            "type" : "string"
+          }
+        } ],
+        "responses" : {
+          "200" : {
+            "description" : "Near-RT RIC is found",
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ric_info"
                 },
-                "time_since_last_activity_seconds": {
-                    "format": "int64",
-                    "description": "time since last invocation by the service",
-                    "type": "integer"
+                "examples" : {
+                  "ric_info" : {
+                    "$ref" : "#/components/examples/ric_info"
+                  }
                 }
+              }
             }
-        },
-        "ric_info_list_v2": {
-            "description": "List of Near-RT RIC information",
-            "type": "object",
-            "properties": {"rics": {
-                "description": "List of Near-RT RIC information",
-                "type": "array",
-                "items": {"$ref": "#/components/schemas/ric_info_v2"}
-            }}
-        },
-        "policytype_v2": {
-            "description": "Policy type",
-            "type": "object",
-            "properties": {"policy_schema": {
-                "description": "Policy type json schema. The schema is a json object following http://json-schema.org/draft-07/schema",
-                "type": "object"
-            }}
-        },
-        "input": {
-            "description": "input",
-            "type": "object",
-            "required": [
-                "access_type",
-                "auth_token",
-                "policy_type_id"
-            ],
-            "properties": {
-                "access_type": {
-                    "description": "Access type",
-                    "type": "string",
-                    "enum": [
-                        "READ",
-                        "WRITE",
-                        "DELETE"
-                    ]
+          },
+          "404" : {
+            "description" : "Near-RT RIC is not found",
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/error_information"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/actuator/shutdown" : {
+      "post" : {
+        "tags" : [ "Actuator" ],
+        "summary" : "Actuator web endpoint 'shutdown'",
+        "operationId" : "shutdown",
+        "responses" : {
+          "200" : {
+            "description" : "OK",
+            "content" : {
+              "application/vnd.spring-boot.actuator.v3+json" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              },
+              "application/json" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              },
+              "application/vnd.spring-boot.actuator.v2+json" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/a1-policy/v2/policy-types" : {
+      "get" : {
+        "tags" : [ "A1 Policy Management" ],
+        "summary" : "Query policy type identities",
+        "operationId" : "getPolicyTypes",
+        "parameters" : [ {
+          "name" : "ric_id",
+          "in" : "query",
+          "description" : "Select types for the given Near-RT RIC identity.",
+          "required" : false,
+          "style" : "form",
+          "explode" : true,
+          "schema" : {
+            "type" : "string"
+          }
+        }, {
+          "name" : "type_name",
+          "in" : "query",
+          "description" : "Select types with the given type name (type identity has the format <typename_version>)",
+          "required" : false,
+          "style" : "form",
+          "explode" : true,
+          "schema" : {
+            "type" : "string"
+          }
+        }, {
+          "name" : "compatible_with_version",
+          "in" : "query",
+          "description" : "Select types that are compatible with the given version. This parameter is only applicable in conjunction with type_name. As an example version 1.9.1 is compatible with 1.0.0 but not the other way around. Matching types will be returned sorted in ascending order.",
+          "required" : false,
+          "style" : "form",
+          "explode" : true,
+          "schema" : {
+            "type" : "string"
+          }
+        } ],
+        "responses" : {
+          "200" : {
+            "description" : "Policy type IDs",
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/policy_type_id_list"
                 },
-                "auth_token": {
-                    "description": "Authorization token",
-                    "type": "string"
+                "examples" : {
+                  "policy_type_id_list" : {
+                    "$ref" : "#/components/examples/policy_type_id_list"
+                  }
+                }
+              }
+            }
+          },
+          "404" : {
+            "description" : "Near-RT RIC is not found",
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/error_information"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/a1-policy/v2/policies/{policy_id}" : {
+      "get" : {
+        "tags" : [ "A1 Policy Management" ],
+        "summary" : "Returns a policy",
+        "operationId" : "getPolicy",
+        "parameters" : [ {
+          "name" : "policy_id",
+          "in" : "path",
+          "required" : true,
+          "style" : "simple",
+          "explode" : false,
+          "schema" : {
+            "type" : "string"
+          }
+        } ],
+        "responses" : {
+          "200" : {
+            "description" : "Policy found",
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/policy_info"
                 },
-                "policy_type_id": {
-                    "description": "Policy type identifier",
-                    "type": "string"
+                "examples" : {
+                  "policy_info" : {
+                    "$ref" : "#/components/examples/policy_info"
+                  }
                 }
+              }
             }
+          },
+          "404" : {
+            "description" : "Policy is not found",
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/error_information"
+                }
+              }
+            }
+          }
+        }
+      },
+      "delete" : {
+        "tags" : [ "A1 Policy Management" ],
+        "summary" : "Delete a policy",
+        "operationId" : "deletePolicy",
+        "parameters" : [ {
+          "name" : "policy_id",
+          "in" : "path",
+          "required" : true,
+          "style" : "simple",
+          "explode" : false,
+          "schema" : {
+            "type" : "string"
+          }
+        } ],
+        "responses" : {
+          "200" : {
+            "description" : "Not used",
+            "content" : {
+              "*/*" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/void"
+                }
+              }
+            }
+          },
+          "423" : {
+            "description" : "Near-RT RIC is not operational",
+            "content" : {
+              "*/*" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/error_information"
+                }
+              }
+            }
+          },
+          "204" : {
+            "description" : "Policy deleted",
+            "content" : {
+              "*/*" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/void"
+                }
+              }
+            }
+          },
+          "404" : {
+            "description" : "Policy is not found",
+            "content" : {
+              "*/*" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/error_information"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/actuator/metrics/{requiredMetricName}" : {
+      "get" : {
+        "tags" : [ "Actuator" ],
+        "summary" : "Actuator web endpoint 'metrics-requiredMetricName'",
+        "operationId" : "metrics-requiredMetricName",
+        "parameters" : [ {
+          "name" : "requiredMetricName",
+          "in" : "path",
+          "required" : true,
+          "style" : "simple",
+          "explode" : false,
+          "schema" : {
+            "type" : "string"
+          }
+        } ],
+        "responses" : {
+          "200" : {
+            "description" : "OK",
+            "content" : {
+              "application/vnd.spring-boot.actuator.v3+json" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              },
+              "application/json" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              },
+              "application/vnd.spring-boot.actuator.v2+json" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/a1-policy/v2/configuration" : {
+      "get" : {
+        "tags" : [ "configuration" ],
+        "summary" : "Returns the contents of the application configuration file",
+        "operationId" : "getConfiguration",
+        "responses" : {
+          "200" : {
+            "description" : "Configuration",
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "type" : "string"
+                }
+              }
+            }
+          },
+          "404" : {
+            "description" : "File is not found or readable",
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/error_information"
+                }
+              }
+            }
+          }
+        }
+      },
+      "put" : {
+        "tags" : [ "configuration" ],
+        "summary" : "Replace the current configuration file with the given configuration",
+        "operationId" : "putConfiguration",
+        "requestBody" : {
+          "content" : {
+            "application/json" : {
+              "schema" : {
+                "type" : "object"
+              }
+            }
+          },
+          "required" : true
         },
-        "policy_authorization": {
-            "description": "Authorization request for A1 policy requests",
-            "type": "object",
-            "required": ["input"],
-            "properties": {"input": {"$ref": "#/components/schemas/input"}}
-        },
-        "policytype_id_list_v2": {
-            "description": "Information about policy types",
-            "type": "object",
-            "properties": {"policytype_ids": {
-                "description": "Policy type identities",
-                "type": "array",
-                "items": {
-                    "description": "Policy type identities",
-                    "type": "string"
-                }
-            }}
+        "responses" : {
+          "200" : {
+            "description" : "Configuration updated",
+            "content" : {
+              "*/*" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/void"
+                }
+              }
+            }
+          },
+          "400" : {
+            "description" : "Invalid configuration provided",
+            "content" : {
+              "*/*" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/error_information"
+                }
+              }
+            }
+          },
+          "500" : {
+            "description" : "Something went wrong when replacing the configuration. Try again.",
+            "content" : {
+              "*/*" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/error_information"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/actuator" : {
+      "get" : {
+        "tags" : [ "Actuator" ],
+        "summary" : "Actuator root web endpoint",
+        "operationId" : "links",
+        "responses" : {
+          "200" : {
+            "description" : "OK",
+            "content" : {
+              "application/vnd.spring-boot.actuator.v3+json" : {
+                "schema" : {
+                  "type" : "object",
+                  "additionalProperties" : {
+                    "type" : "object",
+                    "additionalProperties" : {
+                      "$ref" : "#/components/schemas/Link"
+                    }
+                  }
+                }
+              },
+              "application/json" : {
+                "schema" : {
+                  "type" : "object",
+                  "additionalProperties" : {
+                    "type" : "object",
+                    "additionalProperties" : {
+                      "$ref" : "#/components/schemas/Link"
+                    }
+                  }
+                }
+              },
+              "application/vnd.spring-boot.actuator.v2+json" : {
+                "schema" : {
+                  "type" : "object",
+                  "additionalProperties" : {
+                    "type" : "object",
+                    "additionalProperties" : {
+                      "$ref" : "#/components/schemas/Link"
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/actuator/loggers/{name}" : {
+      "get" : {
+        "tags" : [ "Actuator" ],
+        "summary" : "Actuator web endpoint 'loggers-name'",
+        "operationId" : "loggers-name",
+        "parameters" : [ {
+          "name" : "name",
+          "in" : "path",
+          "required" : true,
+          "style" : "simple",
+          "explode" : false,
+          "schema" : {
+            "type" : "string"
+          }
+        } ],
+        "responses" : {
+          "200" : {
+            "description" : "OK",
+            "content" : {
+              "application/vnd.spring-boot.actuator.v3+json" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              },
+              "application/json" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              },
+              "application/vnd.spring-boot.actuator.v2+json" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              }
+            }
+          }
+        }
+      },
+      "post" : {
+        "tags" : [ "Actuator" ],
+        "summary" : "Actuator web endpoint 'loggers-name'",
+        "operationId" : "loggers-name_2",
+        "parameters" : [ {
+          "name" : "name",
+          "in" : "path",
+          "required" : true,
+          "style" : "simple",
+          "explode" : false,
+          "schema" : {
+            "type" : "string"
+          }
+        } ],
+        "requestBody" : {
+          "content" : {
+            "application/json" : {
+              "schema" : {
+                "type" : "string",
+                "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", "OFF" ]
+              }
+            }
+          }
         },
-        "policy_info_v2": {
-            "description": "Information for one A1-P Policy",
-            "type": "object",
-            "required": [
-                "policy_data",
-                "policy_id",
-                "policytype_id",
-                "ric_id"
-            ],
-            "properties": {
-                "ric_id": {
-                    "description": "identity of the target Near-RT RIC",
-                    "type": "string"
-                },
-                "policy_id": {
-                    "description": "identity of the policy",
-                    "type": "string"
-                },
-                "transient": {
-                    "default": false,
-                    "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",
-                    "example": false
-                },
-                "service_id": {
-                    "description": "the identity of the service owning the policy. This can be used to group the policies (it is possible to get all policies associated to a service). Note that the service does not need to be registered.",
-                    "type": "string"
-                },
-                "policy_data": {
-                    "description": "the configuration of the policy",
-                    "type": "object"
+        "responses" : {
+          "200" : {
+            "description" : "OK",
+            "content" : {
+              "*/*" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/a1-policy/v2/services/{service_id}/keepalive" : {
+      "put" : {
+        "tags" : [ "Service Registry and Supervision" ],
+        "summary" : "Heartbeat indicates that the service is running",
+        "description" : "A registered service should invoke this operation regularly to indicate that it is still alive. If a registered service fails to invoke this operation before the end of a timeout period the service will be deregistered and all its A1 policies wil be removed. (This timeout can be set or disabled when each service is initially registered)",
+        "operationId" : "keepAliveService",
+        "parameters" : [ {
+          "name" : "service_id",
+          "in" : "path",
+          "required" : true,
+          "style" : "simple",
+          "explode" : false,
+          "schema" : {
+            "type" : "string"
+          }
+        } ],
+        "responses" : {
+          "200" : {
+            "description" : "Service supervision timer refreshed, OK",
+            "content" : {
+              "*/*" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              }
+            }
+          },
+          "404" : {
+            "description" : "The service is not found, needs re-registration",
+            "content" : {
+              "*/*" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/error_information"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/actuator/metrics" : {
+      "get" : {
+        "tags" : [ "Actuator" ],
+        "summary" : "Actuator web endpoint 'metrics'",
+        "operationId" : "metrics",
+        "responses" : {
+          "200" : {
+            "description" : "OK",
+            "content" : {
+              "application/vnd.spring-boot.actuator.v3+json" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              },
+              "application/json" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              },
+              "application/vnd.spring-boot.actuator.v2+json" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/a1-policy/v2/rics" : {
+      "get" : {
+        "tags" : [ "NearRT-RIC Repository" ],
+        "summary" : "Query Near-RT RIC information",
+        "description" : "The call returns all Near-RT RICs that supports a given policy type identity",
+        "operationId" : "getRics",
+        "parameters" : [ {
+          "name" : "policytype_id",
+          "in" : "query",
+          "description" : "The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned",
+          "required" : false,
+          "style" : "form",
+          "explode" : true,
+          "schema" : {
+            "type" : "string"
+          }
+        } ],
+        "responses" : {
+          "200" : {
+            "description" : "OK",
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/ric_info_list"
                 },
-                "status_notification_uri": {
-                    "description": "Callback URI for policy status updates",
-                    "type": "string"
+                "examples" : {
+                  "ric_info_list" : {
+                    "$ref" : "#/components/examples/ric_info_list"
+                  }
+                }
+              }
+            }
+          },
+          "404" : {
+            "description" : "Policy type is not found",
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/error_information"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/a1-policy/v2/services" : {
+      "get" : {
+        "tags" : [ "Service Registry and Supervision" ],
+        "summary" : "Returns service information",
+        "description" : "Either information about a registered service with given identity or all registered services are returned.",
+        "operationId" : "getServices",
+        "parameters" : [ {
+          "name" : "service_id",
+          "in" : "query",
+          "description" : "The identity of the service",
+          "required" : false,
+          "style" : "form",
+          "explode" : true,
+          "schema" : {
+            "type" : "string"
+          }
+        } ],
+        "responses" : {
+          "200" : {
+            "description" : "OK",
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/service_status_list"
                 },
-                "policytype_id": {
-                    "description": "identity of the policy type",
-                    "type": "string"
+                "examples" : {
+                  "service_status_list" : {
+                    "$ref" : "#/components/examples/service_status_list"
+                  }
                 }
+              }
             }
+          },
+          "404" : {
+            "description" : "Service is not found",
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/error_information"
+                }
+              }
+            }
+          }
+        }
+      },
+      "put" : {
+        "tags" : [ "Service Registry and Supervision" ],
+        "summary" : "Register a service",
+        "description" : "Registering a service is needed to:<ul><li>Get callbacks about available NearRT RICs.</li><li>Activate supervision of the service. If a service is inactive, its policies will automatically be deleted.</li></ul>Policies can be created even if the service is not registerred. This is a feature which it is optional to use.",
+        "operationId" : "putService",
+        "requestBody" : {
+          "content" : {
+            "application/json" : {
+              "schema" : {
+                "$ref" : "#/components/schemas/service_registration_info"
+              }
+            }
+          },
+          "required" : true
         },
-        "policy_id_list_v2": {
-            "description": "A list of policy identities",
-            "type": "object",
-            "properties": {"policy_ids": {
-                "description": "Policy identities",
-                "type": "array",
-                "items": {
-                    "description": "Policy identities",
-                    "type": "string"
-                }
-            }}
-        },
-        "service_list_v2": {
-            "description": "List of service information",
-            "type": "object",
-            "properties": {"service_list": {
-                "description": "List of service information",
-                "type": "array",
-                "items": {"$ref": "#/components/schemas/service_status_v2"}
-            }}
-        },
-        "service_callback_info_v2": {
-            "description": "Information transferred as in Service callbacks (callback_url)",
-            "type": "object",
-            "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"]
+        "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"
+                }
+              }
+            }
+          }
         },
-        "Link": {
-            "type": "object",
-            "properties": {
-                "templated": {"type": "boolean"},
-                "href": {"type": "string"}
-            }
-        }
-    }},
-    "openapi": "3.0.1",
-    "paths": {
-        "/a1-policy/v2/policy-instances": {"get": {
-            "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": "getPolicyInstances",
-            "responses": {
-                "200": {
-                    "description": "Policies",
-                    "content": {"application/json": {"schema": {"$ref": "#/components/schemas/policy_info_list_v2"}}}
-                },
-                "404": {
-                    "description": "Near-RT RIC, policy type or service not found",
-                    "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
-                }
-            },
-            "parameters": [
-                {
-                    "schema": {"type": "string"},
-                    "in": "query",
-                    "name": "policytype_id",
-                    "description": "Select policies with a given type identity.",
-                    "required": false
-                },
-                {
-                    "schema": {"type": "string"},
-                    "in": "query",
-                    "name": "ric_id",
-                    "description": "Select policies for a given Near-RT RIC identity.",
-                    "required": false
-                },
-                {
-                    "schema": {"type": "string"},
-                    "in": "query",
-                    "name": "service_id",
-                    "description": "Select policies owned by a given service.",
-                    "required": false
-                },
-                {
-                    "schema": {"type": "string"},
-                    "in": "query",
-                    "name": "type_name",
-                    "description": "Select policies of a given type name (type identity has the format <typename_version>)",
-                    "required": false
-                }
-            ],
-            "tags": ["A1 Policy Management"]
-        }},
-        "/example-authz-check": {"post": {
-            "summary": "Request for access authorization.",
-            "requestBody": {
-                "content": {"application/json": {"schema": {"$ref": "#/components/schemas/policy_authorization"}}},
-                "required": true
-            },
-            "description": "The authorization function decides if access is granted.",
-            "operationId": "performAccessControl",
-            "responses": {"200": {
-                "description": "OK",
-                "content": {"application/json": {"schema": {"$ref": "#/components/schemas/authorization_result"}}}
-            }},
-            "tags": ["Authorization API"]
-        }},
-        "/actuator/threaddump": {"get": {
-            "summary": "Actuator web endpoint 'threaddump'",
-            "operationId": "threaddump",
-            "responses": {"200": {
-                "description": "OK",
-                "content": {
-                    "text/plain;charset=UTF-8": {"schema": {"type": "object"}},
-                    "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
-                    "application/json": {"schema": {"type": "object"}},
-                    "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
-                }
-            }},
-            "tags": ["Actuator"]
-        }},
-        "/a1-policy/v2/status": {"get": {
-            "summary": "Returns status and statistics of this service",
-            "operationId": "getStatus",
-            "responses": {"200": {
-                "description": "Service is living",
-                "content": {"application/json": {"schema": {"$ref": "#/components/schemas/status_info_v2"}}}
-            }},
-            "tags": ["Health Check"]
-        }},
-        "/actuator/loggers": {"get": {
-            "summary": "Actuator web endpoint 'loggers'",
-            "operationId": "loggers",
-            "responses": {"200": {
-                "description": "OK",
-                "content": {
-                    "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
-                    "application/json": {"schema": {"type": "object"}},
-                    "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
-                }
-            }},
-            "tags": ["Actuator"]
-        }},
-        "/actuator/health/**": {"get": {
-            "summary": "Actuator web endpoint 'health-path'",
-            "operationId": "health-path",
-            "responses": {"200": {
-                "description": "OK",
-                "content": {
-                    "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
-                    "application/json": {"schema": {"type": "object"}},
-                    "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
-                }
-            }},
-            "tags": ["Actuator"]
-        }},
-        "/a1-policy/v2/rics/ric": {"get": {
-            "summary": "Returns info for one Near-RT RIC",
-            "description": "Either a Near-RT RIC identity or a Managed Element identity can be specified.<br>The intention with Managed Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU).",
-            "operationId": "getRic",
-            "responses": {
-                "200": {
-                    "description": "Near-RT RIC is found",
-                    "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ric_info_v2"}}}
-                },
-                "404": {
-                    "description": "Near-RT RIC is not found",
-                    "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
-                }
-            },
-            "parameters": [
-                {
-                    "schema": {"type": "string"},
-                    "in": "query",
-                    "name": "managed_element_id",
-                    "description": "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.",
-                    "required": false
-                },
-                {
-                    "schema": {"type": "string"},
-                    "in": "query",
-                    "name": "ric_id",
-                    "description": "The identity of a Near-RT RIC to get information for.",
-                    "required": false
-                }
-            ],
-            "tags": ["NearRT-RIC Repository"]
-        }},
-        "/actuator/shutdown": {"post": {
-            "summary": "Actuator web endpoint 'shutdown'",
-            "operationId": "shutdown",
-            "responses": {"200": {
-                "description": "OK",
-                "content": {
-                    "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
-                    "application/json": {"schema": {"type": "object"}},
-                    "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
-                }
-            }},
-            "tags": ["Actuator"]
-        }},
-        "/a1-policy/v2/policy-types": {"get": {
-            "summary": "Query policy type identities",
-            "operationId": "getPolicyTypes",
-            "responses": {
-                "200": {
-                    "description": "Policy type IDs",
-                    "content": {"application/json": {"schema": {"$ref": "#/components/schemas/policytype_id_list_v2"}}}
-                },
-                "404": {
-                    "description": "Near-RT RIC is not found",
-                    "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
-                }
-            },
-            "parameters": [
-                {
-                    "schema": {"type": "string"},
-                    "in": "query",
-                    "name": "ric_id",
-                    "description": "Select types for the given Near-RT RIC identity.",
-                    "required": false
-                },
-                {
-                    "schema": {"type": "string"},
-                    "in": "query",
-                    "name": "type_name",
-                    "description": "Select types with the given type name (type identity has the format <typename_version>)",
-                    "required": false
-                },
-                {
-                    "schema": {"type": "string"},
-                    "in": "query",
-                    "name": "compatible_with_version",
-                    "description": "Select types that are compatible with the given version. This parameter is only applicable in conjunction with type_name. As an example version 1.9.1 is compatible with 1.0.0 but not the other way around. Matching types will be returned sorted in ascending order.",
-                    "required": false
-                }
-            ],
-            "tags": ["A1 Policy Management"]
-        }},
-        "/a1-policy/v2/policies/{policy_id}": {
-            "get": {
-                "summary": "Returns a policy",
-                "operationId": "getPolicy",
-                "responses": {
-                    "200": {
-                        "description": "Policy found",
-                        "content": {"application/json": {"schema": {"$ref": "#/components/schemas/policy_info_v2"}}}
-                    },
-                    "404": {
-                        "description": "Policy is not found",
-                        "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
+        "callbacks" : {
+          "RICStatus" : {
+            "{$request.body#/callback_url}" : {
+              "post" : {
+                "tags" : [ "Service callbacks" ],
+                "summary" : "Callback for Near-RT RIC status",
+                "description" : "The URL to this call is registered at Service registration.",
+                "operationId" : "serviceCallback",
+                "requestBody" : {
+                  "content" : {
+                    "application/json" : {
+                      "schema" : {
+                        "$ref" : "#/components/schemas/service_callback_info_v2"
+                      }
                     }
+                  },
+                  "required" : true
                 },
-                "parameters": [{
-                    "schema": {"type": "string"},
-                    "in": "path",
-                    "name": "policy_id",
-                    "required": true
-                }],
-                "tags": ["A1 Policy Management"]
-            },
-            "delete": {
-                "summary": "Delete a policy",
-                "operationId": "deletePolicy",
-                "responses": {
-                    "200": {
-                        "description": "Not used",
-                        "content": {"*/*": {"schema": {"$ref": "#/components/schemas/void"}}}
-                    },
-                    "423": {
-                        "description": "Near-RT RIC is not operational",
-                        "content": {"*/*": {"schema": {"$ref": "#/components/schemas/error_information"}}}
-                    },
-                    "204": {
-                        "description": "Policy deleted",
-                        "content": {"*/*": {"schema": {"$ref": "#/components/schemas/void"}}}
-                    },
-                    "404": {
-                        "description": "Policy is not found",
-                        "content": {"*/*": {"schema": {"$ref": "#/components/schemas/error_information"}}}
+                "responses" : {
+                  "200" : {
+                    "description" : "OK",
+                    "content" : {
+                      "application/json" : {
+                        "schema" : {
+                          "$ref" : "#/components/schemas/void"
+                        }
+                      }
                     }
-                },
-                "parameters": [{
-                    "schema": {"type": "string"},
-                    "in": "path",
-                    "name": "policy_id",
-                    "required": true
-                }],
-                "tags": ["A1 Policy Management"]
+                  }
+                }
+              }
             }
-        },
-        "/actuator/metrics/{requiredMetricName}": {"get": {
-            "summary": "Actuator web endpoint 'metrics-requiredMetricName'",
-            "operationId": "metrics-requiredMetricName",
-            "responses": {"200": {
-                "description": "OK",
-                "content": {
-                    "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
-                    "application/json": {"schema": {"type": "object"}},
-                    "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
-                }
-            }},
-            "parameters": [{
-                "schema": {"type": "string"},
-                "in": "path",
-                "name": "requiredMetricName",
-                "required": true
-            }],
-            "tags": ["Actuator"]
-        }},
-        "/a1-policy/v2/configuration": {
-            "get": {
-                "summary": "Returns the contents of the application configuration file",
-                "operationId": "getConfiguration",
-                "responses": {
-                    "200": {
-                        "description": "Configuration",
-                        "content": {"application/json": {"schema": {"type": "object"}}}
-                    },
-                    "404": {
-                        "description": "File is not found or readable",
-                        "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
-                    }
+          }
+        }
+      }
+    },
+    "/actuator/info" : {
+      "get" : {
+        "tags" : [ "Actuator" ],
+        "summary" : "Actuator web endpoint 'info'",
+        "operationId" : "info",
+        "responses" : {
+          "200" : {
+            "description" : "OK",
+            "content" : {
+              "application/vnd.spring-boot.actuator.v3+json" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              },
+              "application/json" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              },
+              "application/vnd.spring-boot.actuator.v2+json" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/status" : {
+      "get" : {
+        "tags" : [ "Health Check" ],
+        "summary" : "Returns status and statistics of this service",
+        "operationId" : "getStatusV1",
+        "responses" : {
+          "200" : {
+            "description" : "Service is living",
+            "content" : {
+              "*/*" : {
+                "schema" : {
+                  "type" : "string"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/a1-policy/v2/policy-types/{policytype_id}" : {
+      "get" : {
+        "tags" : [ "A1 Policy Management" ],
+        "summary" : "Returns a policy type definition",
+        "operationId" : "getPolicyTypeDefinition",
+        "parameters" : [ {
+          "name" : "policytype_id",
+          "in" : "path",
+          "required" : true,
+          "style" : "simple",
+          "explode" : false,
+          "schema" : {
+            "type" : "string"
+          }
+        } ],
+        "responses" : {
+          "200" : {
+            "description" : "schema of the given policy type",
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/policy_type_definition"
                 },
-                "tags": ["Management of configuration"]
-            },
-            "put": {
-                "summary": "Replace the current configuration file with the given configuration",
-                "requestBody": {
-                    "content": {"application/json": {"schema": {"type": "object"}}},
-                    "required": true
+                "examples" : {
+                  "policy_type_definition" : {
+                    "$ref" : "#/components/examples/policy_type_definition"
+                  }
+                }
+              }
+            }
+          },
+          "404" : {
+            "description" : "Policy type is not found",
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/error_information"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/actuator/logfile" : {
+      "get" : {
+        "tags" : [ "Actuator" ],
+        "summary" : "Actuator web endpoint 'logfile'",
+        "operationId" : "logfile",
+        "responses" : {
+          "200" : {
+            "description" : "OK",
+            "content" : {
+              "text/plain;charset=UTF-8" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/actuator/health" : {
+      "get" : {
+        "tags" : [ "Actuator" ],
+        "summary" : "Actuator web endpoint 'health'",
+        "operationId" : "health",
+        "responses" : {
+          "200" : {
+            "description" : "OK",
+            "content" : {
+              "application/vnd.spring-boot.actuator.v3+json" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              },
+              "application/json" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              },
+              "application/vnd.spring-boot.actuator.v2+json" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/a1-policy/v2/policies" : {
+      "get" : {
+        "tags" : [ "A1 Policy Management" ],
+        "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" : "getPolicyIds",
+        "parameters" : [ {
+          "name" : "policytype_id",
+          "in" : "query",
+          "description" : "Select policies of a given policy type identity.",
+          "required" : false,
+          "style" : "form",
+          "explode" : true,
+          "schema" : {
+            "type" : "string"
+          }
+        }, {
+          "name" : "ric_id",
+          "in" : "query",
+          "description" : "Select policies of a given Near-RT RIC identity.",
+          "required" : false,
+          "style" : "form",
+          "explode" : true,
+          "schema" : {
+            "type" : "string"
+          }
+        }, {
+          "name" : "service_id",
+          "in" : "query",
+          "description" : "Select policies owned by a given service.",
+          "required" : false,
+          "style" : "form",
+          "explode" : true,
+          "schema" : {
+            "type" : "string"
+          }
+        }, {
+          "name" : "type_name",
+          "in" : "query",
+          "description" : "Select policies of types with the given type name (type identity has the format <typename_version>)",
+          "required" : false,
+          "style" : "form",
+          "explode" : true,
+          "schema" : {
+            "type" : "string"
+          }
+        } ],
+        "responses" : {
+          "200" : {
+            "description" : "Policy identities",
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/policy_id_list"
                 },
-                "operationId": "putConfiguration",
-                "responses": {
-                    "200": {
-                        "description": "Configuration updated",
-                        "content": {"*/*": {"schema": {"$ref": "#/components/schemas/void"}}}
-                    },
-                    "400": {
-                        "description": "Invalid configuration provided",
-                        "content": {"*/*": {"schema": {"$ref": "#/components/schemas/error_information"}}}
-                    },
-                    "500": {
-                        "description": "Something went wrong when replacing the configuration. Try again.",
-                        "content": {"*/*": {"schema": {"$ref": "#/components/schemas/error_information"}}}
-                    }
+                "examples" : {
+                  "policy_id_list" : {
+                    "$ref" : "#/components/examples/policy_id_list"
+                  }
+                }
+              }
+            }
+          },
+          "404" : {
+            "description" : "Near-RT RIC or type not found",
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/error_information"
+                }
+              }
+            }
+          }
+        }
+      },
+      "put" : {
+        "tags" : [ "A1 Policy Management" ],
+        "summary" : "Create or update a policy",
+        "operationId" : "putPolicy",
+        "requestBody" : {
+          "content" : {
+            "application/json" : {
+              "schema" : {
+                "$ref" : "#/components/schemas/policy_info"
+              }
+            }
+          },
+          "required" : true
+        },
+        "responses" : {
+          "200" : {
+            "description" : "Policy updated",
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/void"
+                }
+              }
+            }
+          },
+          "201" : {
+            "description" : "Policy created",
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/void"
+                }
+              }
+            }
+          },
+          "423" : {
+            "description" : "Near-RT RIC is not operational",
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/error_information"
+                }
+              }
+            }
+          },
+          "404" : {
+            "description" : "Near-RT RIC or policy type is not found",
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/error_information"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/a1-policy/v2/services/{service_id}" : {
+      "delete" : {
+        "tags" : [ "Service Registry and Supervision" ],
+        "summary" : "Unregister a service",
+        "operationId" : "deleteService",
+        "parameters" : [ {
+          "name" : "service_id",
+          "in" : "path",
+          "required" : true,
+          "style" : "simple",
+          "explode" : false,
+          "schema" : {
+            "type" : "string"
+          }
+        } ],
+        "responses" : {
+          "200" : {
+            "description" : "Not used",
+            "content" : {
+              "*/*" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/void"
+                }
+              }
+            }
+          },
+          "204" : {
+            "description" : "Service unregistered",
+            "content" : {
+              "*/*" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              }
+            }
+          },
+          "404" : {
+            "description" : "Service not found",
+            "content" : {
+              "*/*" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/error_information"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/actuator/heapdump" : {
+      "get" : {
+        "tags" : [ "Actuator" ],
+        "summary" : "Actuator web endpoint 'heapdump'",
+        "operationId" : "heapdump",
+        "responses" : {
+          "200" : {
+            "description" : "OK",
+            "content" : {
+              "application/octet-stream" : {
+                "schema" : {
+                  "type" : "object"
+                }
+              }
+            }
+          }
+        }
+      }
+    },
+    "/a1-policy/v2/policies/{policy_id}/status" : {
+      "get" : {
+        "tags" : [ "A1 Policy Management" ],
+        "summary" : "Returns a policy status",
+        "operationId" : "getPolicyStatus",
+        "parameters" : [ {
+          "name" : "policy_id",
+          "in" : "path",
+          "required" : true,
+          "style" : "simple",
+          "explode" : false,
+          "schema" : {
+            "type" : "string"
+          }
+        } ],
+        "responses" : {
+          "200" : {
+            "description" : "Policy status",
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/policy_status_info"
                 },
-                "tags": ["Management of configuration"]
+                "examples" : {
+                  "policy_status_info" : {
+                    "$ref" : "#/components/examples/policy_status_info"
+                  }
+                }
+              }
+            }
+          },
+          "404" : {
+            "description" : "Policy is not found",
+            "content" : {
+              "application/json" : {
+                "schema" : {
+                  "$ref" : "#/components/schemas/error_information"
+                }
+              }
             }
+          }
+        }
+      }
+    }
+  },
+  "components" : {
+    "schemas" : {
+      "policy_type_definition" : {
+        "type" : "object",
+        "properties" : {
+          "policy_schema" : {
+            "type" : "object",
+            "description" : "Policy type json schema. The schema is a json object following http://json-schema.org/draft-07/schema"
+          }
         },
-        "/actuator": {"get": {
-            "summary": "Actuator root web endpoint",
-            "operationId": "links",
-            "responses": {"200": {
-                "description": "OK",
-                "content": {
-                    "application/vnd.spring-boot.actuator.v3+json": {"schema": {
-                        "additionalProperties": {
-                            "additionalProperties": {"$ref": "#/components/schemas/Link"},
-                            "type": "object"
-                        },
-                        "type": "object"
-                    }},
-                    "application/json": {"schema": {
-                        "additionalProperties": {
-                            "additionalProperties": {"$ref": "#/components/schemas/Link"},
-                            "type": "object"
-                        },
-                        "type": "object"
-                    }},
-                    "application/vnd.spring-boot.actuator.v2+json": {"schema": {
-                        "additionalProperties": {
-                            "additionalProperties": {"$ref": "#/components/schemas/Link"},
-                            "type": "object"
-                        },
-                        "type": "object"
-                    }}
-                }
-            }},
-            "tags": ["Actuator"]
-        }},
-        "/actuator/loggers/{name}": {
-            "post": {
-                "summary": "Actuator web endpoint 'loggers-name'",
-                "requestBody": {"content": {"application/json": {"schema": {
-                    "type": "string",
-                    "enum": [
-                        "TRACE",
-                        "DEBUG",
-                        "INFO",
-                        "WARN",
-                        "ERROR",
-                        "FATAL",
-                        "OFF"
-                    ]
-                }}}},
-                "operationId": "loggers-name_2",
-                "responses": {"200": {
-                    "description": "OK",
-                    "content": {"*/*": {"schema": {"type": "object"}}}
-                }},
-                "parameters": [{
-                    "schema": {"type": "string"},
-                    "in": "path",
-                    "name": "name",
-                    "required": true
-                }],
-                "tags": ["Actuator"]
-            },
-            "get": {
-                "summary": "Actuator web endpoint 'loggers-name'",
-                "operationId": "loggers-name",
-                "responses": {"200": {
-                    "description": "OK",
-                    "content": {
-                        "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
-                        "application/json": {"schema": {"type": "object"}},
-                        "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
-                    }
-                }},
-                "parameters": [{
-                    "schema": {"type": "string"},
-                    "in": "path",
-                    "name": "name",
-                    "required": true
-                }],
-                "tags": ["Actuator"]
+        "description" : "Contains policy type schema definition"
+      },
+      "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" : 404
+          }
+        },
+        "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807"
+      },
+      "void" : {
+        "type" : "object",
+        "description" : "Void/empty"
+      },
+      "status_info" : {
+        "type" : "object",
+        "properties" : {
+          "status" : {
+            "type" : "string",
+            "description" : "status text"
+          }
+        }
+      },
+      "authorization_result" : {
+        "required" : [ "result" ],
+        "type" : "object",
+        "properties" : {
+          "result" : {
+            "type" : "boolean",
+            "description" : "If true, the access is granted"
+          }
+        },
+        "description" : "Result of authorization",
+        "example" : {
+          "result" : true
+        }
+      },
+      "ric_info" : {
+        "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",
+              "description" : "O1 identities for managed entities"
             }
+          },
+          "state" : {
+            "type" : "string",
+            "description" : "Represents the states for a Near-RT RIC",
+            "enum" : [ "UNAVAILABLE", "AVAILABLE", "SYNCHRONIZING", "CONSISTENCY_CHECK" ]
+          },
+          "policytype_ids" : {
+            "type" : "array",
+            "description" : "supported policy types",
+            "items" : {
+              "type" : "string",
+              "description" : "supported policy types"
+            }
+          }
         },
-        "/a1-policy/v2/services/{service_id}/keepalive": {"put": {
-            "summary": "Heartbeat indicates that the service is running",
-            "description": "A registered service should invoke this operation regularly to indicate that it is still alive. If a registered service fails to invoke this operation before the end of a timeout period the service will be deregistered and all its A1 policies wil be removed. (This timeout can be set or disabled when each service is initially registered)",
-            "operationId": "keepAliveService",
-            "responses": {
-                "200": {
-                    "description": "Service supervision timer refreshed, OK",
-                    "content": {"*/*": {"schema": {"type": "object"}}}
-                },
-                "404": {
-                    "description": "The service is not found, needs re-registration",
-                    "content": {"*/*": {"schema": {"$ref": "#/components/schemas/error_information"}}}
-                }
-            },
-            "parameters": [{
-                "schema": {"type": "string"},
-                "in": "path",
-                "name": "service_id",
-                "required": true
-            }],
-            "tags": ["Service Registry and Supervision"]
-        }},
-        "/actuator/metrics": {"get": {
-            "summary": "Actuator web endpoint 'metrics'",
-            "operationId": "metrics",
-            "responses": {"200": {
-                "description": "OK",
-                "content": {
-                    "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
-                    "application/json": {"schema": {"type": "object"}},
-                    "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
-                }
-            }},
-            "tags": ["Actuator"]
-        }},
-        "/a1-policy/v2/rics": {"get": {
-            "summary": "Query Near-RT RIC information",
-            "description": "The call returns all Near-RT RICs that supports a given policy type identity",
-            "operationId": "getRics",
-            "responses": {
-                "200": {
-                    "description": "OK",
-                    "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ric_info_list_v2"}}}
-                },
-                "404": {
-                    "description": "Policy type is not found",
-                    "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
-                }
-            },
-            "parameters": [{
-                "schema": {"type": "string"},
-                "in": "query",
-                "name": "policytype_id",
-                "description": "The identity of a policy type. If given, all Near-RT RICs supporting the policy type are returned",
-                "required": false
-            }],
-            "tags": ["NearRT-RIC Repository"]
-        }},
-        "/a1-policy/v2/services": {
-            "get": {
-                "summary": "Returns service information",
-                "description": "Either information about a registered service with given identity or all registered services are returned.",
-                "operationId": "getServices",
-                "responses": {
-                    "200": {
-                        "description": "OK",
-                        "content": {"application/json": {"schema": {"$ref": "#/components/schemas/service_list_v2"}}}
-                    },
-                    "404": {
-                        "description": "Service is not found",
-                        "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
-                    }
-                },
-                "parameters": [{
-                    "schema": {"type": "string"},
-                    "in": "query",
-                    "name": "service_id",
-                    "description": "The identity of the service",
-                    "required": false
-                }],
-                "tags": ["Service Registry and Supervision"]
-            },
-            "put": {
-                "summary": "Register a service",
-                "requestBody": {
-                    "content": {"application/json": {"schema": {"$ref": "#/components/schemas/service_registration_info_v2"}}},
-                    "required": true
-                },
-                "description": "Registering a service is needed to:<ul><li>Get callbacks about available NearRT RICs.<\/li><li>Activate supervision of the service. If a service is inactive, its policies will automatically be deleted.<\/li><\/ul>Policies can be created even if the service is not registerred. This is a feature which it is optional to use.",
-                "operationId": "putService",
-                "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"}}}
-                    }
-                },
-                "tags": ["Service Registry and Supervision"]
+        "description" : "Information for a Near-RT RIC"
+      },
+      "service_registration_info" : {
+        "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 used to enable optional heartbeat supervision of the service. If set (> 0) the registered service should regularly invoke a 'keepalive' REST call. When a service fails to invoke this 'keepalive' call within the configured time, the service is considered unavailable. An unavailable service will be automatically deregistered and its policies will be deleted. Value 0 means timeout supervision is disabled.",
+            "format" : "int64"
+          }
+        },
+        "description" : "Information for one service"
+      },
+      "policy_info_list" : {
+        "type" : "object",
+        "properties" : {
+          "policies" : {
+            "type" : "array",
+            "description" : "List of policy information",
+            "items" : {
+              "$ref" : "#/components/schemas/policy_info"
             }
+          }
         },
-        "/actuator/info": {"get": {
-            "summary": "Actuator web endpoint 'info'",
-            "operationId": "info",
-            "responses": {"200": {
-                "description": "OK",
-                "content": {
-                    "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
-                    "application/json": {"schema": {"type": "object"}},
-                    "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
-                }
-            }},
-            "tags": ["Actuator"]
-        }},
-        "/status": {"get": {
-            "summary": "Returns status and statistics of this service",
-            "operationId": "getStatusV1",
-            "responses": {"200": {
-                "description": "Service is living",
-                "content": {"*/*": {"schema": {"type": "string"}}}
-            }},
-            "tags": ["Health Check"]
-        }},
-        "/a1-policy/v2/policy-types/{policytype_id}": {"get": {
-            "summary": "Returns a policy type definition",
-            "operationId": "getPolicyType",
-            "responses": {
-                "200": {
-                    "description": "Policy type",
-                    "content": {"*/*": {"schema": {"$ref": "#/components/schemas/policytype_v2"}}}
-                },
-                "404": {
-                    "description": "Policy type is not found",
-                    "content": {"*/*": {"schema": {"$ref": "#/components/schemas/error_information"}}}
-                }
-            },
-            "parameters": [{
-                "schema": {"type": "string"},
-                "in": "path",
-                "name": "policytype_id",
-                "required": true
-            }],
-            "tags": ["A1 Policy Management"]
-        }},
-        "/actuator/logfile": {"get": {
-            "summary": "Actuator web endpoint 'logfile'",
-            "operationId": "logfile",
-            "responses": {"200": {
-                "description": "OK",
-                "content": {"text/plain;charset=UTF-8": {"schema": {"type": "object"}}}
-            }},
-            "tags": ["Actuator"]
-        }},
-        "/actuator/health": {"get": {
-            "summary": "Actuator web endpoint 'health'",
-            "operationId": "health",
-            "responses": {"200": {
-                "description": "OK",
-                "content": {
-                    "application/vnd.spring-boot.actuator.v3+json": {"schema": {"type": "object"}},
-                    "application/json": {"schema": {"type": "object"}},
-                    "application/vnd.spring-boot.actuator.v2+json": {"schema": {"type": "object"}}
-                }
-            }},
-            "tags": ["Actuator"]
-        }},
-        "/a1-policy/v2/policies": {
-            "get": {
-                "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": "getPolicyIds",
-                "responses": {
-                    "200": {
-                        "description": "Policy identities",
-                        "content": {"application/json": {"schema": {"$ref": "#/components/schemas/policy_id_list_v2"}}}
-                    },
-                    "404": {
-                        "description": "Near-RT RIC or type not found",
-                        "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
-                    }
-                },
-                "parameters": [
-                    {
-                        "schema": {"type": "string"},
-                        "in": "query",
-                        "name": "policytype_id",
-                        "description": "Select policies of a given policy type identity.",
-                        "required": false
-                    },
-                    {
-                        "schema": {"type": "string"},
-                        "in": "query",
-                        "name": "ric_id",
-                        "description": "Select policies of a given Near-RT RIC identity.",
-                        "required": false
-                    },
-                    {
-                        "schema": {"type": "string"},
-                        "in": "query",
-                        "name": "service_id",
-                        "description": "Select policies owned by a given service.",
-                        "required": false
-                    },
-                    {
-                        "schema": {"type": "string"},
-                        "in": "query",
-                        "name": "type_name",
-                        "description": "Select policies of types with the given type name (type identity has the format <typename_version>)",
-                        "required": false
-                    }
-                ],
-                "tags": ["A1 Policy Management"]
-            },
-            "put": {
-                "summary": "Create or update a policy",
-                "requestBody": {
-                    "content": {"application/json": {"schema": {"$ref": "#/components/schemas/policy_info_v2"}}},
-                    "required": true
-                },
-                "operationId": "putPolicy",
-                "responses": {
-                    "200": {
-                        "description": "Policy updated",
-                        "content": {"application/json": {"schema": {"$ref": "#/components/schemas/void"}}}
-                    },
-                    "201": {
-                        "description": "Policy created",
-                        "content": {"application/json": {"schema": {"$ref": "#/components/schemas/void"}}}
-                    },
-                    "423": {
-                        "description": "Near-RT RIC is not operational",
-                        "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
-                    },
-                    "404": {
-                        "description": "Near-RT RIC or policy type is not found",
-                        "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
-                    }
-                },
-                "tags": ["A1 Policy Management"]
+        "description" : "List of policy information"
+      },
+      "policy_status_info" : {
+        "type" : "object",
+        "properties" : {
+          "last_modified" : {
+            "type" : "string",
+            "description" : "timestamp, last modification time"
+          },
+          "status" : {
+            "type" : "object",
+            "description" : "the Policy status"
+          }
+        },
+        "description" : "Status for one A1-P Policy"
+      },
+      "service_status" : {
+        "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"
+          }
+        }
+      },
+      "ric_info_list" : {
+        "type" : "object",
+        "properties" : {
+          "rics" : {
+            "type" : "array",
+            "description" : "List of Near-RT RIC information",
+            "items" : {
+              "$ref" : "#/components/schemas/ric_info"
             }
+          }
         },
-        "/r-app/near-rt-ric-status": {"post": {
-            "summary": "Callback for Near-RT RIC status",
-            "requestBody": {
-                "content": {"application/json": {"schema": {"$ref": "#/components/schemas/service_callback_info_v2"}}},
-                "required": true
-            },
-            "description": "The URL to this call is registered at Service registration.",
-            "operationId": "serviceCallback",
-            "responses": {"200": {
-                "description": "OK",
-                "content": {"application/json": {"schema": {"$ref": "#/components/schemas/void"}}}
-            }},
-            "tags": ["Service callbacks"]
-        }},
-        "/a1-policy/v2/services/{service_id}": {"delete": {
-            "summary": "Unregister a service",
-            "operationId": "deleteService",
-            "responses": {
-                "200": {
-                    "description": "Not used",
-                    "content": {"*/*": {"schema": {"$ref": "#/components/schemas/void"}}}
-                },
-                "204": {
-                    "description": "Service unregistered",
-                    "content": {"*/*": {"schema": {"type": "object"}}}
-                },
-                "404": {
-                    "description": "Service not found",
-                    "content": {"*/*": {"schema": {"$ref": "#/components/schemas/error_information"}}}
-                }
-            },
-            "parameters": [{
-                "schema": {"type": "string"},
-                "in": "path",
-                "name": "service_id",
-                "required": true
-            }],
-            "tags": ["Service Registry and Supervision"]
-        }},
-        "/actuator/heapdump": {"get": {
-            "summary": "Actuator web endpoint 'heapdump'",
-            "operationId": "heapdump",
-            "responses": {"200": {
-                "description": "OK",
-                "content": {"application/octet-stream": {"schema": {"type": "object"}}}
-            }},
-            "tags": ["Actuator"]
-        }},
-        "/a1-policy/v2/policies/{policy_id}/status": {"get": {
-            "summary": "Returns a policy status",
-            "operationId": "getPolicyStatus",
-            "responses": {
-                "200": {
-                    "description": "Policy status",
-                    "content": {"application/json": {"schema": {"$ref": "#/components/schemas/policy_status_info_v2"}}}
-                },
-                "404": {
-                    "description": "Policy is not found",
-                    "content": {"application/json": {"schema": {"$ref": "#/components/schemas/error_information"}}}
-                }
-            },
-            "parameters": [{
-                "schema": {"type": "string"},
-                "in": "path",
-                "name": "policy_id",
-                "required": true
-            }],
-            "tags": ["A1 Policy Management"]
-        }}
-    },
-    "info": {
-        "license": {
-            "name": "Copyright (C) 2020-2023 Nordix Foundation. Licensed under the Apache License.",
-            "url": "http://www.apache.org/licenses/LICENSE-2.0"
+        "description" : "List of Near-RT RIC information"
+      },
+      "input" : {
+        "required" : [ "access_type", "auth_token", "policy_type_id" ],
+        "type" : "object",
+        "properties" : {
+          "access_type" : {
+            "type" : "string",
+            "description" : "Access type",
+            "enum" : [ "READ", "WRITE", "DELETE" ]
+          },
+          "auth_token" : {
+            "type" : "string",
+            "description" : "Authorization token"
+          },
+          "policy_type_id" : {
+            "type" : "string",
+            "description" : "Policy type identifier"
+          }
         },
-        "description": "<h2>General<\/h2><p>The O-RAN Non-RT RIC Policy Management Service provides a REST API for management of A1 policies. <br/>The main tasks of the service are:<\/p><ul><li>A1 Policy creation, modification and deletion.<\/li><li>Monitoring and maintaining consistency of the SMO view of A1 policies and the Near-RT RICs<\/li><li>Maintaining a view of supported Near-RT RIC policy types<\/li><li>Supervision of using services (R-APPs). When a service is unavailable, its policies are removed.<\/li><\/ul><h2>APIs provided or defined by the service<\/h2><h3>A1 Policy Management<\/h3><p>This is an API for management of A1 Policies.<\/p><ul><li>A1 Policy retrieval, creation, modification and deletion.<\/li><li>Retrieval of supported A1 Policy types for a Near-RT RIC<\/li><li>Retrieval of status for existing A1 policies<\/li><\/ul><h3>Management of configuration<\/h3><p>API for updating and retrieval of the component configuration. Note that there other ways to maintain the configuration.<\/p><h3>Service callbacks<\/h3><p>These are endpoints that are invoked by this service. The callbacks are registered in this service at service registration.<\/p><h3>NearRT-RIC Repository<\/h3><p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted for one Near-RT RIC.<\/p><h3>Health Check<\/h3><p>API used for supervision of the PMS component.<\/p><h3>Service Registry and Supervision<\/h3><p>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><h3>Authorization API<\/h3><p>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><h3>Spring Boot Actuator<\/h3><p>Provides generic functions  used to monitor and manage the Spring web application.<\/p>",
-        "title": "A1 Policy Management Service",
-        "version": "1.2.0"
-    },
-    "tags": [
-        {
-            "name": "Authorization API",
-            "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"
+        "description" : "input"
+      },
+      "policy_authorization" : {
+        "required" : [ "input" ],
+        "type" : "object",
+        "properties" : {
+          "input" : {
+            "$ref" : "#/components/schemas/input"
+          }
         },
-        {
-            "name": "Actuator",
-            "description": "Monitor and interact",
-            "externalDocs": {
-                "description": "Spring Boot Actuator Web API Documentation",
-                "url": "https://docs.spring.io/spring-boot/docs/current/actuator-api/html/"
+        "description" : "Authorization request for A1 policy requests"
+      },
+      "policy_type_id_list" : {
+        "type" : "object",
+        "properties" : {
+          "policytype_ids" : {
+            "type" : "array",
+            "description" : "Policy type identities",
+            "items" : {
+              "type" : "string",
+              "description" : "Policy type identities"
             }
+          }
+        },
+        "description" : "Information about policy types"
+      },
+      "policy_info" : {
+        "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.",
+            "nullable" : false,
+            "example" : false,
+            "default" : false
+          },
+          "service_id" : {
+            "type" : "string",
+            "description" : "the identity of the service owning the policy. This can be used to group the policies (it is possible to get all policies associated to a service). Note that the service does not need to be registered."
+          },
+          "policy_data" : {
+            "type" : "object",
+            "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"
+      },
+      "policy_id_list" : {
+        "type" : "object",
+        "properties" : {
+          "policy_ids" : {
+            "type" : "array",
+            "description" : "Policy identities",
+            "items" : {
+              "type" : "string",
+              "description" : "Policy identities"
+            }
+          }
+        },
+        "description" : "A list of policy identities",
+        "example" : {
+          "policy_ids" : [ "policy_ids", "policy_ids" ]
+        }
+      },
+      "service_status_list" : {
+        "type" : "object",
+        "properties" : {
+          "service_list" : {
+            "type" : "array",
+            "description" : "List of service information",
+            "items" : {
+              "$ref" : "#/components/schemas/service_status"
+            }
+          }
+        }
+      },
+      "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:\nAVAILABLE: the  Near-RT RIC has become available for A1 Policy management",
+            "enum" : [ "AVAILABLE" ]
+          }
+        },
+        "description" : "Information transferred as in Service callbacks (callback_url)"
+      },
+      "Link" : {
+        "type" : "object",
+        "properties" : {
+          "templated" : {
+            "type" : "boolean"
+          },
+          "href" : {
+            "type" : "string"
+          }
+        }
+      }
+    },
+    "examples" : {
+      "service_status" : {
+        "description" : "List of service information",
+        "value" : {
+          "callback_url" : "callback_url",
+          "service_id" : "service_id",
+          "keep_alive_interval_seconds" : 0,
+          "time_since_last_activity_seconds" : 6
+        }
+      },
+      "service_status_list" : {
+        "description" : "List of service information",
+        "value" : {
+          "service_list" : [ {
+            "callback_url" : "callback_url",
+            "service_id" : "service_id",
+            "keep_alive_interval_seconds" : 0,
+            "time_since_last_activity_seconds" : 6
+          }, {
+            "callback_url" : "callback_url",
+            "service_id" : "service_id",
+            "keep_alive_interval_seconds" : 0,
+            "time_since_last_activity_seconds" : 6
+          } ]
+        }
+      },
+      "policy_type_definition" : {
+        "description" : "Schema of the given Policy type",
+        "value" : {
+          "policy_schema" : "{}"
+        }
+      },
+      "policy_type_id_list" : {
+        "description" : "Array of policy type id's",
+        "value" : {
+          "policy_type_id_list" : [ "policytype_id", "policytype_id" ]
+        }
+      },
+      "policy_info" : {
+        "description" : "Policy information of one A1-P policy",
+        "value" : {
+          "ric_id" : "ric_id",
+          "policy_id" : "policy_id",
+          "transient" : false,
+          "service_id" : "service_id",
+          "policy_data" : "{}",
+          "status_notification_uri" : "status_notification_uri",
+          "policytype_id" : "policytype_id"
+        }
+      },
+      "policy_info_list" : {
+        "description" : "List of policy information",
+        "value" : {
+          "policies" : [ {
+            "ric_id" : "ric_id",
+            "policy_id" : "policy_id",
+            "transient" : false,
+            "service_id" : "service_id",
+            "policy_data" : "{}",
+            "status_notification_uri" : "status_notification_uri",
+            "policytype_id" : "policytype_id"
+          }, {
+            "ric_id" : "ric_id",
+            "policy_id" : "policy_id",
+            "transient" : false,
+            "service_id" : "service_id",
+            "policy_data" : "{}",
+            "status_notification_uri" : "status_notification_uri",
+            "policytype_id" : "policytype_id"
+          } ]
+        }
+      },
+      "policy_id_list" : {
+        "description" : "A list of policy identities",
+        "value" : {
+          "policy_ids" : [ "policy_ids", "policy_ids" ]
+        }
+      },
+      "policy_status_info" : {
+        "description" : "Status for one A1-P Policy",
+        "value" : {
+          "last_modified" : "last_modified",
+          "status" : "{}"
+        }
+      },
+      "status_info" : {
+        "value" : {
+          "status" : "status"
+        }
+      },
+      "ric_info" : {
+        "value" : {
+          "ric_id" : "ric_id",
+          "managed_element_ids" : [ "managed_element_ids", "managed_element_ids" ],
+          "state" : "UNAVAILABLE",
+          "policytype_ids" : [ "policytype_ids", "policytype_ids" ]
+        }
+      },
+      "ric_info_list" : {
+        "value" : {
+          "rics" : [ {
+            "ric_id" : "ric_id",
+            "managed_element_ids" : [ "managed_element_ids", "managed_element_ids" ],
+            "state" : "UNAVAILABLE",
+            "policytype_ids" : [ "policytype_ids", "policytype_ids" ]
+          }, {
+            "ric_id" : "ric_id",
+            "managed_element_ids" : [ "managed_element_ids", "managed_element_ids" ],
+            "state" : "UNAVAILABLE",
+            "policytype_ids" : [ "policytype_ids", "policytype_ids" ]
+          } ]
         }
-    ]
+      }
+    }
+  }
 }
\ No newline at end of file