{
  "openapi" : "3.0.1",
  "info" : {
    "title" : "Flight ticket booking API",
    "contact" : {
      "name" : "FTB API Support",
      "url" : "https://mentorpiece.org",
      "email" : "1@mentorpiece.org"
    },
    "version" : "00.07"
  },
  "servers" : [ {
    "url" : "https://ftb.mentorpiece.org",
    "description" : "Production server"
  }, {
    "url" : "http://localhost:8080",
    "description" : "Local development server"
  } ],
  "tags" : [ {
    "name" : "Aircraft",
    "description" : "Aircraft resource"
  }, {
    "name" : "Debug",
    "description" : "Debug assistance"
  }, {
    "name" : "Data generator",
    "description" : "Generate additional fresh fake data for testing purposes."
  }, {
    "name" : "Passenger",
    "description" : "Passenger resource."
  }, {
    "name" : "JWT Authentication",
    "description" : "OAuth 2.0 Bearer Token Authentication API"
  }, {
    "name" : "Version",
    "description" : "This is the way to get app/API version info."
  }, {
    "name" : "Airport",
    "description" : "Airport resource, CRUD operations"
  }, {
    "name" : "Flight",
    "description" : "Flight resource. Flight booking is possible as well!"
  }, {
    "name" : "User",
    "description" : "User resource. CRUD+ operations."
  } ],
  "paths" : {
    "/api/v0/users/{id}" : {
      "get" : {
        "tags" : [ "User" ],
        "summary" : "Get an entity by its id.",
        "operationId" : "findById",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UserDto"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "User" ],
        "summary" : "Attempt to update an entity by using its DTO.",
        "operationId" : "update",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UserDto"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UserDto"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "User" ],
        "summary" : "Attempt to delete an entity by its id.",
        "operationId" : "delete",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      },
      "patch" : {
        "tags" : [ "User" ],
        "summary" : "Partial update using JSON-Patch operations.",
        "description" : "See <a href='https://www.baeldung.com/spring-rest-json-patch'>this</a> for operations usage examples.</br>Short example:</br><p>'...a JSON patch operation to update the customer's telephone number:'</p></br><pre>[{\n</br>    \"op\":\"replace\",\n</br>    \"path\":\"/telephone\",\n</br>    \"value\":\"001-321-5478\"\n</br>}]</br> </pre>",
        "operationId" : "partialUpdate",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json-patch+json" : {
              "schema" : {
                "$ref" : "#/components/schemas/JsonPatch"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UserDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v0/passengers/{id}" : {
      "get" : {
        "tags" : [ "Passenger" ],
        "summary" : "Get an entity by its id.",
        "operationId" : "findById_1",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PassengerDto"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Passenger" ],
        "summary" : "Attempt to update an entity by using its DTO.",
        "operationId" : "update_1",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/PassengerDto"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PassengerDto"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Passenger" ],
        "summary" : "Attempt to delete an entity by its id.",
        "operationId" : "delete_1",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      },
      "patch" : {
        "tags" : [ "Passenger" ],
        "summary" : "Partial update using JSON-Patch operations.",
        "description" : "See <a href='https://www.baeldung.com/spring-rest-json-patch'>this</a> for operations usage examples.</br>Short example:</br><p>'...a JSON patch operation to update the customer's telephone number:'</p></br><pre>[{\n</br>    \"op\":\"replace\",\n</br>    \"path\":\"/telephone\",\n</br>    \"value\":\"001-321-5478\"\n</br>}]</br> </pre>",
        "operationId" : "partialUpdate_1",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json-patch+json" : {
              "schema" : {
                "$ref" : "#/components/schemas/JsonPatch"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PassengerDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v0/flights/{id}" : {
      "get" : {
        "tags" : [ "Flight" ],
        "summary" : "Get an entity by its id.",
        "operationId" : "findById_2",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/FlightDto"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Flight" ],
        "summary" : "Attempt to update an entity by using its DTO.",
        "operationId" : "update_2",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/FlightDto"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/FlightDto"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Flight" ],
        "summary" : "Attempt to delete an entity by its id.",
        "operationId" : "delete_2",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      },
      "patch" : {
        "tags" : [ "Flight" ],
        "summary" : "Partial update using JSON-Patch operations.",
        "description" : "See <a href='https://www.baeldung.com/spring-rest-json-patch'>this</a> for operations usage examples.</br>Short example:</br><p>'...a JSON patch operation to update the customer's telephone number:'</p></br><pre>[{\n</br>    \"op\":\"replace\",\n</br>    \"path\":\"/telephone\",\n</br>    \"value\":\"001-321-5478\"\n</br>}]</br> </pre>",
        "operationId" : "partialUpdate_2",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json-patch+json" : {
              "schema" : {
                "$ref" : "#/components/schemas/JsonPatch"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/FlightDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v0/airports/{id}" : {
      "get" : {
        "tags" : [ "Airport" ],
        "summary" : "Get an entity by its id.",
        "operationId" : "findById_3",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AirportDto"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Airport" ],
        "summary" : "Attempt to update an entity by using its DTO.",
        "operationId" : "update_3",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/AirportDto"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AirportDto"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Airport" ],
        "summary" : "Attempt to delete an entity by its id.",
        "operationId" : "delete_3",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      },
      "patch" : {
        "tags" : [ "Airport" ],
        "summary" : "Partial update using JSON-Patch operations.",
        "description" : "See <a href='https://www.baeldung.com/spring-rest-json-patch'>this</a> for operations usage examples.</br>Short example:</br><p>'...a JSON patch operation to update the customer's telephone number:'</p></br><pre>[{\n</br>    \"op\":\"replace\",\n</br>    \"path\":\"/telephone\",\n</br>    \"value\":\"001-321-5478\"\n</br>}]</br> </pre>",
        "operationId" : "partialUpdate_3",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json-patch+json" : {
              "schema" : {
                "$ref" : "#/components/schemas/JsonPatch"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AirportDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v0/aircrafts/{id}" : {
      "get" : {
        "tags" : [ "Aircraft" ],
        "summary" : "Get an entity by its id.",
        "operationId" : "findById_4",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AircraftDto"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "Aircraft" ],
        "summary" : "Attempt to update an entity by using its DTO.",
        "operationId" : "update_4",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/AircraftDto"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AircraftDto"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "Aircraft" ],
        "summary" : "Attempt to delete an entity by its id.",
        "operationId" : "delete_4",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      },
      "patch" : {
        "tags" : [ "Aircraft" ],
        "summary" : "Partial update using JSON-Patch operations.",
        "description" : "See <a href='https://www.baeldung.com/spring-rest-json-patch'>this</a> for operations usage examples.</br>Short example:</br><p>'...a JSON patch operation to update the customer's telephone number:'</p></br><pre>[{\n</br>    \"op\":\"replace\",\n</br>    \"path\":\"/telephone\",\n</br>    \"value\":\"001-321-5478\"\n</br>}]</br> </pre>",
        "operationId" : "partialUpdate_4",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json-patch+json" : {
              "schema" : {
                "$ref" : "#/components/schemas/JsonPatch"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AircraftDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v0/users" : {
      "get" : {
        "tags" : [ "User" ],
        "summary" : "Get all entities available.",
        "operationId" : "findAll",
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "User" ],
        "summary" : "Attempt to create an entity by using its DTO.",
        "operationId" : "create",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UserDto"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "201" : {
            "description" : "Created",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UserDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v0/passengers" : {
      "get" : {
        "tags" : [ "Passenger" ],
        "summary" : "Get all entities available.",
        "operationId" : "findAll_1",
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Passenger" ],
        "summary" : "Attempt to create an entity by using its DTO.",
        "operationId" : "create_1",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/PassengerDto"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "201" : {
            "description" : "Created",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PassengerDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v0/flights" : {
      "get" : {
        "tags" : [ "Flight" ],
        "summary" : "Get all entities available.",
        "operationId" : "findAll_2",
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Flight" ],
        "summary" : "Attempt to create an entity by using its DTO.",
        "description" : "Try to use a JSON like: \n</br><pre>  {\n        \"flightNumber\": \"SU7213\",\n            \"departureAirportCode\": \"AGAT\",\n            \"destinationAirportCode\": \"CYBA\",\n            \"departureDate\": \"2023-01-19\",\n            \"arrivalDate\": \"2023-01-19\",\n            \"departureTime\": \"10:10\",\n            \"arrivalTime\": \"12:12\",\n            \"gate\": \"A12\",\n            \"status\": \"BOARDING\",\n            \"flightCharge\": 1050.72,\n            \"aircraftId\": 1\n    }</br></pre>",
        "operationId" : "create_2",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/FlightDto"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "201" : {
            "description" : "Created",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/FlightDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v0/flights/book/{flightId}" : {
      "post" : {
        "tags" : [ "Flight" ],
        "summary" : "Attempt to book a ticket for the flight.",
        "description" : "Try to use a JSON like: \n</br><pre> {\n  \"firstName\": \"Vasisualij\",\n  \"lastName\": \"Lokhankin\",\n  \"phoneNumber\": \"+01234567890\",\n  \"passportNumber\": \"9988 453627\",\n  \"email\": \"Vas.Lo@ilf.petrov\",\n  \"address\": \"Tam, za ozerom, d.144\"\n}</br></pre>",
        "operationId" : "bookFlight",
        "parameters" : [ {
          "name" : "flightId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/PassengerDto"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PassengerDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v0/airports" : {
      "get" : {
        "tags" : [ "Airport" ],
        "summary" : "Get all entities available.",
        "operationId" : "findAll_3",
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Airport" ],
        "summary" : "Attempt to create an entity by using its DTO.",
        "operationId" : "create_3",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/AirportDto"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "201" : {
            "description" : "Created",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AirportDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v0/aircrafts" : {
      "get" : {
        "tags" : [ "Aircraft" ],
        "summary" : "Get all entities available.",
        "operationId" : "findAll_4",
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object"
                }
              }
            }
          }
        }
      },
      "post" : {
        "tags" : [ "Aircraft" ],
        "summary" : "Attempt to create an entity by using its DTO.",
        "operationId" : "create_4",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/AircraftDto"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "201" : {
            "description" : "Created",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AircraftDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v0/aircrafts/import" : {
      "post" : {
        "tags" : [ "Aircraft" ],
        "summary" : "Attempt to import aircraft data from CSV file.",
        "description" : "</br>CSV file content sample:</br><pre>manufacturer, model, numberOfSeats\n\"Delf\", \"D-11\", 2\n\"Delf\", \"D-12\", 8</br> </pre>",
        "operationId" : "handleImportViaFile",
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "required" : [ "file" ],
                "type" : "object",
                "properties" : {
                  "file" : {
                    "type" : "string",
                    "format" : "binary"
                  }
                }
              }
            }
          }
        },
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object",
                  "additionalProperties" : {
                    "type" : "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v0/aircrafts/import/async" : {
      "post" : {
        "tags" : [ "Aircraft" ],
        "summary" : "Attempt to import aircraft data from CSV file asynchronously.",
        "description" : "</br>CSV file content sample:</br><pre>manufacturer, model, numberOfSeats\n\"E\", \"E-155\", 1\n\"E\", \"E-156\", 2</br> </pre>",
        "operationId" : "handleImportViaFileAsync",
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "required" : [ "file" ],
                "type" : "object",
                "properties" : {
                  "file" : {
                    "type" : "string",
                    "format" : "binary"
                  }
                }
              }
            }
          }
        },
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/switch-role" : {
      "post" : {
        "tags" : [ "auth-controller" ],
        "summary" : "Switch user role",
        "description" : "Switch the current user's active role to one of their available roles",
        "operationId" : "switchRole",
        "parameters" : [ {
          "name" : "role",
          "in" : "query",
          "description" : "Role name (ROLE_USER, ROLE_ADMIN, ROLE_AGENT)",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object",
                  "additionalProperties" : {
                    "type" : "object"
                  }
                }
              }
            }
          }
        },
        "security" : [ {
          "basicAuth" : [ ]
        }, {
          "sessionCookie" : [ ]
        } ]
      }
    },
    "/api/promo/submit" : {
      "post" : {
        "tags" : [ "promo-controller" ],
        "operationId" : "submit",
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object",
                  "additionalProperties" : {
                    "type" : "object"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/promo/set_special_cookie" : {
      "post" : {
        "tags" : [ "promo-controller" ],
        "operationId" : "setSpecialCookie",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "string"
              }
            }
          }
        },
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object",
                  "additionalProperties" : {
                    "type" : "object"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/promo/echo" : {
      "post" : {
        "tags" : [ "promo-controller" ],
        "operationId" : "echo",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "string"
              }
            }
          }
        },
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object",
                  "additionalProperties" : {
                    "type" : "object"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/fix-user-roles" : {
      "post" : {
        "tags" : [ "auth-controller" ],
        "operationId" : "fixUserRoles",
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object",
                  "additionalProperties" : {
                    "type" : "object"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/auth/refresh" : {
      "post" : {
        "tags" : [ "JWT Authentication" ],
        "summary" : "Refresh JWT token",
        "description" : "Use refresh token to get new access token",
        "operationId" : "refreshToken",
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "Token refreshed successfully",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object"
                }
              }
            }
          },
          "401" : {
            "description" : "Invalid refresh token",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/auth/logout" : {
      "post" : {
        "tags" : [ "JWT Authentication" ],
        "summary" : "Logout",
        "description" : "Invalidate current session (for session-based auth)",
        "operationId" : "logout",
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object"
                }
              }
            }
          }
        },
        "security" : [ {
          "bearerAuth" : [ ]
        } ]
      }
    },
    "/api/auth/login" : {
      "post" : {
        "tags" : [ "JWT Authentication" ],
        "summary" : "Authenticate user and get JWT tokens",
        "description" : "Login with username/password to receive Bearer tokens for API access",
        "operationId" : "authenticate",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/AuthenticationRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "400" : {
            "description" : "Invalid request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "Authentication successful",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AuthenticationResponse"
                }
              }
            }
          },
          "401" : {
            "description" : "Invalid credentials",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/version" : {
      "get" : {
        "tags" : [ "Version" ],
        "summary" : "Returns application version.",
        "operationId" : "getVersionInfo",
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "302" : {
            "description" : "Found",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v0/users/paged" : {
      "get" : {
        "tags" : [ "User" ],
        "summary" : "Get entities as a paged list.",
        "operationId" : "findPaged",
        "parameters" : [ {
          "name" : "page",
          "in" : "query",
          "description" : "Zero-based page index (0..N)",
          "required" : false,
          "schema" : {
            "minimum" : 0,
            "type" : "integer",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "The size of the page to be returned",
          "required" : false,
          "schema" : {
            "minimum" : 1,
            "type" : "integer",
            "default" : 20
          }
        }, {
          "name" : "sort",
          "in" : "query",
          "description" : "Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PageUserDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v0/users/page/{number}" : {
      "get" : {
        "tags" : [ "User" ],
        "summary" : "Get entities available on the page.",
        "operationId" : "findAllPaged",
        "parameters" : [ {
          "name" : "number",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v0/users/load/{username}" : {
      "get" : {
        "tags" : [ "User" ],
        "summary" : "Attempt to get a user by username.",
        "operationId" : "findByUsername",
        "parameters" : [ {
          "name" : "username",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/UserDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v0/passengers/paged" : {
      "get" : {
        "tags" : [ "Passenger" ],
        "summary" : "Get entities as a paged list.",
        "operationId" : "findPaged_1",
        "parameters" : [ {
          "name" : "page",
          "in" : "query",
          "description" : "Zero-based page index (0..N)",
          "required" : false,
          "schema" : {
            "minimum" : 0,
            "type" : "integer",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "The size of the page to be returned",
          "required" : false,
          "schema" : {
            "minimum" : 1,
            "type" : "integer",
            "default" : 20
          }
        }, {
          "name" : "sort",
          "in" : "query",
          "description" : "Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PagePassengerDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v0/passengers/page/{number}" : {
      "get" : {
        "tags" : [ "Passenger" ],
        "summary" : "Get entities available on the page.",
        "operationId" : "findAllPaged_1",
        "parameters" : [ {
          "name" : "number",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v0/flights/search" : {
      "get" : {
        "tags" : [ "Flight" ],
        "summary" : "Search for flights by departure/destination airport codes and departure date(yyyy-MM-dd).",
        "operationId" : "findByAirportAndDepartureTime",
        "parameters" : [ {
          "name" : "departureAirportCode",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "destinationAirportCode",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "departureDate",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "default" : "2023-01-01"
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/FlightDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v0/flights/paged" : {
      "get" : {
        "tags" : [ "Flight" ],
        "summary" : "Get entities as a paged list.",
        "operationId" : "findPaged_2",
        "parameters" : [ {
          "name" : "page",
          "in" : "query",
          "description" : "Zero-based page index (0..N)",
          "required" : false,
          "schema" : {
            "minimum" : 0,
            "type" : "integer",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "The size of the page to be returned",
          "required" : false,
          "schema" : {
            "minimum" : 1,
            "type" : "integer",
            "default" : 20
          }
        }, {
          "name" : "sort",
          "in" : "query",
          "description" : "Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PageFlightDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v0/flights/page/{number}" : {
      "get" : {
        "tags" : [ "Flight" ],
        "summary" : "Get entities available on the page.",
        "operationId" : "findAllPaged_2",
        "parameters" : [ {
          "name" : "number",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v0/flights/number/{flightNumber}" : {
      "get" : {
        "tags" : [ "Flight" ],
        "summary" : "Attempt to get current user's flights by flight number.",
        "operationId" : "findByFlightNumber",
        "parameters" : [ {
          "name" : "flightNumber",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/FlightDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v0/flights/book/verify" : {
      "get" : {
        "tags" : [ "Flight" ],
        "summary" : "Attempt to verify booking by flightId and passengerId.",
        "operationId" : "verifyBooking",
        "parameters" : [ {
          "name" : "passengerId",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        }, {
          "name" : "flightId",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PassengerDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v0/aux/debug/show" : {
      "get" : {
        "tags" : [ "Debug" ],
        "summary" : "Get debug info.",
        "operationId" : "show",
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/v0/aux/data/generate" : {
      "get" : {
        "tags" : [ "Data generator" ],
        "summary" : "Generates some random data. The response should contain some description on what was generated.",
        "operationId" : "generate",
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object",
                  "additionalProperties" : {
                    "type" : "array",
                    "items" : {
                      "type" : "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v0/airports/paged" : {
      "get" : {
        "tags" : [ "Airport" ],
        "summary" : "Get entities as a paged list.",
        "operationId" : "findPaged_3",
        "parameters" : [ {
          "name" : "page",
          "in" : "query",
          "description" : "Zero-based page index (0..N)",
          "required" : false,
          "schema" : {
            "minimum" : 0,
            "type" : "integer",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "The size of the page to be returned",
          "required" : false,
          "schema" : {
            "minimum" : 1,
            "type" : "integer",
            "default" : 20
          }
        }, {
          "name" : "sort",
          "in" : "query",
          "description" : "Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PageAirportDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v0/airports/page/{number}" : {
      "get" : {
        "tags" : [ "Airport" ],
        "summary" : "Get entities available on the page.",
        "operationId" : "findAllPaged_3",
        "parameters" : [ {
          "name" : "number",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v0/aircrafts/paged" : {
      "get" : {
        "tags" : [ "Aircraft" ],
        "summary" : "Get entities as a paged list.",
        "operationId" : "findPaged_4",
        "parameters" : [ {
          "name" : "page",
          "in" : "query",
          "description" : "Zero-based page index (0..N)",
          "required" : false,
          "schema" : {
            "minimum" : 0,
            "type" : "integer",
            "default" : 0
          }
        }, {
          "name" : "size",
          "in" : "query",
          "description" : "The size of the page to be returned",
          "required" : false,
          "schema" : {
            "minimum" : 1,
            "type" : "integer",
            "default" : 20
          }
        }, {
          "name" : "sort",
          "in" : "query",
          "description" : "Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PageAircraftDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v0/aircrafts/page/{number}" : {
      "get" : {
        "tags" : [ "Aircraft" ],
        "summary" : "Get entities available on the page.",
        "operationId" : "findAllPaged_4",
        "parameters" : [ {
          "name" : "number",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/v0/aircrafts/model/{modelName}" : {
      "get" : {
        "tags" : [ "Aircraft" ],
        "summary" : "Attempt to get current user's aircraft by model name.",
        "operationId" : "findByModel",
        "parameters" : [ {
          "name" : "modelName",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "Found aircraft(s).",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AircraftDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v0/aircrafts/manufacturer/{manufacturerName}" : {
      "get" : {
        "tags" : [ "Aircraft" ],
        "summary" : "Attempt to get current user's aircraft by manufacturer name.",
        "operationId" : "findByManufacturer",
        "parameters" : [ {
          "name" : "manufacturerName",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "Found aircraft(s).",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AircraftDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v0/aircrafts/export" : {
      "get" : {
        "tags" : [ "Aircraft" ],
        "summary" : "Attempt to export all aircraft records to CSV file.",
        "operationId" : "exportAllAsCsvFile",
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/StreamingResponseBody"
                }
              }
            }
          }
        }
      }
    },
    "/api/promo/static/{filename}" : {
      "get" : {
        "tags" : [ "promo-controller" ],
        "operationId" : "serveStaticFiles",
        "parameters" : [ {
          "name" : "filename",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object"
                }
              }
            }
          }
        }
      }
    },
    "/api/promo/slow" : {
      "get" : {
        "tags" : [ "promo-controller" ],
        "operationId" : "slow",
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object",
                  "additionalProperties" : {
                    "type" : "object"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/promo/set_cookie" : {
      "get" : {
        "tags" : [ "promo-controller" ],
        "operationId" : "setCookie",
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object",
                  "additionalProperties" : {
                    "type" : "object"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/promo/redirect" : {
      "get" : {
        "tags" : [ "promo-controller" ],
        "operationId" : "redirect",
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK"
          }
        }
      }
    },
    "/api/promo/ping" : {
      "get" : {
        "tags" : [ "promo-controller" ],
        "operationId" : "ping",
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object",
                  "additionalProperties" : {
                    "type" : "object"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/current-user" : {
      "get" : {
        "tags" : [ "auth-controller" ],
        "summary" : "Get current user information",
        "description" : "Get current authenticated user's information including roles",
        "operationId" : "getCurrentUserJson",
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object",
                  "additionalProperties" : {
                    "type" : "object"
                  }
                }
              }
            }
          }
        },
        "security" : [ {
          "basicAuth" : [ ]
        }, {
          "sessionCookie" : [ ]
        } ]
      }
    },
    "/api/auth/me" : {
      "get" : {
        "tags" : [ "JWT Authentication" ],
        "summary" : "Get current user info",
        "description" : "Get current authenticated user information",
        "operationId" : "getCurrentUser",
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "User info retrieved successfully",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object"
                }
              }
            }
          },
          "401" : {
            "description" : "Authentication required",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "object"
                }
              }
            }
          }
        },
        "security" : [ {
          "bearerAuth" : [ ]
        } ]
      }
    },
    "/api/v0/flights/book/cancel/{passengerId}" : {
      "delete" : {
        "tags" : [ "Flight" ],
        "summary" : "Attempt to cancel a booking.",
        "operationId" : "cancelBooking",
        "parameters" : [ {
          "name" : "passengerId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int64"
          }
        } ],
        "responses" : {
          "400" : {
            "description" : "Bad Request",
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "200" : {
            "description" : "OK",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "string"
                }
              }
            }
          }
        }
      }
    }
  },
  "components" : {
    "schemas" : {
      "ErrorResponse" : {
        "type" : "object",
        "properties" : {
          "timestamp" : {
            "type" : "string",
            "format" : "date-time"
          },
          "status" : {
            "type" : "string"
          },
          "message" : {
            "type" : "string"
          },
          "details" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }
      },
      "UserDto" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "readOnly" : true
          },
          "firstname" : {
            "type" : "string"
          },
          "middlename" : {
            "type" : "string"
          },
          "lastname" : {
            "type" : "string"
          },
          "username" : {
            "type" : "string"
          },
          "email" : {
            "type" : "string"
          },
          "password" : {
            "type" : "string"
          },
          "roleNames" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }
        }
      },
      "PassengerDto" : {
        "required" : [ "address", "email", "firstName", "lastName", "passportNumber", "phoneNumber" ],
        "type" : "object",
        "properties" : {
          "passengerId" : {
            "type" : "integer",
            "format" : "int64"
          },
          "firstName" : {
            "maxLength" : 300,
            "minLength" : 0,
            "type" : "string"
          },
          "lastName" : {
            "maxLength" : 300,
            "minLength" : 0,
            "type" : "string"
          },
          "phoneNumber" : {
            "maxLength" : 30,
            "minLength" : 0,
            "type" : "string"
          },
          "passportNumber" : {
            "maxLength" : 30,
            "minLength" : 1,
            "type" : "string"
          },
          "email" : {
            "type" : "string"
          },
          "address" : {
            "maxLength" : 300,
            "minLength" : 0,
            "type" : "string"
          },
          "flightId" : {
            "type" : "integer",
            "format" : "int64"
          },
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "readOnly" : true
          }
        }
      },
      "FlightDto" : {
        "required" : [ "arrivalTime", "departureAirportCode", "departureTime", "destinationAirportCode", "flightNumber" ],
        "type" : "object",
        "properties" : {
          "flightId" : {
            "type" : "integer",
            "format" : "int64",
            "readOnly" : true
          },
          "flightNumber" : {
            "maxLength" : 30,
            "minLength" : 0,
            "type" : "string"
          },
          "departureAirportCode" : {
            "maxLength" : 5,
            "minLength" : 0,
            "type" : "string"
          },
          "destinationAirportCode" : {
            "maxLength" : 5,
            "minLength" : 0,
            "type" : "string"
          },
          "departureDate" : {
            "type" : "string",
            "format" : "date"
          },
          "arrivalDate" : {
            "type" : "string",
            "format" : "date"
          },
          "departureTime" : {
            "type" : "string"
          },
          "arrivalTime" : {
            "type" : "string"
          },
          "gate" : {
            "type" : "string"
          },
          "status" : {
            "type" : "string"
          },
          "flightCharge" : {
            "maximum" : 999999999,
            "type" : "number",
            "format" : "double"
          },
          "aircraftId" : {
            "type" : "integer",
            "format" : "int64"
          },
          "passengerIds" : {
            "type" : "array",
            "readOnly" : true,
            "items" : {
              "type" : "integer",
              "format" : "int64"
            }
          },
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "readOnly" : true
          }
        }
      },
      "AirportDto" : {
        "type" : "object",
        "properties" : {
          "airportId" : {
            "type" : "integer",
            "format" : "int64",
            "readOnly" : true
          },
          "airportCode" : {
            "maxLength" : 5,
            "minLength" : 2,
            "type" : "string"
          },
          "airportName" : {
            "maxLength" : 300,
            "minLength" : 3,
            "type" : "string"
          },
          "city" : {
            "maxLength" : 300,
            "minLength" : 0,
            "type" : "string"
          },
          "state" : {
            "maxLength" : 300,
            "minLength" : 0,
            "type" : "string"
          },
          "country" : {
            "maxLength" : 300,
            "minLength" : 0,
            "type" : "string"
          },
          "flightIds" : {
            "type" : "array",
            "readOnly" : true,
            "items" : {
              "type" : "integer",
              "format" : "int64"
            }
          },
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "readOnly" : true
          }
        }
      },
      "AircraftDto" : {
        "type" : "object",
        "properties" : {
          "aircraftId" : {
            "type" : "integer",
            "format" : "int64",
            "readOnly" : true
          },
          "manufacturer" : {
            "maxLength" : 300,
            "minLength" : 0,
            "type" : "string"
          },
          "model" : {
            "maxLength" : 300,
            "minLength" : 0,
            "type" : "string"
          },
          "numberOfSeats" : {
            "maximum" : 1000,
            "minimum" : 1,
            "type" : "integer",
            "format" : "int32"
          },
          "flightIds" : {
            "type" : "array",
            "readOnly" : true,
            "items" : {
              "type" : "integer",
              "format" : "int64"
            }
          },
          "id" : {
            "type" : "integer",
            "format" : "int64",
            "readOnly" : true
          }
        }
      },
      "AuthenticationRequest" : {
        "required" : [ "password", "username" ],
        "type" : "object",
        "properties" : {
          "username" : {
            "type" : "string",
            "description" : "Username",
            "example" : "john"
          },
          "password" : {
            "type" : "string",
            "description" : "Password",
            "example" : "admin123"
          }
        },
        "description" : "Authentication request"
      },
      "AuthenticationResponse" : {
        "type" : "object",
        "properties" : {
          "accessToken" : {
            "type" : "string",
            "description" : "JWT access token",
            "example" : "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
          },
          "refreshToken" : {
            "type" : "string",
            "description" : "JWT refresh token",
            "example" : "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
          },
          "tokenType" : {
            "type" : "string",
            "description" : "Token type",
            "example" : "Bearer"
          },
          "expiresIn" : {
            "type" : "integer",
            "description" : "Token expiration time in seconds",
            "format" : "int64",
            "example" : 86400
          },
          "user" : {
            "$ref" : "#/components/schemas/UserInfo"
          }
        },
        "description" : "Authentication response with JWT tokens"
      },
      "UserInfo" : {
        "type" : "object",
        "properties" : {
          "username" : {
            "type" : "string",
            "description" : "Username",
            "example" : "john"
          },
          "email" : {
            "type" : "string",
            "description" : "Email",
            "example" : "john@ftb.com"
          },
          "firstName" : {
            "type" : "string",
            "description" : "First name",
            "example" : "John"
          },
          "lastName" : {
            "type" : "string",
            "description" : "Last name",
            "example" : "Doe"
          },
          "currentRole" : {
            "type" : "string",
            "description" : "Current active role",
            "example" : "ROLE_ADMIN"
          },
          "roles" : {
            "type" : "array",
            "description" : "Available roles",
            "example" : [ "ROLE_USER", "ROLE_ADMIN" ],
            "items" : {
              "type" : "string",
              "description" : "Available roles",
              "example" : "[\"ROLE_USER\",\"ROLE_ADMIN\"]"
            }
          }
        },
        "description" : "User information"
      },
      "JsonPatch" : {
        "type" : "object"
      },
      "ApiResponse" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "integer",
            "format" : "int32"
          },
          "message" : {
            "type" : "string"
          },
          "details" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "string"
            }
          }
        }
      },
      "PageUserDto" : {
        "type" : "object",
        "properties" : {
          "totalPages" : {
            "type" : "integer",
            "format" : "int32"
          },
          "totalElements" : {
            "type" : "integer",
            "format" : "int64"
          },
          "pageable" : {
            "$ref" : "#/components/schemas/PageableObject"
          },
          "first" : {
            "type" : "boolean"
          },
          "last" : {
            "type" : "boolean"
          },
          "size" : {
            "type" : "integer",
            "format" : "int32"
          },
          "content" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/UserDto"
            }
          },
          "number" : {
            "type" : "integer",
            "format" : "int32"
          },
          "sort" : {
            "$ref" : "#/components/schemas/SortObject"
          },
          "numberOfElements" : {
            "type" : "integer",
            "format" : "int32"
          },
          "empty" : {
            "type" : "boolean"
          }
        }
      },
      "PageableObject" : {
        "type" : "object",
        "properties" : {
          "paged" : {
            "type" : "boolean"
          },
          "pageNumber" : {
            "type" : "integer",
            "format" : "int32"
          },
          "pageSize" : {
            "type" : "integer",
            "format" : "int32"
          },
          "offset" : {
            "type" : "integer",
            "format" : "int64"
          },
          "sort" : {
            "$ref" : "#/components/schemas/SortObject"
          },
          "unpaged" : {
            "type" : "boolean"
          }
        }
      },
      "SortObject" : {
        "type" : "object",
        "properties" : {
          "sorted" : {
            "type" : "boolean"
          },
          "empty" : {
            "type" : "boolean"
          },
          "unsorted" : {
            "type" : "boolean"
          }
        }
      },
      "GrantedAuthority" : {
        "type" : "object",
        "properties" : {
          "authority" : {
            "type" : "string"
          }
        }
      },
      "UserDetails" : {
        "type" : "object",
        "properties" : {
          "enabled" : {
            "type" : "boolean"
          },
          "username" : {
            "type" : "string"
          },
          "password" : {
            "type" : "string"
          },
          "authorities" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/GrantedAuthority"
            }
          },
          "accountNonExpired" : {
            "type" : "boolean"
          },
          "accountNonLocked" : {
            "type" : "boolean"
          },
          "credentialsNonExpired" : {
            "type" : "boolean"
          }
        }
      },
      "PagePassengerDto" : {
        "type" : "object",
        "properties" : {
          "totalPages" : {
            "type" : "integer",
            "format" : "int32"
          },
          "totalElements" : {
            "type" : "integer",
            "format" : "int64"
          },
          "pageable" : {
            "$ref" : "#/components/schemas/PageableObject"
          },
          "first" : {
            "type" : "boolean"
          },
          "last" : {
            "type" : "boolean"
          },
          "size" : {
            "type" : "integer",
            "format" : "int32"
          },
          "content" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/PassengerDto"
            }
          },
          "number" : {
            "type" : "integer",
            "format" : "int32"
          },
          "sort" : {
            "$ref" : "#/components/schemas/SortObject"
          },
          "numberOfElements" : {
            "type" : "integer",
            "format" : "int32"
          },
          "empty" : {
            "type" : "boolean"
          }
        }
      },
      "PageFlightDto" : {
        "type" : "object",
        "properties" : {
          "totalPages" : {
            "type" : "integer",
            "format" : "int32"
          },
          "totalElements" : {
            "type" : "integer",
            "format" : "int64"
          },
          "pageable" : {
            "$ref" : "#/components/schemas/PageableObject"
          },
          "first" : {
            "type" : "boolean"
          },
          "last" : {
            "type" : "boolean"
          },
          "size" : {
            "type" : "integer",
            "format" : "int32"
          },
          "content" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/FlightDto"
            }
          },
          "number" : {
            "type" : "integer",
            "format" : "int32"
          },
          "sort" : {
            "$ref" : "#/components/schemas/SortObject"
          },
          "numberOfElements" : {
            "type" : "integer",
            "format" : "int32"
          },
          "empty" : {
            "type" : "boolean"
          }
        }
      },
      "PageAirportDto" : {
        "type" : "object",
        "properties" : {
          "totalPages" : {
            "type" : "integer",
            "format" : "int32"
          },
          "totalElements" : {
            "type" : "integer",
            "format" : "int64"
          },
          "pageable" : {
            "$ref" : "#/components/schemas/PageableObject"
          },
          "first" : {
            "type" : "boolean"
          },
          "last" : {
            "type" : "boolean"
          },
          "size" : {
            "type" : "integer",
            "format" : "int32"
          },
          "content" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/AirportDto"
            }
          },
          "number" : {
            "type" : "integer",
            "format" : "int32"
          },
          "sort" : {
            "$ref" : "#/components/schemas/SortObject"
          },
          "numberOfElements" : {
            "type" : "integer",
            "format" : "int32"
          },
          "empty" : {
            "type" : "boolean"
          }
        }
      },
      "PageAircraftDto" : {
        "type" : "object",
        "properties" : {
          "totalPages" : {
            "type" : "integer",
            "format" : "int32"
          },
          "totalElements" : {
            "type" : "integer",
            "format" : "int64"
          },
          "pageable" : {
            "$ref" : "#/components/schemas/PageableObject"
          },
          "first" : {
            "type" : "boolean"
          },
          "last" : {
            "type" : "boolean"
          },
          "size" : {
            "type" : "integer",
            "format" : "int32"
          },
          "content" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/AircraftDto"
            }
          },
          "number" : {
            "type" : "integer",
            "format" : "int32"
          },
          "sort" : {
            "$ref" : "#/components/schemas/SortObject"
          },
          "numberOfElements" : {
            "type" : "integer",
            "format" : "int32"
          },
          "empty" : {
            "type" : "boolean"
          }
        }
      },
      "StreamingResponseBody" : {
        "type" : "object"
      }
    },
    "securitySchemes" : {
      "basicAuth" : {
        "type" : "http",
        "description" : "Basic authentication using username and password",
        "scheme" : "basic"
      },
      "sessionCookie" : {
        "type" : "apiKey",
        "description" : "Session cookie authentication (login via /login form first)",
        "name" : "sessionCookie",
        "in" : "cookie"
      },
      "bearerAuth" : {
        "type" : "http",
        "description" : "JWT Bearer token authentication",
        "scheme" : "bearer",
        "bearerFormat" : "JWT"
      }
    }
  }
}