{
  "openapi": "3.0.0",
  "info": {
    "description": "## Authentication\n\nMost of the API calls that Stream uses require you to be authenticated to the API.\nThe first authentication can either be done through the use of an X509 certificate or using credentials of an account, but every single API call afterwards will need to bear the authentication information nonetheless.\nRegardless of the chosen authentication method, the authorization used must have sufficient permissions to perform the desired operation.\n\n> **NOTE:** Stream can be configured to only allow [X509 Authentication](#x509Authentication)\n\n### Authenticating using API-ID and API-KEY <a name=\"apiid-apikey-authentication\"></a>\n\nThis method of authentication requires you to send your Stream local account credentials as HTTP headers.\nTo check whether the credentials are correct, you can perform a *GET* request on `/api/v1/security/principals/self` and check for the response status:\n```shell\n $ curl https://stream.evertrust.fr/api/v1/security/principals/self -H \"X-API-ID: administrator\" -H \"X-API-KEY: Stream\" -H \"Accept: application/json\"\n```\n\nPossible responses are:\n\n| HTTP Response code | Additional information                                                   |\n|--------------------|--------------------------------------------------------------------------|\n| 200                | The login information were correct                                       |\n| 401                | Authentication error, please refer to the response body for more details |\n\n### Authenticating using an X509 certificate <a name=\"x509Authentication\"></a>\n\nThis method of authentication requires to have an X509 certificate that has the clientAuth EKU and a Stream X509 account with this certificate's Distinguished Name as identifier.\nIt also requires you to have imported the CA that issued this certificate in Stream and turning on the \"Trusted for client authentication\" switch on that CA.\nYou must then present the certificate in the request you are performing.\n\nTo check for the authentication, you can perform a *GET* request on `/api/v1/security/principals/self` :\n\n```shell\n $ curl https://stream.evertrust.fr/api/v1/security/principals/self --cert Stream-login-dev-guide.pem --key Stream-login-dev-guide.key -H \"Accept: application/json\"\n```\n\n\nPossible responses are:\n\n| HTTP Response code | Additional information                                                   |\n|--------------------|--------------------------------------------------------------------------|\n| 200                | The login information were correct                                       |\n| 401                | Authentication error, please refer to the response body for more details |\n\n### Handling next authentications using the Play Session\n\nOnce the first authentication is done, the API generates a cookie called \"PLAY_SESSION\".\nThis cookie holds the authentication information that was used to make the first login (using either previously mentioned method). To save its value for later use, just append the _-c cookies.txt_ to either of the previous curl requests.\nInstead of using the credentials as headers or passing the certificate at each API call, you can use the cookie :\n\n```shell\n $ curl https://stream.evertrust.fr/api/v1/security/principals/self -b cookies.txt -H \"Accept: application/json\"\n```\n### Handling the CSRF Token <a name=\"csrf-token\"></a>\nUsually CSRF tokens are used to protect the api calls coming from frontend. A CSRF token is required when all the following are true:\n- The request method is not GET, HEAD or OPTIONS.\n- The request has one or more Cookie or Authorization headers (like the **basic authentication** header)\n\nYou will receive the following response if a CSRF token is needed but not provided:\n\n<a name=\"Unauthorized-html\"></a>\n```html\n<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n\t<title>Unauthorized</title>\n\n\t<style type=\"text/css\">\n\t\thtml,\n\t\tbody,\n\t\tpre {\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t\tfont-family: Monaco, 'Lucida Console', monospace;\n\t\t\tbackground: #ECECEC;\n\t\t}\n\n\t\th1 {\n\t\t\tmargin: 0;\n\t\t\tbackground: #333;\n\t\t\tpadding: 20px 45px;\n\t\t\tcolor: #fff;\n\t\t\ttext-shadow: 1px 1px 1px rgba(0, 0, 0, .3);\n\t\t\tborder-bottom: 1px solid #111;\n\t\t\tfont-size: 28px;\n\t\t}\n\n\t\tp#detail {\n\t\t\tmargin: 0;\n\t\t\tpadding: 15px 45px;\n\t\t\tbackground: #888;\n\t\t\tborder-top: 4px solid #666;\n\t\t\tcolor: #111;\n\t\t\ttext-shadow: 1px 1px 1px rgba(255, 255, 255, .3);\n\t\t\tfont-size: 14px;\n\t\t\tborder-bottom: 1px solid #333;\n\t\t}\n\t</style>\n</head>\n\n<body>\n\t<h1>Unauthorized</h1>\n\t<p id=\"detail\">\n\t\tYou must be authenticated to access this page.\n\t</p>\n</body>\n\n</html>\n```\n\nREST API are usually stateless and should not need cookies. The authentication [using API-ID and API-KEY](#apiid-apikey-authentication) should be used instead of the basic authentication.\n\nCookies and basic authentication can still be used, in this case you will need to retrieve the token value in the `csrf-token` cookie and put it in a `csrf-token` header as well as sending the cookie back.\n\nThe following part is an example using curl to see how to retrieve the `csrf-token` cookies.\n\nFirst, we make a call to the self api to retrieve the cookies.\n```shell\n $ curl --location 'localhost:9000/api/v1/security/principals/self' --header 'Authorization: Basic YWRtaW5pc3RyYXRvcjpldmVydHJ1c3Q=' -c cookies.txt \n```\n\nOpen the `cookies.txt` file, a csrf-token should be present.\n```text\n# Netscape HTTP Cookie File\n# https://curl.se/docs/http-cookies.html\n# This file was generated by libcurl! Edit at your own risk.\n\n#HttpOnly_localhost     FALSE   /       FALSE   1695723782      PLAY_SESSION    eyJhbGciOiJIUzI1NiJ9.eyJkYXRhIjp7ImlkZW50aWZpZXIiOiJhZG1pbmlzdHJhdG9yIiwibmFtZSI6Ikhvcml6b24gQWRtaW5pc3RyYXRvciIsImlkcFR5cGUiOiJMb2NhbCIsImlkcE5hbWUiOiJsb2NhbCJ9LCJleHAiOjE2OTU3MjM3ODIsIm5iZiI6MTY5NTcyMjg4MiwiaWF0IjoxNjk1NzIyODgyfQ.6hEmvv2Wh68_k2YN3yENOmzikYZigWCcze64PTO_ooE\nlocalhost       FALSE   /       FALSE   0       csrf-token      a7083748beeacdb69d46d27175b357781b5b08c2-1695721881474-92cd447c063b9a12498197d4\n\n```\n\nNow we try to create a user with curl using cookies without the `csrf-token` header.\n\n```shell\n$ curl  --location 'localhost:9000/api/v1/security/principalinfos' --header 'Authorization: Basic YWRtaW5pc3RyYXRvcjpldmVydHJ1c3Q=' --data '{\"identifier\": \"test-user\",\"permissions\": [{\"value\": \"configuration:*\"}]}' -c cookies.txt -b cookies.txt\n```\n\nThe [Unauthorized](#Unauthorized-html) html page appears.\n\nTo validate the csrf token, we need to send the request with a `csrf-token` header containing the token value in the ` csrf-token` cookie.\n\n```shell\n$ curl  --location 'localhost:9000/api/v1/security/principalinfos' --header 'Authorization: Basic YWRtaW5pc3RyYXRvcjpldmVydHJ1c3Q=' --header 'Content-Type: application/json' --header 'csrf-token: a7083748beeacdb69d46d27175b357781b5b08c2-1695721881474-92cd447c063b9a12498197d4' --data '{\"identifier\": \"test-user\",\"permissions\": [{\"value\": \"configuration:*\"}]}' -c cookies.txt -b cookies.txt\n```\n\nThe API should not return the [Unauthorized](#Unauthorized-html) html page. ",
    "title": "Stream API",
    "version": "1.3.0"
  },
  "servers": [
    {
      "url": "http://localhost:9000",
      "description": "local server"
    }
  ],
  "security": [
    {
      "apiId": [],
      "apiKey": []
    },
    {
      "cookieAuth": []
    }
  ],
  "tags": [
    {
      "name": "api.ca",
      "x-displayName": "Certificate Authorities",
      "description": "Certificate Authority API"
    },
    {
      "name": "api.trustchain",
      "x-displayName": "Trust Chains",
      "description": "Trust Chain API"
    },
    {
      "name": "api.crl",
      "x-displayName": "CRLs",
      "description": "CRL API"
    },
    {
      "name": "api.crl.storage",
      "x-displayName": "External CRL Storages",
      "description": "External CRL Storage API"
    },
    {
      "name": "api.extension.eku",
      "x-displayName": "Extended Key Usages",
      "description": "Extension - Extended Key Usage API"
    },
    {
      "name": "api.certificate",
      "x-displayName": "Certificate Information",
      "description": "Search and retrieve certificates"
    },
    {
      "name": "api.template",
      "x-displayName": "Certificate Templates",
      "description": "Use certificate templates to define which information will be present in the issued certificates."
    },
    {
      "name": "api.crypto.keystore",
      "x-displayName": "Keystores",
      "description": "Keystores hold your private keys in secure environments, and can generate high security keys."
    },
    {
      "name": "api.crypto.key",
      "x-displayName": "Keys",
      "description": "Keys are the most important secret ensuring integrity and provenance in your infrastructure."
    },
    {
      "name": "api.crypto.hsm",
      "x-displayName": "Hardware Security Modules",
      "description": "Retrieve information about your Hardware Security Modules"
    },
    {
      "name": "api.security.account",
      "x-displayName": "Accounts",
      "description": "Accounts are able to use the Stream APIs and log in to the web UI. You might use accounts for identifying your users but also use them as technical service accounts, for example to allow Horizon to perform actions on Stream."
    },
    {
      "name": "api.security.credential",
      "x-displayName": "Credentials",
      "description": "Credentials regroup all your login information for third parties, and allow the secret to be easily referenced and secured."
    },
    {
      "name": "api.security.role",
      "x-displayName": "Roles",
      "description": "Use roles to apply a group of permissions to multiple users without having to assign each permission individually."
    },
    {
      "name": "api.security.principal",
      "x-displayName": "Principals",
      "description": "A security principal represents a logged in user in Stream."
    },
    {
      "name": "api.event",
      "x-displayName": "Events",
      "description": "Events are a history of everything that happened on Stream. These contain a lot of details and can be searched on using SEQL (Stream Event Query Language)."
    },
    {
      "name": "api.event.report",
      "x-displayName": "Event Integrity Reports",
      "description": "The event integrity reports allows the user to check that the event logs were not tampered with. None of these routes are available if chainsign is disabled."
    },
    {
      "name": "api.system.proxy",
      "x-displayName": "HTTP Proxies",
      "description": "System - Http Proxy API"
    },
    {
      "name": "api.queue",
      "x-displayName": "Queues",
      "description": "Queue API"
    },
    {
      "name": "api.license",
      "x-displayName": "License",
      "description": "License API"
    },
    {
      "name": "api.adoc",
      "x-displayName": "Configuration cookbook",
      "description": "The configuration cookbook APIs allows the user to export in a human-readable format all the configurations applied to the Stream instance."
    },
    {
      "name": "api.lifecycle",
      "x-displayName": "Certificate Lifecycle",
      "description": "This API allows the management of the certificate lifecycle.\n\nThe lifecycle of a certificate is composed of two steps :\n\n1. The certificate is issued: on an enroll authorized ca using a configured template\n1. The certificate is revoked.\n"
    },
    {
      "name": "api.rfc5280",
      "x-displayName": "RFC5280",
      "description": "This API reads cryptographic objects and sends them back in the Horizon expected format"
    }
  ],
  "paths": {
    "/api/v1/adoc": {
      "get": {
        "description": "Generate the configuration cookbook in adoc format based on the principal administration permission(s)",
        "operationId": "adoc.get",
        "parameters": [
          {
            "in": "query",
            "name": "withTrustChains",
            "required": false,
            "schema": {
              "nullable": true,
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "The Configuration cookbook"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Adoc001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Generate the configuration cookbook in adoc format",
        "tags": [
          "api.adoc"
        ]
      }
    },
    "/api/v1/cas": {
      "get": {
        "description": "List the Certificate Authority(ies)",
        "operationId": "ca.list",
        "parameters": [
          {
            "in": "query",
            "name": "`type`",
            "required": false,
            "schema": {
              "enum": [
                "external",
                "managed"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "oneOf": [
                      {
                        "$ref": "#/components/schemas/models.ca.ExternalCertificateAuthority"
                      },
                      {
                        "$ref": "#/components/schemas/models.ca.ManagedCertificateAuthority"
                      }
                    ]
                  },
                  "type": "array"
                }
              }
            },
            "description": "Certificate Authority list"
          },
          "204": {
            "description": "No Certificate Authority defined"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "List the Certificate Authority(ies)",
        "tags": [
          "api.ca"
        ]
      },
      "post": {
        "description": "Register a new Certificate Authority",
        "operationId": "ca.add",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/models.ca.ExternalCertificateAuthority"
                  },
                  {
                    "$ref": "#/components/schemas/models.ca.ManagedCertificateAuthority"
                  }
                ]
              }
            }
          },
          "description": "Certificate Authority to register",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/models.ca.ExternalCertificateAuthority"
                    },
                    {
                      "$ref": "#/components/schemas/models.ca.ManagedCertificateAuthority"
                    }
                  ]
                }
              }
            },
            "description": "Certificate Authority successfully registered"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Register a new Certificate Authority",
        "tags": [
          "api.ca"
        ]
      },
      "put": {
        "description": "Update an existing Certificate Authority",
        "operationId": "ca.update",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/models.ca.ExternalCertificateAuthority"
                  },
                  {
                    "$ref": "#/components/schemas/models.ca.ManagedCertificateAuthority"
                  }
                ]
              }
            }
          },
          "description": "Certificate Authority to update",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/models.ca.ExternalCertificateAuthority"
                    },
                    {
                      "$ref": "#/components/schemas/models.ca.ManagedCertificateAuthority"
                    }
                  ]
                }
              }
            },
            "description": "Certificate Authority successfully updated"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Update an existing Certificate Authority",
        "tags": [
          "api.ca"
        ]
      }
    },
    "/api/v1/cas/{name}": {
      "delete": {
        "description": "Delete an existing Certificate Authority based on its name",
        "operationId": "ca.delete",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Certificate Authority successfully deleted"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Delete an existing Certificate Authority",
        "tags": [
          "api.ca"
        ]
      },
      "get": {
        "description": "Retrieve an existing Certificate Authority based on its name",
        "operationId": "ca.get",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/models.ca.ExternalCertificateAuthority"
                    },
                    {
                      "$ref": "#/components/schemas/models.ca.ManagedCertificateAuthority"
                    }
                  ]
                }
              }
            },
            "description": "The Certificate Authority"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Retrieve an existing Certificate Authority",
        "tags": [
          "api.ca"
        ]
      },
      "patch": {
        "description": "Migrate an existing External Certificate Authority based on its name",
        "operationId": "ca.migrate",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/models.ca.ManagedCertificateAuthority"
                }
              }
            },
            "description": "The migrated Certificate Authority"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca011"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca012"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Key003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Keystore003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Migrate an existing External Certificate Authority",
        "tags": [
          "api.ca"
        ]
      }
    },
    "/api/v1/cas/{name}/csr": {
      "get": {
        "description": "Generate a certification request (PKCS#10) for an existing Certificate Authority based on its name",
        "operationId": "ca.csr",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/pkcs10": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "The Certificate Authority certification request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca006"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Generate a certification request for an existing Certificate Authority",
        "tags": [
          "api.ca"
        ]
      }
    },
    "/api/v1/cas/{name}/issue": {
      "post": {
        "description": "Issue a new Certificate Authority",
        "operationId": "ca.issue",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/controllers.api.ca.EnrollmentRequest"
              }
            }
          },
          "description": "Certificate Authority enrollment request",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/models.ca.ManagedCertificateAuthority"
                }
              }
            },
            "description": "Certificate Authority successfully issued"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca007"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca008"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca014"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca015"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca016"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca008"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Issue a new Certificate Authority",
        "tags": [
          "api.ca"
        ]
      }
    },
    "/api/v1/cas/{name}/crl": {
      "get": {
        "description": "Request the generation of a new CRL for the considered Certificate Authority. The CRL generation is asynchronous and will be performed at the earliest oppotunity. Regarding the lazy parameter:\n  - If lazy is not specified of set to false, a new CRL will be issued\n  - If lazy is set to true, a new CRL will be issued only if at least one certificate was revoked since the last CRL generation\n",
        "operationId": "ca.crl.gen",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "lazy",
            "required": false,
            "schema": {
              "nullable": true,
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "CRL generation was successfully requested"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca013"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca014"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca016"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "CRL generation request for the considered Certificate Authority",
        "tags": [
          "api.ca"
        ]
      },
      "post": {
        "description": "Upload a CRL for an external Certificate Authority. one cannot uplaod CRL for managed Certificate Authority",
        "operationId": "ca.crl.upload",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "crl": {
                    "format": "binary",
                    "type": "string"
                  }
                },
                "type": "object"
              }
            }
          },
          "description": "The *CRL* file in PEM or DER (binary) format",
          "required": true
        },
        "responses": {
          "204": {
            "description": "CRL was successfully uploaded"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Upload a CRL for an external Certificate Authority",
        "tags": [
          "api.ca"
        ]
      }
    },
    "/api/v1/crl/storages": {
      "get": {
        "description": "List the existing external CRL storage(s)",
        "operationId": "crl.storage.list",
        "parameters": [
          {
            "in": "query",
            "name": "type",
            "required": false,
            "schema": {
              "enum": [
                "ldap",
                "s3"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "oneOf": [
                      {
                        "$ref": "#/components/schemas/models.crl.storage.ldap.LDAPCRLStorage"
                      },
                      {
                        "$ref": "#/components/schemas/models.crl.storage.s3.S3CRLStorage"
                      }
                    ]
                  },
                  "type": "array"
                }
              }
            },
            "description": "External CRL storage(s) list"
          },
          "204": {
            "description": "No external CRL storage defined"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/ExternalCrlStorage001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "List the existing external CRL storage(s)",
        "tags": [
          "api.crl.storage"
        ]
      },
      "post": {
        "description": "Register a new external CRL storage",
        "operationId": "crl.storage.add",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/models.crl.storage.ldap.LDAPCRLStorage"
                  },
                  {
                    "$ref": "#/components/schemas/models.crl.storage.s3.S3CRLStorage"
                  }
                ]
              }
            }
          },
          "description": "External CRL storage to register",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/models.crl.storage.ldap.LDAPCRLStorage"
                    },
                    {
                      "$ref": "#/components/schemas/models.crl.storage.s3.S3CRLStorage"
                    }
                  ]
                }
              }
            },
            "description": "External CRL storage successfully registered"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/ExternalCrlStorage002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/ExternalCrlStorage004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/ExternalCrlStorage001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Register a new external CRL storage",
        "tags": [
          "api.crl.storage"
        ]
      },
      "put": {
        "description": "Update an existing external CRL storage",
        "operationId": "crl.storage.update",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/models.crl.storage.ldap.LDAPCRLStorage"
                  },
                  {
                    "$ref": "#/components/schemas/models.crl.storage.s3.S3CRLStorage"
                  }
                ]
              }
            }
          },
          "description": "The external CRL storage to update",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/models.crl.storage.ldap.LDAPCRLStorage"
                    },
                    {
                      "$ref": "#/components/schemas/models.crl.storage.s3.S3CRLStorage"
                    }
                  ]
                }
              }
            },
            "description": "External CRL storage successfully updated"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/ExternalCrlStorage002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/ExternalCrlStorage003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/ExternalCrlStorage001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Update an existing external CRL storage",
        "tags": [
          "api.crl.storage"
        ]
      }
    },
    "/api/v1/crl/storages/{name}": {
      "delete": {
        "description": "Delete an existing external RL storage based on its name",
        "operationId": "crl.storage.delete",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "External CRL storage successfully deleted"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/ExternalCrlStorage005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/ExternalCrlStorage003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/ExternalCrlStorage001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Delete an existing external CRL storage",
        "tags": [
          "api.crl.storage"
        ]
      },
      "get": {
        "description": "Retrieve an existing external CRL storage based on its name",
        "operationId": "crl.storage.get",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/models.crl.storage.ldap.LDAPCRLStorage"
                    },
                    {
                      "$ref": "#/components/schemas/models.crl.storage.s3.S3CRLStorage"
                    }
                  ]
                }
              }
            },
            "description": "The external CRL storage"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/ExternalCrlStorage003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/ExternalCrlStorage001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Retrieve an existing external CRL storage",
        "tags": [
          "api.crl.storage"
        ]
      }
    },
    "/api/v1/crls": {
      "get": {
        "description": "List the CRL Information",
        "operationId": "crl.list",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/models.crl.CRLInfo"
                  },
                  "type": "array"
                }
              }
            },
            "description": "CRL Information list"
          },
          "204": {
            "description": "No CRL Information"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Crl001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "List the CRL Information",
        "tags": [
          "api.crl"
        ]
      }
    },
    "/api/v1/crls/{ca}": {
      "get": {
        "description": "Retrieve the CRL Information for a specific Certificate Authority",
        "operationId": "crl.get",
        "parameters": [
          {
            "in": "path",
            "name": "ca",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/models.crl.CRLInfo"
                }
              }
            },
            "description": "The CRL Information"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Crl001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Retrieve the CRL Information for a specific Certificate Authority",
        "tags": [
          "api.crl"
        ]
      }
    },
    "/api/v1/crypto/hsms/{library}": {
      "get": {
        "description": "Retrieve the information of an existing hardware security module based on its pkcs11 library",
        "operationId": "crypto.hsm.info",
        "parameters": [
          {
            "in": "path",
            "name": "library",
            "description": "Absolute path to the library on the file system, URL encoded",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/controllers.api.crypto.hsm.HardwareSecurityModuleInfo"
                }
              }
            },
            "description": "The hardware security module information"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Hsm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Retrieve the information of an existing hardware security module",
        "tags": [
          "api.crypto.hsm"
        ]
      }
    },
    "/api/v1/crypto/hsms/{library}/slots": {
      "get": {
        "description": "Retrieve the slot(s) information of an existing hardware security module based on its pkcs11 library",
        "operationId": "crypto.hsm.slot",
        "parameters": [
          {
            "in": "path",
            "name": "library",
            "description": "Absolute path to the library on the file system, URL encoded",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/controllers.api.crypto.hsm.HardwareSecurityModuleSlot"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Hardware security module slot list"
          },
          "204": {
            "description": "No hardware security module slot"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Hsm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Retrieve the slot(s) information of an existing hardware security module",
        "tags": [
          "api.crypto.hsm"
        ]
      }
    },
    "/api/v1/extension/ekus": {
      "get": {
        "description": "List the existing key usages (standards and custom(s))",
        "operationId": "extension.eku.list",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/models.template.extension.eku.ExtendedKeyUsageElement"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Extended key usages"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Eku001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "List the extended key usages",
        "tags": [
          "api.extension.eku"
        ]
      },
      "post": {
        "description": "Register a new custom extended key usage or override the name of a default one",
        "operationId": "extension.eku.add",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/models.template.extension.eku.ExtendedKeyUsageElement"
              }
            }
          },
          "description": "The custom extended key usage to register",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/models.template.extension.eku.ExtendedKeyUsageElement"
                }
              }
            },
            "description": "Custom extended key usage successfully registered"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Eku002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Eku004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Eku001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Register a new custom extended key usage",
        "tags": [
          "api.extension.eku"
        ]
      },
      "put": {
        "description": "Update an existing custom extended key usage",
        "operationId": "extension.eku.update",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/models.template.extension.eku.ExtendedKeyUsageElement"
              }
            }
          },
          "description": "The custom extended key usage to update",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/models.template.extension.eku.ExtendedKeyUsageElement"
                }
              }
            },
            "description": "Custom extended key usage successfully updated"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Eku002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Eku005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Eku003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Eku001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Update an existing custom extended key usage",
        "tags": [
          "api.extension.eku"
        ]
      }
    },
    "/api/v1/extension/ekus/{oid}": {
      "delete": {
        "description": "Delete an existing custom extended key usage based on its OID",
        "operationId": "extension.eku.delete",
        "parameters": [
          {
            "in": "path",
            "name": "oid",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Custom extended key usage successfully deleted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Eku005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Eku006"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Eku003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Eku001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Delete an existing custom extended key usage",
        "tags": [
          "api.extension.eku"
        ]
      },
      "get": {
        "description": "Retrieve an extended key usage based on its OID",
        "operationId": "extension.eku.get",
        "parameters": [
          {
            "in": "path",
            "name": "oid",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/models.template.extension.eku.ExtendedKeyUsageElement"
                }
              }
            },
            "description": "The extended key usage"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Eku003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Eku001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Retrieve an extended key usage",
        "tags": [
          "api.extension.eku"
        ]
      }
    },
    "/api/v1/licenses": {
      "get": {
        "description": "Return the complete information regarding the license:\n   - License validity\n   - License expiration date\nAlong with the library versions\n",
        "operationId": "license.get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/controllers.api.license.LicenseInfo"
                }
              }
            },
            "description": "License and Library information"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Retrieve the license information along with library versions",
        "tags": [
          "api.license"
        ]
      }
    },
    "/api/v1/queues": {
      "get": {
        "description": "List the existing queue(s)",
        "operationId": "queue.list",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/models.queue.Queue"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Queue(s) list"
          },
          "204": {
            "description": "No queue defined"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Queue001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "List the existing queue(s)",
        "tags": [
          "api.queue"
        ]
      },
      "post": {
        "description": "Register a new queue",
        "operationId": "queue.add",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/models.queue.Queue"
              }
            }
          },
          "description": "Queue to register",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/models.queue.Queue"
                }
              }
            },
            "description": "Queue successfully registered"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Queue002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Queue004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Queue001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Register a new queue",
        "tags": [
          "api.queue"
        ]
      },
      "put": {
        "description": "Update an existing queue",
        "operationId": "queue.update",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/models.queue.Queue"
              }
            }
          },
          "description": "The queue to update",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/models.queue.Queue"
                }
              }
            },
            "description": "Queue successfully updated"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Queue002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Queue003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Queue001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Update an existing queue",
        "tags": [
          "api.queue"
        ]
      }
    },
    "/api/v1/queues/{name}": {
      "delete": {
        "description": "Delete an existing queue based on its name",
        "operationId": "queue.delete",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Queue successfully deleted"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Queue005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Queue003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Queue001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Delete an existing queue",
        "tags": [
          "api.queue"
        ]
      },
      "get": {
        "description": "Retrieve an existing queue based on its name",
        "operationId": "queue.get",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/models.queue.Queue"
                }
              }
            },
            "description": "The queue"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Queue003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Queue001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Retrieve an existing queue",
        "tags": [
          "api.queue"
        ]
      }
    },
    "/api/v1/security/credentials": {
      "get": {
        "description": "List the existing credential(s)",
        "operationId": "security.credential.list",
        "parameters": [
          {
            "in": "query",
            "name": "type",
            "description": "Restrict the list to a specific type of credentials",
            "required": false,
            "schema": {
              "enum": [
                "certificate",
                "json",
                "token"
              ],
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "target",
            "description": "Restrict the list to credentials targeting a specific type of object",
            "required": false,
            "schema": {
              "enum": [
                "akv",
                "aws",
                "gcp",
                "s3"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "oneOf": [
                      {
                        "$ref": "#/components/schemas/models.security.credentials.json.JsonTokenCredentials"
                      },
                      {
                        "$ref": "#/components/schemas/models.security.credentials.text.TextCredentials"
                      }
                    ]
                  },
                  "type": "array"
                }
              }
            },
            "description": "Credential(s) list"
          },
          "204": {
            "description": "No credential defined"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Credential001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "List the existing credential(s)",
        "tags": [
          "api.security.credential"
        ]
      },
      "post": {
        "description": "Register a new credential",
        "operationId": "security.credential.add",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/models.security.credentials.json.JsonTokenCredentialsOnSubmit"
                  },
                  {
                    "$ref": "#/components/schemas/models.security.credentials.text.TextCredentialsOnSubmit"
                  }
                ]
              }
            }
          },
          "description": "Credential to register",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/models.security.credentials.json.JsonTokenCredentials"
                    },
                    {
                      "$ref": "#/components/schemas/models.security.credentials.text.TextCredentials"
                    }
                  ]
                }
              }
            },
            "description": "Credential successfully registered"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Credential002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Credential004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Credential001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Register a new credential",
        "tags": [
          "api.security.credential"
        ]
      },
      "put": {
        "description": "Update an existing credential",
        "operationId": "security.credential.update",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/models.security.credentials.json.JsonTokenCredentials"
                  },
                  {
                    "$ref": "#/components/schemas/models.security.credentials.text.TextCredentials"
                  }
                ]
              }
            }
          },
          "description": "The credential to update",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/models.security.credentials.json.JsonTokenCredentials"
                    },
                    {
                      "$ref": "#/components/schemas/models.security.credentials.text.TextCredentials"
                    }
                  ]
                }
              }
            },
            "description": "Credential successfully updated"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Credential002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Credential003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Credential001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Update an existing credential",
        "tags": [
          "api.security.credential"
        ]
      }
    },
    "/api/v1/security/credentials/{name}": {
      "get": {
        "description": "Retrieve an existing credential based on its name",
        "operationId": "security.credential.get",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "description": "Name of the credentials to retrieve",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/models.security.credentials.json.JsonTokenCredentials"
                    },
                    {
                      "$ref": "#/components/schemas/models.security.credentials.text.TextCredentials"
                    }
                  ]
                }
              }
            },
            "description": "The credential"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Credential003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Credential001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Retrieve an existing credential",
        "tags": [
          "api.security.credential"
        ]
      },
      "delete": {
        "description": "Delete an existing credential based on its name",
        "operationId": "security.credential.delete",
        "parameters": [
          {
            "in": "path",
            "description": "Name of the credentials to delete",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Credential successfully deleted"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Credential005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Credential003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Credential001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Delete an existing credential",
        "tags": [
          "api.security.credential"
        ]
      }
    },
    "/api/v1/system/proxies": {
      "get": {
        "description": "List the existing http proxy(ies)",
        "operationId": "system.proxy.list",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/models.proxy.HttpProxy"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Http proxy(ies) list"
          },
          "204": {
            "description": "No http proxy defined"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Proxy001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "List the existing http proxy(ies)",
        "tags": [
          "api.system.proxy"
        ]
      },
      "post": {
        "description": "Register a new http proxy",
        "operationId": "system.proxy.add",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/models.proxy.HttpProxy"
              }
            }
          },
          "description": "Http proxy to register",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/models.proxy.HttpProxy"
                }
              }
            },
            "description": "Http proxy successfully registered"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Proxy002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Proxy004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Proxy001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Register a new http proxy",
        "tags": [
          "api.system.proxy"
        ]
      },
      "put": {
        "description": "Update an existing http proxy",
        "operationId": "system.proxy.update",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/models.proxy.HttpProxy"
              }
            }
          },
          "description": "The http proxy to update",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/models.proxy.HttpProxy"
                }
              }
            },
            "description": "Http proxy successfully updated"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Proxy002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Proxy003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Proxy001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Update an existing http proxy",
        "tags": [
          "api.system.proxy"
        ]
      }
    },
    "/api/v1/system/proxies/{name}": {
      "delete": {
        "description": "Delete an existing http proxy based on its name",
        "operationId": "system.proxy.delete",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Http proxy successfully deleted"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Proxy005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Proxy003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Proxy001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Delete an existing http proxy",
        "tags": [
          "api.system.proxy"
        ]
      },
      "get": {
        "description": "Retrieve an existing http proxy based on its name",
        "operationId": "system.proxy.get",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/models.proxy.HttpProxy"
                }
              }
            },
            "description": "The http proxy"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Proxy003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Proxy001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Retrieve an existing http proxy",
        "tags": [
          "api.system.proxy"
        ]
      }
    },
    "/api/v1/trustchains": {
      "get": {
        "description": "List the trust chain",
        "operationId": "trust.list",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/controllers.api.tc.TrustChainAnchor"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Trust chains list"
          },
          "204": {
            "description": "No trust chain"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Tc001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "List the trust chains",
        "tags": [
          "api.trustchain"
        ]
      }
    },
    "/api/v1/trustchains/{anchor}": {
      "get": {
        "description": "Retrieve the trust chain for a specific Certificate Authority based on the Certificate Authority name",
        "operationId": "trustchain.get",
        "parameters": [
          {
            "in": "path",
            "name": "anchor",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/controllers.api.tc.TrustChainAnchor"
                }
              }
            },
            "description": "The trust chain"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Tc001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Retrieve the trust chain for a specific Certificate Authority",
        "tags": [
          "api.trustchain"
        ]
      }
    },
    "/api/v1/templates": {
      "get": {
        "description": "List the existing certificate template(s)",
        "operationId": "template.certificate.list",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/models.template.certificate.CertificateTemplate"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Certificate template(s) list"
          },
          "204": {
            "description": "No certificate template defined"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/CertificateTemplate001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "List the existing certificate template(s)",
        "tags": [
          "api.template"
        ]
      },
      "post": {
        "description": "Register a new certificate template",
        "operationId": "template.certificate.add",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/models.template.certificate.CertificateTemplate"
              }
            }
          },
          "description": "Certificate template to register",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/models.template.certificate.CertificateTemplate"
                }
              }
            },
            "description": "Certificate template successfully registered"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/CertificateTemplate002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/CertificateTemplate004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/CertificateTemplate001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Register a new certificate template",
        "tags": [
          "api.template"
        ]
      },
      "put": {
        "description": "Update an existing certificate template",
        "operationId": "template.certificate.update",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/models.template.certificate.CertificateTemplate"
              }
            }
          },
          "description": "The certificate template to update",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/models.template.certificate.CertificateTemplate"
                }
              }
            },
            "description": "Certificate template successfully updated"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/CertificateTemplate002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/CertificateTemplate003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/CertificateTemplate001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Update an existing certificate template",
        "tags": [
          "api.template"
        ]
      }
    },
    "/api/v1/templates/{name}": {
      "get": {
        "description": "Retrieve an existing certificate template based on its name",
        "operationId": "template.certificate.get",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/models.template.certificate.CertificateTemplate"
                }
              }
            },
            "description": "The certificate template"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/CertificateTemplate003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/CertificateTemplate001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Retrieve an existing certificate template",
        "tags": [
          "api.template"
        ]
      },
      "delete": {
        "description": "Delete an existing certificate template based on its name",
        "operationId": "template.certificate.delete",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Certificate template successfully deleted"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/CertificateTemplate003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/CertificateTemplate001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Delete an existing certificate template",
        "tags": [
          "api.template"
        ]
      }
    },
    "/api/v1/rfc5280/crl": {
      "post": {
        "description": "Decode a CRL (file)",
        "operationId": "rfc5280.crl.file",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "pkcs10": {
                    "oneOf": [
                      {
                        "format": "binary",
                        "type": "string"
                      },
                      {
                        "format": "byte",
                        "type": "string"
                      }
                    ]
                  }
                },
                "type": "object"
              }
            }
          },
          "description": "The CRL file PEM or DER encoded",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/fr.evertrust.certfactory.crl.CFCrl"
                }
              }
            },
            "description": "Decoded CRL"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Rfc5280004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          }
        },
        "summary": "Decode a CRL (file)",
        "tags": [
          "api.rfc5280"
        ]
      }
    },
    "/api/v1/rfc5280/crl/{pem}": {
      "get": {
        "description": "Decode a CRL (url encoded)",
        "operationId": "rfc5280.crl.pem",
        "parameters": [
          {
            "in": "path",
            "name": "pem",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/fr.evertrust.certfactory.crl.CFCrl"
                }
              }
            },
            "description": "Decoded CRL"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Rfc5280004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          }
        },
        "summary": "Decode a CRL (url encoded)",
        "tags": [
          "api.rfc5280"
        ]
      }
    },
    "/api/v1/rfc5280/tc": {
      "post": {
        "description": "Retrieve the Trust chain from a x509 certificate (file)",
        "operationId": "rfc5280.tc.file",
        "parameters": [
          {
            "in": "query",
            "name": "order",
            "required": false,
            "schema": {
              "enum": [
                "rtl",
                "ltr",
                "irtl",
                "iltr"
              ],
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "x509": {
                    "oneOf": [
                      {
                        "format": "binary",
                        "type": "string"
                      },
                      {
                        "format": "byte",
                        "type": "string"
                      }
                    ]
                  }
                },
                "type": "object"
              }
            }
          },
          "description": "The x509 certificate file PEM or DER encoded",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/fr.evertrust.certfactory.crt.CFCertificate"
                  },
                  "type": "array"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "The trust chain bundle including the specified certificate"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Rfc5280002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Rfc5280001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Retrieve the Trust chain from a x509 certificate (file)",
        "tags": [
          "api.rfc5280"
        ]
      }
    },
    "/api/v1/rfc5280/tc/{pem}": {
      "get": {
        "description": "Retrieve the Trust chain from a x509 certificate (url encoded)",
        "operationId": "rfc5280.tc.pem",
        "parameters": [
          {
            "in": "path",
            "name": "pem",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "order",
            "required": false,
            "schema": {
              "enum": [
                "rtl",
                "ltr",
                "irtl",
                "iltr"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/fr.evertrust.certfactory.crt.CFCertificate"
                  },
                  "type": "array"
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "The trust chain bundle including the specified certificate"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Rfc5280002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Rfc5280001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Retrieve the Trust chain from a x509 certificate (url encoded)",
        "tags": [
          "api.rfc5280"
        ]
      }
    },
    "/api/v1/rfc5280/x509": {
      "post": {
        "description": "Decode a x509 certificate (file)",
        "operationId": "rfc5280.x509.file",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "x509": {
                    "oneOf": [
                      {
                        "format": "binary",
                        "type": "string"
                      },
                      {
                        "format": "byte",
                        "type": "string"
                      }
                    ]
                  }
                },
                "type": "object"
              }
            }
          },
          "description": "The x509 certificate file PEM or DER encoded",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/fr.evertrust.certfactory.crt.CFCertificate"
                }
              }
            },
            "description": "The decoded x509 certificate"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Rfc5280002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          }
        },
        "summary": "Decode a x509 certificate (file)",
        "tags": [
          "api.rfc5280"
        ]
      }
    },
    "/api/v1/rfc5280/x509/{pem}": {
      "get": {
        "description": "Decode a x509 certificate (url encoded)",
        "operationId": "rfc5280.x509.pem",
        "parameters": [
          {
            "in": "path",
            "name": "pem",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/fr.evertrust.certfactory.crt.CFCertificate"
                }
              }
            },
            "description": "The decoded x509 certificate"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Rfc5280002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          }
        },
        "summary": "Decode a x509 certificate (url encoded)",
        "tags": [
          "api.rfc5280"
        ]
      }
    },
    "/api/v1/rfc5280/pkcs10": {
      "post": {
        "description": "Decode a pkcs#10 (file)",
        "operationId": "rfc5280.pkcs10.file",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "pkcs10": {
                    "oneOf": [
                      {
                        "format": "binary",
                        "type": "string"
                      },
                      {
                        "format": "byte",
                        "type": "string"
                      }
                    ]
                  }
                },
                "type": "object"
              }
            }
          },
          "description": "The pkcs#10 file PEM or DER encoded",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/fr.evertrust.certfactory.csr.CFCertificationRequest"
                }
              }
            },
            "description": "Decoded pkcs#10"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Rfc5280003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          }
        },
        "summary": "Decode a pkcs#10 (file)",
        "tags": [
          "api.rfc5280"
        ]
      }
    },
    "/api/v1/rfc5280/pkcs10/{pem}": {
      "get": {
        "description": "Decode a pkcs#10 (url encoded)",
        "operationId": "rfc5280.pkcs10.pem",
        "parameters": [
          {
            "in": "path",
            "name": "pem",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/fr.evertrust.certfactory.csr.CFCertificationRequest"
                }
              }
            },
            "description": "Decoded pkcs#10"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Rfc5280003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          }
        },
        "summary": "Decode a pkcs#10 (url encoded)",
        "tags": [
          "api.rfc5280"
        ]
      }
    },
    "/api/v1/certificates/{id}": {
      "get": {
        "description": "Retrieve a certificate based on its id",
        "operationId": "certificate.get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The Id of the certificate to retrieve",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/controllers.api.certificate.CertificateWithPermissions"
                }
              }
            },
            "description": "The certificate with the associated permissions"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Cert004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Cert001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Retrieve a certificate",
        "tags": [
          "api.certificate"
        ]
      }
    },
    "/api/v1/certificates/search": {
      "post": {
        "description": "Search for certificates using a certificate search query",
        "operationId": "certificate.search",
        "requestBody": {
          "content": {
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/models.search.certificate.CertificateSearchQuery"
              }
            }
          },
          "description": "The certificate search query",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/controllers.api.certificate.CertificateSearchResults"
                }
              }
            },
            "description": "The certificate search results"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Cert002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Sql001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Cert001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Search for certificates",
        "tags": [
          "api.certificate"
        ]
      }
    },
    "/api/v1/certificates/aggregate": {
      "post": {
        "description": "Aggregate certificate using a certificate aggregation query",
        "operationId": "certificate.aggregate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/models.search.certificate.CertificateAggregateQuery"
              }
            }
          },
          "description": "The certificate aggregation query",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/models.search.certificate.CertificateAggregateResult"
                }
              }
            },
            "description": "The aggregation result"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Cert003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Sql001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Cert001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Aggregate certificate",
        "tags": [
          "api.certificate"
        ]
      }
    },
    "/api/v1/events/{id}": {
      "get": {
        "description": "Retrieve a specific event based on its id",
        "operationId": "event.get",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "description": "The Id of the event to retrieve",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/models.event.Event"
                }
              }
            },
            "description": "The Event"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Evt003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Evt001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Retrieve a specific event",
        "tags": [
          "api.event"
        ]
      }
    },
    "/api/v1/events/search/dictionary": {
      "get": {
        "description": "Return the event search dictionary. The dictionary is computed based on the principal and includes:\n  - The list of event module(s);\n  - The list of event code(s);\n  - The list of event detail(s);\n",
        "operationId": "event.dictionary",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/controllers.api.event.EventSearchDictionary"
                }
              }
            },
            "description": "The event search dictionary"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Evt001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Retrieve the event search dictionary",
        "tags": [
          "api.event"
        ]
      }
    },
    "/api/v1/events/search": {
      "post": {
        "description": "Search events based on a event search query (SEQL format)",
        "operationId": "event.search",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/models.search.event.EventSearchQuery"
              }
            }
          },
          "description": "The event search query",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/controllers.api.event.EventSearchResults"
                }
              }
            },
            "description": "The event search results"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Evt002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Sql001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Evt001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Event search",
        "tags": [
          "api.event"
        ]
      }
    },
    "/api/v1/events/integrity": {
      "get": {
        "description": "List the event integrity reports, and automatically checks that no tampering occurred on each report",
        "operationId": "event.report.get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/models.event.integrity.EventIntegrityReport"
                  }
                }
              }
            },
            "description": "The Event Integrity Reports"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/EvtIntegrity002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/EvtIntegrity001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "List all event integrity reports",
        "tags": [
          "api.event.report"
        ]
      }
    },
    "/api/v1/events/integrity/run": {
      "get": {
        "parameters": [
          {
            "in": "query",
            "name": "startFrom",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "The id of the event from which to start the scan. If not defined the oldest event will be used."
          }
        ],
        "description": "Run a scan to verify that events were not tampered with.",
        "operationId": "event.report.run",
        "responses": {
          "204": {
            "description": "Run requested successfully"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/EvtIntegrity002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/EvtIntegrity003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Run an event scan",
        "tags": [
          "api.event.report"
        ]
      }
    },
    "/api/v1/lifecycle/templates": {
      "get": {
        "description": "Before starting a lifecycle operation, a principal can list the Certificate Authority / Template combinations on which it is allowed to perform the specified lifecycle action.",
        "operationId": "lifecycle.list",
        "parameters": [
          {
            "in": "query",
            "name": "permission",
            "required": false,
            "description": "The action on which the principal wants to check its permissions. If none are specified, defaults to `enroll`",
            "schema": {
              "enum": [
                "enroll",
                "revoke",
                "search"
              ],
              "type": "string",
              "nullable": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The list of authorized Certificate Authorities / Templates combinations on which the principal is permitted to perform the requested action",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "properties": {
                      "ca": {
                        "type": "string",
                        "description": "The name of the Certificate Authority",
                        "example": "IssuingCa"
                      },
                      "template": {
                        "type": "string",
                        "description": "The name of the template",
                        "example": "ClientServer"
                      }
                    },
                    "required": [
                      "ca",
                      "template"
                    ]
                  }
                }
              }
            }
          },
          "204": {
            "description": "Principal is not authorized to enroll on any Certificate Authority / Template combination"
          },
          "401": {
            "description": "Unauthorized request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "Forbidden action",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lifecycle001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        },
        "summary": "List authorized Certificate Authorities / Templates for a lifecycle action",
        "tags": [
          "api.lifecycle"
        ]
      }
    },
    "/api/v1/lifecycle/enroll": {
      "post": {
        "description": "Enroll a certificate",
        "operationId": "lifecycle.enroll",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/controllers.api.lifecycle.EnrollmentRequest"
              }
            }
          },
          "description": "Certificate enrollment request",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/models.certificate.Certificate"
                }
              }
            },
            "description": "Certificate successfully enrolled"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lifecycle004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca014"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca015"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lifecycle002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lifecycle003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/CertificateTemplate003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lifecycle001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lifecycle005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Enroll a certificate",
        "tags": [
          "api.lifecycle"
        ]
      }
    },
    "/api/v1/lifecycle/revoke": {
      "post": {
        "description": "Revoke a certificate",
        "operationId": "lifecycle.revoke",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/controllers.api.lifecycle.RevocationRequestWithCert"
                  },
                  {
                    "$ref": "#/components/schemas/controllers.api.lifecycle.RevocationRequestWithSerial"
                  }
                ]
              }
            }
          },
          "description": "Certificate revocation request",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/models.certificate.Certificate"
                }
              }
            },
            "description": "Certificate successfully revoked"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lifecycle006"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca014"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Ca017"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lifecycle007"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lifecycle001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lifecycle006"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lifecycle007"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Revoke a certificate",
        "tags": [
          "api.lifecycle"
        ]
      }
    },
    "/api/v1/security/accounts": {
      "get": {
        "description": "List the existing account(s)",
        "operationId": "security.account.list",
        "parameters": [
          {
            "in": "query",
            "name": "role",
            "required": false,
            "description": "List the accounts with role `role`. If not present, show all accounts",
            "schema": {
              "nullable": true,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "oneOf": [
                      {
                        "$ref": "#/components/schemas/models.security.account.LocalAccount"
                      },
                      {
                        "$ref": "#/components/schemas/models.security.account.X509Account"
                      }
                    ]
                  },
                  "type": "array"
                }
              }
            },
            "description": "Account list"
          },
          "204": {
            "description": "No account defined"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Account001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "List the existing account(s)",
        "tags": [
          "api.security.account"
        ]
      },
      "post": {
        "description": "Register a new account",
        "operationId": "security.account.add",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/models.security.account.LocalAccount"
                  },
                  {
                    "$ref": "#/components/schemas/models.security.account.X509Account"
                  }
                ]
              }
            }
          },
          "description": "Account to register",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/models.security.account.LocalAccountWithPasswordResponse"
                    },
                    {
                      "$ref": "#/components/schemas/models.security.account.X509Account"
                    }
                  ]
                }
              }
            },
            "description": "Account successfully registered"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Account002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Account001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Register a new account",
        "tags": [
          "api.security.account"
        ]
      },
      "put": {
        "description": "Update an existing account",
        "operationId": "security.account.update",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/models.security.account.LocalAccount"
                  },
                  {
                    "$ref": "#/components/schemas/models.security.account.X509Account"
                  }
                ]
              }
            }
          },
          "description": "The account to update",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/models.security.account.LocalAccount"
                    },
                    {
                      "$ref": "#/components/schemas/models.security.account.X509Account"
                    }
                  ]
                }
              }
            },
            "description": "Account successfully updated"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Account002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Account003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Account001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Update an existing account",
        "tags": [
          "api.security.account"
        ]
      }
    },
    "/api/v1/security/accounts/{identifier}/resetpassword": {
      "get": {
        "description": "Update the password for an existing local account based on its identifier",
        "operationId": "security.account.resetPassword",
        "parameters": [
          {
            "in": "path",
            "name": "identifier",
            "required": true,
            "description": "The local account's identifier",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/models.security.account.LocalAccountWithPasswordResponse"
                }
              }
            },
            "description": "The account with the password reset"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Account003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Account001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Update the password for an existing local account",
        "tags": [
          "api.security.account"
        ]
      }
    },
    "/api/v1/security/accounts/{identifier}": {
      "get": {
        "description": "Retrieve an existing account based on its identifier",
        "operationId": "security.account.get",
        "parameters": [
          {
            "in": "path",
            "name": "identifier",
            "required": true,
            "description": "The account's identifier",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/models.security.account.LocalAccount"
                    },
                    {
                      "$ref": "#/components/schemas/models.security.account.X509Account"
                    }
                  ]
                }
              }
            },
            "description": "The account"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Account003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Account001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Retrieve an existing account",
        "tags": [
          "api.security.account"
        ]
      },
      "delete": {
        "description": "Delete an existing account based on its identifier",
        "operationId": "security.account.delete",
        "parameters": [
          {
            "in": "path",
            "name": "identifier",
            "required": true,
            "description": "The account's identifier",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Account successfully deleted"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Account003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Account001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Delete an existing account",
        "tags": [
          "api.security.account"
        ]
      }
    },
    "/api/v1/security/principals/self": {
      "get": {
        "description": "Return the authenticated principal",
        "operationId": "security.principal.self",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/models.security.principal.Principal"
                }
              }
            },
            "description": "The authenticated principal"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Return the authenticated principal",
        "tags": [
          "api.security.principal"
        ]
      }
    },
    "/api/v1/security/principals/logout": {
      "get": {
        "description": "Log out an authenticated principal and flush cached authorization(s). If this method is called by an unauthenticated principal (anonymous), the REST call is nilpotent.\n",
        "operationId": "security.principal.logout",
        "responses": {
          "204": {
            "description": "Principal successfully logged out"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          }
        },
        "summary": "Log out an authenticated principal and flush any cached authorization(s)",
        "tags": [
          "api.security.principal"
        ]
      }
    },
    "/api/v1/security/roles": {
      "get": {
        "description": "List the existing role(s)",
        "operationId": "security.role.list",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/models.security.role.Role"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Role list"
          },
          "204": {
            "description": "No role defined"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Role001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "List the existing role(s)",
        "tags": [
          "api.security.role"
        ]
      },
      "post": {
        "description": "Register a new role",
        "operationId": "security.role.add",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/models.security.role.Role"
              }
            }
          },
          "description": "Role to register",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/models.security.role.Role"
                }
              }
            },
            "description": "Role successfully registered"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Role002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Role004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Role001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Register a new role",
        "tags": [
          "api.security.role"
        ]
      },
      "put": {
        "description": "Update an existing role",
        "operationId": "security.role.update",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/models.security.role.Role"
              }
            }
          },
          "description": "The role to update",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/models.security.role.Role"
                }
              }
            },
            "description": "Role successfully updated"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Role002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Role003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Role001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Update an existing role",
        "tags": [
          "api.security.role"
        ]
      }
    },
    "/api/v1/security/roles/{name}": {
      "get": {
        "description": "Retrieve an existing role based on its name",
        "operationId": "security.role.get",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "description": "Name of the role to retrieve",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/models.security.role.Role"
                }
              }
            },
            "description": "The role"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Role003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Role001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Retrieve an existing role",
        "tags": [
          "api.security.role"
        ]
      },
      "delete": {
        "description": "Delete an existing role based on its name",
        "operationId": "security.role.delete",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "description": "Name of the role to delete",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Role successfully deleted"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Role003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Role001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Delete an existing role",
        "tags": [
          "api.security.role"
        ]
      }
    },
    "/api/v1/crypto/keystores": {
      "get": {
        "description": "List the existing keystore(s)",
        "operationId": "crypto.keystore.list",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "oneOf": [
                      {
                        "$ref": "#/components/schemas/models.crypto.keystore.azure.AzureKeystore"
                      },
                      {
                        "$ref": "#/components/schemas/models.crypto.keystore.aws.AWSKeystore"
                      },
                      {
                        "$ref": "#/components/schemas/models.crypto.keystore.gcp.GCloudKeystore"
                      },
                      {
                        "$ref": "#/components/schemas/models.crypto.keystore.pkcs11.PKCS11Keystore"
                      },
                      {
                        "$ref": "#/components/schemas/models.crypto.keystore.software.SoftwareKeystore"
                      }
                    ]
                  },
                  "type": "array"
                }
              }
            },
            "description": "Keystore(s) list"
          },
          "204": {
            "description": "No keystore defined"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Keystore001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "List the existing keystore(s)",
        "tags": [
          "api.crypto.keystore"
        ]
      },
      "post": {
        "description": "Register a new keystore",
        "operationId": "crypto.keystore.add",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/models.crypto.keystore.azure.AzureKeystore"
                  },
                  {
                    "$ref": "#/components/schemas/models.crypto.keystore.aws.AWSKeystore"
                  },
                  {
                    "$ref": "#/components/schemas/models.crypto.keystore.gcp.GCloudKeystore"
                  },
                  {
                    "$ref": "#/components/schemas/models.crypto.keystore.pkcs11.PKCS11KeystoreAdd"
                  },
                  {
                    "$ref": "#/components/schemas/models.crypto.keystore.software.SoftwareKeystore"
                  }
                ]
              }
            }
          },
          "description": "Keystore to register",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/models.crypto.keystore.azure.AzureKeystore"
                    },
                    {
                      "$ref": "#/components/schemas/models.crypto.keystore.aws.AWSKeystore"
                    },
                    {
                      "$ref": "#/components/schemas/models.crypto.keystore.gcp.GCloudKeystore"
                    },
                    {
                      "$ref": "#/components/schemas/models.crypto.keystore.pkcs11.PKCS11Keystore"
                    },
                    {
                      "$ref": "#/components/schemas/models.crypto.keystore.software.SoftwareKeystore"
                    }
                  ]
                }
              }
            },
            "description": "Keystore successfully registered"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Keystore002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Keystore004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Keystore001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Register a new keystore",
        "tags": [
          "api.crypto.keystore"
        ]
      },
      "put": {
        "description": "Update an existing keystore",
        "operationId": "crypto.keystore.update",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/models.crypto.keystore.azure.AzureKeystore"
                  },
                  {
                    "$ref": "#/components/schemas/models.crypto.keystore.aws.AWSKeystore"
                  },
                  {
                    "$ref": "#/components/schemas/models.crypto.keystore.gcp.GCloudKeystore"
                  },
                  {
                    "$ref": "#/components/schemas/models.crypto.keystore.pkcs11.PKCS11Keystore"
                  },
                  {
                    "$ref": "#/components/schemas/models.crypto.keystore.software.SoftwareKeystore"
                  }
                ]
              }
            }
          },
          "description": "The keystore to update",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/models.crypto.keystore.azure.AzureKeystore"
                    },
                    {
                      "$ref": "#/components/schemas/models.crypto.keystore.aws.AWSKeystore"
                    },
                    {
                      "$ref": "#/components/schemas/models.crypto.keystore.gcp.GCloudKeystore"
                    },
                    {
                      "$ref": "#/components/schemas/models.crypto.keystore.pkcs11.PKCS11Keystore"
                    },
                    {
                      "$ref": "#/components/schemas/models.crypto.keystore.software.SoftwareKeystore"
                    }
                  ]
                }
              }
            },
            "description": "Keystore successfully updated"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Keystore002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Keystore003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Keystore001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Update an existing keystore",
        "tags": [
          "api.crypto.keystore"
        ]
      }
    },
    "/api/v1/crypto/keystores/{name}": {
      "get": {
        "description": "Retrieve an existing keystore based on its name",
        "operationId": "crypto.keystore.get",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The Keystore's name"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/models.crypto.keystore.azure.AzureKeystore"
                    },
                    {
                      "$ref": "#/components/schemas/models.crypto.keystore.aws.AWSKeystore"
                    },
                    {
                      "$ref": "#/components/schemas/models.crypto.keystore.gcp.GCloudKeystore"
                    },
                    {
                      "$ref": "#/components/schemas/models.crypto.keystore.pkcs11.PKCS11Keystore"
                    },
                    {
                      "$ref": "#/components/schemas/models.crypto.keystore.software.SoftwareKeystore"
                    }
                  ]
                }
              }
            },
            "description": "The keystore"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Keystore003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Keystore001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Retrieve an existing keystore",
        "tags": [
          "api.crypto.keystore"
        ]
      },
      "delete": {
        "description": "Delete an existing keystore based on its name",
        "operationId": "crypto.keystore.delete",
        "parameters": [
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The Keystore's name"
          }
        ],
        "responses": {
          "204": {
            "description": "Keystore successfully deleted"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Keystore005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Keystore003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Keystore001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Delete an existing keystore",
        "tags": [
          "api.crypto.keystore"
        ]
      }
    },
    "/api/v1/crypto/keys/{keystoreName}": {
      "get": {
        "description": "List the existing key(s) on a keystore",
        "operationId": "crypto.key.list",
        "parameters": [
          {
            "in": "path",
            "name": "keystoreName",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The Keystore's name"
          },
          {
            "in": "query",
            "name": "unusedOnly",
            "required": false,
            "schema": {
              "nullable": true,
              "type": "boolean"
            },
            "description": "List only keys that are not used anywhere"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/models.crypto.key.PrivateKey"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Private key(s) list"
          },
          "204": {
            "description": "No key defined"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Keystore003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Key001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Keystore001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "List the existing key(s) on a keystore",
        "tags": [
          "api.crypto.key"
        ]
      },
      "post": {
        "description": "Find the existing key(s) on a keystore corresponding to a specified Certificate Authority",
        "operationId": "crypto.key.findbyca",
        "parameters": [
          {
            "in": "path",
            "name": "keystoreName",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The Keystore's name"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/controllers.api.crypto.key.CertificateAuthorityKeysRequest"
              }
            }
          },
          "description": "Search request for Certificate Authority Keys",
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/models.crypto.key.PrivateKey"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Private key(s) list"
          },
          "204": {
            "description": "No key defined"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Key006"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Keystore003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Key001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Keystore001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Find the existing key(s) on a keystore corresponding to a specified Certificate Authority",
        "tags": [
          "api.crypto.key"
        ]
      }
    },
    "/api/v1/crypto/keys": {
      "post": {
        "description": "Generate a new Private Key on a keystore",
        "operationId": "crypto.key.add",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/controllers.api.crypto.key.PrivateKeyGenerationRequest"
              }
            }
          },
          "description": "Private Key generation request",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/models.crypto.key.PrivateKey"
                }
              }
            },
            "description": "Private Key successfully generated"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Key002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            400
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Key004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Keystore003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Key001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Keystore001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Generate a new Private Key on a keystore",
        "tags": [
          "api.crypto.key"
        ]
      }
    },
    "/api/v1/crypto/keys/{keystoreName}/{keyName}": {
      "get": {
        "description": "Get an existing key(s) on a keystore based on its name",
        "operationId": "crypto.key.get",
        "parameters": [
          {
            "in": "path",
            "name": "keystoreName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "keyName",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/models.crypto.key.PrivateKey"
                }
              }
            },
            "description": "The Private key"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Key003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Keystore003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Key001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Keystore001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Get an existing key on a keystore",
        "tags": [
          "api.crypto.key"
        ]
      },
      "delete": {
        "description": "Delete an existing key on a keystore based on its name",
        "operationId": "crypto.key.delete",
        "parameters": [
          {
            "in": "path",
            "name": "keystoreName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "keyName",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Private Key successfully deleted"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth004"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth009"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth010"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            401
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Unauthorized request"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Key005"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Lic002"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecPerm001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            403
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Forbidden action"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Key003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Keystore003"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            404
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Key001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Keystore001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    },
                    {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/SecAuth001"
                        }
                      ],
                      "properties": {
                        "status": {
                          "enum": [
                            500
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            },
            "description": "Internal Server error"
          }
        },
        "summary": "Delete an existing key on a keystore",
        "tags": [
          "api.crypto.key"
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "apiId": {
        "description": "An Horizon local identity identifier",
        "type": "apiKey",
        "in": "header",
        "name": "X-API-ID"
      },
      "apiKey": {
        "description": "The local identity password",
        "type": "apiKey",
        "in": "header",
        "name": "X-API-KEY"
      },
      "cookieAuth": {
        "type": "apiKey",
        "in": "cookie",
        "name": "PLAY_SESSION"
      }
    },
    "schemas": {
      "BasicError": {
        "properties": {
          "error": {
            "description": "The error code of the problem",
            "type": "string"
          },
          "message": {
            "description": "A short, human-readable summary of the problem type",
            "type": "string"
          },
          "detail": {
            "type": "string",
            "description": "A human-readable explanation specific to this occurrence of the problem. In compliance with [RFC7807](https://datatracker.ietf.org/doc/html/rfc7807)",
            "nullable": true,
            "example": "Details about the error"
          },
          "status": {
            "type": "integer",
            "description": "The http status code of the error. In compliance with [RFC7807](https://datatracker.ietf.org/doc/html/rfc7807)",
            "example": 400
          },
          "title": {
            "type": "string",
            "description": "A short, human-readable summary of the problem type. In compliance with [RFC7807](https://datatracker.ietf.org/doc/html/rfc7807)"
          }
        },
        "required": [
          "error",
          "message",
          "title",
          "status"
        ]
      },
      "SecAuth001": {
        "title": "SEC-AUTH-001",
        "description": "Unexpected error",
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "properties": {
          "error": {
            "enum": [
              "SEC-AUTH-001"
            ]
          },
          "message": {
            "enum": [
              "Unexpected error"
            ]
          },
          "title": {
            "enum": [
              "Unexpected error"
            ]
          }
        }
      },
      "SecAuth002": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Invalid credentials or account does not exist",
        "properties": {
          "error": {
            "enum": [
              "SEC-AUTH-002"
            ]
          },
          "message": {
            "enum": [
              "Invalid credentials or account does not exist"
            ]
          },
          "title": {
            "enum": [
              "Invalid credentials or account does not exist"
            ]
          }
        },
        "title": "SEC-AUTH-002"
      },
      "SecAuth009": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Authentication expired",
        "properties": {
          "error": {
            "enum": [
              "SEC-AUTH-009"
            ]
          },
          "message": {
            "enum": [
              "Authentication expired"
            ]
          },
          "title": {
            "enum": [
              "Authentication expired"
            ]
          }
        },
        "title": "SEC-AUTH-009"
      },
      "SecAuth010": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Principal not authenticated or authentication expired",
        "properties": {
          "error": {
            "enum": [
              "SEC-AUTH-010"
            ]
          },
          "message": {
            "enum": [
              "Principal not authenticated or authentication expired"
            ]
          },
          "title": {
            "enum": [
              "Principal not authenticated or authentication expired"
            ]
          }
        },
        "title": "SEC-AUTH-010"
      },
      "Lic001": {
        "title": "LIC-001",
        "description": "Invalid License",
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "properties": {
          "error": {
            "enum": [
              "LIC-001"
            ]
          },
          "message": {
            "enum": [
              "Invalid License"
            ]
          },
          "title": {
            "enum": [
              "Invalid License"
            ]
          }
        }
      },
      "Lic002": {
        "title": "LIC-002",
        "description": "Expired License",
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "properties": {
          "error": {
            "enum": [
              "LIC-002"
            ]
          },
          "message": {
            "enum": [
              "Expired License"
            ]
          },
          "title": {
            "enum": [
              "Expired License"
            ]
          }
        }
      },
      "SecPerm001": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Insufficient privileges",
        "properties": {
          "error": {
            "enum": [
              "SEC-PERM-001"
            ]
          },
          "message": {
            "enum": [
              "Insufficient privileges"
            ]
          },
          "title": {
            "enum": [
              "Insufficient privileges"
            ]
          }
        },
        "title": "SEC-PERM-001"
      },
      "Adoc001": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Unexpected error",
        "properties": {
          "error": {
            "enum": [
              "ADOC-001"
            ]
          },
          "message": {
            "enum": [
              "Unexpected error"
            ]
          },
          "title": {
            "enum": [
              "Unexpected error"
            ]
          }
        },
        "title": "ADOC-001"
      },
      "Id": {
        "title": "Internal ID",
        "description": "Object internal ID",
        "type": "string",
        "example": "6448d56b310000400063f014",
        "pattern": "^[a-f\\d]{24}$"
      },
      "models.ca.CertificateAuthority": {
        "title": "External Certificate Authority",
        "description": "A Certificate Authority known by Stream but not managed",
        "properties": {
          "id": {
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Id"
              }
            ]
          },
          "type": {
            "description": "The type of Certificate Authority",
            "type": "string",
            "example": "managed"
          },
          "name": {
            "description": "The name of the Certificate Authority",
            "type": "string",
            "example": "MyCA"
          },
          "certificate": {
            "nullable": true,
            "type": "string",
            "format": "X509 PEM encoded certificate",
            "example": "-----BEGIN CERTIFICATE----- ...",
            "description": "The certificate of the Certificate Authority"
          },
          "trustedForClientAuthentication": {
            "type": "boolean",
            "description": "If true, certificates emitted by this Certificate Authority can be used for client authentication on Stream"
          },
          "trustedForServerAuthentication": {
            "type": "boolean",
            "description": "If true, certificates emitted by this Certificate Authority can be used for server authentication by Stream"
          },
          "revoked": {
            "description": "If true, the Certificate Authority is revoked",
            "default": false,
            "type": "boolean",
            "nullable": true
          },
          "revocationDate": {
            "type": "string",
            "description": "The revocation date of this Certificate Authority",
            "format": "date-time",
            "nullable": true
          },
          "revocationReason": {
            "type": "string",
            "nullable": true,
            "description": "The revocation reason of this Certificate Authority",
            "enum": [
              "UNSPECIFIED",
              "KEYCOMPROMISE",
              "CACOMPROMISE",
              "AFFILIATIONCHANGE",
              "SUPERSEDED",
              "CESSATIONOFOPERATION"
            ]
          },
          "externalCrlStorages": {
            "description": "CRL Storages on which to send the CRL for this Certificate Authority",
            "type": "array",
            "example": [
              "s3-crl-storage"
            ],
            "nullable": true,
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "id",
          "type",
          "name",
          "trustedForClientAuthentication",
          "trustedForServerAuthentication"
        ]
      },
      "models.ca.ExternalCertificateAuthority": {
        "title": "External Certificate Authority",
        "description": "A Certificate Authority known by Stream but not managed",
        "allOf": [
          {
            "$ref": "#/components/schemas/models.ca.CertificateAuthority"
          }
        ],
        "properties": {
          "type": {
            "enum": [
              "external"
            ]
          },
          "crlUrls": {
            "description": "URLs on which to find this Certificate Authority's CRL",
            "type": "array",
            "nullable": true,
            "example": [
              "http://crl.evertrust.fr/MyCA"
            ],
            "items": {
              "type": "string"
            }
          },
          "refresh": {
            "description": "The refresh period of this Certificate Authority's CRL",
            "nullable": true,
            "type": "string",
            "format": "Finite Duration",
            "pattern": "^([0-9]+) *(ms|millisecond|milliseconds|s|second|seconds|m|minute|minutes|h|hour|hours|d|day|days)$",
            "example": "15 minutes"
          },
          "outdatedRevocationStatusPolicy": {
            "type": "string",
            "description": "Defined the behavior when the revocation information is not up to date. `revoked` considers all certificates to be revoked even if they were not revoked on the last know status. `unknown` considers their status as unknown, and `lastavailablestatus` will consider them revoked if they were revoked, and valid otherwise",
            "enum": [
              "revoked",
              "unknown",
              "lastavailablestatus"
            ]
          },
          "timeout": {
            "nullable": true,
            "description": "HTTP Request timeouts to fetch this Certificate Authority's CRL",
            "type": "string",
            "format": "Finite Duration",
            "pattern": "^([0-9]+) *(ms|millisecond|milliseconds|s|second|seconds|m|minute|minutes|h|hour|hours|d|day|days)$",
            "example": "20 seconds"
          },
          "proxy": {
            "description": "HTTP Proxy to access this Certificate Authority's CRL",
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "id",
          "type",
          "name",
          "trustedForClientAuthentication",
          "trustedForServerAuthentication",
          "outdatedRevocationStatusPolicy"
        ]
      },
      "models.ca.CertificateAuthorityPrivateKey": {
        "title": "Certificate Authority Private Key",
        "description": "This certificate Authority's private key",
        "properties": {
          "keystore": {
            "description": "The Keystore in which the key is stored",
            "type": "string",
            "example": "pkcs11-keystore"
          },
          "name": {
            "description": "The name of the key in the keystore",
            "type": "string",
            "example": "MyCAKey"
          },
          "usePSS": {
            "type": "boolean",
            "description": "For RSA Keys in PKCS11 Keystores only: use the PSS signature algorithm",
            "nullable": true
          }
        },
        "required": [
          "keystore",
          "name"
        ]
      },
      "models.template.extension.aia.AuthorityInformationAccess": {
        "title": "Authority Information Access",
        "description": "AIAs to add to the certificate",
        "properties": {
          "certificate": {
            "type": "array",
            "nullable": true,
            "description": "List of URIs on which the Certificate Authority certificate can be found",
            "items": {
              "type": "string",
              "example": "http://pem.evertrust.fr/IssuingCA"
            }
          },
          "ocsp": {
            "type": "array",
            "nullable": true,
            "description": "List of URIs on which the OCSP Responder of the Certificate Authority can be accessed",
            "items": {
              "example": "http://ocsp.evertrust.fr/IssuingCA",
              "type": "string"
            }
          }
        }
      },
      "models.template.extension.policy.CertificatePolicy": {
        "title": "Certificate Policy",
        "description": "Certificate Policy to add to the certificate",
        "properties": {
          "oid": {
            "description": "Object Identifier of the Policy",
            "type": "string",
            "example": "1.3.89.5809.638.10.910.753.620"
          },
          "cpsPointer": {
            "description": "URI to a Certification Practice Statement document",
            "type": "string",
            "nullable": true,
            "example": "https://documents.evertrust.fr/policy1"
          }
        },
        "required": [
          "oid"
        ]
      },
      "models.template.extension.qcs.QCTransactionLimit": {
        "title": "Transaction Limit Statement",
        "description": "This indicates the limits of the transactions the certificate is qualified for. The maximum amount is calculated by: `valueLimit * 10^(valueLimitExp)`",
        "properties": {
          "valueLimit": {
            "description": "The maximum amount this certificate is qualified for simplified to the lowest power of 10",
            "example": 3622,
            "type": "integer",
            "format": "int32"
          },
          "valueLimitExp": {
            "description": "The exponent of the power of 10 to multiply with `valueLimit` to get the maximum amount",
            "type": "integer",
            "format": "int32",
            "example": 4
          },
          "currencyCode": {
            "example": "EUR",
            "type": "string",
            "description": "The [ISO-4217](https://www.iso.org/iso-4217-currency-codes.html) currency code for this limit"
          }
        },
        "required": [
          "valueLimit",
          "valueLimitExp",
          "currencyCode"
        ]
      },
      "models.template.extension.qcs.QCStatement": {
        "title": "Qualified Certificate Statements",
        "description": "The Qualified Certificate Statements to add to the emitted certificates",
        "properties": {
          "eTSIQCCompliance": {
            "description": "If true, the certificate is a Qualified Certificate",
            "type": "boolean"
          },
          "eTSIQCSSCD": {
            "description": "If true, the private key of the certificate resides in a Secure Signature Creation Device",
            "type": "boolean"
          },
          "eTSIRetentionPeriod": {
            "type": "integer",
            "description": "This indicates the duration of the retention period of material information in years",
            "format": "int32",
            "example": 3
          },
          "eTSIQCType": {
            "description": "This indicates which type of document can be signed by the certificate",
            "enum": [
              "ESEAL",
              "ESIGN",
              "WEB",
              "NONE"
            ]
          },
          "eTSIPDS": {
            "description": "The PKI Disclosure Statements URI for a specified language",
            "format": "language-code: url-to-document-in-this-language",
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true,
            "example": {
              "fr": "http://document.evertrust.fr/qualifiedCertificateFR",
              "en": "http://document.evertrust.fr/qualifiedCertificateEN"
            }
          },
          "eTSITransactionLimit": {
            "nullable": true,
            "$ref": "#/components/schemas/models.template.extension.qcs.QCTransactionLimit"
          },
          "eTSILegislation": {
            "description": "The alpha-2 [ISO-3166](https://www.iso.org/iso-3166-country-codes.html) country codes where the certificate is qualified",
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            },
            "example": [
              "FR",
              "EN"
            ]
          }
        },
        "required": [
          "eTSIQCCompliance",
          "eTSIQCSSCD",
          "eTSIRetentionPeriod",
          "eTSIQCType"
        ]
      },
      "models.ca.CertificateAuthorityOverridePermissions": {
        "title": "Override Permissions",
        "description": "This indicates which properties can be overriden in the enrollment request",
        "properties": {
          "ku": {
            "type": "boolean",
            "nullable": true,
            "description": "If true, the Key Usages can be redefined in the enrollment request"
          },
          "eku": {
            "type": "boolean",
            "nullable": true,
            "description": "If true, the Extended Key Usages can be redefined in the enrollment request"
          },
          "emptyExtensions": {
            "type": "boolean",
            "nullable": true,
            "description": "If true, the Empty Extensions can be redefined in the enrollment request"
          },
          "crldps": {
            "type": "boolean",
            "nullable": true,
            "description": "If true, the CRL Distribution Points can be redefined in the enrollment request"
          },
          "aia": {
            "type": "boolean",
            "nullable": true,
            "description": "If true, the Authority Information Access can be redefined in the enrollment request"
          },
          "policy": {
            "type": "boolean",
            "nullable": true,
            "description": "If true, the Certificate Policy can be redefined in the enrollment request"
          },
          "pathlen": {
            "type": "boolean",
            "nullable": true,
            "description": "If true, the length of the certification path can be redefined in the enrollment request"
          },
          "lifetime": {
            "type": "boolean",
            "nullable": true,
            "description": "If true, the certificate's lifetime can be redefined in the enrollment request"
          },
          "backdate": {
            "type": "boolean",
            "nullable": true,
            "description": "If true, the certificate's backdate can be redefined in the enrollment request"
          },
          "checkPoP": {
            "type": "boolean",
            "description": "If true, the need to check the proof of possession can be redefined in the enrollment request",
            "nullable": true
          }
        }
      },
      "models.ca.CRLPolicy": {
        "title": "CRL Generation Policy",
        "description": "Define how to generate the CRL fot his Certificate Authority",
        "properties": {
          "hardGeneration": {
            "nullable": true,
            "type": "string",
            "format": "Quartz Cron",
            "description": "The CRL will be generated at each period",
            "example": "0 0/5 * * * ?"
          },
          "lazyGeneration": {
            "nullable": true,
            "type": "string",
            "format": "Quartz Cron",
            "description": "The CRL will be checked at each period and generated if a new entry was added",
            "example": "0 0/5 * * * ?"
          },
          "validity": {
            "description": "The duration of the CRL's validity",
            "type": "string",
            "format": "Finite Duration",
            "pattern": "^([0-9]+) *(ms|millisecond|milliseconds|s|second|seconds|m|minute|minutes|h|hour|hours|d|day|days)$",
            "example": "2 days"
          },
          "eidas": {
            "type": "boolean",
            "description": "If true, the CRL will be EIDAS compliant"
          }
        },
        "required": [
          "validity",
          "eidas"
        ]
      },
      "models.ca.ManagedCertificateAuthority": {
        "title": "Managed Certificate Authority",
        "description": "A Certificate Authority managed by Stream",
        "allOf": [
          {
            "$ref": "#/components/schemas/models.ca.CertificateAuthority"
          }
        ],
        "properties": {
          "type": {
            "enum": [
              "managed"
            ]
          },
          "enroll": {
            "description": "If true, this Certificate Authority can emit certificates",
            "type": "boolean"
          },
          "dn": {
            "nullable": true,
            "description": "This Certificate Authority's Distinguished Name",
            "type": "string",
            "example": "CN=MyCA,O=EVERTRUST,C=FR"
          },
          "privateKey": {
            "$ref": "#/components/schemas/models.ca.CertificateAuthorityPrivateKey"
          },
          "hashAlgorithm": {
            "type": "string",
            "description": "The Hash Algorithm of this Certificate Authority's emitted certificates",
            "nullable": true,
            "enum": [
              "SHA1",
              "SHA224",
              "SHA256",
              "SHA384",
              "SHA512",
              "SHA3_224",
              "SHA3_256",
              "SHA3_384",
              "SHA3_512"
            ]
          },
          "queue": {
            "description": "The queue to apply on this Certificate Authority's operations",
            "type": "string",
            "nullable": true,
            "example": "Slow-queue"
          },
          "enforceKeyUnicity": {
            "type": "boolean",
            "description": "If true, each enrollment request must have a unique key"
          },
          "crldps": {
            "type": "array",
            "description": "The urls of this Certificate Authority's CRL Distribution Points",
            "nullable": true,
            "example": "http://crl.evertrust.fr/MyCA",
            "items": {
              "type": "string"
            }
          },
          "aia": {
            "nullable": true,
            "$ref": "#/components/schemas/models.template.extension.aia.AuthorityInformationAccess"
          },
          "policy": {
            "nullable": true,
            "$ref": "#/components/schemas/models.template.extension.policy.CertificatePolicy"
          },
          "qcStatement": {
            "nullable": true,
            "$ref": "#/components/schemas/models.template.extension.qcs.QCStatement"
          },
          "overridePermissions": {
            "nullable": true,
            "$ref": "#/components/schemas/models.ca.CertificateAuthorityOverridePermissions"
          },
          "crlPolicy": {
            "nullable": true,
            "$ref": "#/components/schemas/models.ca.CRLPolicy"
          }
        },
        "required": [
          "id",
          "type",
          "name",
          "trustedForClientAuthentication",
          "trustedForServerAuthentication",
          "enroll",
          "privateKey",
          "enforceKeyUnicity"
        ]
      },
      "SecAuth003": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Certificate is not trusted",
        "properties": {
          "error": {
            "enum": [
              "SEC-AUTH-003"
            ]
          },
          "message": {
            "enum": [
              "Certificate is not trusted"
            ]
          },
          "title": {
            "enum": [
              "Certificate is not trusted"
            ]
          }
        },
        "title": "SEC-AUTH-003"
      },
      "SecAuth004": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Certificate is expired",
        "properties": {
          "error": {
            "enum": [
              "SEC-AUTH-004"
            ]
          },
          "message": {
            "enum": [
              "Certificate is expired"
            ]
          },
          "title": {
            "enum": [
              "Certificate is expired"
            ]
          }
        },
        "title": "SEC-AUTH-004"
      },
      "SecAuth005": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Certificate is revoked",
        "properties": {
          "error": {
            "enum": [
              "SEC-AUTH-005"
            ]
          },
          "message": {
            "enum": [
              "Certificate is revoked"
            ]
          },
          "title": {
            "enum": [
              "Certificate is revoked"
            ]
          }
        },
        "title": "SEC-AUTH-005"
      },
      "Ca001": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Unexpected error",
        "properties": {
          "error": {
            "enum": [
              "CA-001"
            ]
          },
          "message": {
            "enum": [
              "Unexpected error"
            ]
          },
          "title": {
            "enum": [
              "Unexpected error"
            ]
          }
        },
        "title": "CA-001"
      },
      "Ca002": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Invalid Certificate Authority",
        "properties": {
          "error": {
            "enum": [
              "CA-002"
            ]
          },
          "message": {
            "enum": [
              "Invalid Certificate Authority"
            ]
          },
          "title": {
            "enum": [
              "Invalid Certificate Authority"
            ]
          }
        },
        "title": "CA-002"
      },
      "Ca003": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Certificate Authority not found",
        "properties": {
          "error": {
            "enum": [
              "CA-003"
            ]
          },
          "message": {
            "enum": [
              "Certificate Authority not found"
            ]
          },
          "title": {
            "enum": [
              "Certificate Authority not found"
            ]
          }
        },
        "title": "CA-003"
      },
      "Ca004": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Certificate Authority already exists",
        "properties": {
          "error": {
            "enum": [
              "CA-004"
            ]
          },
          "message": {
            "enum": [
              "Certificate Authority already exists"
            ]
          },
          "title": {
            "enum": [
              "Certificate Authority already exists"
            ]
          }
        },
        "title": "CA-004"
      },
      "Ca005": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Certificate Authority is referenced",
        "properties": {
          "error": {
            "enum": [
              "CA-005"
            ]
          },
          "message": {
            "enum": [
              "Certificate Authority is referenced"
            ]
          },
          "title": {
            "enum": [
              "Certificate Authority is referenced"
            ]
          }
        },
        "title": "CA-005"
      },
      "Ca011": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Invalid Certificate Authority migration request",
        "properties": {
          "error": {
            "enum": [
              "CA-011"
            ]
          },
          "message": {
            "enum": [
              "Invalid Certificate Authority migration request"
            ]
          },
          "title": {
            "enum": [
              "Invalid Certificate Authority migration request"
            ]
          }
        },
        "title": "CA-011"
      },
      "Ca009": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Invalid Certificate Authority type",
        "properties": {
          "error": {
            "enum": [
              "CA-009"
            ]
          },
          "message": {
            "enum": [
              "Invalid Certificate Authority type"
            ]
          },
          "title": {
            "enum": [
              "Invalid Certificate Authority type"
            ]
          }
        },
        "title": "CA-009"
      },
      "Ca012": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Only external Certificate Authority with associated CRL can be migrated",
        "properties": {
          "error": {
            "enum": [
              "CA-012"
            ]
          },
          "message": {
            "enum": [
              "Only external Certificate Authority with associated CRL can be migrated"
            ]
          },
          "title": {
            "enum": [
              "Only external Certificate Authority with associated CRL can be migrated"
            ]
          }
        },
        "title": "CA-012"
      },
      "Key003": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Key not found",
        "properties": {
          "error": {
            "enum": [
              "KEY-003"
            ]
          },
          "message": {
            "enum": [
              "Key not found"
            ]
          },
          "title": {
            "enum": [
              "Key not found"
            ]
          }
        },
        "title": "KEY-003"
      },
      "Keystore003": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Keystore not found",
        "properties": {
          "error": {
            "enum": [
              "KEYSTORE-003"
            ]
          },
          "message": {
            "enum": [
              "Keystore not found"
            ]
          },
          "title": {
            "enum": [
              "Keystore not found"
            ]
          }
        },
        "title": "KEYSTORE-003"
      },
      "Ca006": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Certificate Authority certification request generation error",
        "properties": {
          "error": {
            "enum": [
              "CA-006"
            ]
          },
          "message": {
            "enum": [
              "Certificate Authority certification request generation error"
            ]
          },
          "title": {
            "enum": [
              "Certificate Authority certification request generation error"
            ]
          }
        },
        "title": "CA-006"
      },
      "models.template.certificate.CertificateAuthorityTemplate": {
        "properties": {
          "crldps": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "aia": {
            "nullable": true,
            "$ref": "#/components/schemas/models.template.extension.aia.AuthorityInformationAccess"
          },
          "policy": {
            "nullable": true,
            "$ref": "#/components/schemas/models.template.extension.policy.CertificatePolicy"
          },
          "pathLen": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "lifetime": {
            "nullable": true,
            "type": "string",
            "format": "Finite Duration",
            "pattern": "^([0-9]+) *(ms|millisecond|milliseconds|s|second|seconds|m|minute|minutes|h|hour|hours|d|day|days)$",
            "example": "5 seconds"
          },
          "backdate": {
            "nullable": true,
            "type": "string",
            "format": "Finite Duration",
            "pattern": "^([0-9]+) *(ms|millisecond|milliseconds|s|second|seconds|m|minute|minutes|h|hour|hours|d|day|days)$",
            "example": "5 seconds"
          }
        }
      },
      "controllers.api.ca.EnrollmentRequest": {
        "properties": {
          "ca": {
            "type": "string"
          },
          "csr": {
            "type": "string",
            "format": "PKCS#10 pem encoded"
          },
          "template": {
            "$ref": "#/components/schemas/models.template.certificate.CertificateAuthorityTemplate"
          }
        },
        "required": [
          "ca",
          "csr",
          "template"
        ]
      },
      "Ca007": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Invalid Certificate Authority enrollment request",
        "properties": {
          "error": {
            "enum": [
              "CA-007"
            ]
          },
          "message": {
            "enum": [
              "Invalid Certificate Authority enrollment request"
            ]
          },
          "title": {
            "enum": [
              "Invalid Certificate Authority enrollment request"
            ]
          }
        },
        "title": "CA-007"
      },
      "Ca008": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Certificate Authority enrollment error",
        "properties": {
          "error": {
            "enum": [
              "CA-008"
            ]
          },
          "message": {
            "enum": [
              "Certificate Authority enrollment error"
            ]
          },
          "title": {
            "enum": [
              "Certificate Authority enrollment error"
            ]
          }
        },
        "title": "CA-008"
      },
      "Ca014": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Certificate Authority is expired",
        "properties": {
          "error": {
            "enum": [
              "CA-014"
            ]
          },
          "message": {
            "enum": [
              "Certificate Authority is expired"
            ]
          },
          "title": {
            "enum": [
              "Certificate Authority is expired"
            ]
          }
        },
        "title": "CA-014"
      },
      "Ca015": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Certificate Authority is revoked",
        "properties": {
          "error": {
            "enum": [
              "CA-015"
            ]
          },
          "message": {
            "enum": [
              "Certificate Authority is revoked"
            ]
          },
          "title": {
            "enum": [
              "Certificate Authority is revoked"
            ]
          }
        },
        "title": "CA-015"
      },
      "Ca016": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Certificate Authority is not ready",
        "properties": {
          "error": {
            "enum": [
              "CA-016"
            ]
          },
          "message": {
            "enum": [
              "Certificate Authority is not ready"
            ]
          },
          "title": {
            "enum": [
              "Certificate Authority is not ready"
            ]
          }
        },
        "title": "CA-016"
      },
      "Ca013": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Certificate Authority cannot issue CRL",
        "properties": {
          "error": {
            "enum": [
              "CA-013"
            ]
          },
          "message": {
            "enum": [
              "Certificate Authority cannot issue CRL"
            ]
          },
          "title": {
            "enum": [
              "Certificate Authority cannot issue CRL"
            ]
          }
        },
        "title": "CA-013"
      },
      "Ca010": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Invalid or empty CRL",
        "properties": {
          "error": {
            "enum": [
              "CA-010"
            ]
          },
          "message": {
            "enum": [
              "Invalid or empty CRL"
            ]
          },
          "title": {
            "enum": [
              "Invalid or empty CRL"
            ]
          }
        },
        "title": "CA-010"
      },
      "models.crl.storage.ldap.LDAPCRLStorage": {
        "properties": {
          "id": {
            "type": "string",
            "format": "Mongo Object Identifier",
            "pattern": "^[a-f\\d]{24}$"
          },
          "type": {
            "type": "string",
            "enum": [
              "s3",
              "ldap"
            ]
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "credential": {
            "type": "string"
          },
          "host": {
            "type": "string"
          },
          "port": {
            "type": "integer",
            "format": "int32"
          },
          "proxy": {
            "type": "string",
            "nullable": true
          },
          "timeout": {
            "nullable": true,
            "type": "string",
            "format": "Finite Duration",
            "pattern": "^([0-9]+) *(ms|millisecond|milliseconds|s|second|seconds|m|minute|minutes|h|hour|hours|d|day|days)$",
            "example": "5 seconds"
          },
          "secure": {
            "type": "boolean"
          },
          "disableHostnameValidation": {
            "type": "boolean"
          },
          "baseDN": {
            "type": "string"
          },
          "filter": {
            "type": "string"
          },
          "crlAttribute": {
            "type": "string"
          },
          "followReferrals": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "type",
          "name",
          "credential",
          "host",
          "port",
          "secure",
          "disableHostnameValidation",
          "baseDN",
          "filter",
          "crlAttribute",
          "followReferrals"
        ]
      },
      "models.crl.storage.s3.S3CRLStorage": {
        "properties": {
          "id": {
            "type": "string",
            "format": "Mongo Object Identifier",
            "pattern": "^[a-f\\d]{24}$"
          },
          "type": {
            "type": "string",
            "enum": [
              "s3",
              "ldap"
            ]
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "credentials": {
            "type": "string",
            "nullable": true
          },
          "roleArn": {
            "type": "string",
            "nullable": true
          },
          "region": {
            "type": "string",
            "nullable": true
          },
          "proxy": {
            "type": "string",
            "nullable": true
          },
          "timeout": {
            "nullable": true,
            "type": "string",
            "format": "Finite Duration",
            "pattern": "^([0-9]+) *(ms|millisecond|milliseconds|s|second|seconds|m|minute|minutes|h|hour|hours|d|day|days)$",
            "example": "5 seconds"
          },
          "endpoint": {
            "type": "string",
            "nullable": true
          },
          "forcePathStyle": {
            "type": "boolean"
          },
          "bucket": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "type",
          "name",
          "forcePathStyle",
          "bucket"
        ]
      },
      "ExternalCrlStorage001": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Unexpected error",
        "properties": {
          "error": {
            "enum": [
              "EXTERNAL-CRL-STORAGE-001"
            ]
          },
          "message": {
            "enum": [
              "Unexpected error"
            ]
          },
          "title": {
            "enum": [
              "Unexpected error"
            ]
          }
        },
        "title": "EXTERNAL-CRL-STORAGE-001"
      },
      "ExternalCrlStorage002": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Invalid external CRL storage",
        "properties": {
          "error": {
            "enum": [
              "EXTERNAL-CRL-STORAGE-002"
            ]
          },
          "message": {
            "enum": [
              "Invalid external CRL storage"
            ]
          },
          "title": {
            "enum": [
              "Invalid external CRL storage"
            ]
          }
        },
        "title": "EXTERNAL-CRL-STORAGE-002"
      },
      "ExternalCrlStorage003": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "External CRL storage not found",
        "properties": {
          "error": {
            "enum": [
              "EXTERNAL-CRL-STORAGE-003"
            ]
          },
          "message": {
            "enum": [
              "External CRL storage not found"
            ]
          },
          "title": {
            "enum": [
              "External CRL storage not found"
            ]
          }
        },
        "title": "EXTERNAL-CRL-STORAGE-003"
      },
      "ExternalCrlStorage004": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "External CRL storage already exists",
        "properties": {
          "error": {
            "enum": [
              "EXTERNAL-CRL-STORAGE-004"
            ]
          },
          "message": {
            "enum": [
              "External CRL storage already exists"
            ]
          },
          "title": {
            "enum": [
              "External CRL storage already exists"
            ]
          }
        },
        "title": "EXTERNAL-CRL-STORAGE-004"
      },
      "ExternalCrlStorage005": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "External CRL storage is referenced",
        "properties": {
          "error": {
            "enum": [
              "EXTERNAL-CRL-STORAGE-005"
            ]
          },
          "message": {
            "enum": [
              "External CRL storage is referenced"
            ]
          },
          "title": {
            "enum": [
              "External CRL storage is referenced"
            ]
          }
        },
        "title": "EXTERNAL-CRL-STORAGE-005"
      },
      "models.crl.CRLInfo": {
        "properties": {
          "id": {
            "type": "string",
            "format": "Mongo Object Identifier",
            "pattern": "^[a-f\\d]{24}$"
          },
          "ca": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "managed",
              "external"
            ]
          },
          "number": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "thisUpdate": {
            "type": "string",
            "format": "date-time"
          },
          "nextUpdate": {
            "type": "string",
            "format": "date-time"
          },
          "nextRefresh": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "size": {
            "type": "integer",
            "format": "int32"
          },
          "eidas": {
            "type": "boolean",
            "nullable": true
          }
        },
        "required": [
          "id",
          "ca",
          "type",
          "thisUpdate",
          "nextUpdate",
          "size"
        ]
      },
      "Crl001": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Unexpected error",
        "properties": {
          "error": {
            "enum": [
              "CRL-001"
            ]
          },
          "message": {
            "enum": [
              "Unexpected error"
            ]
          },
          "title": {
            "enum": [
              "Unexpected error"
            ]
          }
        },
        "title": "CRL-001"
      },
      "controllers.api.crypto.hsm.HardwareSecurityModuleInfo": {
        "properties": {
          "libraryVersion": {
            "example": 2.06,
            "description": "The Cryptoki library version number",
            "type": "string"
          },
          "cryptokiVersion": {
            "type": "string",
            "example": 2.4,
            "description": "The Cryptoki interface version number"
          },
          "manufacturerID": {
            "example": "SoftHSM",
            "description": "ID of the Cryptoki library manufacturer",
            "type": "string"
          },
          "libraryDescription": {
            "type": "string",
            "example": "Implementation of PKCS11",
            "description": "character-string description of the library"
          }
        },
        "required": [
          "libraryVersion",
          "cryptokiVersion",
          "manufacturerID",
          "libraryDescription"
        ]
      },
      "Hsm001": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Unexpected error",
        "properties": {
          "error": {
            "enum": [
              "HSM-001"
            ]
          },
          "message": {
            "enum": [
              "Unexpected error"
            ]
          },
          "title": {
            "enum": [
              "Unexpected error"
            ]
          }
        },
        "title": "HSM-001"
      },
      "controllers.api.crypto.hsm.HardwareSecurityModuleSlot": {
        "properties": {
          "id": {
            "type": "integer",
            "example": 1,
            "description": "ID of the slot",
            "format": "int64"
          },
          "isHardwareSlot": {
            "description": "True if the slot is a hardware slot, as opposed to a software slot implementing a soft token",
            "type": "boolean"
          },
          "manufacturerID": {
            "description": "ID of the slot manufacturer",
            "example": "SoftHSM project",
            "type": "string"
          },
          "hardwareVersion": {
            "description": "hardware version number of the slot",
            "example": 2.06,
            "type": "string"
          },
          "firmwareVersion": {
            "description": "firmware version number of the slot",
            "example": 2.06,
            "type": "string"
          },
          "description": {
            "description": "character-string description of the slot",
            "example": "SoftHSM slot ID 0x1",
            "type": "string"
          }
        },
        "required": [
          "id",
          "isHardwareSlot",
          "manufacturerID",
          "hardwareVersion",
          "firmwareVersion",
          "description"
        ]
      },
      "models.template.extension.eku.ExtendedKeyUsageElement": {
        "title": "Extended Key Usage Element",
        "properties": {
          "name": {
            "example": "CustomEKU",
            "type": "string",
            "description": "Name of the Extended Key Usage"
          },
          "oid": {
            "description": "Object Identifier of the Extended Key Usage",
            "type": "string",
            "example": "1.3.89.5809.638.10.910.753.620"
          },
          "custom": {
            "type": "boolean",
            "example": true,
            "description": "If true, this Extended Key Usage is custom"
          }
        },
        "required": [
          "name",
          "oid",
          "custom"
        ]
      },
      "Eku001": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Unexpected error",
        "properties": {
          "error": {
            "enum": [
              "EKU-001"
            ]
          },
          "message": {
            "enum": [
              "Unexpected error"
            ]
          },
          "title": {
            "enum": [
              "Unexpected error"
            ]
          }
        },
        "title": "EKU-001"
      },
      "Eku002": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Invalid extended key usage",
        "properties": {
          "error": {
            "enum": [
              "EKU-002"
            ]
          },
          "message": {
            "enum": [
              "Invalid extended key usage"
            ]
          },
          "title": {
            "enum": [
              "Invalid extended key usage"
            ]
          }
        },
        "title": "EKU-002"
      },
      "Eku005": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Cannot update/delete standard extended key usage",
        "properties": {
          "error": {
            "enum": [
              "EKU-005"
            ]
          },
          "message": {
            "enum": [
              "Cannot update/delete standard extended key usage"
            ]
          },
          "title": {
            "enum": [
              "Cannot update/delete standard extended key usage"
            ]
          }
        },
        "title": "EKU-005"
      },
      "Eku003": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Extended key usage not found",
        "properties": {
          "error": {
            "enum": [
              "EKU-003"
            ]
          },
          "message": {
            "enum": [
              "Extended key usage not found"
            ]
          },
          "title": {
            "enum": [
              "Extended key usage not found"
            ]
          }
        },
        "title": "EKU-003"
      },
      "Eku004": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Extended key usage already exists",
        "properties": {
          "error": {
            "enum": [
              "EKU-004"
            ]
          },
          "message": {
            "enum": [
              "Extended key usage already exists"
            ]
          },
          "title": {
            "enum": [
              "Extended key usage already exists"
            ]
          }
        },
        "title": "EKU-004"
      },
      "Eku006": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Extended key usage is referenced",
        "properties": {
          "error": {
            "enum": [
              "EKU-006"
            ]
          },
          "message": {
            "enum": [
              "Extended key usage is referenced"
            ]
          },
          "title": {
            "enum": [
              "Extended key usage is referenced"
            ]
          }
        },
        "title": "EKU-006"
      },
      "controllers.api.license.LibraryInfo": {
        "properties": {
          "name": {
            "type": "string"
          },
          "version": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "version"
        ]
      },
      "controllers.api.license.LicenseInfo": {
        "properties": {
          "isValid": {
            "type": "boolean"
          },
          "expiration": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "version": {
            "type": "string"
          },
          "buildTime": {
            "type": "integer",
            "format": "int64"
          },
          "libraries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/controllers.api.license.LibraryInfo"
            }
          }
        },
        "required": [
          "isValid",
          "version",
          "buildTime",
          "libraries"
        ]
      },
      "models.queue.Queue": {
        "properties": {
          "id": {
            "type": "string",
            "format": "Mongo Object Identifier",
            "pattern": "^[a-f\\d]{24}$"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "size": {
            "type": "integer",
            "format": "int32"
          },
          "throttleDuration": {
            "nullable": true,
            "type": "string",
            "format": "Finite Duration",
            "pattern": "^([0-9]+) *(ms|millisecond|milliseconds|s|second|seconds|m|minute|minutes|h|hour|hours|d|day|days)$",
            "example": "5 seconds"
          },
          "throttleParallelism": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "clusterWide": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "name",
          "size",
          "clusterWide"
        ]
      },
      "Queue001": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Unexpected error",
        "properties": {
          "error": {
            "enum": [
              "QUEUE-001"
            ]
          },
          "message": {
            "enum": [
              "Unexpected error"
            ]
          },
          "title": {
            "enum": [
              "Unexpected error"
            ]
          }
        },
        "title": "QUEUE-001"
      },
      "Queue002": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Invalid queue",
        "properties": {
          "error": {
            "enum": [
              "QUEUE-002"
            ]
          },
          "message": {
            "enum": [
              "Invalid queue"
            ]
          },
          "title": {
            "enum": [
              "Invalid queue"
            ]
          }
        },
        "title": "QUEUE-002"
      },
      "Queue003": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Queue not found",
        "properties": {
          "error": {
            "enum": [
              "QUEUE-003"
            ]
          },
          "message": {
            "enum": [
              "Queue not found"
            ]
          },
          "title": {
            "enum": [
              "Queue not found"
            ]
          }
        },
        "title": "QUEUE-003"
      },
      "Queue004": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Queue already exists",
        "properties": {
          "error": {
            "enum": [
              "QUEUE-004"
            ]
          },
          "message": {
            "enum": [
              "Queue already exists"
            ]
          },
          "title": {
            "enum": [
              "Queue already exists"
            ]
          }
        },
        "title": "QUEUE-004"
      },
      "Queue005": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Queue is referenced",
        "properties": {
          "error": {
            "enum": [
              "QUEUE-005"
            ]
          },
          "message": {
            "enum": [
              "Queue is referenced"
            ]
          },
          "title": {
            "enum": [
              "Queue is referenced"
            ]
          }
        },
        "title": "QUEUE-005"
      },
      "models.security.credentials.Credentials": {
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Id"
              }
            ],
            "readOnly": true
          },
          "name": {
            "description": "Name of the credentials",
            "example": "AKV_credentials",
            "type": "string"
          },
          "description": {
            "description": "A description of the credentials",
            "example": "Can be used to connect to our AKV cloud KMS",
            "type": "string",
            "nullable": true
          },
          "type": {
            "description": "The type of these credentials",
            "type": "string"
          },
          "target": {
            "description": "The targeted objects for these credentials",
            "type": "string",
            "enum": [
              "akv",
              "aws",
              "gcp",
              "ldap"
            ]
          },
          "expires": {
            "description": "The expiration date of these credentials",
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "required": [
          "id",
          "name",
          "type",
          "target"
        ]
      },
      "models.secret.SecretString": {
        "title": "Secret String",
        "description": "A string containing a hidden secret",
        "properties": {
          "clear": {
            "description": "The clear value of the secret",
            "type": "string",
            "nullable": true,
            "writeOnly": true,
            "example": "Clear secret"
          },
          "secure": {
            "example": "QdkoDznc54qdqchqdd",
            "type": "string",
            "description": "The hidden value of the secret",
            "nullable": true
          }
        }
      },
      "models.security.credentials.json.JsonTokenCredentials": {
        "title": "JSON Credentials",
        "allOf": [
          {
            "$ref": "#/components/schemas/models.security.credentials.Credentials"
          }
        ],
        "properties": {
          "type": {
            "enum": [
              "json"
            ]
          },
          "json": {
            "description": "The JSON secret",
            "$ref": "#/components/schemas/models.secret.SecretString"
          }
        },
        "required": [
          "id",
          "name",
          "type",
          "target",
          "json"
        ]
      },
      "models.security.credentials.text.TextCredentials": {
        "title": "Text Credentials",
        "allOf": [
          {
            "$ref": "#/components/schemas/models.security.credentials.Credentials"
          }
        ],
        "properties": {
          "type": {
            "enum": [
              "text"
            ]
          },
          "login": {
            "example": "akvAccount",
            "description": "The login of these credentials",
            "type": "string"
          },
          "password": {
            "description": "The password of these credentials",
            "allOf": [
              {
                "$ref": "#/components/schemas/models.secret.SecretString"
              }
            ]
          }
        },
        "required": [
          "id",
          "name",
          "type",
          "target",
          "login",
          "password"
        ]
      },
      "Credential001": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Unexpected error",
        "properties": {
          "error": {
            "enum": [
              "CREDENTIALS-001"
            ]
          },
          "message": {
            "enum": [
              "Unexpected error"
            ]
          },
          "title": {
            "enum": [
              "Unexpected error"
            ]
          }
        },
        "title": "CREDENTIALS-001"
      },
      "Credential002": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Invalid Credentials",
        "properties": {
          "error": {
            "enum": [
              "CREDENTIALS-002"
            ]
          },
          "message": {
            "enum": [
              "Invalid Credentials"
            ]
          },
          "title": {
            "enum": [
              "Invalid Credentials"
            ]
          }
        },
        "title": "CREDENTIALS-002"
      },
      "Credential003": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Credentials not found",
        "properties": {
          "error": {
            "enum": [
              "CREDENTIALS-003"
            ]
          },
          "message": {
            "enum": [
              "Credentials not found"
            ]
          },
          "title": {
            "enum": [
              "Credentials not found"
            ]
          }
        },
        "title": "CREDENTIALS-003"
      },
      "models.security.credentials.json.JsonTokenCredentialsOnSubmit": {
        "title": "JSON Credentials",
        "allOf": [
          {
            "$ref": "#/components/schemas/models.security.credentials.Credentials"
          }
        ],
        "properties": {
          "type": {
            "enum": [
              "json"
            ]
          },
          "json": {
            "description": "The JSON secret",
            "allOf": [
              {
                "$ref": "#/components/schemas/models.secret.SecretString"
              }
            ],
            "properties": {
              "secure": {
                "readOnly": true
              }
            }
          }
        },
        "required": [
          "id",
          "name",
          "type",
          "target",
          "json"
        ]
      },
      "models.security.credentials.text.TextCredentialsOnSubmit": {
        "title": "Text Credentials",
        "allOf": [
          {
            "$ref": "#/components/schemas/models.security.credentials.Credentials"
          }
        ],
        "properties": {
          "type": {
            "enum": [
              "text"
            ]
          },
          "login": {
            "example": "akvAccount",
            "description": "The login of these credentials",
            "type": "string"
          },
          "password": {
            "description": "The password of these credentials",
            "allOf": [
              {
                "$ref": "#/components/schemas/models.secret.SecretString"
              }
            ],
            "properties": {
              "secure": {
                "readOnly": true
              }
            }
          }
        },
        "required": [
          "id",
          "name",
          "type",
          "target",
          "login",
          "password"
        ]
      },
      "Credential004": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Credentials already exists",
        "properties": {
          "error": {
            "enum": [
              "CREDENTIALS-004"
            ]
          },
          "message": {
            "enum": [
              "Credentials already exists"
            ]
          },
          "title": {
            "enum": [
              "Credentials already exists"
            ]
          }
        },
        "title": "CREDENTIALS-004"
      },
      "Credential005": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Credentials referenced",
        "properties": {
          "error": {
            "enum": [
              "CREDENTIALS-005"
            ]
          },
          "message": {
            "enum": [
              "Credentials referenced"
            ]
          },
          "title": {
            "enum": [
              "Credentials referenced"
            ]
          }
        },
        "title": "CREDENTIALS-005"
      },
      "models.proxy.HttpProxy": {
        "properties": {
          "id": {
            "type": "string",
            "format": "Mongo Object Identifier",
            "pattern": "^[a-f\\d]{24}$"
          },
          "name": {
            "type": "string"
          },
          "host": {
            "type": "string"
          },
          "port": {
            "type": "integer",
            "format": "int32"
          }
        },
        "required": [
          "id",
          "name",
          "host",
          "port"
        ]
      },
      "Proxy001": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Unexpected error",
        "properties": {
          "error": {
            "enum": [
              "PROXY-001"
            ]
          },
          "message": {
            "enum": [
              "Unexpected error"
            ]
          },
          "title": {
            "enum": [
              "Unexpected error"
            ]
          }
        },
        "title": "PROXY-001"
      },
      "Proxy002": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Invalid Http Proxy",
        "properties": {
          "error": {
            "enum": [
              "PROXY-002"
            ]
          },
          "message": {
            "enum": [
              "Invalid Http Proxy"
            ]
          },
          "title": {
            "enum": [
              "Invalid Http Proxy"
            ]
          }
        },
        "title": "PROXY-002"
      },
      "Proxy003": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Http Proxy not found",
        "properties": {
          "error": {
            "enum": [
              "PROXY-003"
            ]
          },
          "message": {
            "enum": [
              "Http Proxy not found"
            ]
          },
          "title": {
            "enum": [
              "Http Proxy not found"
            ]
          }
        },
        "title": "PROXY-003"
      },
      "Proxy004": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Http Proxy already exists",
        "properties": {
          "error": {
            "enum": [
              "PROXY-004"
            ]
          },
          "message": {
            "enum": [
              "Http Proxy already exists"
            ]
          },
          "title": {
            "enum": [
              "Http Proxy already exists"
            ]
          }
        },
        "title": "PROXY-004"
      },
      "Proxy005": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Http Proxy is referenced",
        "properties": {
          "error": {
            "enum": [
              "PROXY-005"
            ]
          },
          "message": {
            "enum": [
              "Http Proxy is referenced"
            ]
          },
          "title": {
            "enum": [
              "Http Proxy is referenced"
            ]
          }
        },
        "title": "PROXY-005"
      },
      "controllers.api.tc.TrustChainAnchorChild": {
        "title": "Trust Chain Anchor",
        "description": "A trust chain element",
        "properties": {
          "ca": {
            "description": "Information about the Certificate Authority",
            "oneOf": [
              {
                "$ref": "#/components/schemas/models.ca.ManagedCertificateAuthority"
              },
              {
                "$ref": "#/components/schemas/models.ca.ExternalCertificateAuthority"
              }
            ]
          },
          "subordinates": {
            "description": "List of the subordinates of this Certificate Authority",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/controllers.api.tc.TrustChainAnchorChild"
            },
            "example": []
          }
        },
        "required": [
          "ca",
          "subordinates"
        ]
      },
      "controllers.api.tc.TrustChainAnchor": {
        "title": "Trust Chain Anchor",
        "description": "A trust chain element",
        "properties": {
          "ca": {
            "description": "Information about the Certificate Authority",
            "oneOf": [
              {
                "$ref": "#/components/schemas/models.ca.ManagedCertificateAuthority"
              },
              {
                "$ref": "#/components/schemas/models.ca.ExternalCertificateAuthority"
              }
            ]
          },
          "subordinates": {
            "description": "List of the subordinates of this Certificate Authority",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/controllers.api.tc.TrustChainAnchorChild"
            }
          }
        },
        "required": [
          "ca",
          "subordinates"
        ]
      },
      "Tc001": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Unexpected error",
        "properties": {
          "error": {
            "enum": [
              "TC-001"
            ]
          },
          "message": {
            "enum": [
              "Unexpected error"
            ]
          },
          "title": {
            "enum": [
              "Unexpected error"
            ]
          }
        },
        "title": "TC-001"
      },
      "models.template.extension.ku.KeyUsage": {
        "title": "Key Usage",
        "description": "Criticality and values of the Key Usages to add to the certificate",
        "properties": {
          "critical": {
            "type": "boolean",
            "description": "Make the Key Usages of the certificate critical"
          },
          "values": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Selected Key Usages",
              "example": "keyAgreement",
              "enum": [
                "keyAgreement",
                "nonRepudiation",
                "decipherOnly",
                "digitalSignature",
                "encipherOnly",
                "keyEncipherment",
                "cRLSign",
                "keyCertSign",
                "dataEncipherment"
              ]
            }
          }
        },
        "required": [
          "critical",
          "values"
        ]
      },
      "models.template.extension.eku.ExtendedKeyUsage": {
        "title": "Extended Key Usages",
        "description": "Criticality and values of the Extended Key Usages to add to the certificate",
        "properties": {
          "critical": {
            "type": "boolean",
            "description": "Make the Extended Key Usages of the certificate critical"
          },
          "values": {
            "type": "array",
            "description": "Selected Extended Key Usages (standard or custom)",
            "items": {
              "$ref": "#/components/schemas/models.template.extension.eku.ExtendedKeyUsageElement"
            }
          }
        },
        "required": [
          "critical",
          "values"
        ]
      },
      "models.template.extension.pkup.PrivateKeyUsagePeriod": {
        "title": "Private Key Usage Period",
        "properties": {
          "notBefore": {
            "description": "The private key can be used after this date",
            "type": "string",
            "format": "date-time"
          },
          "notAfter": {
            "description": "The private key cannot be used after this date",
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "notBefore",
          "notAfter"
        ]
      },
      "models.template.dn.DNElement": {
        "title": "DN Element",
        "properties": {
          "type": {
            "description": "Type of DN element",
            "type": "string",
            "enum": [
              "CN",
              "UID",
              "SERIALNUMBER",
              "SURNAME",
              "GIVENNAME",
              "unstructuredAddress",
              "unstructuredName",
              "E",
              "OU",
              "organizationIdentifier",
              "UniqueIdentifier",
              "STREET",
              "ST",
              "L",
              "O",
              "C",
              "DC"
            ]
          },
          "mandatory": {
            "description": "If true, this element must be in the request or the request will be rejected",
            "type": "boolean"
          },
          "editable": {
            "description": "If true, this element can be provided in the request to be modified",
            "type": "boolean"
          },
          "value": {
            "description": "The default value of this element",
            "example": "Common Name",
            "type": "string",
            "nullable": true
          },
          "regex": {
            "description": "If set, the element value must match this regex or the request will be rejected. This cannot be set with a whitelist",
            "type": "string",
            "example": "^.*$",
            "nullable": true
          },
          "whitelist": {
            "description": "A list of allowed values. If set, all requests containing an element not in this whitelist will be rejected. This cannot be set with a regex",
            "type": "array",
            "example": [
              "Common Name"
            ],
            "nullable": true,
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "type",
          "mandatory",
          "editable"
        ]
      },
      "models.template.san.SANElement": {
        "title": "SAN Element",
        "properties": {
          "type": {
            "description": "Type of SAN element",
            "type": "string",
            "enum": [
              "RFC822NAME",
              "DNSNAME",
              "URI",
              "IPADDRESS",
              "OTHERNAME_UPN",
              "OTHERNAME_GUID"
            ]
          },
          "min": {
            "description": "If set, the request must provide a minimal number of SAN from this type or it will be rejected",
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "max": {
            "description": "If set, the request must provide a maximal number of SAN from this type or it will be rejected",
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "example": 3
          },
          "regex": {
            "example": "^.*$",
            "description": "If set, the element values must match this regex or the request will be rejected",
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "type"
        ]
      },
      "models.template.extension.ExtensionElement": {
        "title": "Extension Element",
        "properties": {
          "type": {
            "description": "Type of Extension element",
            "type": "string",
            "enum": [
              "ms_template",
              "ms_sid"
            ]
          },
          "value": {
            "example": "MStemplate",
            "description": "The default value of this element",
            "type": "string",
            "nullable": true
          },
          "mandatory": {
            "description": "If true, this element must be in the request or the request will be rejected",
            "type": "boolean"
          },
          "editable": {
            "description": "If true, this element can be provided in the request to be modified",
            "type": "boolean"
          }
        },
        "required": [
          "type",
          "mandatory",
          "editable"
        ]
      },
      "models.template.certificate.CertificateTemplate": {
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Id"
              }
            ],
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "Name of the certificate template",
            "example": "Server"
          },
          "ku": {
            "description": "Key usages for the issued certificate",
            "nullable": true,
            "$ref": "#/components/schemas/models.template.extension.ku.KeyUsage"
          },
          "eku": {
            "description": "Extended key usages for the issued certificate",
            "nullable": true,
            "$ref": "#/components/schemas/models.template.extension.eku.ExtendedKeyUsage"
          },
          "emptyExtensions": {
            "description": "Additional extensions for the issued certificate (key values only)",
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string",
              "enum": [
                "no_revocation_check"
              ]
            }
          },
          "crldps": {
            "description": "CRL Distribution Points for the issued certificate",
            "type": "array",
            "example": [
              "http://evertrust.fr/IssuingCA"
            ],
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "crldpsFromCA": {
            "description": "If true, will retrieve the crldps from the issuing Certificate Authority",
            "type": "boolean"
          },
          "aia": {
            "description": "Authority Information Access for the issued certificate",
            "nullable": true,
            "$ref": "#/components/schemas/models.template.extension.aia.AuthorityInformationAccess"
          },
          "aiaFromCA": {
            "description": "If true, will retrieve the aia from the issuing Certificate Authority",
            "type": "boolean"
          },
          "policy": {
            "nullable": true,
            "description": "Policy for the issued certificate",
            "$ref": "#/components/schemas/models.template.extension.policy.CertificatePolicy"
          },
          "policyFromCA": {
            "description": "If true, will retrieve the policy from the issuing Certificate Authority",
            "type": "boolean"
          },
          "pathLen": {
            "description": "The pathlen for the issued certificate",
            "example": 1,
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "lifetime": {
            "description": "Duration of validity for the issued certificate",
            "nullable": true,
            "type": "string",
            "format": "Finite Duration",
            "pattern": "^([0-9]+) *(ms|millisecond|milliseconds|s|second|seconds|m|minute|minutes|h|hour|hours|d|day|days)$",
            "example": "5 seconds"
          },
          "backdate": {
            "description": "Backdate to apply to set the start period value of the issued certificate",
            "nullable": true,
            "type": "string",
            "format": "Finite Duration",
            "pattern": "^([0-9]+) *(ms|millisecond|milliseconds|s|second|seconds|m|minute|minutes|h|hour|hours|d|day|days)$",
            "example": "5 seconds"
          },
          "checkPoP": {
            "description": "If true, check that the CSR signature matches the CSR Public Key",
            "type": "boolean",
            "nullable": true
          },
          "qcStatement": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/models.template.extension.qcs.QCStatement"
              }
            ]
          },
          "qcStatementFromCA": {
            "description": "If true, will retrieve the qcStatement from the issuing Certificate Authority",
            "type": "boolean"
          },
          "privateKeyUsagePeriod": {
            "allOf": [
              {
                "$ref": "#/components/schemas/models.template.extension.pkup.PrivateKeyUsagePeriod"
              }
            ]
          },
          "subject": {
            "description": "Configuration of the allowed subject elements. If `null`, all subject elements are allowed, otherwise at lease one element must be configured",
            "type": "array",
            "nullable": true,
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/models.template.dn.DNElement"
                }
              ]
            }
          },
          "sans": {
            "description": "Configuration of the allowed SAN elements. If `null`, all SAN elements are allowed. If the array is empty, no SAN elements are allowed, otherwise the configured elements are allowed.",
            "type": "array",
            "nullable": true,
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/models.template.san.SANElement"
                }
              ]
            }
          },
          "extensions": {
            "description": "Configuration of the allowed extension elements. If `null`, all extension elements are allowed. If the array is empty, no extension elements are allowed, otherwise the configured elements are allowed.",
            "type": "array",
            "nullable": true,
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/models.template.extension.ExtensionElement"
                }
              ]
            }
          },
          "enabled": {
            "description": "If true, this template can be used for certificate enrollment",
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "name",
          "crldpsFromCA",
          "aiaFromCA",
          "policyFromCA",
          "qcStatementFromCA",
          "enabled"
        ]
      },
      "CertificateTemplate001": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Unexpected error",
        "properties": {
          "error": {
            "enum": [
              "CERTIFICATE-TEMPLATE-001"
            ]
          },
          "message": {
            "enum": [
              "Unexpected error"
            ]
          },
          "title": {
            "enum": [
              "Unexpected error"
            ]
          }
        },
        "title": "CERTIFICATE-TEMPLATE-001"
      },
      "CertificateTemplate002": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Invalid certificate template",
        "properties": {
          "error": {
            "enum": [
              "CERTIFICATE-TEMPLATE-002"
            ]
          },
          "message": {
            "enum": [
              "Invalid certificate template"
            ]
          },
          "title": {
            "enum": [
              "Invalid certificate template"
            ]
          }
        },
        "title": "CERTIFICATE-TEMPLATE-002"
      },
      "CertificateTemplate003": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Certificate template not found or disabled",
        "properties": {
          "error": {
            "enum": [
              "CERTIFICATE-TEMPLATE-003"
            ]
          },
          "message": {
            "enum": [
              "Certificate template not found or disabled"
            ]
          },
          "title": {
            "enum": [
              "Certificate template not found or disabled"
            ]
          }
        },
        "title": "CERTIFICATE-TEMPLATE-003"
      },
      "CertificateTemplate004": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Certificate template already exists",
        "properties": {
          "error": {
            "enum": [
              "CERTIFICATE-TEMPLATE-004"
            ]
          },
          "message": {
            "enum": [
              "Certificate template already exists"
            ]
          },
          "title": {
            "enum": [
              "Certificate template already exists"
            ]
          }
        },
        "title": "CERTIFICATE-TEMPLATE-004"
      },
      "fr.evertrust.certfactory.crl.CFCrl": {
        "type": "object",
        "properties": {
          "number": {
            "type": "string"
          },
          "thisUpdate": {
            "type": "integer",
            "format": "epoch"
          },
          "nextUpdate": {
            "type": "integer",
            "format": "epoch"
          },
          "issuerDn": {
            "type": "string"
          }
        }
      },
      "Rfc5280004": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Invalid CRL",
        "properties": {
          "error": {
            "enum": [
              "RFC5280-004"
            ]
          },
          "message": {
            "enum": [
              "Invalid CRL"
            ]
          },
          "title": {
            "enum": [
              "Invalid CRL"
            ]
          }
        },
        "title": "RFC5280-004"
      },
      "fr.evertrust.certfactory.ext.CFDistinguishedName": {
        "title": "DN Element",
        "type": "object",
        "properties": {
          "type": {
            "description": "The DN element type",
            "enum": [
              "CN",
              "UID",
              "SERIALNUMBER",
              "SURNAME",
              "GIVENNAME",
              "unstructuredAddress",
              "unstructuredName",
              "E",
              "OU",
              "organizationIdentifier",
              "UniqueIdentifier",
              "STREET",
              "ST",
              "L",
              "O",
              "C",
              "DC"
            ],
            "type": "string"
          },
          "value": {
            "description": "The DN Element value",
            "example": "Common Name",
            "type": "string"
          }
        },
        "required": [
          "type",
          "value"
        ]
      },
      "models.certificate.SubjectAlternateName": {
        "title": "SAN Element",
        "properties": {
          "sanType": {
            "description": "The type of SAN",
            "type": "string",
            "enum": [
              "RFC822NAME",
              "DNSNAME",
              "URI",
              "IPADDRESS",
              "OTHERNAME_UPN",
              "OTHERNAME_GUID"
            ]
          },
          "value": {
            "description": "The value of the SAN",
            "example": "demo@evertrust.fr",
            "type": "string"
          }
        },
        "required": [
          "sanType",
          "value"
        ]
      },
      "fr.evertrust.certfactory.crt.CFCertificate": {
        "title": "Certificate",
        "properties": {
          "dn": {
            "example": "CN=Common Name,O=Evertrust",
            "description": "The certificate's distinguished name",
            "type": "string"
          },
          "dnElements": {
            "description": "The distinguished name, with each element being an object",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fr.evertrust.certfactory.ext.CFDistinguishedName"
            }
          },
          "issuerDn": {
            "example": "CN=RootCA,O=Evertrust",
            "type": "string",
            "description": "The DN of this certificate's issuer"
          },
          "serial": {
            "example": "6269656e76656e7565206368657a20657665727472757374",
            "description": "This certificate's serial number",
            "type": "string"
          },
          "notBefore": {
            "description": "This certificate's start of validity",
            "type": "integer",
            "format": "epoch",
            "example": 5645612554
          },
          "notAfter": {
            "description": "This certificate's end of validity",
            "type": "integer",
            "format": "epoch",
            "example": 5865465645
          },
          "keyType": {
            "description": "This certificate's keytype",
            "example": "rsa-2048",
            "type": "string"
          },
          "signingAlgorithm": {
            "type": "string",
            "example": "SHA256WITHRSA",
            "description": "Ths certificate's signing algorithm"
          },
          "pem": {
            "description": "PEM encoded certificate",
            "example": "-----BEGIN CERTIFICATE-...",
            "type": "string"
          },
          "subjectKeyIdentifier": {
            "description": "The subject key identifier of this certificate",
            "example": "76697661206c6120766964610d0a",
            "type": "string"
          },
          "sans": {
            "description": "List of this certificate's SANs",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/models.certificate.SubjectAlternateName"
            }
          },
          "crldps": {
            "description": "This certificate's CRL Distribution Points",
            "example": "http://evertrust.ft/RootCA",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "aias": {
            "description": "This certificate's Authority Information Access",
            "type": "object",
            "properties": {
              "crt": {
                "description": "List of URIs on which the Certificate Authority certificate can be found",
                "items": {
                  "type": "string",
                  "example": "http://pem.evertrust.fr/IssuingCA"
                }
              },
              "ocsp": {
                "type": "array",
                "nullable": true,
                "description": "List of URIs on which the OCSP Responder of the Certificate Authority can be accessed",
                "items": {
                  "example": "http://ocsp.evertrust.fr/IssuingCA",
                  "type": "string"
                }
              }
            }
          }
        },
        "required": [
          "dn",
          "dnElements",
          "issuerDn",
          "serial",
          "notBefore",
          "notAfter",
          "keyType",
          "signingAlgorithm",
          "pem"
        ]
      },
      "Rfc5280002": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Invalid X509 Certificate",
        "properties": {
          "error": {
            "enum": [
              "RFC5280-002"
            ]
          },
          "message": {
            "enum": [
              "Invalid X509 Certificate"
            ]
          },
          "title": {
            "enum": [
              "Invalid X509 Certificate"
            ]
          }
        },
        "title": "RFC5280-002"
      },
      "Rfc5280001": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Unexpected Error",
        "properties": {
          "error": {
            "enum": [
              "RFC5280-001"
            ]
          },
          "message": {
            "enum": [
              "Unexpected Error"
            ]
          },
          "title": {
            "enum": [
              "Unexpected Error"
            ]
          }
        },
        "title": "RFC5280-001"
      },
      "fr.evertrust.certfactory.csr.CFCertificationRequest": {
        "type": "object",
        "properties": {
          "dn": {
            "type": "string"
          },
          "sans": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/models.certificate.SubjectAlternateName"
            }
          },
          "dnElements": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fr.evertrust.certfactory.ext.CFDistinguishedName"
            }
          },
          "keytype": {
            "type": "string"
          },
          "pem": {
            "type": "string"
          }
        },
        "required": [
          "dn",
          "dnElements",
          "keytype",
          "pem"
        ]
      },
      "Rfc5280003": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Invalid PKCS#10",
        "properties": {
          "error": {
            "enum": [
              "RFC5280-003"
            ]
          },
          "message": {
            "enum": [
              "Invalid PKCS#10"
            ]
          },
          "title": {
            "enum": [
              "Invalid PKCS#10"
            ]
          }
        },
        "title": "RFC5280-003"
      },
      "models.basic.BasicCertificate": {
        "properties": {
          "id": {
            "type": "string",
            "allOf": [
              {
                "$ref": "#/components/schemas/Id"
              }
            ]
          },
          "ca": {
            "description": "Name of the Certificate Authority the certificate is enrolled on",
            "type": "string",
            "example": "IssuingCA"
          },
          "template": {
            "type": "string",
            "description": "Name of the Template the certificate is enrolled on",
            "nullable": true,
            "example": "ClientServer"
          },
          "certificate": {
            "type": "string",
            "format": "X509 PEM encoded certificate",
            "description": "The PEM of the certificate",
            "example": "-----BEGIN CERTIFICATE----- ..."
          },
          "dn": {
            "type": "string",
            "description": "The Distinguished Name of the certificate",
            "example": "CN=Common Name One,OU=Some Ou"
          },
          "serial": {
            "description": "The serial number of the certificate",
            "type": "string",
            "example": "596f75466f756e644d650d0a"
          },
          "issuer": {
            "description": "The Distinguished Name of the issuer of the certificate",
            "type": "string",
            "example": "CN=IssuingCA,O=EVERTRUST"
          },
          "notBefore": {
            "description": "The start of the validity period of the certificate",
            "type": "string",
            "format": "date-time"
          },
          "notAfter": {
            "description": "The end of the validity period of the certificate",
            "type": "string",
            "format": "date-time"
          },
          "publicKeyThumbprint": {
            "type": "string",
            "description": "The thumbprint of the public key of the certificate",
            "example": "506f75724e6f73416d69734672616e63616973"
          },
          "revoked": {
            "description": "If true, the certificate is revoked",
            "example": false,
            "type": "boolean"
          },
          "revocationDate": {
            "type": "string",
            "description": "The revocation date of the certificate",
            "format": "date-time",
            "nullable": true
          },
          "revocationReason": {
            "type": "string",
            "description": "The revocation reason of the certificate",
            "nullable": true,
            "enum": [
              "UNSPECIFIED",
              "KEYCOMPROMISE",
              "CACOMPROMISE",
              "AFFILIATIONCHANGE",
              "SUPERSEDED",
              "CESSATIONOFOPERATION"
            ]
          }
        }
      },
      "models.certificate.Certificate": {
        "title": "Certificate",
        "allOf": [
          {
            "$ref": "#/components/schemas/models.basic.BasicCertificate"
          }
        ],
        "required": [
          "id",
          "ca",
          "certificate",
          "dn",
          "serial",
          "issuer",
          "notBefore",
          "notAfter",
          "publicKeyThumbprint",
          "revoked"
        ]
      },
      "models.search.certificate.CertificatePermissions": {
        "title": "Permissions",
        "properties": {
          "revoke": {
            "description": "Is the user allowed to revoke the certificate or not",
            "type": "boolean"
          }
        },
        "required": [
          "revoke"
        ]
      },
      "controllers.api.certificate.CertificateWithPermissions": {
        "properties": {
          "certificate": {
            "$ref": "#/components/schemas/models.certificate.Certificate"
          },
          "permissions": {
            "$ref": "#/components/schemas/models.search.certificate.CertificatePermissions"
          }
        },
        "required": [
          "certificate",
          "permissions"
        ]
      },
      "Cert004": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Certificate not found",
        "properties": {
          "error": {
            "enum": [
              "CERT-004"
            ]
          },
          "message": {
            "enum": [
              "Certificate not found"
            ]
          },
          "title": {
            "enum": [
              "Certificate not found"
            ]
          }
        },
        "title": "CERT-004"
      },
      "Cert001": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Unexpected Error",
        "properties": {
          "error": {
            "enum": [
              "CERT-001"
            ]
          },
          "message": {
            "enum": [
              "Unexpected Error"
            ]
          },
          "title": {
            "enum": [
              "Unexpected Error"
            ]
          }
        },
        "title": "CERT-001"
      },
      "models.search.SortElement": {
        "title": "Sort By",
        "properties": {
          "element": {
            "description": "The element on which to sort",
            "example": "id",
            "type": "string"
          },
          "order": {
            "description": "The order to use for the sort. `Asc` and `Desc` sort the values, and `KeyAsc` and `KeyDesc` sort by the key, in case of a key-value element",
            "type": "string",
            "enum": [
              "Asc",
              "Desc",
              "KeyAsc",
              "KeyDesc"
            ]
          }
        },
        "required": [
          "element",
          "order"
        ]
      },
      "models.search.certificate.CertificateSearchQuery": {
        "properties": {
          "query": {
            "example": "status is valid",
            "description": "A SCQL query to filter the certificates",
            "type": "string",
            "nullable": true
          },
          "fields": {
            "description": "The fields that must be present in the response",
            "example": [
              "id",
              "dn"
            ],
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "sortedBy": {
            "type": "array",
            "description": "How to sort the results",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/models.search.SortElement"
            }
          },
          "pageIndex": {
            "type": "integer",
            "description": "Request the page at defined index",
            "example": 1,
            "format": "int32",
            "nullable": true
          },
          "pageSize": {
            "example": 25,
            "description": "The number of results per request",
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "withCount": {
            "type": "boolean",
            "nullable": true,
            "description": "Add the number of results to the search results",
            "example": true
          }
        }
      },
      "models.search.certificate.CertificateSearchResult": {
        "title": "Certificate Search Result",
        "allOf": [
          {
            "$ref": "#/components/schemas/models.basic.BasicCertificate"
          }
        ],
        "properties": {
          "permissions": {
            "description": "The user's permissions on this certificate",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/models.search.certificate.CertificatePermissions"
              }
            ]
          }
        }
      },
      "controllers.api.certificate.CertificateSearchResults": {
        "properties": {
          "results": {
            "description": "The list of certificates",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/models.search.certificate.CertificateSearchResult"
            }
          },
          "pageIndex": {
            "description": "The current page index",
            "type": "integer",
            "format": "int32",
            "example": 1
          },
          "pageSize": {
            "description": "The current page size",
            "type": "integer",
            "format": "int32",
            "example": 25
          },
          "count": {
            "description": "The total number of results. Only available if `withCount` was requested",
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "example": 467
          },
          "hasMore": {
            "description": "`true` while the page is not the last, else `false`",
            "type": "boolean"
          }
        },
        "required": [
          "results",
          "pageIndex",
          "pageSize",
          "hasMore"
        ]
      },
      "Cert002": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Invalid search query",
        "properties": {
          "error": {
            "enum": [
              "CERT-002"
            ]
          },
          "message": {
            "enum": [
              "Invalid search query"
            ]
          },
          "title": {
            "enum": [
              "Invalid search query"
            ]
          }
        },
        "title": "CERT-002"
      },
      "Sql001": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Invalid StreamQL Query",
        "properties": {
          "error": {
            "enum": [
              "STREAMQL-001"
            ]
          },
          "message": {
            "enum": [
              "Invalid StreamQL Query"
            ]
          },
          "title": {
            "enum": [
              "Invalid StreamQL Query"
            ]
          }
        },
        "title": "STREAMQL-001"
      },
      "models.search.Having": {
        "title": "Having",
        "properties": {
          "operator": {
            "description": "A mongoDB operator for comparison",
            "type": "string",
            "example": "gt",
            "enum": [
              "gte",
              "lte",
              "gt",
              "eq",
              "ne",
              "lt"
            ]
          },
          "value": {
            "description": "An integer for the right hand side of the condition",
            "type": "integer",
            "format": "int32",
            "example": 5
          }
        },
        "required": [
          "operator",
          "value"
        ]
      },
      "models.search.certificate.CertificateAggregateQuery": {
        "properties": {
          "query": {
            "description": "The SCQL query to use for the search, represents the way to filter certificates. If not specified, it will filter nothing",
            "example": "status is valid",
            "type": "string",
            "nullable": true
          },
          "groupBy": {
            "description": "The field that the aggregation will take place on",
            "example": "keyType",
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "withCount": {
            "description": "If set to `true`, the total count of certificates matching the SCQL query will be returned",
            "type": "boolean",
            "nullable": true
          },
          "sortOrder": {
            "type": "string",
            "nullable": true,
            "enum": [
              "Asc",
              "Desc",
              "KeyAsc",
              "KeyDesc"
            ]
          },
          "limit": {
            "description": "In case of an aggregate sending a lot of different results, how many must be sent back",
            "example": 3,
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "having": {
            "description": "A condition to apply to the result. Only the aggregates results with more than 5 certificates in them can be kept for example",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/models.search.Having"
              }
            ]
          }
        }
      },
      "models.search.certificate.CertificateAggregateResult": {
        "title": "Aggregate Result",
        "properties": {
          "items": {
            "description": "All the groups in this aggregate",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "_id": {
                  "type": "object",
                  "description": "The object containing this group's information",
                  "properties": {
                    "groupedByField": {
                      "type": "string",
                      "example": "rsa-2048",
                      "description": "This field has the requested aggregate field as key, and the value for this group as value"
                    }
                  }
                },
                "count": {
                  "description": "The number of certificates in this group",
                  "type": "integer",
                  "example": 6
                }
              }
            }
          },
          "count": {
            "description": "The total number of certificates matching the query",
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "example": 6
          }
        },
        "required": [
          "items"
        ]
      },
      "Cert003": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Invalid aggregate query",
        "properties": {
          "error": {
            "enum": [
              "CERT-003"
            ]
          },
          "message": {
            "enum": [
              "Invalid aggregate query"
            ]
          },
          "title": {
            "enum": [
              "Invalid aggregate query"
            ]
          }
        },
        "title": "CERT-003"
      },
      "models.event.EventDetail": {
        "title": "Event Detail",
        "properties": {
          "key": {
            "description": "The name of the event detail",
            "example": "ca",
            "type": "string",
            "enum": [
              "apiError",
              "accountId",
              "streamVersion",
              "message",
              "event",
              "httpVerb",
              "ip",
              "httpPath",
              "stacktrace",
              "traceId",
              "entityType",
              "entityName",
              "ca",
              "caDn",
              "caQueue",
              "caHashAlgorithm",
              "caType",
              "crlNumber",
              "crlThisUpdate",
              "crlNextUpdate",
              "crlEidas",
              "crlValidity",
              "crlLazy",
              "crlSize",
              "externalCrlStorageName",
              "externalCrlStorageType",
              "certificateId",
              "certificateDn",
              "certificateSerial",
              "certificatePem",
              "certificateCmc",
              "certificateRequest",
              "certificateTemplate",
              "enrollmentRequestDn",
              "enrollmentRequestSans",
              "enrollmentRequestExtensions",
              "revocationDate",
              "revocationReason",
              "template",
              "keyParameter",
              "keyType",
              "keySize",
              "privateKey",
              "usePSS",
              "keystore",
              "keystoreType",
              "proxy",
              "licenseExpiration"
            ]
          },
          "value": {
            "description": "The value of the event detail",
            "example": "RootCA",
            "type": "string"
          }
        },
        "required": [
          "key",
          "value"
        ]
      },
      "models.event.Event": {
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Id"
              }
            ],
            "readOnly": true
          },
          "code": {
            "description": "The event code",
            "readOnly": true,
            "type": "string",
            "enum": [
              "CA-CRL-GEN",
              "SEC-ROLE-ADD",
              "CA-REVOKE",
              "LIFECYCLE-ENROLL",
              "CA-CSR",
              "CRL-UPLOAD",
              "CONF-ADD",
              "SEC-ACCOUNT-ADD",
              "CONF-UPDATE",
              "SERVICE-STOP",
              "CRL-GEN",
              "LICENSE-INVALID",
              "SEC-CREDENTIAL-ADD",
              "CA-CRL-UPLOAD",
              "CONF-DELETE",
              "SEC-ACCOUNT-UPDATE",
              "LICENSE-EXPIRED",
              "CA-MIGRATE",
              "SEC-CREDENTIAL-DELETE",
              "SEC-CREDENTIAL-UPDATE",
              "SEC-ACCOUNT-DELETE",
              "BOOTSTRAP-ADMINISTRATOR",
              "SEC-AUTHENTICATION",
              "CA-ISSUE",
              "SERVICE-START",
              "SEC-ROLE-UPDATE",
              "LIFECYCLE-REVOKE",
              "CRL-EXTERNAL-STORAGE",
              "CRL-GET",
              "SEC-ROLE-DELETE"
            ]
          },
          "details": {
            "readOnly": true,
            "description": "Details about the event, in key:value form",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/models.event.EventDetail"
            }
          },
          "module": {
            "readOnly": true,
            "description": "The module on which the event took place",
            "type": "string",
            "enum": [
              "actor",
              "ca",
              "service",
              "license",
              "configuration",
              "bootstrap",
              "lifecycle",
              "security",
              "event",
              "crl"
            ]
          },
          "node": {
            "example": "stream1",
            "description": "Hostname of the node on which the event took place",
            "type": "string",
            "readOnly": true
          },
          "timestamp": {
            "description": "Time of the event",
            "type": "string",
            "readOnly": true,
            "format": "date-time"
          },
          "removeAt": {
            "description": "The event will be deleted from the database at that time",
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "seal": {
            "example": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiI2NGU4OTEzMzV...",
            "description": "The event, hashed and signed with a secret, ensuring events cannot be forged. This does not exist if chainsign has been disabled",
            "readOnly": true,
            "type": "string",
            "nullable": true
          },
          "status": {
            "description": "The status of the event. `success` means the action was performed without error. `warning` means the action did not fail but is not expected. `failure` means the action failed.",
            "type": "string",
            "enum": [
              "warning",
              "failure",
              "success"
            ]
          }
        },
        "required": [
          "code",
          "module",
          "node",
          "timestamp",
          "status"
        ]
      },
      "Evt003": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Event not found",
        "properties": {
          "error": {
            "enum": [
              "EVT-003"
            ]
          },
          "message": {
            "enum": [
              "Event not found"
            ]
          },
          "title": {
            "enum": [
              "Event not found"
            ]
          }
        },
        "title": "EVT-003"
      },
      "Evt001": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Unexpected Error",
        "properties": {
          "error": {
            "enum": [
              "EVT-001"
            ]
          },
          "message": {
            "enum": [
              "Unexpected Error"
            ]
          },
          "title": {
            "enum": [
              "Unexpected Error"
            ]
          }
        },
        "title": "EVT-001"
      },
      "controllers.api.event.EventSearchDictionary": {
        "title": "Event Search Dictionary",
        "description": "Search dictionary for events",
        "properties": {
          "modules": {
            "description": "The Stream modules that events can be searched on",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "actor",
                "ca",
                "service",
                "license",
                "configuration",
                "bootstrap",
                "lifecycle",
                "security",
                "event",
                "crl"
              ]
            }
          },
          "codes": {
            "description": "Available event codes to search on",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "CA-CRL-GEN",
                "SEC-ROLE-ADD",
                "CA-REVOKE",
                "LIFECYCLE-ENROLL",
                "CA-CSR",
                "CRL-UPLOAD",
                "CONF-ADD",
                "SEC-ACCOUNT-ADD",
                "CONF-UPDATE",
                "SERVICE-STOP",
                "CRL-GEN",
                "LICENSE-INVALID",
                "SEC-CREDENTIAL-ADD",
                "CA-CRL-UPLOAD",
                "CONF-DELETE",
                "SEC-ACCOUNT-UPDATE",
                "LICENSE-EXPIRED",
                "CA-MIGRATE",
                "SEC-CREDENTIAL-DELETE",
                "SEC-CREDENTIAL-UPDATE",
                "SEC-ACCOUNT-DELETE",
                "BOOTSTRAP-ADMINISTRATOR",
                "SEC-AUTHENTICATION",
                "CA-ISSUE",
                "SERVICE-START",
                "SEC-ROLE-UPDATE",
                "LIFECYCLE-REVOKE",
                "CRL-EXTERNAL-STORAGE",
                "CRL-GET",
                "SEC-ROLE-DELETE"
              ]
            }
          },
          "details": {
            "description": "Available event details to search on",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "apiError",
                "accountId",
                "streamVersion",
                "message",
                "event",
                "httpVerb",
                "ip",
                "httpPath",
                "stacktrace",
                "traceId",
                "entityType",
                "entityName",
                "ca",
                "caDn",
                "caQueue",
                "caHashAlgorithm",
                "caType",
                "crlNumber",
                "crlThisUpdate",
                "crlNextUpdate",
                "crlEidas",
                "crlValidity",
                "crlLazy",
                "crlSize",
                "externalCrlStorageName",
                "externalCrlStorageType",
                "certificateId",
                "certificateDn",
                "certificateSerial",
                "certificatePem",
                "certificateCmc",
                "certificateRequest",
                "certificateTemplate",
                "enrollmentRequestDn",
                "enrollmentRequestSans",
                "enrollmentRequestExtensions",
                "revocationDate",
                "revocationReason",
                "template",
                "keyParameter",
                "keyType",
                "keySize",
                "privateKey",
                "usePSS",
                "keystore",
                "keystoreType",
                "proxy",
                "licenseExpiration"
              ]
            }
          }
        },
        "required": [
          "modules",
          "codes",
          "details"
        ]
      },
      "models.search.event.EventSearchQuery": {
        "properties": {
          "query": {
            "description": "The query to filter the events (SEQL)",
            "example": "details.apiError exists",
            "type": "string",
            "nullable": true
          },
          "sortedBy": {
            "description": "The result sorting",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/models.search.SortElement"
            }
          },
          "pageIndex": {
            "description": "Request the page at defined index",
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "example": 1
          },
          "pageSize": {
            "description": "The number of results per request",
            "type": "integer",
            "example": 25,
            "format": "int32",
            "nullable": true
          },
          "withCount": {
            "description": "Add the number of results to the search results",
            "example": true,
            "type": "boolean",
            "nullable": true
          }
        }
      },
      "controllers.api.event.EventSearchResults": {
        "properties": {
          "results": {
            "description": "The list of events",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/models.event.Event"
            }
          },
          "pageIndex": {
            "description": "The current page index",
            "type": "integer",
            "format": "int32",
            "example": 1
          },
          "pageSize": {
            "description": "The current page size",
            "type": "integer",
            "format": "int32",
            "example": 25
          },
          "count": {
            "description": "The total number of results. Only available if `withCount` was requested",
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "example": 467
          },
          "hasMore": {
            "description": "`true` while the page is not the last, else `false`",
            "type": "boolean"
          }
        },
        "required": [
          "results",
          "pageIndex",
          "pageSize",
          "hasMore"
        ]
      },
      "Evt002": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Invalid Event Search Query",
        "properties": {
          "error": {
            "enum": [
              "EVT-002"
            ]
          },
          "message": {
            "enum": [
              "Invalid Event Search Query"
            ]
          },
          "title": {
            "enum": [
              "Invalid Event Search Query"
            ]
          }
        },
        "title": "EVT-002"
      },
      "models.event.integrity.EventIntegrityReport": {
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Id"
              }
            ],
            "readOnly": true
          },
          "status": {
            "description": "The report status. `running` means the scan is currently in progress. `verified` means the scan checked the events and found no log tampering. `unexpectedFailure` means an unexpected error happened either while checking the events tampering or the event integrity reports tampering. `eventIntegrityFailure` means the event logs were tampered with. `reportIntegrityFailure` means the event integrity reports were tampered with. If the status is a failure, the error field contains details about the failure.",
            "readOnly": true,
            "type": "string",
            "example": "eventIntegrityFailure",
            "enum": [
              "running",
              "verified",
              "unexpectedFailure",
              "eventIntegrityFailure",
              "reportIntegrityFailure"
            ]
          },
          "start": {
            "description": "The start time of the events scan",
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "end": {
            "description": "The end time of the events scan",
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "nullable": true
          },
          "from": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Id"
              }
            ],
            "readOnly": true,
            "description": "The Id of the first event that was verified"
          },
          "to": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Id"
              }
            ],
            "readOnly": true,
            "description": "The Id of the last event that was verified"
          },
          "error": {
            "type": "string",
            "example": "Events were tampered with: On Event: ...",
            "nullable": true,
            "readOnly": true,
            "description": "In case of failure, a detailed message about the failure"
          },
          "events": {
            "example": 1095652431,
            "type": "integer",
            "nullable": true,
            "description": "The total number of events checked by this report",
            "readOnly": true
          },
          "seal": {
            "example": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiI2NGU4OTEzMzV...",
            "description": "The event integrity report, hashed and signed with a secret, ensuring event reports cannot be forged",
            "readOnly": true,
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "status",
          "id",
          "start"
        ]
      },
      "EvtIntegrity002": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Invalid Event configuration",
        "properties": {
          "error": {
            "enum": [
              "EVT-INTEGRITY-002"
            ]
          },
          "message": {
            "enum": [
              "Invalid Event configuration"
            ]
          },
          "title": {
            "enum": [
              "Invalid Event configuration"
            ]
          }
        },
        "title": "EVT-INTEGRITY-002"
      },
      "EvtIntegrity001": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Unexpected Error",
        "properties": {
          "error": {
            "enum": [
              "EVT-INTEGRITY-001"
            ]
          },
          "message": {
            "enum": [
              "Unexpected Error"
            ]
          },
          "title": {
            "enum": [
              "Unexpected Error"
            ]
          }
        },
        "title": "EVT-INTEGRITY-001"
      },
      "EvtIntegrity003": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Invalid Event id",
        "properties": {
          "error": {
            "enum": [
              "EVT-INTEGRITY-003"
            ]
          },
          "message": {
            "enum": [
              "Invalid Event id"
            ]
          },
          "title": {
            "enum": [
              "Invalid Event id"
            ]
          }
        },
        "title": "EVT-INTEGRITY-003"
      },
      "Lifecycle001": {
        "title": "LIFECYCLE-001",
        "description": "Unexpected error",
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "properties": {
          "error": {
            "enum": [
              "LIFECYCLE-001"
            ]
          },
          "message": {
            "enum": [
              "Unexpected error"
            ]
          },
          "title": {
            "enum": [
              "Unexpected error"
            ]
          }
        }
      },
      "controllers.api.lifecycle.EnrollmentRequestTemplate": {
        "title": "EnrollmentRequestTemplate",
        "description": "The template of the certificate. Requested extensions can be modified if this was allowed in template configuration.",
        "properties": {
          "name": {
            "type": "string",
            "example": "ClientServer",
            "description": "Name of the template to enroll on"
          },
          "ku": {
            "nullable": true,
            "$ref": "#/components/schemas/models.template.extension.ku.KeyUsage"
          },
          "eku": {
            "nullable": true,
            "$ref": "#/components/schemas/models.template.extension.eku.ExtendedKeyUsage"
          },
          "emptyExtensions": {
            "type": "array",
            "description": "Extensions that have no value to add to the certificate",
            "nullable": true,
            "items": {
              "type": "string",
              "enum": [
                "no_revocation_check"
              ]
            }
          },
          "crldps": {
            "type": "array",
            "nullable": true,
            "description": "List of CRL Distribution Points URI to add to the certificate",
            "items": {
              "type": "string",
              "example": "http://crl.evertrust.fr/IssuingCA"
            }
          },
          "aia": {
            "nullable": true,
            "$ref": "#/components/schemas/models.template.extension.aia.AuthorityInformationAccess"
          },
          "policy": {
            "nullable": true,
            "$ref": "#/components/schemas/models.template.extension.policy.CertificatePolicy"
          },
          "pathLen": {
            "type": "integer",
            "example": 2,
            "description": "Length of the path to the root Certificate Authority to add to the certificate",
            "format": "int32",
            "nullable": true
          },
          "lifetime": {
            "nullable": true,
            "type": "string",
            "description": "Lifetime of the certificate to enroll",
            "format": "Finite Duration",
            "pattern": "^([0-9]+) *(ms|millisecond|milliseconds|s|second|seconds|m|minute|minutes|h|hour|hours|d|day|days)$",
            "example": "365 days"
          },
          "backdate": {
            "nullable": true,
            "type": "string",
            "description": "Time to substract to current time to set the notBefore of the certificate to enroll",
            "format": "Finite Duration",
            "pattern": "^([0-9]+) *(ms|millisecond|milliseconds|s|second|seconds|m|minute|minutes|h|hour|hours|d|day|days)$",
            "example": "5 seconds"
          },
          "checkPoP": {
            "description": "If true, check that the CSR signature matches the CSR Public Key",
            "type": "boolean",
            "nullable": true,
            "default": false
          }
        },
        "required": [
          "name"
        ]
      },
      "models.template.dn.IndexedDNElement": {
        "title": "Indexed Distinguished Name Element",
        "description": "An element of the distinguished name",
        "properties": {
          "element": {
            "description": "The type and index of the element",
            "example": "cn.1",
            "type": "string"
          },
          "value": {
            "description": "The value of the element. Not setting this value means the value should not exist in the certificate",
            "example": "Common Name One",
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "element"
        ]
      },
      "models.certificate.CertificateSan": {
        "title": "Certificate SAN Element",
        "description": "A subject alternate name to add to the certificate",
        "properties": {
          "element": {
            "type": "string",
            "example": "dnsname",
            "description": "The type of the Subject Alternate Name",
            "enum": [
              "ipaddress",
              "uri",
              "othername_upn",
              "dnsname",
              "othername_guid",
              "rfc822name"
            ]
          },
          "values": {
            "type": "array",
            "example": [
              "evertrust.fr",
              "docs.evertrust.fr"
            ],
            "description": "List of values of the Subject Alternate Name. An empty list means the SAN should not be in the certificate",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "element",
          "values"
        ]
      },
      "models.certificate.CertificateExtension": {
        "title": "Certificate Extension Element",
        "description": "An extension to add to the certificate",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of the extension",
            "enum": [
              "ms_sid",
              "ms_template"
            ]
          },
          "value": {
            "type": "string",
            "description": "The value of the extension. Not setting this value means the extension should not be in the certificate",
            "nullable": true,
            "example": "S-1-0-00-414499496-5692008546-4333839794-324818"
          }
        },
        "required": [
          "type"
        ]
      },
      "controllers.api.lifecycle.EnrollmentRequest": {
        "properties": {
          "ca": {
            "description": "The Certificate Authority name on which to enroll the certificate",
            "type": "string",
            "example": "IssuingCA"
          },
          "csr": {
            "description": "The PEM-encoded CSR of the certificate to enroll",
            "type": "string",
            "format": "PKCS#10 PEM encoded",
            "example": "-----BEGIN CSR----- ..."
          },
          "template": {
            "$ref": "#/components/schemas/controllers.api.lifecycle.EnrollmentRequestTemplate"
          },
          "dataFrom": {
            "type": "string",
            "nullable": true,
            "default": "api",
            "enum": [
              "api",
              "csr",
              "apicsr"
            ],
            "description": "This defines which information source the certificate should use: `api` uses information from the json request body alone : `dn`, `dnElements`, `sans` and `extensions`, `csr` uses information from the `csr` only, `apicsr` uses information from the json request body and fallbacks on the csr if the information is not explicitly defined"
          },
          "dn": {
            "type": "string",
            "nullable": true,
            "description": "The certificate's Distinguished Name in standard form. This has precedence over building the DN using `dnElements`",
            "example": "CN=Common Name One,OU=Some Ou"
          },
          "dnElements": {
            "description": "Elements to build the certificate's distinguished name. This can be overriden in the same request by the `dn` property",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/models.template.dn.IndexedDNElement"
            }
          },
          "sans": {
            "description": "Elements to build the certificate's Subject Alternate Names",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/models.certificate.CertificateSan"
            }
          },
          "extensions": {
            "description": "Elements to build the certificate's Extensions",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/models.certificate.CertificateExtension"
            }
          }
        },
        "required": [
          "ca",
          "csr",
          "template"
        ]
      },
      "Lifecycle004": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Invalid certificate enrollment request",
        "properties": {
          "error": {
            "enum": [
              "LIFECYCLE-004"
            ]
          },
          "message": {
            "enum": [
              "Invalid certificate enrollment request"
            ]
          },
          "title": {
            "enum": [
              "Invalid certificate enrollment request"
            ]
          }
        },
        "title": "LIFECYCLE-004"
      },
      "Lifecycle002": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Certificate Authority enrollment is disabled",
        "properties": {
          "error": {
            "enum": [
              "LIFECYCLE-002"
            ]
          },
          "message": {
            "enum": [
              "Certificate Authority enrollment is disabled"
            ]
          },
          "title": {
            "enum": [
              "Certificate Authority enrollment is disabled"
            ]
          }
        },
        "title": "LIFECYCLE-002"
      },
      "Lifecycle003": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Certificate Authority is not ready",
        "properties": {
          "error": {
            "enum": [
              "LIFECYCLE-003"
            ]
          },
          "message": {
            "enum": [
              "Certificate Authority is not ready"
            ]
          },
          "title": {
            "enum": [
              "Certificate Authority is not ready"
            ]
          }
        },
        "title": "LIFECYCLE-003"
      },
      "Lifecycle005": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Certificate enrollment error",
        "properties": {
          "error": {
            "enum": [
              "LIFECYCLE-005"
            ]
          },
          "message": {
            "enum": [
              "Certificate enrollment error"
            ]
          },
          "title": {
            "enum": [
              "Certificate enrollment error"
            ]
          }
        },
        "title": "LIFECYCLE-005"
      },
      "controllers.api.lifecycle.RevocationRequestWithCert": {
        "title": "Revocation Using PEM",
        "properties": {
          "certificate": {
            "description": "The PEM of the certificate to revoke",
            "type": "string",
            "example": "-----BEGIN CERTIFICATE----- ...",
            "format": "X509 PEM encoded certificate"
          },
          "reason": {
            "type": "string",
            "nullable": true,
            "default": "UNSPECIFIED",
            "description": "The revocation reason to revoke the certificate with",
            "enum": [
              "UNSPECIFIED",
              "KEYCOMPROMISE",
              "CACOMPROMISE",
              "AFFILIATIONCHANGE",
              "SUPERSEDED",
              "CESSATIONOFOPERATION"
            ]
          }
        },
        "required": [
          "certificate"
        ]
      },
      "controllers.api.lifecycle.RevocationRequestWithSerial": {
        "title": "Revocation Using Serial and CA",
        "properties": {
          "serial": {
            "type": "string",
            "description": "The serial of the certificate to revoke",
            "example": "68747470733a2f2f7777772e796f75747562652e636f6d2f77617463683f763d6451773477395767586351"
          },
          "ca": {
            "description": "The name of the Issuing Certificate Authority of the certificate to revoke",
            "type": "string",
            "example": "IssuingCA"
          },
          "reason": {
            "type": "string",
            "nullable": true,
            "description": "The revocation reason to revoke the certificate with",
            "default": "UNSPECIFIED",
            "enum": [
              "UNSPECIFIED",
              "KEYCOMPROMISE",
              "CACOMPROMISE",
              "AFFILIATIONCHANGE",
              "SUPERSEDED",
              "CESSATIONOFOPERATION"
            ]
          }
        },
        "required": [
          "serial",
          "ca"
        ]
      },
      "Lifecycle006": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Invalid certificate revocation request",
        "properties": {
          "error": {
            "enum": [
              "LIFECYCLE-006"
            ]
          },
          "message": {
            "enum": [
              "Invalid certificate revocation request"
            ]
          },
          "title": {
            "enum": [
              "Invalid certificate revocation request"
            ]
          }
        },
        "title": "LIFECYCLE-006"
      },
      "Ca017": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Managed Root Certificate Authority cannot be revoked",
        "properties": {
          "error": {
            "enum": [
              "CA-017"
            ]
          },
          "message": {
            "enum": [
              "Managed Root Certificate Authority cannot be revoked"
            ]
          },
          "title": {
            "enum": [
              "Managed Root Certificate Authority cannot be revoked"
            ]
          }
        },
        "title": "CA-017"
      },
      "Lifecycle007": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Certificate revocation error",
        "properties": {
          "error": {
            "enum": [
              "LIFECYCLE-007"
            ]
          },
          "message": {
            "enum": [
              "Certificate revocation error"
            ]
          },
          "title": {
            "enum": [
              "Certificate revocation error"
            ]
          }
        },
        "title": "LIFECYCLE-007"
      },
      "models.security.permission.Permission": {
        "title": "Permission",
        "properties": {
          "value": {
            "example": "configuration:security:*",
            "type": "string",
            "description": "A permission string that give rights on specific operations"
          }
        },
        "required": [
          "value"
        ]
      },
      "models.security.account.LocalAccount": {
        "title": "Local Account",
        "description": "A login / password account for Stream",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Id"
              }
            ],
            "readOnly": true
          },
          "type": {
            "type": "string",
            "description": "The type of the account",
            "enum": [
              "local"
            ]
          },
          "identifier": {
            "description": "The account's identifier",
            "type": "string",
            "nullable": true,
            "example": "KTO"
          },
          "description": {
            "description": "The account's description",
            "type": "string",
            "nullable": true,
            "example": "Local account for user KTO"
          },
          "permissions": {
            "type": "array",
            "nullable": true,
            "description": "List of the principal's permissions",
            "items": {
              "$ref": "#/components/schemas/models.security.permission.Permission"
            }
          },
          "roles": {
            "description": "List of the principal's roles",
            "example": "Administrator",
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "expires": {
            "description": "The account's expiration date",
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "creationDate": {
            "type": "string",
            "description": "The account's creation date",
            "format": "date-time",
            "nullable": true,
            "readOnly": true
          },
          "lastAuthentication": {
            "type": "string",
            "description": "The account's last authentication time",
            "format": "date-time",
            "nullable": true,
            "readOnly": true
          },
          "lastModification": {
            "description": "The account's last modification time",
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "readOnly": true
          }
        },
        "required": [
          "id",
          "type"
        ]
      },
      "models.security.account.X509Account": {
        "title": "X509 Account",
        "description": "An x509 authenticated account for Stream",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Id"
              }
            ],
            "readOnly": true
          },
          "type": {
            "description": "The type of the account",
            "type": "string",
            "enum": [
              "x509"
            ]
          },
          "identifier": {
            "description": "The identifier for the account. It must be a Distinguished Name",
            "type": "string",
            "nullable": true,
            "example": "CN=KTO,O=EVERTRUST,C=FR"
          },
          "description": {
            "description": "The account's description",
            "type": "string",
            "nullable": true,
            "example": "x509 account for user KTO"
          },
          "permissions": {
            "type": "array",
            "nullable": true,
            "description": "List of the principal's permissions",
            "items": {
              "$ref": "#/components/schemas/models.security.permission.Permission"
            }
          },
          "roles": {
            "description": "List of the principal's roles",
            "example": "Administrator",
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "creationDate": {
            "type": "string",
            "description": "The account's creation date",
            "format": "date-time",
            "nullable": true,
            "readOnly": true
          },
          "lastAuthentication": {
            "type": "string",
            "description": "The account's last authentication time",
            "format": "date-time",
            "nullable": true,
            "readOnly": true
          },
          "lastModification": {
            "description": "The account's last modification time",
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "readOnly": true
          }
        },
        "required": [
          "id",
          "type"
        ]
      },
      "Account001": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Unexpected error",
        "properties": {
          "error": {
            "enum": [
              "ACCOUNT-001"
            ]
          },
          "message": {
            "enum": [
              "Unexpected error"
            ]
          },
          "title": {
            "enum": [
              "Unexpected error"
            ]
          }
        },
        "title": "ACCOUNT-001"
      },
      "Account002": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Invalid Account",
        "properties": {
          "error": {
            "enum": [
              "ACCOUNT-002"
            ]
          },
          "message": {
            "enum": [
              "Invalid Account"
            ]
          },
          "title": {
            "enum": [
              "Invalid Account"
            ]
          }
        },
        "title": "ACCOUNT-002"
      },
      "Account003": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Account not found",
        "properties": {
          "error": {
            "enum": [
              "ACCOUNT-003"
            ]
          },
          "message": {
            "enum": [
              "Account not found"
            ]
          },
          "title": {
            "enum": [
              "Account not found"
            ]
          }
        },
        "title": "ACCOUNT-003"
      },
      "models.security.account.LocalAccountWithPasswordResponse": {
        "title": "Local Account",
        "description": "A login / password account for Stream",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Id"
              }
            ],
            "readOnly": true
          },
          "type": {
            "type": "string",
            "description": "The type of the account",
            "enum": [
              "local"
            ]
          },
          "identifier": {
            "description": "The account's identifier",
            "type": "string",
            "nullable": true,
            "example": "KTO"
          },
          "secret": {
            "description": "The clear password of the account",
            "type": "string",
            "nullable": true,
            "example": "qDQ121Aq5qtqz5d12wzd121q"
          },
          "description": {
            "description": "The account's description",
            "type": "string",
            "nullable": true,
            "example": "Local account for user KTO"
          },
          "permissions": {
            "type": "array",
            "nullable": true,
            "description": "List of the principal's permissions",
            "items": {
              "$ref": "#/components/schemas/models.security.permission.Permission"
            }
          },
          "roles": {
            "description": "List of the principal's roles",
            "example": "Administrator",
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "expires": {
            "description": "The account's expiration date",
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "creationDate": {
            "type": "string",
            "description": "The account's creation date",
            "format": "date-time",
            "nullable": true,
            "readOnly": true
          },
          "lastAuthentication": {
            "type": "string",
            "description": "The account's last authentication time",
            "format": "date-time",
            "nullable": true,
            "readOnly": true
          },
          "lastModification": {
            "description": "The account's last modification time",
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "readOnly": true
          }
        },
        "required": [
          "id",
          "type"
        ]
      },
      "models.security.role.Role": {
        "title": "Role",
        "description": "A role defining permissions",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Id"
              }
            ],
            "readOnly": true
          },
          "name": {
            "description": "The role's name",
            "example": "Administrator",
            "type": "string"
          },
          "description": {
            "type": "string",
            "example": "This role give administrator rights",
            "description": "The role's description",
            "nullable": true
          },
          "permissions": {
            "type": "array",
            "description": "The list of permissions associated with the role",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/models.security.permission.Permission"
            }
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "models.security.principal.Principal": {
        "title": "Principal",
        "description": "A principal represents a logged in user",
        "properties": {
          "identifier": {
            "description": "The identifier of the account",
            "type": "string",
            "example": "KTO"
          },
          "accountType": {
            "type": "string",
            "description": "The type of account associated with this principal",
            "enum": [
              "local",
              "x509"
            ]
          },
          "permissions": {
            "description": "The list of permissions of the principal",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/models.security.permission.Permission"
            }
          },
          "roles": {
            "type": "array",
            "nullable": true,
            "description": "The principal's role",
            "items": {
              "$ref": "#/components/schemas/models.security.role.Role"
            }
          }
        },
        "required": [
          "identifier",
          "accountType"
        ]
      },
      "Role001": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Unexpected error",
        "properties": {
          "error": {
            "enum": [
              "ROLE-001"
            ]
          },
          "message": {
            "enum": [
              "Unexpected error"
            ]
          },
          "title": {
            "enum": [
              "Unexpected error"
            ]
          }
        },
        "title": "ROLE-001"
      },
      "Role002": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Invalid Role",
        "properties": {
          "error": {
            "enum": [
              "ROLE-002"
            ]
          },
          "message": {
            "enum": [
              "Invalid Role"
            ]
          },
          "title": {
            "enum": [
              "Invalid Role"
            ]
          }
        },
        "title": "ROLE-002"
      },
      "Role003": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Role not found",
        "properties": {
          "error": {
            "enum": [
              "ROLE-003"
            ]
          },
          "message": {
            "enum": [
              "Role not found"
            ]
          },
          "title": {
            "enum": [
              "Role not found"
            ]
          }
        },
        "title": "ROLE-003"
      },
      "Role004": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Role already exists",
        "properties": {
          "error": {
            "enum": [
              "ROLE-004"
            ]
          },
          "message": {
            "enum": [
              "Role already exists"
            ]
          },
          "title": {
            "enum": [
              "Role already exists"
            ]
          }
        },
        "title": "ROLE-004"
      },
      "models.crypto.keystore.azure.AzureKeystore": {
        "title": "Azure Keystore",
        "description": "An Azure Key Vault",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Id"
              }
            ],
            "readOnly": true
          },
          "type": {
            "description": "The Keystore's type",
            "type": "string",
            "enum": [
              "akv"
            ]
          },
          "name": {
            "description": "The Keystore's name",
            "example": "Azure-Key-Vault-1",
            "type": "string"
          },
          "description": {
            "description": "The Keystore's description",
            "example": "Keys in AKV",
            "type": "string",
            "nullable": true
          },
          "proxy": {
            "description": "The proxy to access the Keystore",
            "example": "Internal-Proxy",
            "type": "string",
            "nullable": true
          },
          "timeout": {
            "description": "The timeout to join the Keystore",
            "nullable": true,
            "type": "string",
            "format": "Finite Duration",
            "pattern": "^([0-9]+) *(ms|millisecond|milliseconds|s|second|seconds|m|minute|minutes|h|hour|hours|d|day|days)$",
            "example": "30 seconds"
          },
          "tenant": {
            "description": "The Azure Keystore's tenant",
            "example": "evertrust.onmicrosoft.com",
            "type": "string",
            "nullable": true
          },
          "credentials": {
            "description": "The Keystore's credentials",
            "example": "AKVCreds",
            "type": "string",
            "nullable": true
          },
          "vaultUrl": {
            "description": "The Keystore's url",
            "example": "https://vault-name.vault.azure.net",
            "type": "string"
          }
        },
        "required": [
          "id",
          "type",
          "name",
          "vaultUrl"
        ]
      },
      "models.crypto.keystore.aws.AWSKeystore": {
        "title": "AWS Keystore",
        "description": "An Amazon Web Services Keystore",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Id"
              }
            ],
            "readOnly": true
          },
          "type": {
            "description": "The Keystore's type",
            "type": "string",
            "enum": [
              "aws"
            ]
          },
          "name": {
            "description": "The Keystore's name",
            "example": "AWS-Keystore-1",
            "type": "string"
          },
          "description": {
            "description": "The Keystore's description",
            "example": "Keys in AWS",
            "type": "string",
            "nullable": true
          },
          "proxy": {
            "description": "The proxy to access the Keystore",
            "example": "Internal-Proxy",
            "type": "string",
            "nullable": true
          },
          "timeout": {
            "description": "The timeout to join the Keystore",
            "nullable": true,
            "type": "string",
            "format": "Finite Duration",
            "pattern": "^([0-9]+) *(ms|millisecond|milliseconds|s|second|seconds|m|minute|minutes|h|hour|hours|d|day|days)$",
            "example": "30 seconds"
          },
          "endpoint": {
            "description": "The Keystore's endpoint if not the default Amazon endpoint",
            "example": "https://custom-uri.com",
            "type": "string",
            "nullable": true
          },
          "credentials": {
            "description": "The Keystore's credentials",
            "example": "AWSCreds",
            "type": "string",
            "nullable": true
          },
          "region": {
            "description": "The Keystore's AWS Region",
            "example": "us-east-1",
            "type": "string",
            "nullable": true
          },
          "roleArn": {
            "description": "The Keystore's Role ARN",
            "example": "arn:aws:iam::123456789012:group/Developers",
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "id",
          "type",
          "name"
        ]
      },
      "models.crypto.keystore.gcp.GCloudKeystore": {
        "title": "GCP Keystore",
        "description": "A Google Cloud Provider Keystore",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Id"
              }
            ],
            "readOnly": true
          },
          "type": {
            "description": "The Keystore's type",
            "type": "string",
            "enum": [
              "gcp"
            ]
          },
          "name": {
            "description": "The Keystore's name",
            "example": "AWS-Keystore-1",
            "type": "string"
          },
          "description": {
            "description": "The Keystore's description",
            "example": "Keys in AWS",
            "type": "string",
            "nullable": true
          },
          "proxy": {
            "description": "The proxy to access the Keystore",
            "example": "Internal-Proxy",
            "type": "string",
            "nullable": true
          },
          "timeout": {
            "description": "The timeout to join the Keystore",
            "nullable": true,
            "type": "string",
            "format": "Finite Duration",
            "pattern": "^([0-9]+) *(ms|millisecond|milliseconds|s|second|seconds|m|minute|minutes|h|hour|hours|d|day|days)$",
            "example": "30 seconds"
          },
          "project": {
            "description": "The GCP Project Name",
            "example": "evertrust-keystore",
            "type": "string"
          },
          "location": {
            "description": "The GCP Location to use",
            "example": "global",
            "type": "string"
          },
          "keyRing": {
            "description": "The GCP Key Ring to use",
            "example": "main-key-ring",
            "type": "string"
          },
          "credentials": {
            "description": "The Keystore's credentials",
            "example": "GCPCreds",
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "id",
          "type",
          "name",
          "project",
          "location",
          "keyRing"
        ]
      },
      "models.crypto.keystore.pkcs11.PKCS11Keystore": {
        "title": "PKCS11 Keystore",
        "description": "A PKCS11 Keystore",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Id"
              }
            ],
            "readOnly": true
          },
          "type": {
            "description": "The Keystore's type",
            "type": "string",
            "enum": [
              "pkcs11"
            ]
          },
          "name": {
            "description": "The Keystore's name",
            "example": "PKCS11-Keystore-1",
            "type": "string"
          },
          "description": {
            "description": "The Keystore's description",
            "example": "Keys in HSM",
            "type": "string",
            "nullable": true
          },
          "library": {
            "description": "The Path to the PKCS11 Library to use for the Keystore",
            "example": "/libs/pkcs11-tools.so",
            "type": "string"
          },
          "slot": {
            "description": "The PKCS11 Keystore's Slot to use",
            "example": 64751,
            "type": "integer",
            "format": "int64"
          },
          "pin": {
            "allOf": [
              {
                "$ref": "#/components/schemas/models.secret.SecretString"
              }
            ],
            "description": "The PKCS11 Keystore's pin code"
          },
          "rsaX931Mode": {
            "description": "Use the X931 Mode for RSA Key Generation",
            "type": "boolean"
          },
          "poolSize": {
            "description": "Number of parallel sessions on the PKCS11 Keystore (by Stream node)",
            "example": 3,
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "required": [
          "id",
          "type",
          "name",
          "library",
          "slot",
          "pin",
          "rsaX931Mode"
        ]
      },
      "models.crypto.keystore.software.SoftwareKeystore": {
        "title": "Software Keystore",
        "description": "A Software Keystore",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Id"
              }
            ],
            "readOnly": true
          },
          "type": {
            "description": "The Keystore's type",
            "type": "string",
            "enum": [
              "software"
            ]
          },
          "name": {
            "description": "The Keystore's name",
            "example": "Software-Keystore-1",
            "type": "string"
          },
          "description": {
            "description": "The Keystore's description",
            "example": "Test Keystore",
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "id",
          "type",
          "name"
        ]
      },
      "Keystore001": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Unexpected error",
        "properties": {
          "error": {
            "enum": [
              "KEYSTORE-001"
            ]
          },
          "message": {
            "enum": [
              "Unexpected error"
            ]
          },
          "title": {
            "enum": [
              "Unexpected error"
            ]
          }
        },
        "title": "KEYSTORE-001"
      },
      "Keystore002": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Invalid keystore",
        "properties": {
          "error": {
            "enum": [
              "KEYSTORE-002"
            ]
          },
          "message": {
            "enum": [
              "Invalid keystore"
            ]
          },
          "title": {
            "enum": [
              "Invalid keystore"
            ]
          }
        },
        "title": "KEYSTORE-002"
      },
      "models.crypto.keystore.pkcs11.PKCS11KeystoreAdd": {
        "title": "PKCS11 Keystore",
        "description": "A PKCS11 Keystore",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Id"
              }
            ],
            "readOnly": true
          },
          "type": {
            "description": "The Keystore's type",
            "type": "string",
            "enum": [
              "pkcs11"
            ]
          },
          "name": {
            "description": "The Keystore's name",
            "example": "PKCS11-Keystore-1",
            "type": "string"
          },
          "description": {
            "description": "The Keystore's description",
            "example": "Keys in HSM",
            "type": "string",
            "nullable": true
          },
          "library": {
            "description": "The Path to the PKCS11 Library to use for the Keystore",
            "example": "/libs/pkcs11-tools.so",
            "type": "string"
          },
          "slot": {
            "description": "The PKCS11 Keystore's Slot to use",
            "example": 64751,
            "type": "integer",
            "format": "int64"
          },
          "pin": {
            "title": "Secret String",
            "description": "A string containing a hidden secret",
            "properties": {
              "clear": {
                "description": "The clear value of the secret",
                "type": "string",
                "nullable": true,
                "writeOnly": true,
                "example": "Clear secret"
              }
            },
            "required": [
              "clear"
            ]
          },
          "rsaX931Mode": {
            "description": "Use the X931 Mode for RSA Key Generation",
            "type": "boolean"
          },
          "poolSize": {
            "description": "Number of parallel sessions on the PKCS11 Keystore (by Stream node)",
            "example": 3,
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "required": [
          "id",
          "type",
          "name",
          "library",
          "slot",
          "pin",
          "rsaX931Mode"
        ]
      },
      "Keystore004": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Keystore already exists",
        "properties": {
          "error": {
            "enum": [
              "KEYSTORE-004"
            ]
          },
          "message": {
            "enum": [
              "Keystore already exists"
            ]
          },
          "title": {
            "enum": [
              "Keystore already exists"
            ]
          }
        },
        "title": "KEYSTORE-004"
      },
      "Keystore005": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Keystore is referenced",
        "properties": {
          "error": {
            "enum": [
              "KEYSTORE-005"
            ]
          },
          "message": {
            "enum": [
              "Keystore is referenced"
            ]
          },
          "title": {
            "enum": [
              "Keystore is referenced"
            ]
          }
        },
        "title": "KEYSTORE-005"
      },
      "models.crypto.key.SuiteBKeyDescription": {
        "title": "Key Description",
        "description": "Cryptographic information about a Private Key",
        "properties": {
          "type": {
            "description": "The type of cryptographic algorithms allowed on this Key",
            "type": "string",
            "enum": [
              "suiteb"
            ]
          },
          "keyType": {
            "description": "The algorithm type of the Key",
            "type": "string",
            "example": "rsa",
            "enum": [
              "ec",
              "ed",
              "rsa"
            ]
          },
          "keySize": {
            "description": "The Key's size for an RSA Key",
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "example": 4096
          },
          "keyECParameter": {
            "description": "The Key's curve for an Elliptic-curve Key",
            "nullable": true,
            "type": "string",
            "example": null,
            "enum": [
              "secp256r1",
              "secp384r1",
              "secp521r1"
            ]
          },
          "keyEDParameter": {
            "description": "The Key's curve for an Edwards-curve Key",
            "type": "string",
            "nullable": true,
            "example": null,
            "enum": [
              "ED25519",
              "ED448"
            ]
          }
        },
        "required": [
          "type",
          "keyType"
        ]
      },
      "models.crypto.key.PrivateKey": {
        "type": "object",
        "title": "Private Key",
        "description": "Information about a Private Key",
        "properties": {
          "name": {
            "description": "The Private Key's name",
            "example": "Root-CA-Key",
            "type": "string"
          },
          "alias": {
            "nullable": true,
            "description": "The Private Key's alias",
            "example": "Root-CA-Key-Alias",
            "type": "string"
          },
          "keystore": {
            "description": "The Keystore's name on which this Key is stored",
            "example": "GCP-Keystore-1",
            "type": "string"
          },
          "description": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/models.crypto.key.SuiteBKeyDescription"
              }
            ]
          },
          "extractable": {
            "description": "If true, this Key can be extracted from the Keystore",
            "type": "boolean"
          },
          "modifiable": {
            "description": "If true, this Key can be extracted from the Keystore",
            "type": "boolean",
            "nullable": true
          },
          "enforcedHashAlgorithm": {
            "nullable": true,
            "description": "This Key's Hash Algorithm",
            "enum": [
              "SHA1",
              "SHA224",
              "SHA256",
              "SHA384",
              "SHA512",
              "SHA3_224",
              "SHA3_256",
              "SHA3_384",
              "SHA3_512"
            ]
          }
        },
        "required": [
          "name",
          "keystore",
          "description",
          "extractable"
        ]
      },
      "Key001": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Unexpected error",
        "properties": {
          "error": {
            "enum": [
              "KEY-001"
            ]
          },
          "message": {
            "enum": [
              "Unexpected error"
            ]
          },
          "title": {
            "enum": [
              "Unexpected error"
            ]
          }
        },
        "title": "KEY-001"
      },
      "controllers.api.crypto.key.CertificateAuthorityKeysRequest": {
        "title": "Key By Certificate Authority Search Request",
        "description": "A search request to find Keys on a Certificate Authority",
        "properties": {
          "ca": {
            "description": "The PEM Encoded certificate of the Certificate Authority to find the Key for",
            "format": "X509 PEM encoded certificate",
            "example": "-----BEGIN CERTIFICATE----- ...",
            "type": "string"
          },
          "unusedOnly": {
            "description": "If true, list only Keys not used anywhere",
            "type": "boolean"
          }
        },
        "required": [
          "ca"
        ]
      },
      "Key006": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Invalid Find Certificate Authority Keys request",
        "properties": {
          "error": {
            "enum": [
              "KEY-006"
            ]
          },
          "message": {
            "enum": [
              "Invalid Find Certificate Authority Keys request"
            ]
          },
          "title": {
            "enum": [
              "Invalid Find Certificate Authority Keys request"
            ]
          }
        },
        "title": "KEY-006"
      },
      "controllers.api.crypto.key.PrivateKeyGenerationRequest": {
        "title": "Private key Generation Request",
        "properties": {
          "name": {
            "description": "The Key's name",
            "type": "string",
            "example": "Root-CA-Key"
          },
          "keystore": {
            "description": "The Keystore in which to generate the Key",
            "example": "GCP-Keystore-1",
            "type": "string"
          },
          "description": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/models.crypto.key.SuiteBKeyDescription"
              }
            ]
          },
          "extractable": {
            "description": "If true, this key will be extractable",
            "type": "boolean",
            "nullable": true,
            "default": false
          },
          "modifiable": {
            "description": "If true, this key will be modifiable",
            "type": "boolean",
            "nullable": true,
            "default": false
          },
          "hardwareProtected": {
            "description": "If true, this key will be hardware protected in AKV and GCP",
            "type": "boolean",
            "nullable": true,
            "default": false
          }
        },
        "required": [
          "name",
          "keystore",
          "description"
        ]
      },
      "Key002": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Invalid key generation request",
        "properties": {
          "error": {
            "enum": [
              "KEY-002"
            ]
          },
          "message": {
            "enum": [
              "Invalid key generation request"
            ]
          },
          "title": {
            "enum": [
              "Invalid key generation request"
            ]
          }
        },
        "title": "KEY-002"
      },
      "Key004": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Key already exists",
        "properties": {
          "error": {
            "enum": [
              "KEY-004"
            ]
          },
          "message": {
            "enum": [
              "Key already exists"
            ]
          },
          "title": {
            "enum": [
              "Key already exists"
            ]
          }
        },
        "title": "KEY-004"
      },
      "Key005": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BasicError"
          }
        ],
        "description": "Key is referenced",
        "properties": {
          "error": {
            "enum": [
              "KEY-005"
            ]
          },
          "message": {
            "enum": [
              "Key is referenced"
            ]
          },
          "title": {
            "enum": [
              "Key is referenced"
            ]
          }
        },
        "title": "KEY-005"
      }
    }
  },
  "x-tagGroups": [
    {
      "name": "Certificate APIs",
      "tags": [
        "api.lifecycle",
        "api.certificate"
      ]
    },
    {
      "name": "Identity management and security",
      "tags": [
        "api.security.account",
        "api.security.principal",
        "api.security.role",
        "api.security.credential"
      ]
    },
    {
      "name": "Key Management",
      "tags": [
        "api.crypto.keystore",
        "api.crypto.key",
        "api.crypto.hsm"
      ]
    },
    {
      "name": "Event APIs",
      "tags": [
        "api.event",
        "api.event.report"
      ]
    },
    {
      "name": "Configuration APIs",
      "tags": [
        "api.ca",
        "api.template",
        "api.extension.eku",
        "api.rfc5280",
        "api.trustchain",
        "api.crl",
        "api.crl.storage",
        "api.queue",
        "api.system.proxy",
        "api.adoc",
        "api.license"
      ]
    }
  ]
}