{
  "openapi": "3.0.4",
  "info": {
    "title": "UnityTrip Booking API",
    "description": "Booking across owned, leased, and commercial content: search, book, confirm, cancel, land-transport events, traveller and booker profiles, fare categories, asset utilisation, expenses export, and payment acknowledgement. Prototype-derived reference spec: servers and authentication are intentionally omitted; the production surface is provisioned per tenant under role-based access control.",
    "termsOfService": "https://example.com/terms",
    "contact": {
      "name": "UnityTrip",
      "url": "https://unitytrip.com"
    },
    "license": {
      "name": "Example License",
      "url": "https://example.com/license"
    },
    "version": "prototype-v1"
  },
  "paths": {
    "/api/asset/utilization": {
      "post": {
        "tags": [
          "Asset"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UtilizationRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UtilizationRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UtilizationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/asset/utilization/{Id}": {
      "delete": {
        "tags": [
          "Asset"
        ],
        "parameters": [
          {
            "name": "Id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/asset/utilization/{Date}": {
      "get": {
        "tags": [
          "Asset"
        ],
        "parameters": [
          {
            "name": "date",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/trips/search": {
      "get": {
        "tags": [
          "Booking"
        ],
        "summary": "Returns as list of possible connection for this request",
        "parameters": [
          {
            "name": "OutboundTime",
            "in": "query",
            "description": "The earliest time of departure",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ReturnTime",
            "in": "query",
            "description": "The earliest time of departure of the return flight. If there is a value, there a two-way trip is returned",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "DepartureLocation",
            "in": "query",
            "description": "The name of the location of depature. The search failed, if no location is not found",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ArrivalLocation",
            "in": "query",
            "description": "The name of the location of arrival. The search failed, if no location is not found",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Seats",
            "in": "query",
            "description": "The number of seats for what a search should be done",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The possibel trips for this search",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BookingTripResultResponse"
                }
              }
            }
          },
          "400": {
            "description": "Input invalid or location not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Not authorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/trips/locations": {
      "get": {
        "tags": [
          "Booking"
        ],
        "summary": "Returns as list of all active locations",
        "responses": {
          "200": {
            "description": "All active locations",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BookingLocation"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/trips/book": {
      "post": {
        "tags": [
          "Booking"
        ],
        "summary": "Create a booking for a business traveler",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBookingRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBookingRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBookingRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The booking reference along with found/created travlerIds",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateBookingApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "Input is invalid for instance booker not found or trip invalid",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Not authorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/trips/booking/{reference}": {
      "delete": {
        "tags": [
          "Booking"
        ],
        "summary": "Cancel a booking",
        "parameters": [
          {
            "name": "reference",
            "in": "path",
            "description": "The booking reference",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Booking has been cancelled"
          },
          "404": {
            "description": "Booking not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Operation is invalid. Booking might be already canceled",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Not authorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/trips/booking/confirm/{reference}": {
      "post": {
        "tags": [
          "Booking"
        ],
        "summary": "Confirm a booking",
        "parameters": [
          {
            "name": "reference",
            "in": "path",
            "description": "The booking reference",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Booking has been confirmed"
          },
          "404": {
            "description": "Booking not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Operation is invalid. No seats availbe or booing has already be confirmed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Not authorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/trips/history": {
      "get": {
        "tags": [
          "Booking"
        ],
        "summary": "Get the booking history for a booker",
        "parameters": [
          {
            "name": "year",
            "in": "query",
            "description": "Depracted. Use UnityTrip.MyTravel.Controller.BookingRequests.BookingHistoryRequest.DepartedStart and UnityTrip.MyTravel.Controller.BookingRequests.BookingHistoryRequest.DepartedEnd  or <seealso cref=\"P:UnityTrip.MyTravel.Controller.BookingRequests.BookingHistoryRequest.BookedStart\" /><seealso cref=\"P:UnityTrip.MyTravel.Controller.BookingRequests.BookingHistoryRequest.BookedEnd\" />",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "month",
            "in": "query",
            "description": "Depracted. Use UnityTrip.MyTravel.Controller.BookingRequests.BookingHistoryRequest.DepartedStart and UnityTrip.MyTravel.Controller.BookingRequests.BookingHistoryRequest.DepartedEnd  or <seealso cref=\"P:UnityTrip.MyTravel.Controller.BookingRequests.BookingHistoryRequest.BookedStart\" /><seealso cref=\"P:UnityTrip.MyTravel.Controller.BookingRequests.BookingHistoryRequest.BookedEnd\" />",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "departedStart",
            "in": "query",
            "description": "If set, results are filtered to booking, that are departing later then this value",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "departedEnd",
            "in": "query",
            "description": "If set, results are filtered to booking, that are departing earlier then this value",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "bookedStart",
            "in": "query",
            "description": "If set, results are filtered to booking, that are booked later then this value",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "bookedEnd",
            "in": "query",
            "description": "If set, results are filtered to booking, that are booked earlier then this value",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "employeeId",
            "in": "query",
            "description": "the employee id of the booker",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The booking reference along with found/created travlerIds",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BookingHistoryItem"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Not authorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Input is invalid for instance booker not found or trip invalid"
          }
        }
      }
    },
    "/api/trips/booking/transport/events": {
      "post": {
        "tags": [
          "Booking"
        ],
        "summary": "Attach a land transport event to a booking",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TripTransporationEventRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TripTransporationEventRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TripTransporationEventRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Event has been attached and booking is updated"
          },
          "404": {
            "description": "Booking not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Operation is invalid",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Not authorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/trips/booking/{bookingRef}/additionalFields": {
      "post": {
        "tags": [
          "Booking"
        ],
        "summary": "Upsert the additional fields for a booking",
        "parameters": [
          {
            "name": "bookingRef",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Fields have been changed and the current list of fields is returned",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Booking not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Operation is invalid",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Not authorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/trips/booking/{bookingRef}/additionalFields/{fieldKey}": {
      "delete": {
        "tags": [
          "Booking"
        ],
        "summary": "Romve additional fields for a booking",
        "parameters": [
          {
            "name": "bookingRef",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fieldKey",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Fields have been changed and the current list of fields is returned",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Booking not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Operation is invalid",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Not authorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/trips/check-consistency": {
      "get": {
        "tags": [
          "Booking"
        ],
        "summary": "Performs a check to see if bookings are consistent with the segements entries",
        "responses": {
          "200": {
            "description": "The result of the check",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BookingConsistencyCommandResponse"
                }
              }
            }
          },
          "401": {
            "description": "Not authorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/trips/booking/start-session": {
      "post": {
        "tags": [
          "Booking"
        ],
        "summary": "Create a booking session",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBookingSessionRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBookingSessionRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBookingSessionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Operation is invalid. Most likely parameters like locations couldn't  be found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Not authorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "200": {
            "description": "Session has been created and can be used"
          }
        }
      }
    },
    "/api/trips/booking/{bookingRef}/external-identifier": {
      "post": {
        "tags": [
          "Booking"
        ],
        "summary": "Set an external identifier for a booking",
        "parameters": [
          {
            "name": "bookingRef",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "value",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Booking not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Operation is invalid. Identifier already set",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Not authorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "200": {
            "description": "Identifier has been updated"
          }
        }
      }
    },
    "/api/elina/update-booking": {
      "post": {
        "tags": [
          "Elina"
        ],
        "summary": "Returns as list of all active locations",
        "responses": {
          "200": {
            "description": "All active locations",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BookingLocation"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/expenses/export": {
      "get": {
        "tags": [
          "Expenses"
        ],
        "summary": "Export the data relevant for expanses",
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Not authorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "200": {
            "description": "The export result"
          }
        }
      }
    },
    "/api/expenses/import": {
      "post": {
        "tags": [
          "Expenses"
        ],
        "summary": "Import expense data",
        "responses": {
          "204": {
            "description": "Success"
          },
          "401": {
            "description": "Not authorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/farecategories/list": {
      "get": {
        "tags": [
          "FareCategories"
        ],
        "summary": "Returns as a list of all fare categories",
        "responses": {
          "200": {
            "description": "The list",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FareCategoryOverview"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Not authorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/travelers/profile/{employeeIdOrEmail}": {
      "get": {
        "tags": [
          "Traveler"
        ],
        "summary": "Returns the travel profile of an employee with the given id",
        "parameters": [
          {
            "name": "employeeIdOrEmail",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The possibel trips for this search",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TravelerExportProfile"
                }
              }
            }
          },
          "401": {
            "description": "Not authorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "Employee AncillaryId not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/travelers/profiles": {
      "get": {
        "tags": [
          "Traveler"
        ],
        "summary": "Returns all profiles",
        "responses": {
          "200": {
            "description": "The possibel trips for this search",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TravelerExportProfile"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Not authorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/travelers/profiles/import": {
      "post": {
        "tags": [
          "Traveler"
        ],
        "summary": "Import (update or insert) profiles",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TravelerImport"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TravelerImport"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TravelerImport"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The removed and added profiles",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ImportTravelersResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Not authorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/travelers/profiles/activity": {
      "post": {
        "tags": [
          "Traveler"
        ],
        "summary": "Enable or disable profiles",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TravelerChangeActivationRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TravelerChangeActivationRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TravelerChangeActivationRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "All Good",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ImportTravelersResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Not authorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/travelers/profiles/search": {
      "get": {
        "tags": [
          "Traveler"
        ],
        "summary": "Import (update or insert) profiles",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The removed and added profiles",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TravelerProfileOverview"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Not authorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/travelers/profiles/search2": {
      "get": {
        "tags": [
          "Traveler"
        ],
        "summary": "Import (update or insert) profiles",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The removed and added profiles",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TravelerProfileOverview"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Not authorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/bookers/profiles": {
      "get": {
        "tags": [
          "Traveler"
        ],
        "summary": "Returns all booker profile. A booker is a traveler that is not dependend on another traveler and has a employee id",
        "responses": {
          "200": {
            "description": "All found travelers which are also bookers",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TravelerExportProfile"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Not authorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/booker/{employeeId}/events": {
      "get": {
        "tags": [
          "Traveler"
        ],
        "summary": "Return the booking activity of a booker.",
        "parameters": [
          {
            "name": "employeeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "onlyConfirmed",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The booking activity for the requested booker",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CompanyRulesEngineBookingEvent"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Not authorized",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "Booker not found",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/trips/pay/{bookingReference}": {
      "post": {
        "tags": [
          "Trips"
        ],
        "parameters": [
          {
            "name": "bookingReference",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AcknowledgePaymentRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AcknowledgePaymentRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AcknowledgePaymentRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AcknowledgePaymentRequest": {
        "type": "object",
        "properties": {
          "reference": {
            "type": "string",
            "nullable": true
          },
          "wasPaid": {
            "type": "boolean"
          },
          "sessionId": {
            "type": "string",
            "format": "uuid"
          },
          "transactionDetails": {
            "$ref": "#/components/schemas/PaymentGatewayTransactionDetails"
          }
        },
        "additionalProperties": false
      },
      "BookingConsistencSegmentBookingResult": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "error": {
            "$ref": "#/components/schemas/SegmentBookingErrors"
          }
        },
        "additionalProperties": false
      },
      "BookingConsistencyCommandResponse": {
        "type": "object",
        "properties": {
          "bookingResults": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BookingConsistencyResult"
            },
            "nullable": true
          },
          "scheduleResults": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ScheduleConsistencyResult"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BookingConsistencyResult": {
        "type": "object",
        "properties": {
          "bookingId": {
            "type": "string",
            "format": "uuid",
            "readOnly": true
          },
          "reference": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "outboundResults": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BookingConsistencySegmentResult"
            },
            "nullable": true,
            "readOnly": true
          },
          "returnResult": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BookingConsistencySegmentResult"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "BookingConsistencySegmentResult": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/SegmentErrors"
          },
          "bookings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BookingConsistencSegmentBookingResult"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "BookingHistoryItem": {
        "type": "object",
        "properties": {
          "departureDateTime": {
            "type": "string",
            "description": "The time of departure of this booking. Reference to the begin of this journey",
            "format": "date-time"
          },
          "cancellationDateTime": {
            "type": "string",
            "description": "Timestamp when the event happend (NoShow, Canceled etc)",
            "format": "date-time"
          },
          "event": {
            "type": "string",
            "description": "Name of the event like NoShow,Rescheduled etc",
            "nullable": true
          },
          "passengerNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Name of the travelers on that booking",
            "nullable": true
          },
          "bookingNumber": {
            "type": "string",
            "description": "The booking refence",
            "nullable": true
          },
          "itinerary": {
            "$ref": "#/components/schemas/BookingHistoryJourneyInfo"
          },
          "booking": {
            "$ref": "#/components/schemas/BookingSummery"
          },
          "travelerName": {
            "type": "string",
            "description": "Name of the traveler responsible for this action. For reschedule, or cancel it is the booker, for no show it is the traveler that didn't show up",
            "nullable": true
          },
          "travelerId": {
            "type": "string",
            "description": "AncillaryId of the traveler responsible for this action. For reschedule, or cancel it is the booker, for no show it is the traveler that didn't show up",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "the success response of creating a booking"
      },
      "BookingHistoryJourneyInfo": {
        "type": "object",
        "properties": {
          "departure": {
            "type": "string",
            "description": "Name of the location where this journey started",
            "nullable": true,
            "readOnly": true
          },
          "arrival": {
            "type": "string",
            "description": "Name of the location where this journey ended",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "A simple overview for a journey associated with a booking"
      },
      "BookingLocation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "BookingRequestTraveler": {
        "required": [
          "firstname",
          "lastname",
          "outboundPriority",
          "type"
        ],
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "Title for this traveler something like Mr Mrs or simular",
            "nullable": true
          },
          "firstname": {
            "minLength": 1,
            "type": "string",
            "description": "the firstname of the traveler"
          },
          "lastname": {
            "minLength": 1,
            "type": "string",
            "description": "the lastname of the traveler"
          },
          "type": {
            "minLength": 1,
            "type": "string",
            "description": "the traveler type like \"Staff\" or \"Contractor\""
          },
          "outboundPriority": {
            "maximum": 100,
            "minimum": 0,
            "type": "integer",
            "description": "The priority that you be set of outbound segements. Must be be between 0 and 100",
            "format": "int32"
          },
          "returnPriority": {
            "maximum": 100,
            "minimum": 0,
            "type": "integer",
            "description": "The priority that is set to of return segements. Must be between 0 and 100",
            "format": "int32",
            "nullable": true
          },
          "employeeId": {
            "type": "string",
            "description": "If the traveler is member of staff, this is the employee id",
            "nullable": true
          },
          "id": {
            "type": "string",
            "description": "In case the traveler has already an \"account\" this is used for the booking. In addition the profile values are updated",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represent a traveler within a booking request"
      },
      "BookingResponseTrip": {
        "type": "object",
        "properties": {
          "departure": {
            "$ref": "#/components/schemas/BookingLocation"
          },
          "arrival": {
            "$ref": "#/components/schemas/BookingLocation"
          },
          "tripIdentifier": {
            "type": "string",
            "description": "An identifier that can be used to specify this trip to make a booking",
            "nullable": true,
            "readOnly": true
          },
          "isDeparted": {
            "type": "boolean",
            "description": "if ture indicates that the trip has already departured and that no bookings can be made",
            "readOnly": true
          },
          "confirmToSearchConfiguration": {
            "type": "boolean",
            "description": "if true, this connection meet the requirements for the search configuration like number of segments etc.",
            "readOnly": true
          },
          "segments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BookingResponseTripSegment"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "BookingResponseTripSegment": {
        "type": "object",
        "properties": {
          "depature": {
            "$ref": "#/components/schemas/BookingLocation"
          },
          "arrival": {
            "$ref": "#/components/schemas/BookingLocation"
          },
          "transportationType": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "departureDate": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "arrivalDate": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "scheduleId": {
            "type": "string",
            "format": "uuid",
            "readOnly": true
          },
          "segmentIndex": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "BookingSummery": {
        "type": "object",
        "properties": {
          "bookedDateTime": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "bookerGroup": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "tripReason": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "fare": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "isPaid": {
            "type": "boolean",
            "readOnly": true
          },
          "fareCategory": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "passengers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SimpleBookingTraveler"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "a summery containing details about a booking like fare category, reasons, and travelers"
      },
      "BookingTripResultResponse": {
        "type": "object",
        "properties": {
          "outbound": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BookingResponseTrip"
            },
            "nullable": true,
            "readOnly": true
          },
          "return": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BookingResponseTrip"
            },
            "nullable": true,
            "readOnly": true
          },
          "sessionId": {
            "type": "string",
            "format": "uuid",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "CompanyRulesEngineBookingEvent": {
        "type": "object",
        "properties": {
          "eventType": {
            "type": "string",
            "nullable": true
          },
          "minutesBeforeDeparture": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "CreateBookingApiResponse": {
        "type": "object",
        "properties": {
          "reference": {
            "type": "string",
            "description": "the reference of the created booking. Can be used to confirm the booking",
            "nullable": true
          },
          "travelers": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "The ids of the traverls in the same sequence as provided by the input",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "the success response of creating a booking"
      },
      "CreateBookingRequest": {
        "required": [
          "activity",
          "bookerEmployeeId",
          "externalReference",
          "InternationalComment",
          "isInternational",
          "outboundTrip",
          "travelers"
        ],
        "type": "object",
        "properties": {
          "outboundTrip": {
            "minLength": 1,
            "type": "string",
            "description": "The identifier for the trip in the format \"scheduleid|segmentIndex,scheduleid|segmentIndex}"
          },
          "returnTrip": {
            "type": "string",
            "description": "The identifier for the trip in the format \"scheduleid|segmentIndex,scheduleid|segmentIndex}",
            "nullable": true
          },
          "bookerEmployeeId": {
            "minLength": 1,
            "type": "string",
            "description": "the employee id from the profiles table of the booker for this booking"
          },
          "externalReference": {
            "minLength": 1,
            "type": "string",
            "description": "an external reference that is saved for the booking. This can be any value like a cytric id"
          },
          "activity": {
            "minLength": 1,
            "type": "string",
            "description": "the name of the booking activity. Valid values are"
          },
          "travelers": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BookingRequestTraveler"
            },
            "description": "the list of travelers for this booking. At least one traveler needs to be presented"
          },
          "sessionId": {
            "type": "string",
            "description": "for tracking the search activity this value should be returned with the search.",
            "format": "uuid",
            "nullable": true
          },
          "isInternational": {
            "type": "boolean",
            "description": "the name of the booking activity. Valid values are"
          },
          "InternationalComment": {
            "minLength": 1,
            "type": "string",
            "description": "Additional information regarding the international booking"
          },
          "additionalFields": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Additional Fields that will be displayed alongside with the booking. Can be null or empty",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "the booking request to make a business booking"
      },
      "CreateBookingSessionRequest": {
        "type": "object",
        "properties": {
          "tripReasons": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "specify the trip reasons that should be used for this session. Null if there shouldn't be a restriction. In case the trip reason should be locked, supply a list with a single entry",
            "nullable": true
          },
          "destinations": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "specify a list of allowed destinations to choose from. Null, if there shouldn't be a restriction",
            "nullable": true
          },
          "arrivals": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "specify a list of allowed arrivals to choose from. Null, if there shouldn't be a restriction",
            "nullable": true
          },
          "transportations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransportationType"
            },
            "description": "specify a list of allowed transportation types (aircraft, boat, bus) to choose from. Null, if there shouldn't be a restriction",
            "nullable": true
          },
          "onlyOneWay": {
            "type": "boolean",
            "description": "if true, only a single trip (without) return can be booked. Defaul"
          },
          "bookMultipleTravelers": {
            "type": "boolean",
            "description": "if true, the booking can be made for others and/or more than on person is part of this booking"
          },
          "group": {
            "type": "string",
            "description": "if set, the booking will be made using this traveler group",
            "nullable": true
          },
          "passengerTypes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "if the booking is made for multiple travelers, only travelers with the relationship (spouse, child, guest) will be allowed to be selected. If no restriction should be applied, this field needs to be null",
            "nullable": true
          },
          "fareCategories": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "if set restrict the selectable fare categories to those listed. null, if there shouldn't be any restriction on fare categories",
            "nullable": true
          },
          "remindIfDropoffNotChosen": {
            "type": "boolean",
            "description": "if set to true an additional message will be displayed, when there is no drop off chosen"
          },
          "remindIfPickupNotChosen": {
            "type": "boolean",
            "description": "if set to true an additional message will be displayed, when there is no pickup chosen"
          },
          "remindIfHotelNotChosen": {
            "type": "boolean",
            "description": "if set to true an additional message will be displayed, when there is no hotel chosen"
          },
          "canBookHotel": {
            "type": "boolean",
            "description": "if set to true, a hotel can be booked as well"
          },
          "maxTravelers": {
            "type": "integer",
            "description": "If set, not more than the number specified passenger can be on a single booking",
            "format": "int32",
            "nullable": true
          },
          "canBookAnyTraveler": {
            "type": "boolean",
            "description": "If set to true, the traveler can book any other traveler that have the relation specified in  AllowedPassengerRelations field"
          },
          "externalReference": {
            "type": "string",
            "description": "in case there is already an external reference, it can be set and will be saved once the booking is made",
            "nullable": true
          },
          "employeeId": {
            "type": "string",
            "description": "In case that booking is made on behalf of someone else, this will enable an alternative login method for this session",
            "nullable": true
          },
          "returnUrl": {
            "type": "string",
            "description": "A user can be redirect to a url, when the booking is finished",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FareCategoryOverview": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "the internal id of this fare category",
            "format": "uuid",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "Name of the fare category. Is sent within a request to company rules",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "GuidStringValueTuple": {
        "type": "object",
        "additionalProperties": false
      },
      "ImportOptions": {
        "type": "object",
        "properties": {
          "createAccounts": {
            "type": "boolean"
          },
          "source": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ImportTravelersResponse": {
        "type": "object",
        "properties": {
          "addedTravelers": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "nullable": true,
            "readOnly": true
          },
          "removedTravelers": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "nullable": true,
            "readOnly": true
          },
          "updatedTravelers": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PaymentGatewayTransactionDetails": {
        "type": "object",
        "properties": {
          "providerReference": {
            "type": "string",
            "nullable": true
          },
          "providerName": {
            "type": "string",
            "nullable": true
          },
          "bankName": {
            "type": "string",
            "nullable": true
          },
          "lastCreditCardDigest": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ScheduleConsistencyResult": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "tripNumber": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "start": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "segments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ScheduleSegmentConsistencyResult"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "ScheduleSegmentConsistencyResult": {
        "type": "object",
        "properties": {
          "index": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "from": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "to": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "orphanedBookings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GuidStringValueTuple"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "SegmentBookingErrors": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "format": "int32"
      },
      "SegmentErrors": {
        "enum": [
          0,
          1,
          2,
          4,
          8
        ],
        "type": "integer",
        "format": "int32"
      },
      "SimpleBookingTraveler": {
        "type": "object",
        "properties": {
          "passengerName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "passengerType": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "passengerSubType": {
            "$ref": "#/components/schemas/SubPassengerTypes"
          }
        },
        "additionalProperties": false,
        "description": "represent a traveler with name, relationship and sub passengertype"
      },
      "SubPassengerTypes": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "format": "int32"
      },
      "TransportationBookingEvent": {
        "enum": [
          1,
          2,
          3
        ],
        "type": "integer",
        "format": "int32"
      },
      "TransportationBookingType": {
        "enum": [
          1,
          2
        ],
        "type": "integer",
        "format": "int32"
      },
      "TransportationType": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "format": "int32"
      },
      "TravelerChangeActivationRequest": {
        "type": "object",
        "properties": {
          "employeeIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "shouldBeActive": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "TravelerDependendProfile": {
        "type": "object",
        "properties": {
          "travelerId": {
            "type": "string",
            "format": "uuid",
            "readOnly": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "firstname": {
            "type": "string",
            "nullable": true
          },
          "lastname": {
            "type": "string",
            "nullable": true
          },
          "relationship": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TravelerExportProfile": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "firstname": {
            "type": "string",
            "nullable": true
          },
          "lastname": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "employeeId": {
            "type": "string",
            "nullable": true
          },
          "locationId": {
            "type": "string",
            "nullable": true
          },
          "policyGroupId": {
            "type": "string",
            "nullable": true
          },
          "department": {
            "type": "string",
            "nullable": true
          },
          "division": {
            "type": "string",
            "nullable": true
          },
          "unit": {
            "type": "string",
            "nullable": true
          },
          "externalId": {
            "type": "string",
            "nullable": true
          },
          "source": {
            "type": "string",
            "nullable": true
          },
          "externalLoginame": {
            "type": "string",
            "nullable": true
          },
          "costCenter": {
            "type": "string",
            "nullable": true
          },
          "fund": {
            "type": "string",
            "nullable": true
          },
          "referenceIndicator": {
            "type": "string",
            "nullable": true
          },
          "isActive": {
            "type": "boolean"
          },
          "employeeLevel": {
            "type": "integer",
            "format": "int32"
          },
          "currencyExchangeRates": {
            "type": "object",
            "additionalProperties": {
              "type": "number",
              "format": "double"
            },
            "nullable": true
          },
          "dependents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TravelerDependendProfile"
            },
            "nullable": true
          },
          "guests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TravelerDependendProfile"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TravelerImport": {
        "type": "object",
        "properties": {
          "profiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TravelerExportProfile"
            },
            "nullable": true
          },
          "options": {
            "$ref": "#/components/schemas/ImportOptions"
          }
        },
        "additionalProperties": false
      },
      "TravelerProfileOverview": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "firstname": {
            "type": "string",
            "nullable": true
          },
          "lastname": {
            "type": "string",
            "nullable": true
          },
          "relationship": {
            "type": "string",
            "nullable": true
          },
          "employeeId": {
            "type": "string",
            "nullable": true
          },
          "department": {
            "type": "string",
            "nullable": true
          },
          "division": {
            "type": "string",
            "nullable": true
          },
          "unit": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TripTransporationEventRequest": {
        "type": "object",
        "properties": {
          "bookingReference": {
            "type": "string",
            "description": "the logitics booking reference (e.g. 0500001) for this event",
            "nullable": true
          },
          "transportationReference": {
            "type": "string",
            "description": "The reference wihtin land transport",
            "nullable": true
          },
          "selfUrl": {
            "type": "string",
            "description": "The reference that can be used to either link the user to details about this booking or to gather more information",
            "nullable": true
          },
          "transportationType": {
            "$ref": "#/components/schemas/TransportationBookingType"
          },
          "event": {
            "$ref": "#/components/schemas/TransportationBookingEvent"
          },
          "additionalInput": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "In case there should be additional values displayed in the audit log, this property can be used. The key, will be translation to the label and the value will be the message displayed",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Request used to inform logistics about car booking related events"
      },
      "UtilizationRequest": {
        "type": "object",
        "properties": {
          "assetId": {
            "type": "string",
            "format": "uuid"
          },
          "operatorId": {
            "type": "string",
            "format": "uuid"
          },
          "start": {
            "type": "string",
            "format": "date-time"
          },
          "end": {
            "type": "string",
            "format": "date-time"
          },
          "reason": {
            "type": "string",
            "nullable": true
          },
          "startLocation": {
            "type": "string",
            "nullable": true
          },
          "endLocation": {
            "type": "string",
            "nullable": true
          },
          "existingScheduleId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    }
  },
  "tags": [
    {
      "name": "Account"
    },
    {
      "name": "Asset"
    },
    {
      "name": "Booking"
    },
    {
      "name": "Elina"
    },
    {
      "name": "Expenses"
    },
    {
      "name": "Export"
    },
    {
      "name": "FareCategories"
    },
    {
      "name": "Traveler"
    },
    {
      "name": "Trips"
    }
  ]
}