Skip to content
Snippets Groups Projects
openapi.yaml 46.4 KiB
Newer Older
openapi: 3.0.1
info:
  title: Airport Manager
  description: |
    Microservice Application for Airport Manager
  contact:
    name: Martin Slovik
    email: 540485@mail.muni.cz
    # insert your information as well
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  version: "1.1"
servers:
  - url: "{scheme}://{server}:{port}"
    description: my server
    variables:
      scheme:
        default: http
        enum:
          - http
          - https
      server:
        default: localhost
      port:
        default: "8080"
tags:
  - name: Core
    description: Microservice for core.
paths:
  /api/stewards:
    get:
      tags:
        - Steward
        Returns an array of objects representing stewards.
      operationId: getAllStewards
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/StewardDto'
      summary: Create a new steward.
        Creates a new steward and returns it as a response.
      operationId: createSteward
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewStewardDtoRequest'
        required: true
      responses:
        "201":
          $ref: '#/components/responses/SingleStewardDtoResponse'
        "400":
          description: Input data not correct
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
  /api/stewards/{id}:
    get:
      tags:
        - Steward
      description: Returns a steward by id.
      operationId: getSteward
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StewardDto'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      summary: Delete steward by id.
      operationId: deleteSteward
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        "204":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      summary: Update steward by id.
      operationId: updateSteward
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      description: |
        Updates a steward by id and returns it as a response.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewStewardDtoRequest'
      responses:
        "200":
          $ref: '#/components/responses/SingleStewardDtoResponse'
        "400":
          description: Input data not correct
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
  /api/stewards/{stewardId}/flights/{flightId}:
    post:
      tags:
        - Steward
      summary: Assign steward to a flight.
      operationId: createStewardFlights
      parameters:
        - name: stewardId
          in: path
          required: true
          schema:
            type: integer
            format: int64
        - name: flightId
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        "201":
          $ref: '#/components/responses/SingleStewardDtoResponse'
        "400":
          description: Input data not correct
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
    delete:
      tags:
        - Steward
      summary: Delete assignment of steward to a flight.
      operationId: deleteStewardFlights
      parameters:
        - name: stewardId
          in: path
          required: true
          schema:
            type: integer
            format: int64
        - name: flightId
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        "204":
          description: Deleted
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
  /api/stewards/paged:
    get:
      tags:
        - Steward
      summary: Paged stewards
      description: |
        The parameter `page` specifies zero-based index of the requested page,
        and the parameter `size` specifies the size of the page.
      operationId: getStewardsPaged
      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:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageStewardDto'
  /api/flights:
    get:
      tags:
        - Flight
        Returns an array of objects representing flights.
      operationId: getAllFlights
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FlightDto'
    post:
      tags:
        - Flight
      summary: Create a new flight.
      description: |
        Creates a new flight and returns it as a response.
      operationId: createFlight
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewFlightDtoRequest'
        required: true
      responses:
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlightDto'
        "400":
          description: Input data not correct
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
  /api/flights/{id}:
    get:
      tags:
        - Flight
      summary: Get flight by id.
      description: |
        Returns an object representing a flight.
      operationId: getFlightById
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlightDto'
    delete:
      tags:
        - Flight
      summary: Delete flight by id.
      operationId: deleteFlight
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        "204":
          description: Deleted
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
    put:
      tags:
        - Flight
      summary: Update flight by id.
      operationId: updateFlight
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      description: Updates a flight by id and returns it as a response.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewFlightDtoRequest'
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FlightDto'
        "400":
          description: Input data not correct
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
  /api/airplaneTypes:
    get:
      tags:
        - AirplaneType
      summary: Get all airplane types.
      description: |
        Returns an array of objects representing airplane types.
      operationId: getAllAirplaneTypes
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AirplaneTypeDto'
    post:
      tags:
        - AirplaneType
      summary: Create a new airplane type.
      description: Creates a new airplane type and returns it as a response.
      operationId: createAirplaneType
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewAirplaneTypeDtoRequest'
        required: true
      responses:
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AirplaneTypeDto'
        "400":
          description: Input data not correct
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
  /api/airplaneTypes/{id}:
    get:
      tags:
        - AirplaneType
      summary: Get airplane type by id.
      description: Returns an object representing an airplane type.
      operationId: getAirplaneTypeById
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AirplaneTypeDto'
    delete:
      tags:
        - AirplaneType
      summary: Delete airplane type by id.
      operationId: deleteAirplaneType
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        "204":
          description: Deleted
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
    put:
      tags:
        - AirplaneType
      summary: Update airplane type by id.
      operationId: updateAirplaneType
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      description: Updates a airplane type by id and returns it as a response.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewAirplaneTypeDtoRequest'
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AirplaneTypeDto'
        "400":
          description: Input data not correct
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
  /api/airplanes:
    get:
      tags:
        - Airplane
      summary: Get all airplanes.
      description: Returns an array of objects representing airplanes.
      operationId: getAllAirplanes
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AirplaneDto'
    post:
      tags:
        - Airplane
      summary: Create a new airplane.
      description: Creates a new airplane and returns it as a response.
      operationId: createAirplane
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewAirplaneDtoRequest'
        required: true
      responses:
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AirplaneDto'
        "400":
          description: Input data not correct
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
  /api/airplanes/{id}:
    get:
      tags:
        - Airplane
      summary: Get airplane by id.
      description: Returns an object representing an airplane.
      operationId: getAirplaneById
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AirplaneDto'
    delete:
      tags:
        - Airplane
      summary: Delete airplane by id.
      operationId: deleteAirplane
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        "204":
          description: Deleted
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
    put:
      tags:
        - Airplane
      summary: Update airplane by id.
      operationId: updateAirplane
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      description: Updates a airplane by id and returns it as a response.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewAirplaneDtoRequest'
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AirplaneDto'
        "400":
          description: Input data not correct
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
  /api/airplanes/{airplaneId}/airplaneTypes/{airplaneTypeId}:
    post:
      tags:
        - Airplane
      summary: Assign airplane type to a airplane.
      operationId: assignAirplaneType
      parameters:
        - name: airplaneId
          in: path
          required: true
          schema:
            type: integer
            format: int64
        - name: airplaneTypeId
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        "201":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AirplaneDto'
        "400":
          description: Input data not correct
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
    put:
      tags:
        - Airplane
      summary: Update assignment of airplane type to an airplane.
      operationId: updateAirplaneTypeAssignment
      parameters:
        - name: airplaneId
          in: path
          required: true
          schema:
            type: integer
            format: int64
        - name: airplaneTypeId
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AirplaneDto'
        "400":
          description: Input data not correct
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
    delete:
      tags:
        - Airplane
      summary: Delete assignment of airplane type to an airplane.
      operationId: deleteAirplaneTypeAssignment
      parameters:
        - name: airplaneId
          in: path
          required: true
          schema:
            type: integer
            format: int64
        - name: airplaneTypeId
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        "204":
          description: Deleted
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
  /api/countries:
    get:
      tags:
        - Country
      summary: Get all countries.
      description: Returns an array of objects representing countries.
      operationId: getAllCountries
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CountryDto'
    post:
      tags:
        - Country
      summary: Create a new country.
      description: Creates a new country and returns it as a response.
      operationId: createCountry
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewCountryDtoRequest'
        required: true
      responses:
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CountryDto'
        "400":
          description: Input data not correct
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
  /api/countries/{id}:
    get:
      tags:
        - Country
      summary: Get country by id.
      description: Returns an object representing a country.
      operationId: getCountryById
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CountryDto'
    delete:
      tags:
        - Country
      summary: Delete country by id.
      operationId: deleteCountry
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        "204":
          description: Deleted
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
    put:
      tags:
        - Country
      summary: Update country by id.
      operationId: updateCountry
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      description: Updates a country by id and returns it as a response.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewCountryDtoRequest'
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CountryDto'
        "400":
          description: Input data not correct
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
  /api/cities:
    get:
      tags:
      summary: Get all cities.
      description: Returns an array of objects representing cities.
      operationId: getAllCities
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CityDto'
    post:
      tags:
        - City
      summary: Create a new city.
      description: Creates a new city and returns it as a response.
      operationId: createCity
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewCityDtoRequest'
        required: true
      responses:
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CityDto'
        "400":
          description: Input data not correct
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
  /api/cities/{id}:
    get:
      tags:
        - City
      summary: Get city by id.
      description: Returns an object representing a city.
      operationId: getCityById
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CityDto'
    delete:
      tags:
        - City
      summary: Delete city by id.
      operationId: deleteCity
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        "204":
          description: Deleted
        "404":
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
    put:
      tags:
        - City
      summary: Update city by id.
      operationId: updateCity
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      description: Updates a city by id and returns it as a response.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewCityDtoRequest'
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CityDto'
        "400":
          description: Input data not correct
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
  /api/cities/{cityId}/countries/{countryId}:
    post:
      tags:
        - City
      summary: Assign country to a city.
      operationId: assignCountry
      parameters:
        - name: cityId
          in: path
          required: true
          schema:
            type: integer
            format: int64
        - name: countryId
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        "201":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CityDto'
        "400":
          description: Input data not correct
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
    put:
      tags:
        - City
      summary: Update assignment of country to a city.
      operationId: updateCountryAssignment
      parameters:
        - name: cityId
          in: path
          required: true
          schema:
            type: integer
            format: int64
        - name: countryId
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CityDto'
        "400":
          description: Input data not correct
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
    delete:
      tags:
        - City
      summary: Delete assignment of country to a city.
      operationId: deleteCountryAssignment
      parameters:
        - name: cityId
          in: path
          required: true
          schema:
            type: integer
            format: int64
        - name: countryId
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        "204":
          description: Deleted
        "404":
          description: Not Found
          content: