{
  "openapi" : "3.0.3",
  "info" : {
    "contact" : {
      "email" : "discuss-list@onap.com",
      "name" : "ONAP CCSDK Project",
      "url" : "https://www.onap.org/"
    },
    "description" : "<h2>General</h2><p>The ONAP CCSDK A1 Policy Management Service provides a REST API for managing A1 policies. <br/>This document describes an older pre-spec API set  to perform tasks for: </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 each Near-RT RIC's supported A1 Policy Types</li><li>Supervision of registered services (rApps). When a registered service is unavailable, its policies are removed.</li></ul><h2>APIs provided or defined by the service</h2><h3>A1 Policy Management (Older pre-spec version) </h3> <p>This is an older API for managing 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  (Older version)</h3> <p>This is an API that provides support for looking up a NearRT-RIC. Each A1 policy is targeted towards one Near-RT RIC.</p><h3>Health Check</h3><p>API used for supervision of the A1 Policy Management Service .</p><h3>Service Registry and Supervision</h3> <p>API used for registering services/clients/rApps. Each A1 Policy can be tagged with an owner. If the owner service is registered, then the service can be monitored by a heart-beat supervision mechanism, and if the registered service becomes unavailable, then its A1 Policies are removed. Note  that services do not need to be registered to create A1 Policies, but unregistered services are not  supervised. 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 built-in functions used to monitor and configure the Spring web application hosting the service.</p>",
    "license" : {
      "name" : "Copyright (C) 2020-2023 Nordix Foundation, and Copyright (C) 2024-2025 OpenInfra Foundation Europe. \nAll rights reserved. Licensed under the Apache 2 License.\n",
      "url" : "http://www.apache.org/licenses/LICENSE-2.0"
    },
    "title" : "ONAP CCSDK - Pre-Spec A1 Policy Management API",
    "version" : "1.3.0",
    "x-api-id" : "a31c510b-20e6-4a08-af16-368c44d7fba8",
    "x-audience" : "external-public"
  },
  "servers" : [ {
    "url" : "/"
  } ],
  "tags" : [ {
    "description" : "Older pre-spec API used to get, create, update and delete A1 Policy Instances. Also used to query A1 Policy Types.\n",
    "name" : "A1 Policy Management"
  }, {
    "description" : "Older API used to get information about registered Near-RT RICs.\n",
    "name" : "NearRT-RIC Repository"
  }, {
    "description" : "Older API used to manage registered services, and control their keep-alive status via heart-beat messages.\n",
    "name" : "Service Registry and Supervision"
  }, {
    "description" : "API used to get the health status and statistics of this service\n",
    "name" : "Health Check"
  }, {
    "description" : "Callout to registered services to indicate a status changes for a Near-RT RIC. Note that these operations are called by the A1 Policy Management Service, not provided.\n",
    "name" : "Service Callbacks"
  }, {
    "description" : "API used for authorization of information A1 policy access (this is provided by an authorization producer such as OPA).  Note that these operations are called by the A1 Policy Management Service, not provided.\n",
    "name" : "Authorization API"
  }, {
    "description" : "API used to create or fetch the application configuration.\n",
    "name" : "Configuration"
  }, {
    "description" : "API used to monitor and configure the A1-PMS Springboot Service.\n",
    "externalDocs" : {
      "description" : "Spring Boot Actuator Web API Documentation",
      "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html"
    },
    "name" : "Actuator API"
  } ],
  "paths" : {
    "/status" : {
      "get" : {
        "description" : "Returns status and statistics of this service",
        "operationId" : "getStatusV1",
        "responses" : {
          "200" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "string"
                }
              }
            },
            "description" : "OK -  Service is living"
          }
        },
        "summary" : "Get Status (getStatusV1)",
        "tags" : [ "Health Check" ]
      }
    },
    "/a1-policy/v2/status" : {
      "get" : {
        "description" : "Returns status and statistics of this service",
        "operationId" : "getStatus",
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "examples" : {
                  "status_info" : {
                    "$ref" : "#/components/examples/status_info"
                  }
                },
                "schema" : {
                  "$ref" : "#/components/schemas/status_info"
                }
              }
            },
            "description" : "OK- Service is living Ok"
          }
        },
        "summary" : "Get Status (getStatus)",
        "tags" : [ "Health Check" ]
      }
    },
    "/a1-policy/v2/rics/ric" : {
      "get" : {
        "description" : "Query information about a Near-RT RIC. Either a Near-RT RIC identity or a Managed Element  identity can be specified. The intention with Managed Element identity is the ID used in O1 for accessing the traffical element (such as the ID of CU).\n",
        "operationId" : "getRic",
        "parameters" : [ {
          "description" : "The identity of a Managed Element. If given, the Near-RT RIC managing the ME is returned.\n",
          "explode" : true,
          "in" : "query",
          "name" : "managed_element_id",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "style" : "form"
        }, {
          "description" : "The identity of a Near-RT RIC to get information for.",
          "explode" : true,
          "in" : "query",
          "name" : "ric_id",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "style" : "form"
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "examples" : {
                  "ric_info" : {
                    "$ref" : "#/components/examples/ric_info"
                  }
                },
                "schema" : {
                  "$ref" : "#/components/schemas/ric_info"
                }
              }
            },
            "description" : "OK - Near-RT RIC is found"
          },
          "404" : {
            "content" : {
              "application/problem+json" : {
                "example" : [ ]
              }
            },
            "description" : "Not Found"
          }
        },
        "summary" : "Get a Near-RT RIC (getRic)",
        "tags" : [ "NearRT-RIC Repository" ]
      }
    },
    "/a1-policy/v2/policy-types" : {
      "get" : {
        "description" : "Query A1 Policy Type identities using query parameters",
        "operationId" : "getPolicyTypes",
        "parameters" : [ {
          "description" : "Select types for the given Near-RT RIC identity.",
          "explode" : true,
          "in" : "query",
          "name" : "ric_id",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "style" : "form"
        }, {
          "description" : "Select types compatible with the given type name (type identity has the format 'typename_version')",
          "explode" : true,
          "in" : "query",
          "name" : "type_name",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "style" : "form"
        }, {
          "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.",
          "explode" : true,
          "in" : "query",
          "name" : "compatible_with_version",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "style" : "form"
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "examples" : {
                  "policy_type_id_list" : {
                    "$ref" : "#/components/examples/policy_type_id_list"
                  }
                },
                "schema" : {
                  "$ref" : "#/components/schemas/policy_type_id_list"
                }
              }
            },
            "description" : "OK - Policy Type IDs Found"
          },
          "404" : {
            "content" : {
              "application/problem+json" : {
                "example" : [ ]
              }
            },
            "description" : "Not Found"
          }
        },
        "summary" : "Get A1 Policy Types (getPolicyTypes)",
        "tags" : [ "A1 Policy Management" ]
      }
    },
    "/a1-policy/v2/policies/{policy_id}" : {
      "delete" : {
        "description" : "Delete an A1 Policy instance using its policy ID.",
        "operationId" : "deletePolicy",
        "parameters" : [ {
          "explode" : false,
          "in" : "path",
          "name" : "policy_id",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/void"
                }
              }
            },
            "description" : "OK - Policy deleted"
          },
          "423" : {
            "content" : {
              "application/problem+json" : {
                "example" : {
                  "status" : 423,
                  "title" : "Locked",
                  "detail" : "Requested resource is in a locked state."
                },
                "schema" : {
                  "$ref" : "#/components/schemas/error_information"
                }
              }
            },
            "description" : "Locked - HTTP Status code which can be used when the state is Locked"
          }
        },
        "summary" : "Delete an A1 Policy instance (deletePolicy)",
        "tags" : [ "A1 Policy Management" ]
      },
      "get" : {
        "description" : "Get an A1 Policy instance using its policy ID",
        "operationId" : "getPolicy",
        "parameters" : [ {
          "explode" : false,
          "in" : "path",
          "name" : "policy_id",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "examples" : {
                  "policy_info" : {
                    "$ref" : "#/components/examples/policy_info"
                  }
                },
                "schema" : {
                  "$ref" : "#/components/schemas/policy_info"
                }
              }
            },
            "description" : "OK - Policy found"
          },
          "404" : {
            "content" : {
              "application/problem+json" : {
                "example" : [ ]
              }
            },
            "description" : "Not Found"
          }
        },
        "summary" : "Get an A1 Policy instance (getPolicy)",
        "tags" : [ "A1 Policy Management" ]
      }
    },
    "/a1-policy/v2/services/{service_id}/keepalive" : {
      "put" : {
        "description" : "A registered service should invoke this operation regularly to indicate that it is still alive. If a registered service fails to invoke some operation, or this operation, before the end of a timeout period the service will be deregistered and all its A1 policies wil be removed. This operation is only intended for registered services. (This timeout can be set or disabled when each service is initially registered)",
        "operationId" : "keepAliveService",
        "parameters" : [ {
          "explode" : false,
          "in" : "path",
          "name" : "service_id",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object"
                }
              }
            },
            "description" : "OK - Service supervision timer refreshed, OK"
          },
          "404" : {
            "content" : {
              "application/problem+json" : {
                "example" : [ ]
              }
            },
            "description" : "Not Found"
          }
        },
        "summary" : "Heartbeat message from a service (keepAliveService)",
        "tags" : [ "Service Registry and Supervision" ]
      }
    },
    "/a1-policy/v2/rics" : {
      "get" : {
        "description" : "Get all Near-RT RICs that supports a given A1 Policy Type ID",
        "operationId" : "getRics",
        "parameters" : [ {
          "description" : "The identity of an A1 Policy Type. If given, all Near-RT RICs supporting the A1 Policy Type are returned.\n",
          "explode" : true,
          "in" : "query",
          "name" : "policytype_id",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "style" : "form"
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "examples" : {
                  "ric_info_list" : {
                    "$ref" : "#/components/examples/ric_info_list"
                  }
                },
                "schema" : {
                  "$ref" : "#/components/schemas/ric_info_list"
                }
              }
            },
            "description" : "OK"
          },
          "404" : {
            "content" : {
              "application/problem+json" : {
                "example" : [ ]
              }
            },
            "description" : "Not Found"
          }
        },
        "summary" : "Get Near-RT RICs for A1 Policy Type (getRics)",
        "tags" : [ "NearRT-RIC Repository" ]
      }
    },
    "/a1-policy/v2/services" : {
      "get" : {
        "description" : "Get information about all registered services, or a single registered service.  If the service ID of a registered service is included in the query, information about that  service is returned. Otherwise Information about all registered is returned. This operation does not retrieve information about unregistered services.\n",
        "operationId" : "getServices",
        "parameters" : [ {
          "description" : "The identity of the registered service",
          "explode" : true,
          "in" : "query",
          "name" : "service_id",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "style" : "form"
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "examples" : {
                  "service_status_list" : {
                    "$ref" : "#/components/examples/service_status_list"
                  }
                },
                "schema" : {
                  "$ref" : "#/components/schemas/service_status_list"
                }
              }
            },
            "description" : "OK"
          },
          "404" : {
            "content" : {
              "application/problem+json" : {
                "example" : [ ]
              }
            },
            "description" : "Not Found"
          }
        },
        "summary" : "Get Services (getServices)",
        "tags" : [ "Service Registry and Supervision" ]
      },
      "put" : {
        "callbacks" : {
          "RICStatus" : {
            "{$request.body#/callback_url}" : {
              "post" : {
                "description" : "Callouts to indicate Near-RT RIC status changes relevant for Services. \nThe URL invoked by this callback is provided at Service registration.\n",
                "operationId" : "serviceCallback",
                "requestBody" : {
                  "content" : {
                    "application/json" : {
                      "schema" : {
                        "$ref" : "#/components/schemas/service_callback_info_v2"
                      }
                    }
                  },
                  "required" : true
                },
                "responses" : {
                  "200" : {
                    "content" : {
                      "application/json" : {
                        "schema" : {
                          "$ref" : "#/components/schemas/void"
                        }
                      }
                    },
                    "description" : "OK"
                  },
                  "404" : {
                    "content" : {
                      "application/problem+json" : {
                        "example" : [ ]
                      }
                    },
                    "description" : "Not Found"
                  }
                },
                "summary" : "Callback for Near-RT RIC status (serviceCallback)",
                "tags" : [ "Service Registry and Supervision", "Service Callbacks" ]
              }
            }
          }
        },
        "description" : "Register a single service, or update a previous registtration.  Service registration is required to get callbacks about available NearRT RICs  and to enable supervision of the service's active status. If a registered service becomes inactive, its policies can be automatically deleted. A1 Policy instances can also be created for unregistered services.  If an unregistered service is later registered, the service's policies are  retained when the service becomes registered. This feature is optional to use.\n",
        "operationId" : "putService",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/service_registration_info"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object"
                }
              }
            },
            "description" : "OK - Service updated"
          },
          "201" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object"
                }
              }
            },
            "description" : "Created - Service created"
          },
          "400" : {
            "content" : {
              "application/problem+json" : {
                "example" : {
                  "status" : 400,
                  "title" : "Bad Request",
                  "detail" : "The provided request is not valid."
                },
                "schema" : {
                  "$ref" : "#/components/schemas/error_information"
                }
              }
            },
            "description" : "Bad Request"
          }
        },
        "summary" : "Register or update a Service (putService)",
        "tags" : [ "Service Registry and Supervision" ]
      }
    },
    "/a1-policy/v2/policy-types/{policytype_id}" : {
      "get" : {
        "description" : "Get an A1 Policy Type definition using its policy type ID",
        "operationId" : "getPolicyTypeDefinition",
        "parameters" : [ {
          "explode" : false,
          "in" : "path",
          "name" : "policytype_id",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "examples" : {
                  "policy_type_definition" : {
                    "$ref" : "#/components/examples/policy_type_definition"
                  }
                },
                "schema" : {
                  "$ref" : "#/components/schemas/policy_type_definition"
                }
              }
            },
            "description" : "OK - schema of the requested A1 Policy Type"
          },
          "404" : {
            "content" : {
              "application/problem+json" : {
                "example" : [ ]
              }
            },
            "description" : "Not Found"
          }
        },
        "summary" : "Get an A1 Policy Type definition (getPolicyTypeDefinition)",
        "tags" : [ "A1 Policy Management" ]
      }
    },
    "/a1-policy/v2/policies" : {
      "get" : {
        "description" : "Retrieve a list of A1 Policy Instance IDs for policies that match given search criteria.  If multiple query parameters are given, the policies matching all conditions are returned.\n",
        "operationId" : "getPolicyIds",
        "parameters" : [ {
          "description" : "Select policies of a given A1 Policy Type ID.",
          "explode" : true,
          "in" : "query",
          "name" : "policytype_id",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "style" : "form"
        }, {
          "description" : "Select policies of a given Near-RT RIC identity.",
          "explode" : true,
          "in" : "query",
          "name" : "ric_id",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "style" : "form"
        }, {
          "description" : "Select policies owned by a given service. (Both registered and unregistered services)",
          "explode" : true,
          "in" : "query",
          "name" : "service_id",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "style" : "form"
        }, {
          "description" : "Select policies of types with the given A1 Policy Type name  (type names have the format 'typename_version')\n",
          "explode" : true,
          "in" : "query",
          "name" : "type_name",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "style" : "form"
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "examples" : {
                  "policy_id_list" : {
                    "$ref" : "#/components/examples/policy_id_list"
                  }
                },
                "schema" : {
                  "$ref" : "#/components/schemas/policy_id_list"
                }
              }
            },
            "description" : "OK - Policy identities"
          },
          "404" : {
            "content" : {
              "application/problem+json" : {
                "example" : [ ]
              }
            },
            "description" : "Not Found"
          }
        },
        "summary" : "Query A1 Policy Instances (getPolicyIds)",
        "tags" : [ "A1 Policy Management" ]
      },
      "put" : {
        "description" : "Create or Update an A1 Policy Instance",
        "operationId" : "putPolicy",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/policy_info"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/void"
                }
              }
            },
            "description" : "OK - Policy updated"
          },
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/void"
                }
              }
            },
            "description" : "Created - Policy created"
          },
          "423" : {
            "content" : {
              "application/problem+json" : {
                "example" : {
                  "status" : 423,
                  "title" : "Locked",
                  "detail" : "Requested resource is in a locked state."
                },
                "schema" : {
                  "$ref" : "#/components/schemas/error_information"
                }
              }
            },
            "description" : "Locked - HTTP Status code which can be used when the state is Locked"
          }
        },
        "summary" : "Create or Update an A1 Policy Instance (putPolicy)",
        "tags" : [ "A1 Policy Management" ]
      }
    },
    "/a1-policy/v2/policy-instances" : {
      "get" : {
        "description" : "Returns a collection of A1 Policy Instance information for policies that match given search criteria.  If several query parameters are defined, the policies matching all conditions are returned.\n",
        "operationId" : "getPolicyInstances",
        "parameters" : [ {
          "description" : "Select policies with a given A1 Policy Type ID.",
          "explode" : true,
          "in" : "query",
          "name" : "policytype_id",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "style" : "form"
        }, {
          "description" : "Select policies for a given Near-RT RIC identity.",
          "explode" : true,
          "in" : "query",
          "name" : "ric_id",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "style" : "form"
        }, {
          "description" : "Select policies owned by a given service (registered or unregistered).",
          "explode" : true,
          "in" : "query",
          "name" : "service_id",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "style" : "form"
        }, {
          "description" : "Select policies of a given A1 Policy Type name (type identity has the format 'typename_version').",
          "explode" : true,
          "in" : "query",
          "name" : "type_name",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "style" : "form"
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "examples" : {
                  "policy_info_list" : {
                    "$ref" : "#/components/examples/policy_info_list"
                  }
                },
                "schema" : {
                  "$ref" : "#/components/schemas/policy_info_list"
                }
              }
            },
            "description" : "OK - Returns A1 Policy Instances which match the criteria"
          },
          "404" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/error_information"
                }
              }
            },
            "description" : "Not Found - Near-RT RIC, A1 Policy Type or service was not found"
          }
        },
        "summary" : "Query for A1 Policy instances (getPolicyInstances)",
        "tags" : [ "A1 Policy Management" ]
      }
    },
    "/a1-policy/v2/services/{service_id}" : {
      "delete" : {
        "description" : "Unregister a registered Service using its service ID.  Only registered services can be unregistered. All A1 Policy Instances  for the previously registered service will be removed.\n",
        "operationId" : "deleteService",
        "parameters" : [ {
          "explode" : false,
          "in" : "path",
          "name" : "service_id",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "responses" : {
          "204" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object"
                }
              }
            },
            "description" : "No Content - Service unregistered"
          },
          "404" : {
            "content" : {
              "application/problem+json" : {
                "example" : [ ]
              }
            },
            "description" : "Not Found"
          }
        },
        "summary" : "Unregister a Service (deleteService)",
        "tags" : [ "Service Registry and Supervision" ]
      }
    },
    "/a1-policy/v2/policies/{policy_id}/status" : {
      "get" : {
        "description" : "Retrieve the status information for an A1 Policy Instance.",
        "operationId" : "getPolicyStatus",
        "parameters" : [ {
          "explode" : false,
          "in" : "path",
          "name" : "policy_id",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "examples" : {
                  "policy_status_info" : {
                    "$ref" : "#/components/examples/policy_status_info"
                  }
                },
                "schema" : {
                  "$ref" : "#/components/schemas/policy_status_info"
                }
              }
            },
            "description" : "OK -  Policy status"
          },
          "404" : {
            "content" : {
              "application/problem+json" : {
                "example" : [ ]
              }
            },
            "description" : "Not Found"
          }
        },
        "summary" : "Get an A1 Policy Instance's status (getPolicyStatus)",
        "tags" : [ "A1 Policy Management" ]
      }
    },
    "/a1-policy/v2/configuration" : {
      "get" : {
        "description" : "Returns the entire contents of the Application Configuration.",
        "operationId" : "getConfiguration",
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "string"
                }
              }
            },
            "description" : "OK - Configuration"
          },
          "404" : {
            "content" : {
              "application/problem+json" : {
                "example" : [ ]
              }
            },
            "description" : "Not Found"
          }
        },
        "summary" : "Get the Application Configuration (getConfiguration)",
        "tags" : [ "Configuration" ]
      },
      "put" : {
        "description" : "Replace the current Application Configuration with a new configuration. The new configuration, if accepted, will take effect after a short delay.  The new configuration must comply with the Application Configuration schema,  which can be found from the the Application Documentation (Developer Guide)\n",
        "operationId" : "putConfiguration",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "object"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/void"
                }
              }
            },
            "description" : "OK - Configuration updated"
          },
          "400" : {
            "content" : {
              "application/problem+json" : {
                "example" : {
                  "status" : 400,
                  "title" : "Bad Request",
                  "detail" : "The provided request is not valid."
                },
                "schema" : {
                  "$ref" : "#/components/schemas/error_information"
                }
              }
            },
            "description" : "Bad Request"
          }
        },
        "summary" : "Set/Replace the Application Configuration (putConfiguration)",
        "tags" : [ "Configuration" ]
      }
    },
    "/example-authz-check" : {
      "post" : {
        "description" : "A template endpoint for callout requests to an external authorization function.  The authorization function, if enabled, decides if individual operations are permitted.\n",
        "operationId" : "performAccessControl",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/policy_authorization"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/authorization_result"
                }
              }
            },
            "description" : "OK"
          },
          "403" : {
            "content" : {
              "application/problem+json" : {
                "example" : {
                  "status" : 403,
                  "title" : "Forbidden",
                  "detail" : "Your role does not allow to perform this action. Contact System Administrator to change your access rights."
                },
                "schema" : {
                  "$ref" : "#/components/schemas/error_information"
                }
              }
            },
            "description" : "Forbidden"
          }
        },
        "summary" : "Callout request for access authorization (performAccessControl)",
        "tags" : [ "Authorization API" ]
      }
    },
    "/actuator" : {
      "get" : {
        "description" : "A1-PMS Springboot Service Actuator web endpoint.  Returns a set of links to available/enabled actuator endpoints.\n",
        "externalDocs" : {
          "description" : "Spring Boot Actuator Web API Documentation",
          "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html"
        },
        "operationId" : "actuatorLinks",
        "responses" : {
          "200" : {
            "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"
                }
              }
            },
            "description" : "OK"
          }
        },
        "summary" : "Actuator endpoint - Root (actuatorLinks)",
        "tags" : [ "Actuator API" ],
        "x-internal" : true
      }
    },
    "/actuator/heapdump" : {
      "get" : {
        "description" : "A1-PMS Springboot Service Actuator web endpoint - HeapDump.\n",
        "externalDocs" : {
          "description" : "Spring Boot Actuator Web API Documentation",
          "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html"
        },
        "operationId" : "actuatorHeapdump",
        "responses" : {
          "200" : {
            "content" : {
              "application/octet-stream" : {
                "schema" : {
                  "type" : "object"
                }
              }
            },
            "description" : "OK"
          }
        },
        "summary" : "Actuator endpoint - Heapdump (actuatorHeapdump)",
        "tags" : [ "Actuator API" ],
        "x-internal" : true
      }
    },
    "/actuator/info" : {
      "get" : {
        "description" : "A1-PMS Springboot Service Actuator web endpoint - Info.\n",
        "externalDocs" : {
          "description" : "Spring Boot Actuator Web API Documentation",
          "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html"
        },
        "operationId" : "actuatorInfo",
        "responses" : {
          "200" : {
            "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"
                }
              }
            },
            "description" : "OK"
          }
        },
        "summary" : "Actuator endpoint - Info (actuatorInfo)",
        "tags" : [ "Actuator API" ],
        "x-internal" : true
      }
    },
    "/actuator/threaddump" : {
      "get" : {
        "description" : "A1-PMS Springboot Service Actuator web endpoint - ThreadDump.\n",
        "externalDocs" : {
          "description" : "Spring Boot Actuator Web API Documentation",
          "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html"
        },
        "operationId" : "actuatorThreaddump",
        "responses" : {
          "200" : {
            "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"
                }
              }
            },
            "description" : "OK"
          }
        },
        "summary" : "Actuator endpoint - Threaddump (actuatorThreaddump)",
        "tags" : [ "Actuator API" ],
        "x-internal" : true
      }
    },
    "/actuator/loggers" : {
      "get" : {
        "description" : "A1-PMS Springboot Service Actuator web endpoint - Get a list of Loggers.\n",
        "externalDocs" : {
          "description" : "Spring Boot Actuator Web API Documentation",
          "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html"
        },
        "operationId" : "actuatorLoggers",
        "responses" : {
          "200" : {
            "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"
                }
              }
            },
            "description" : "OK"
          }
        },
        "summary" : "Actuator endpoint - Get Loggers (actuatorLoggers)",
        "tags" : [ "Actuator API" ],
        "x-internal" : true
      }
    },
    "/actuator/loggers/{name}" : {
      "get" : {
        "description" : "A1-PMS Springboot Service Actuator web endpoint - Get a single named Logger.\n",
        "externalDocs" : {
          "description" : "Spring Boot Actuator Web API Documentation",
          "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html"
        },
        "operationId" : "actuatorGetLogger",
        "parameters" : [ {
          "explode" : false,
          "in" : "path",
          "name" : "name",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "responses" : {
          "200" : {
            "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"
                }
              }
            },
            "description" : "OK"
          }
        },
        "summary" : "Actuator endpoint - Get Logger (actuatorGetLogger)",
        "tags" : [ "Actuator API" ],
        "x-internal" : true
      },
      "post" : {
        "description" : "A1-PMS Springboot Service Actuator web endpoint - Create or Update single named Logger.\n",
        "externalDocs" : {
          "description" : "Spring Boot Actuator Web API Documentation",
          "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html"
        },
        "operationId" : "actuatorSetlogger",
        "parameters" : [ {
          "explode" : false,
          "in" : "path",
          "name" : "name",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "enum" : [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", "OFF" ],
                "type" : "string"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object"
                }
              }
            },
            "description" : "OK"
          }
        },
        "summary" : "Actuator endpoint - Set Logger (actuatorSetlogger)",
        "tags" : [ "Actuator API" ],
        "x-internal" : true
      }
    },
    "/actuator/logfile" : {
      "get" : {
        "description" : "A1-PMS Springboot Service Actuator web endpoint - Get the Log file.\n",
        "externalDocs" : {
          "description" : "Spring Boot Actuator Web API Documentation",
          "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html"
        },
        "operationId" : "actuatorGetLogFile",
        "responses" : {
          "200" : {
            "content" : {
              "text/plain;charset=UTF-8" : {
                "schema" : {
                  "type" : "object"
                }
              }
            },
            "description" : "OK"
          }
        },
        "summary" : "Actuator endpoint - Log File (actuatorGetLogFile)",
        "tags" : [ "Actuator API" ],
        "x-internal" : true
      }
    },
    "/actuator/health" : {
      "get" : {
        "description" : "A1-PMS Springboot Service Actuator web endpoint - Health Check.\n",
        "externalDocs" : {
          "description" : "Spring Boot Actuator Web API Documentation",
          "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html"
        },
        "operationId" : "actuatorHealth",
        "responses" : {
          "200" : {
            "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"
                }
              }
            },
            "description" : "OK"
          }
        },
        "summary" : "Actuator endpoint - Health (actuatorHealth)",
        "tags" : [ "Actuator API" ],
        "x-internal" : true
      }
    },
    "/actuator/health/**" : {
      "get" : {
        "description" : "A1-PMS Springboot Service Actuator web endpoint - Health Status for an Application Component.\n",
        "externalDocs" : {
          "description" : "Spring Boot Actuator Web API Documentation",
          "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html"
        },
        "operationId" : "actuatorHealthComponent",
        "responses" : {
          "200" : {
            "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"
                }
              }
            },
            "description" : "OK"
          }
        },
        "summary" : "Actuator endpoint - Component Health (actuatorHealthComponent)",
        "tags" : [ "Actuator API" ],
        "x-internal" : true
      }
    },
    "/actuator/shutdown" : {
      "post" : {
        "description" : "A1-PMS Springboot Service Actuator web endpoint - Shutdown the Application.\n",
        "externalDocs" : {
          "description" : "Spring Boot Actuator Web API Documentation",
          "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html"
        },
        "operationId" : "actuatorShutdown",
        "responses" : {
          "200" : {
            "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"
                }
              }
            },
            "description" : "OK"
          }
        },
        "summary" : "Actuator endpoint - Shutdown (actuatorShutdown)",
        "tags" : [ "Actuator API" ],
        "x-internal" : true
      }
    },
    "/actuator/metrics" : {
      "get" : {
        "description" : "A1-PMS Springboot Service Actuator web endpoint - Get a list of Application metrics names.\n",
        "externalDocs" : {
          "description" : "Spring Boot Actuator Web API Documentation",
          "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html"
        },
        "operationId" : "actuatorMetrics",
        "responses" : {
          "200" : {
            "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"
                }
              }
            },
            "description" : "OK"
          }
        },
        "summary" : "Actuator endpoint - Metrics (actuatorMetrics)",
        "tags" : [ "Actuator API" ],
        "x-internal" : true
      }
    },
    "/actuator/metrics/{requiredMetricName}" : {
      "get" : {
        "description" : "A1-PMS Springboot Service Actuator web endpoint - Get the value for a named Application metric.\n",
        "externalDocs" : {
          "description" : "Spring Boot Actuator Web API Documentation",
          "url" : "https://docs.spring.io/spring-boot/reference/actuator/endpoints.html"
        },
        "operationId" : "actuatorGetMetric",
        "parameters" : [ {
          "explode" : false,
          "in" : "path",
          "name" : "requiredMetricName",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "responses" : {
          "200" : {
            "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"
                }
              }
            },
            "description" : "OK"
          }
        },
        "summary" : "Actuator endpoint - Get Metric (actuatorGetMetric)",
        "x-internal" : true
      }
    }
  },
  "components" : {
    "examples" : {
      "status_info" : {
        "value" : {
          "status" : "status"
        }
      },
      "ric_info" : {
        "value" : {
          "ric_id" : "ric_id",
          "managed_element_ids" : [ "some_managed_element_id", "some_managed_element_id" ],
          "state" : "UNAVAILABLE",
          "policytype_ids" : [ "some_policytype_id", "some_policytype_id" ]
        }
      },
      "policy_type_id_list" : {
        "description" : "Array of A1 Policy Type id's",
        "value" : {
          "policy_type_id_list" : [ "policytype_id", "policytype_id" ]
        }
      },
      "policy_info" : {
        "description" : "Information for an A1 Policy Instance",
        "value" : {
          "ric_id" : "ric_id1",
          "policy_id" : "policy_id1",
          "transient" : false,
          "service_id" : "service_id1",
          "policy_data" : "{}",
          "status_notification_uri" : "status_notification_uri",
          "policytype_id" : "policytype_id1"
        }
      },
      "ric_info_list" : {
        "value" : {
          "rics" : [ {
            "ric_id" : "ric_id",
            "managed_element_ids" : [ "some_managed_element_id", "some_managed_element_id" ],
            "state" : "UNAVAILABLE",
            "policytype_ids" : [ "policytype_id", "policytype_id" ]
          }, {
            "ric_id" : "ric_id",
            "managed_element_ids" : [ "managed_element_ids", "managed_element_ids" ],
            "state" : "UNAVAILABLE",
            "policytype_ids" : [ "policytype_ids", "policytype_ids" ]
          } ]
        }
      },
      "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 A1 Policy Type",
        "value" : {
          "policy_schema" : "{}"
        }
      },
      "policy_id_list" : {
        "description" : "A list of policy identities",
        "value" : {
          "policy_ids" : [ "some_policy_id", "some_policy_id" ]
        }
      },
      "policy_info_list" : {
        "description" : "List of policy information",
        "value" : {
          "policies" : [ {
            "ric_id" : "ric_id1",
            "policy_id" : "policy_id1",
            "transient" : false,
            "service_id" : "service_id1",
            "policy_data" : "{}",
            "status_notification_uri" : "status_notification_uri",
            "policytype_id" : "policytype_id1"
          }, {
            "ric_id" : "ric_id2",
            "policy_id" : "policy_id2",
            "transient" : true,
            "service_id" : "service_id2",
            "policy_data" : "{}",
            "status_notification_uri" : "status_notification_uri",
            "policytype_id" : "policytype_id2"
          } ]
        }
      },
      "policy_status_info" : {
        "description" : "Status for one A1-P Policy",
        "value" : {
          "last_modified" : "last_modified",
          "status" : {
            "value" : {
              "status" : "status"
            }
          }
        }
      }
    },
    "responses" : {
      "NotFound" : {
        "content" : {
          "application/problem+json" : {
            "example" : [ ]
          }
        },
        "description" : "Not Found"
      },
      "Locked" : {
        "content" : {
          "application/problem+json" : {
            "example" : {
              "status" : 423,
              "title" : "Locked",
              "detail" : "Requested resource is in a locked state."
            },
            "schema" : {
              "$ref" : "#/components/schemas/error_information"
            }
          }
        },
        "description" : "Locked - HTTP Status code which can be used when the state is Locked"
      },
      "BadRequest" : {
        "content" : {
          "application/problem+json" : {
            "example" : {
              "status" : 400,
              "title" : "Bad Request",
              "detail" : "The provided request is not valid."
            },
            "schema" : {
              "$ref" : "#/components/schemas/error_information"
            }
          }
        },
        "description" : "Bad Request"
      },
      "Forbidden" : {
        "content" : {
          "application/problem+json" : {
            "example" : {
              "status" : 403,
              "title" : "Forbidden",
              "detail" : "Your role does not allow to perform this action. Contact System Administrator to change your access rights."
            },
            "schema" : {
              "$ref" : "#/components/schemas/error_information"
            }
          }
        },
        "description" : "Forbidden"
      }
    },
    "schemas" : {
      "status_info" : {
        "properties" : {
          "status" : {
            "description" : "status text",
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "ric_info" : {
        "description" : "Information for a Near-RT RIC",
        "properties" : {
          "ric_id" : {
            "description" : "identity of the Near-RT RIC",
            "type" : "string"
          },
          "managed_element_ids" : {
            "description" : "O1 identities for managed entities",
            "items" : {
              "description" : "O1 identities for managed entities",
              "type" : "string"
            },
            "type" : "array"
          },
          "state" : {
            "description" : "Represents the states for a Near-RT RIC",
            "enum" : [ "UNAVAILABLE", "AVAILABLE", "SYNCHRONIZING", "CONSISTENCY_CHECK" ],
            "type" : "string"
          },
          "policytype_ids" : {
            "description" : "supported A1 Policy Types",
            "items" : {
              "description" : "supported A1 Policy Types",
              "type" : "string"
            },
            "type" : "array"
          }
        },
        "type" : "object"
      },
      "policy_type_id_list" : {
        "description" : "Information about A1 Policy Types",
        "properties" : {
          "policytype_ids" : {
            "description" : "A1 Policy Type identities",
            "items" : {
              "description" : "A1 Policy Type identities",
              "type" : "string"
            },
            "type" : "array"
          }
        },
        "type" : "object"
      },
      "policy_info" : {
        "description" : "Information for one A1-P Policy",
        "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 automatically deleted if the targeted Near-RT RIC restarts  or recovers. If false, the A1 Policy Instance remains, and is re-pushed to the targeted  Near-RT RIC after a restart or recovery. If false, the A1 Policy Instance is maintained and  must be deleted separately in the event of Near-RT RIC restart or recovery. Default is false.\n",
            "example" : false,
            "nullable" : false,
            "type" : "boolean"
          },
          "service_id" : {
            "default" : "",
            "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.  If the service is registered, the A1 Policy Instance will be  subject to the same supervision rules as the the service's other policies.\n",
            "type" : "string"
          },
          "policy_data" : {
            "description" : "the configuration of the policy",
            "type" : "object"
          },
          "status_notification_uri" : {
            "description" : "Callback URI for policy status updates",
            "type" : "string"
          },
          "policytype_id" : {
            "description" : "identity of the A1 Policy Type",
            "type" : "string"
          }
        },
        "required" : [ "policy_data", "policy_id", "policytype_id", "ric_id" ],
        "type" : "object"
      },
      "void" : {
        "description" : "Void/empty",
        "type" : "object"
      },
      "error_information" : {
        "description" : "Problem as defined in https://tools.ietf.org/html/rfc7807",
        "properties" : {
          "detail" : {
            "description" : " A human-readable explanation specific to this occurrence of the problem.",
            "example" : "A1 Policy Type not found",
            "type" : "string"
          },
          "title" : {
            "description" : "A specific error name",
            "example" : "Not Found",
            "type" : "string"
          },
          "status" : {
            "description" : "The HTTP status code generated by the origin server for this occurrence of the problem. ",
            "example" : 404,
            "format" : "int32",
            "type" : "integer"
          }
        },
        "type" : "object"
      },
      "ric_info_list" : {
        "description" : "List of Near-RT RIC information",
        "properties" : {
          "rics" : {
            "description" : "List of Near-RT RIC information",
            "items" : {
              "$ref" : "#/components/schemas/ric_info"
            },
            "type" : "array"
          }
        },
        "type" : "object"
      },
      "service_status_list" : {
        "properties" : {
          "service_list" : {
            "description" : "List of service information",
            "items" : {
              "$ref" : "#/components/schemas/service_status"
            },
            "type" : "array"
          }
        },
        "type" : "object"
      },
      "service_status" : {
        "properties" : {
          "callback_url" : {
            "description" : "callback for notifying of RIC synchronization",
            "type" : "string"
          },
          "service_id" : {
            "description" : "identity of the service",
            "type" : "string"
          },
          "keep_alive_interval_seconds" : {
            "description" : "policy keep alive timeout",
            "format" : "int64",
            "type" : "integer"
          },
          "time_since_last_activity_seconds" : {
            "description" : "time since last invocation by the service",
            "format" : "int64",
            "type" : "integer"
          }
        },
        "type" : "object"
      },
      "service_registration_info" : {
        "description" : "Information for one service",
        "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" : {
            "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.\n",
            "format" : "int64",
            "type" : "integer"
          }
        },
        "required" : [ "service_id" ],
        "type" : "object"
      },
      "service_callback_info_v2" : {
        "description" : "Information transferred in Service callbacks, \nif a callback URL was provided for a registered service\n",
        "properties" : {
          "ric_id" : {
            "description" : "identity of a Near-RT RIC",
            "type" : "string"
          },
          "event_type" : {
            "description" : "values: \n  AVAILABLE: the  Near-RT RIC has become available for A1 Policy management\n",
            "enum" : [ "AVAILABLE" ],
            "type" : "string"
          }
        },
        "required" : [ "event_type", "ric_id" ],
        "type" : "object"
      },
      "policy_type_definition" : {
        "description" : "Contains A1 Policy Type schema definition",
        "properties" : {
          "policy_schema" : {
            "description" : "A1 Policy Type json schema. The schema is a json object following http://json-schema.org/draft-07/schema",
            "type" : "object"
          }
        },
        "type" : "object"
      },
      "policy_id_list" : {
        "description" : "A list of policy identities",
        "example" : {
          "policy_ids" : [ "policy_ids", "policy_ids" ]
        },
        "properties" : {
          "policy_ids" : {
            "description" : "Policy identities",
            "items" : {
              "description" : "Policy identities",
              "type" : "string"
            },
            "type" : "array"
          }
        },
        "type" : "object"
      },
      "policy_info_list" : {
        "description" : "List of policy information",
        "properties" : {
          "policies" : {
            "description" : "List of policy information",
            "items" : {
              "$ref" : "#/components/schemas/policy_info"
            },
            "type" : "array"
          }
        },
        "type" : "object"
      },
      "policy_status_info" : {
        "description" : "Status for one A1-P Policy",
        "properties" : {
          "last_modified" : {
            "description" : "timestamp, last modification time",
            "type" : "string"
          },
          "status" : {
            "description" : "the Policy status",
            "type" : "object"
          }
        },
        "type" : "object"
      },
      "policy_authorization" : {
        "description" : "Authorization request for A1 policy requests",
        "properties" : {
          "input" : {
            "$ref" : "#/components/schemas/input"
          }
        },
        "required" : [ "input" ],
        "type" : "object"
      },
      "input" : {
        "description" : "input",
        "properties" : {
          "access_type" : {
            "description" : "Access type",
            "enum" : [ "READ", "WRITE", "DELETE" ],
            "type" : "string"
          },
          "auth_token" : {
            "description" : "Authorization token",
            "type" : "string"
          },
          "policy_type_id" : {
            "description" : "A1 Policy Type identifier",
            "type" : "string"
          }
        },
        "required" : [ "access_type", "auth_token", "policy_type_id" ],
        "type" : "object"
      },
      "authorization_result" : {
        "description" : "Result of authorization",
        "example" : {
          "result" : true
        },
        "properties" : {
          "result" : {
            "description" : "If true, the access is granted",
            "type" : "boolean"
          }
        },
        "required" : [ "result" ],
        "type" : "object"
      },
      "Link" : {
        "properties" : {
          "templated" : {
            "type" : "boolean"
          },
          "href" : {
            "type" : "string"
          }
        },
        "type" : "object"
      }
    }
  }
}