{
  "paths": {
    "/api/": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get the Root API information containing the links to all versions of this api.",
        "tags": [
          "api-root"
        ]
      }
    },
    "/api/v1/": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get the urls of the next endpoints of the v1 api to call.",
        "tags": [
          "api-v1"
        ]
      }
    },
    "/api/v1/schemas/": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get the urls for the schema api.",
        "tags": [
          "api-v1"
        ]
      }
    },
    "/api/v1/schemas/api/": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get the urls for the schema api.",
        "tags": [
          "api-v1"
        ]
      }
    },
    "/api/v1/schemas/api/{schema_id}/": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get the urls for the schema api.",
        "tags": [
          "api-v1"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "schema_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/api/v1/schemas/ontology/": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "TODO",
        "tags": [
          "api-v1"
        ]
      }
    },
    "/api/v1/schemas/ontology/{schema_id}/": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "TODO",
        "tags": [
          "api-v1"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "schema_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/api/v1/auth/": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get the urls for the authentication api.",
        "tags": [
          "api-v1"
        ]
      }
    },
    "/api/v1/auth/login/": {
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "description": "The login credentials of the user.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginPost"
              }
            }
          }
        },
        "summary": "Login with the user credentials to receive a access and refresh token pair.",
        "description": "The access token can be used for all authorized api endpoints.\nThe refresh token can only be used with the refresh endpoint to get a new access token.",
        "tags": [
          "api-v1"
        ]
      }
    },
    "/api/v1/auth/fresh-login/": {
      "post": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "description": "The login credentials of the user.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FreshLoginPost"
              }
            }
          }
        },
        "summary": "Login with the user credentials to receive fresh access token.",
        "description": "The fresh access token can be used for all authorized api endpoints,\nincluding endpoints requiring recent authentication using a password.",
        "tags": [
          "api-v1"
        ]
      }
    },
    "/api/v1/auth/refresh/": {
      "post": {
        "security": [
          {
            "jwt-refresh-token": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get a new access token.",
        "description": "This method requires the jwt refresh token!",
        "tags": [
          "api-v1"
        ]
      }
    },
    "/api/v1/auth/whoami/": {
      "get": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get the user object of the current user.",
        "tags": [
          "api-v1"
        ]
      }
    },
    "/api/v1/auth/users/": {
      "get": {
        "security": [
          {
            "jwt": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "type": "string",
              "writeOnly": true,
              "nullable": true
            }
          },
          {
            "in": "query",
            "name": "item-count",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 25,
              "writeOnly": true,
              "nullable": true,
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "in": "query",
            "name": "sort",
            "required": false,
            "schema": {
              "type": "string",
              "writeOnly": true,
              "nullable": true
            }
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get the page of users.",
        "tags": [
          "api-v1"
        ]
      },
      "post": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserCreate"
              }
            }
          }
        },
        "tags": [
          "api-v1"
        ]
      }
    },
    "/api/v1/auth/users/{username}/": {
      "get": {
        "security": [
          {},
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "tags": [
          "api-v1"
        ]
      },
      "post": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserUpdate"
              }
            }
          }
        },
        "tags": [
          "api-v1"
        ]
      },
      "delete": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "tags": [
          "api-v1"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "username",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/api/v1/auth/users/{username}/roles/": {
      "get": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get the all user roles.",
        "tags": [
          "api-v1"
        ]
      },
      "post": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserRole"
              }
            }
          }
        },
        "tags": [
          "api-v1"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "username",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/api/v1/auth/users/{username}/roles/{role}/": {
      "get": {
        "security": [
          {},
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "tags": [
          "api-v1"
        ]
      },
      "delete": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "tags": [
          "api-v1"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "role",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "username",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/api/v1/namespaces/": {
      "get": {
        "security": [
          {},
          {
            "jwt": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "type": "string",
              "writeOnly": true,
              "nullable": true
            }
          },
          {
            "in": "query",
            "name": "item-count",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 25,
              "writeOnly": true,
              "nullable": true,
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "in": "query",
            "name": "sort",
            "required": false,
            "schema": {
              "type": "string",
              "writeOnly": true,
              "nullable": true
            }
          },
          {
            "in": "query",
            "name": "deleted",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false,
              "nullable": true
            }
          },
          {
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string",
              "default": null,
              "nullable": true
            }
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get the page of namespaces.",
        "tags": [
          "api-v1"
        ]
      },
      "post": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Namespace"
              }
            }
          }
        },
        "tags": [
          "api-v1"
        ]
      }
    },
    "/api/v1/namespaces/{namespace}/": {
      "get": {
        "security": [
          {},
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "tags": [
          "api-v1"
        ]
      },
      "post": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "tags": [
          "api-v1"
        ]
      },
      "put": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Namespace"
              }
            }
          }
        },
        "tags": [
          "api-v1"
        ]
      },
      "delete": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "tags": [
          "api-v1"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "namespace",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/api/v1/namespaces/{namespace}/export": {
      "get": {
        "security": [
          {},
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "GET method for exporting the namespace resource to OWL.",
        "description": "Args:\n    namespace (str): The namespace to export.\n    **kwargs (Any): Additional keyword arguments.\n\nReturns:\n    ApiResponse: The API response containing the exported namespace resource in OWL format.",
        "tags": [
          "api-v1"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "namespace",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/api/v1/namespaces/{namespace}/types/": {
      "get": {
        "security": [
          {
            "jwt": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "deleted",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false,
              "nullable": true
            }
          },
          {
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string",
              "default": null,
              "nullable": true
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "type": "string",
              "writeOnly": true,
              "nullable": true
            }
          },
          {
            "in": "query",
            "name": "item-count",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 25,
              "writeOnly": true,
              "nullable": true,
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "in": "query",
            "name": "sort",
            "required": false,
            "schema": {
              "type": "string",
              "writeOnly": true,
              "nullable": true
            }
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get the page of types.",
        "tags": [
          "api-v1"
        ]
      },
      "post": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JSONSchema"
              }
            }
          }
        },
        "summary": "Create a new type.",
        "tags": [
          "api-v1"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "namespace",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/api/v1/namespaces/{namespace}/types/{object_type}/": {
      "get": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get a single type.",
        "tags": [
          "api-v1"
        ]
      },
      "post": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Restore a deleted type.",
        "tags": [
          "api-v1"
        ]
      },
      "put": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JSONSchema"
              }
            }
          }
        },
        "summary": "Update type (creates a new version).",
        "tags": [
          "api-v1"
        ]
      },
      "delete": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Delete a type.",
        "tags": [
          "api-v1"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "object_type",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "namespace",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/api/v1/namespaces/{namespace}/types/{object_type}/versions/": {
      "get": {
        "security": [
          {
            "jwt": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "deleted",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false,
              "nullable": true
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "type": "string",
              "writeOnly": true,
              "nullable": true
            }
          },
          {
            "in": "query",
            "name": "item-count",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 25,
              "writeOnly": true,
              "nullable": true,
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "in": "query",
            "name": "sort",
            "required": false,
            "schema": {
              "type": "string",
              "writeOnly": true,
              "nullable": true
            }
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get all versions of a type.",
        "tags": [
          "api-v1"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "object_type",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "namespace",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/api/v1/namespaces/{namespace}/types/{object_type}/versions/{version}/": {
      "get": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get a specific version of a type.",
        "tags": [
          "api-v1"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "object_type",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "version",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "namespace",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/api/v1/namespaces/{namespace}/objects/": {
      "get": {
        "security": [
          {
            "jwt": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string",
              "default": null,
              "nullable": true
            }
          },
          {
            "in": "query",
            "name": "deleted",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false,
              "nullable": true
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "type": "string",
              "writeOnly": true,
              "nullable": true
            }
          },
          {
            "in": "query",
            "name": "item-count",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 25,
              "writeOnly": true,
              "nullable": true,
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "in": "query",
            "name": "sort",
            "required": false,
            "schema": {
              "type": "string",
              "writeOnly": true,
              "nullable": true
            }
          },
          {
            "in": "query",
            "name": "type-id",
            "required": false,
            "schema": {
              "type": "string",
              "writeOnly": true,
              "nullable": true
            }
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get the page of objects.",
        "tags": [
          "api-v1"
        ]
      },
      "post": {
        "security": [
          {
            "jwt": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string",
              "default": null,
              "nullable": true
            }
          },
          {
            "in": "query",
            "name": "deleted",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false,
              "nullable": true
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "type": "string",
              "writeOnly": true,
              "nullable": true
            }
          },
          {
            "in": "query",
            "name": "item-count",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 25,
              "writeOnly": true,
              "nullable": true,
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "in": "query",
            "name": "sort",
            "required": false,
            "schema": {
              "type": "string",
              "writeOnly": true,
              "nullable": true
            }
          },
          {
            "in": "query",
            "name": "type-id",
            "required": false,
            "schema": {
              "type": "string",
              "writeOnly": true,
              "nullable": true
            }
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Object"
              }
            }
          }
        },
        "summary": "Create a new object.",
        "tags": [
          "api-v1"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "namespace",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/api/v1/namespaces/{namespace}/objects/{object_id}/": {
      "get": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get a single object.",
        "tags": [
          "api-v1"
        ]
      },
      "post": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Restore a deleted object.",
        "tags": [
          "api-v1"
        ]
      },
      "put": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Object"
              }
            }
          }
        },
        "summary": "Update object (creates a new version).",
        "tags": [
          "api-v1"
        ]
      },
      "delete": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Delete an object.",
        "tags": [
          "api-v1"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "object_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "namespace",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/api/v1/namespaces/{namespace}/objects/{object_id}/versions/": {
      "get": {
        "security": [
          {
            "jwt": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "deleted",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false,
              "nullable": true
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "type": "string",
              "writeOnly": true,
              "nullable": true
            }
          },
          {
            "in": "query",
            "name": "item-count",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 25,
              "writeOnly": true,
              "nullable": true,
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "in": "query",
            "name": "sort",
            "required": false,
            "schema": {
              "type": "string",
              "writeOnly": true,
              "nullable": true
            }
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get all versions of an object.",
        "tags": [
          "api-v1"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "object_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "namespace",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/api/v1/namespaces/{namespace}/objects/{object_id}/versions/{version}/": {
      "get": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get a specific version of an object.",
        "tags": [
          "api-v1"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "object_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "version",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "namespace",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/api/v1/namespaces/{namespace}/taxonomies/": {
      "get": {
        "security": [
          {
            "jwt": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "deleted",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false,
              "nullable": true
            }
          },
          {
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string",
              "default": null,
              "nullable": true
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "type": "string",
              "writeOnly": true,
              "nullable": true
            }
          },
          {
            "in": "query",
            "name": "item-count",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 25,
              "writeOnly": true,
              "nullable": true,
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "in": "query",
            "name": "sort",
            "required": false,
            "schema": {
              "type": "string",
              "writeOnly": true,
              "nullable": true
            }
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get the page of taxonomies.",
        "tags": [
          "api-v1"
        ]
      },
      "post": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Taxonomy"
              }
            }
          }
        },
        "summary": "Create a new taxonomy.",
        "tags": [
          "api-v1"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "namespace",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/api/v1/namespaces/{namespace}/taxonomies/{taxonomy}/": {
      "get": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get a single taxonomy.",
        "tags": [
          "api-v1"
        ]
      },
      "post": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Restore a deleted taxonomy.",
        "tags": [
          "api-v1"
        ]
      },
      "put": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Taxonomy"
              }
            }
          }
        },
        "summary": "Update taxonomy in place.",
        "tags": [
          "api-v1"
        ]
      },
      "delete": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Delete a taxonomy.",
        "tags": [
          "api-v1"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "taxonomy",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "namespace",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/api/v1/namespaces/{namespace}/taxonomies/{taxonomy}/items/": {
      "get": {
        "security": [
          {
            "jwt": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "deleted",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false,
              "nullable": true
            }
          },
          {
            "in": "query",
            "name": "search",
            "required": false,
            "schema": {
              "type": "string",
              "default": null,
              "nullable": true
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "type": "string",
              "writeOnly": true,
              "nullable": true
            }
          },
          {
            "in": "query",
            "name": "item-count",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 25,
              "writeOnly": true,
              "nullable": true,
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "in": "query",
            "name": "sort",
            "required": false,
            "schema": {
              "type": "string",
              "writeOnly": true,
              "nullable": true
            }
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get all items of a taxonomy.",
        "tags": [
          "api-v1"
        ]
      },
      "post": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaxonomyItem"
              }
            }
          }
        },
        "summary": "Create a new taxonomy item.",
        "tags": [
          "api-v1"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "taxonomy",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "namespace",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/api/v1/namespaces/{namespace}/taxonomies/{taxonomy}/items/{taxonomy_item}/": {
      "get": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get a single taxonomy item.",
        "tags": [
          "api-v1"
        ]
      },
      "post": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Restore a deleted taxonomy item.",
        "tags": [
          "api-v1"
        ]
      },
      "put": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaxonomyItem"
              }
            }
          }
        },
        "summary": "Update a taxonomy item.",
        "tags": [
          "api-v1"
        ]
      },
      "delete": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Delete a taxonomy item.",
        "tags": [
          "api-v1"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "taxonomy_item",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "taxonomy",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "namespace",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/api/v1/namespaces/{namespace}/taxonomies/{taxonomy}/items/{taxonomy_item}/relations/": {
      "get": {
        "security": [
          {
            "jwt": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "type": "string",
              "writeOnly": true,
              "nullable": true
            }
          },
          {
            "in": "query",
            "name": "item-count",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 25,
              "writeOnly": true,
              "nullable": true,
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "in": "query",
            "name": "sort",
            "required": false,
            "schema": {
              "type": "string",
              "writeOnly": true,
              "nullable": true
            }
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get all relations of a taxonomy item.",
        "tags": [
          "api-v1"
        ]
      },
      "post": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaxonomyItemRelationPost"
              }
            }
          }
        },
        "summary": "Create a new relation to a taxonomy item.",
        "tags": [
          "api-v1"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "taxonomy_item",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "taxonomy",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "namespace",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/api/v1/namespaces/{namespace}/taxonomies/{taxonomy}/items/{taxonomy_item}/relations/{relation}/": {
      "get": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get a single relation.",
        "tags": [
          "api-v1"
        ]
      },
      "delete": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Delete an existing relation.",
        "tags": [
          "api-v1"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "taxonomy_item",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "relation",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "taxonomy",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "namespace",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/api/v1/namespaces/{namespace}/taxonomies/{taxonomy}/items/{taxonomy_item}/versions/": {
      "get": {
        "security": [
          {
            "jwt": []
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "deleted",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false,
              "nullable": true
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "type": "string",
              "writeOnly": true,
              "nullable": true
            }
          },
          {
            "in": "query",
            "name": "item-count",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 25,
              "writeOnly": true,
              "nullable": true,
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "in": "query",
            "name": "sort",
            "required": false,
            "schema": {
              "type": "string",
              "writeOnly": true,
              "nullable": true
            }
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_ENTITY"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get all versions of a taxonomy item.",
        "tags": [
          "api-v1"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "taxonomy_item",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "taxonomy",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "namespace",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/api/v1/namespaces/{namespace}/taxonomies/{taxonomy}/items/{taxonomy_item}/versions/{version}/": {
      "get": {
        "security": [
          {
            "jwt": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DynamicApiResponse"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get a single taxonomy item version.",
        "tags": [
          "api-v1"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "taxonomy_item",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "version",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "taxonomy",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "namespace",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    }
  },
  "info": {
    "title": "API Root",
    "version": "v0.1.0"
  },
  "tags": [
    {
      "name": "api-root",
      "description": "The API endpoint pointing towards all api versions."
    },
    {
      "name": "api-v1",
      "description": "Version 1 of the API."
    }
  ],
  "openapi": "3.0.2",
  "components": {
    "schemas": {
      "Error": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": "Error code"
          },
          "status": {
            "type": "string",
            "description": "Error name"
          },
          "message": {
            "type": "string",
            "description": "Error message"
          },
          "errors": {
            "type": "object",
            "description": "Errors"
          }
        }
      },
      "PaginationMetadata": {
        "type": "object",
        "properties": {
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          },
          "first_page": {
            "type": "integer"
          },
          "last_page": {
            "type": "integer"
          },
          "page": {
            "type": "integer"
          },
          "previous_page": {
            "type": "integer"
          },
          "next_page": {
            "type": "integer"
          }
        }
      },
      "ApiLink": {
        "type": "object",
        "properties": {
          "href": {
            "type": "string",
            "format": "url",
            "readOnly": true
          },
          "rel": {
            "type": "array",
            "readOnly": true,
            "minItems": 1,
            "items": {
              "type": "string",
              "readOnly": true
            }
          },
          "resourceType": {
            "type": "string",
            "readOnly": true
          },
          "doc": {
            "type": "string",
            "format": "url",
            "readOnly": true,
            "nullable": true
          },
          "schema": {
            "type": "string",
            "format": "url",
            "readOnly": true,
            "nullable": true
          },
          "name": {
            "type": "string",
            "readOnly": true,
            "nullable": true
          },
          "resourceKey": {
            "readOnly": true,
            "nullable": true
          }
        }
      },
      "KeyedApiLink": {
        "type": "object",
        "properties": {
          "href": {
            "type": "string",
            "format": "url",
            "readOnly": true
          },
          "rel": {
            "type": "array",
            "readOnly": true,
            "minItems": 1,
            "items": {
              "type": "string",
              "readOnly": true
            }
          },
          "resourceType": {
            "type": "string",
            "readOnly": true
          },
          "doc": {
            "type": "string",
            "format": "url",
            "readOnly": true,
            "nullable": true
          },
          "schema": {
            "type": "string",
            "format": "url",
            "readOnly": true,
            "nullable": true
          },
          "name": {
            "type": "string",
            "readOnly": true,
            "nullable": true
          },
          "resourceKey": {
            "readOnly": true,
            "nullable": true
          },
          "key": {
            "type": "array",
            "readOnly": true,
            "minItems": 1,
            "items": {
              "type": "string",
              "readOnly": true
            }
          },
          "queryKey": {
            "type": "array",
            "readOnly": true,
            "minItems": 1,
            "items": {
              "type": "string",
              "readOnly": true
            }
          }
        }
      },
      "RawApiResponse": {
        "type": "object",
        "properties": {
          "links": {
            "readOnly": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiLink"
            }
          },
          "keyedLinks": {
            "readOnly": true,
            "nullable": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KeyedApiLink"
            }
          },
          "data": {}
        }
      },
      "DynamicApiResponse": {
        "type": "object",
        "properties": {
          "links": {
            "readOnly": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiLink"
            }
          },
          "keyedLinks": {
            "readOnly": true,
            "nullable": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KeyedApiLink"
            }
          },
          "embedded": {
            "type": "array",
            "readOnly": true,
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/RawApiResponse"
            }
          },
          "data": {}
        }
      },
      "LoginPost": {
        "type": "object",
        "properties": {
          "username": {
            "type": "string"
          },
          "password": {
            "type": "string",
            "writeOnly": true
          }
        },
        "required": [
          "password",
          "username"
        ]
      },
      "FreshLoginPost": {
        "type": "object",
        "properties": {
          "password": {
            "type": "string",
            "writeOnly": true
          }
        },
        "required": [
          "password"
        ]
      },
      "UserCreate": {
        "type": "object",
        "properties": {
          "self": {
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ApiLink"
              }
            ]
          },
          "username": {
            "type": "string",
            "pattern": "[^@\\s]+",
            "title": "Username"
          },
          "eMail": {
            "type": "string",
            "nullable": true,
            "title": "E-Mail (optional)"
          },
          "password": {
            "type": "string",
            "writeOnly": true,
            "title": "Password"
          },
          "retypePassword": {
            "type": "string",
            "writeOnly": true,
            "title": "Retype Password"
          }
        },
        "required": [
          "password",
          "retypePassword",
          "username"
        ]
      },
      "UserUpdate": {
        "type": "object",
        "properties": {
          "self": {
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ApiLink"
              }
            ]
          },
          "username": {
            "type": "string",
            "pattern": "[^@\\s]+",
            "title": "Username"
          },
          "eMail": {
            "type": "string",
            "nullable": true,
            "title": "E-Mail (optional)"
          },
          "password": {
            "type": "string",
            "writeOnly": true,
            "nullable": true,
            "title": "Password"
          },
          "retypePassword": {
            "type": "string",
            "writeOnly": true,
            "nullable": true,
            "title": "Retype Password"
          }
        },
        "required": [
          "username"
        ]
      },
      "UserRole": {
        "type": "object",
        "properties": {
          "self": {
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ApiLink"
              }
            ]
          },
          "role": {
            "type": "string",
            "enum": [
              "admin",
              "creator",
              "editor",
              "ont-namepsace_admin",
              "ont-namepsace_creator",
              "ont-namepsace_editor",
              "ont-object_admin",
              "ont-object_creator",
              "ont-object_editor",
              "ont-taxonomy_admin",
              "ont-taxonomy_creator",
              "ont-taxonomy_editor",
              "ont-type_admin",
              "ont-type_creator",
              "ont-type_editor"
            ]
          },
          "description": {
            "type": "string",
            "readOnly": true,
            "format": "markdown"
          }
        },
        "required": [
          "role"
        ]
      },
      "Namespace": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 170
          },
          "description": {
            "type": "string",
            "default": "",
            "format": "markdown"
          }
        },
        "required": [
          "name"
        ]
      },
      "JSONSchema": {
        "type": "object",
        "properties": {
          "definitions": {},
          "abstract": {
            "type": "boolean",
            "default": false
          }
        },
        "required": [
          "definitions"
        ]
      },
      "Object": {
        "type": "object",
        "properties": {
          "self": {
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ApiLink"
              }
            ]
          },
          "deletedOn": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "updatedOn": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "createdOn": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 170
          },
          "description": {
            "type": "string",
            "nullable": true,
            "format": "markdown"
          },
          "version": {
            "type": "integer",
            "readOnly": true
          },
          "data": {
            "nullable": true
          }
        },
        "required": [
          "data",
          "name"
        ]
      },
      "Taxonomy": {
        "type": "object",
        "properties": {
          "self": {
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ApiLink"
              }
            ]
          },
          "deletedOn": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "updatedOn": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "createdOn": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 170
          },
          "description": {
            "type": "string",
            "nullable": true,
            "format": "markdown"
          },
          "items": {
            "type": "array",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/ApiLink"
            }
          }
        },
        "required": [
          "name"
        ]
      },
      "TaxonomyItem": {
        "type": "object",
        "properties": {
          "self": {
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ApiLink"
              }
            ]
          },
          "deletedOn": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "updatedOn": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "createdOn": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 170
          },
          "description": {
            "type": "string",
            "default": "",
            "format": "markdown"
          },
          "sortKey": {
            "type": "number",
            "nullable": true
          },
          "isToplevelItem": {
            "type": "boolean",
            "readOnly": true
          },
          "version": {
            "type": "integer",
            "readOnly": true
          },
          "children": {
            "type": "array",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/ApiLink"
            }
          },
          "parents": {
            "type": "array",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/ApiLink"
            }
          }
        },
        "required": [
          "name"
        ]
      },
      "TaxonomyItemRelationPost": {
        "type": "object",
        "properties": {
          "namespaceId": {
            "type": "string",
            "pattern": "^[0-9]+$"
          },
          "taxonomyId": {
            "type": "string",
            "pattern": "^[0-9]+$"
          },
          "taxonomyItemId": {
            "type": "string",
            "pattern": "^[0-9]+$"
          }
        },
        "required": [
          "namespaceId",
          "taxonomyId",
          "taxonomyItemId"
        ]
      }
    },
    "responses": {
      "DEFAULT_ERROR": {
        "description": "Default error response",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "UNPROCESSABLE_ENTITY": {
        "description": "Unprocessable Entity",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      }
    },
    "securitySchemes": {
      "jwt": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "description": "The jwt access token as returned by login or refresh."
      },
      "jwt-refresh-token": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "description": "The jwt refresh token as returned by login. Must only be used to get a new access token."
      }
    }
  }
}
