{
  "components": {
    "examples": {},
    "headers": {},
    "parameters": {},
    "requestBodies": {},
    "responses": {},
    "schemas": {
      "GetCityFromUniqueNameResponse": {
        "properties": {
          "id": {
            "type": "number",
            "format": "double"
          },
          "name": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "countryCode": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "gpuid": {
            "type": "string"
          },
          "latitude": {
            "type": "number",
            "format": "double"
          },
          "longitude": {
            "type": "number",
            "format": "double"
          },
          "specialType": {
            "type": "string"
          },
          "serviced": {
            "type": "boolean"
          },
          "notServicedSince": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "region",
          "country",
          "countryCode",
          "slug",
          "gpuid",
          "latitude",
          "longitude",
          "specialType",
          "serviced",
          "notServicedSince"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IErrorCodeResponse": {
        "properties": {
          "errorKey": {
            "type": "string"
          },
          "errorMessage": {
            "type": "string"
          }
        },
        "required": [
          "errorKey",
          "errorMessage"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IAuthOrderIdResponse": {
        "properties": {
          "token": {
            "type": "string"
          },
          "refreshToken": {
            "type": "string"
          }
        },
        "required": [
          "token",
          "refreshToken"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IAuthOrderIdBody": {
        "properties": {
          "email": {
            "type": "string"
          },
          "orderId": {
            "type": "string"
          },
          "deviceId": {
            "type": "number",
            "format": "double"
          }
        },
        "required": [
          "email",
          "orderId"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IAuthMagicLinkBody": {
        "properties": {
          "email": {
            "type": "string"
          },
          "redirectAfterLogin": {
            "type": "string"
          }
        },
        "required": [
          "email",
          "redirectAfterLogin"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IAuthMagicLinkVerifyBody": {
        "properties": {
          "token": {
            "type": "string"
          },
          "deviceId": {
            "type": "number",
            "format": "double"
          }
        },
        "required": [
          "token"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ICreatePartnerAuthResponse": {
        "properties": {
          "token": {
            "type": "string"
          }
        },
        "required": [
          "token"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "EAuthenticationRole.API_SEARCH_PARTNER": {
        "enum": [
          "searchPartner"
        ],
        "type": "string"
      },
      "EAuthenticationRole.API_BOOK_PARTNER": {
        "enum": [
          "bookPartner"
        ],
        "type": "string"
      },
      "ICreatePartnerAuthBody": {
        "properties": {
          "partnerId": {
            "type": "string"
          },
          "role": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/EAuthenticationRole.API_SEARCH_PARTNER"
              },
              {
                "$ref": "#/components/schemas/EAuthenticationRole.API_BOOK_PARTNER"
              }
            ]
          }
        },
        "required": [
          "partnerId",
          "role"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "SubscribeBody": {
        "properties": {
          "email": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "email",
          "name"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "SendInBlueSMTPEmailContact": {
        "properties": {
          "name": {
            "type": "string"
          },
          "email": {
            "type": "string"
          }
        },
        "required": [
          "email"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IAltibusCancellationInformationBody": {
        "properties": {
          "reservationId": {
            "type": "string"
          },
          "reservationAmount": {
            "type": "number",
            "format": "double"
          },
          "cc": {
            "items": {
              "$ref": "#/components/schemas/SendInBlueSMTPEmailContact"
            },
            "type": "array"
          },
          "contactName": {
            "type": "string"
          },
          "contactEmail": {
            "type": "string"
          }
        },
        "required": [
          "reservationId",
          "reservationAmount",
          "contactName",
          "contactEmail"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "Order": {
        "additionalProperties": false,
        "type": "object",
        "description": "{@inheritDoc}"
      },
      "TClientPlace": {
        "properties": {
          "id": {
            "type": "number",
            "format": "double"
          },
          "city": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "stopGroupGpuid": {
            "type": "string"
          },
          "stopClusterGpuid": {
            "type": "string"
          },
          "station": {
            "type": "string"
          },
          "lat": {
            "type": "number",
            "format": "double"
          },
          "long": {
            "type": "number",
            "format": "double"
          }
        },
        "required": [
          "city",
          "country"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ETripTransport": {
        "enum": [
          "MULTIMODAL",
          "BUS",
          "TRAIN",
          "CARPOOLING"
        ],
        "type": "string"
      },
      "EApiTransportType": {
        "enum": [
          "carpooling",
          "bus",
          "train"
        ],
        "type": "string"
      },
      "ETicketStatusStatus": {
        "enum": [
          "LOCKED",
          "CANCELED",
          "BOOKED",
          "ERRORED",
          "ERRORED_AFTER_BOOKED",
          "REFUNDED",
          "PRESOLD"
        ],
        "type": "string"
      },
      "IVoucherDetails": {
        "properties": {
          "voucher": {
            "type": "string"
          },
          "expireDateUTCUnix": {
            "type": "number",
            "format": "double"
          },
          "amountCents": {
            "type": "number",
            "format": "double"
          },
          "usableOn": {
            "type": "string"
          }
        },
        "required": [
          "voucher",
          "expireDateUTCUnix",
          "amountCents",
          "usableOn"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IClientSegment": {
        "properties": {
          "id": {
            "type": "string"
          },
          "company": {
            "type": "string"
          },
          "mean": {
            "$ref": "#/components/schemas/EApiTransportType"
          },
          "origin": {
            "$ref": "#/components/schemas/TClientPlace"
          },
          "destination": {
            "$ref": "#/components/schemas/TClientPlace"
          },
          "priceCents": {
            "type": "number",
            "format": "double"
          },
          "feeCents": {
            "type": "number",
            "format": "double"
          },
          "includedProviderFeeCents": {
            "type": "number",
            "format": "double"
          },
          "departureUTC": {
            "type": "number",
            "format": "double"
          },
          "arrivalUTC": {
            "type": "number",
            "format": "double"
          },
          "originOffset": {
            "type": "string"
          },
          "destinationOffset": {
            "type": "string"
          },
          "durationMinutes": {
            "type": "number",
            "format": "double"
          },
          "isBookable": {
            "type": "boolean"
          },
          "bookingStatus": {
            "$ref": "#/components/schemas/ETicketStatusStatus"
          },
          "redirectionLink": {
            "type": "string"
          },
          "conditions": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "conditionsName": {
            "type": "string"
          },
          "fareName": {
            "type": "string"
          },
          "bookingClass": {
            "type": "string"
          },
          "vehicleIdentifier": {
            "type": "string"
          },
          "cancellationStatus": {
            "type": "string"
          },
          "voucherDetails": {
            "$ref": "#/components/schemas/IVoucherDetails"
          },
          "companyProviderName": {
            "type": "string"
          },
          "companyId": {
            "type": "number",
            "format": "double"
          },
          "isCustomerCancellationEnabled": {
            "type": "boolean"
          },
          "refundedAmountCents": {
            "type": "number",
            "format": "double"
          },
          "eTicketUrl": {
            "type": "string",
            "nullable": true
          },
          "cancellationConditions": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "availableSeats": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "isPresale": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "company",
          "mean",
          "origin",
          "destination",
          "priceCents",
          "feeCents",
          "includedProviderFeeCents",
          "departureUTC",
          "arrivalUTC",
          "originOffset",
          "destinationOffset",
          "durationMinutes",
          "isBookable",
          "redirectionLink",
          "isPresale"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ISerializedTrip_IClientSegment_": {
        "properties": {
          "id": {
            "type": "string"
          },
          "uuid": {
            "type": "string"
          },
          "origin": {
            "$ref": "#/components/schemas/TClientPlace"
          },
          "destination": {
            "$ref": "#/components/schemas/TClientPlace"
          },
          "priceCents": {
            "type": "number",
            "format": "double"
          },
          "feeCents": {
            "type": "number",
            "format": "double"
          },
          "paidPrice": {
            "type": "number",
            "format": "double"
          },
          "departureUTC": {
            "type": "number",
            "format": "double"
          },
          "arrivalUTC": {
            "type": "number",
            "format": "double"
          },
          "originOffset": {
            "type": "string"
          },
          "destinationOffset": {
            "type": "string"
          },
          "durationMinutes": {
            "type": "number",
            "format": "double"
          },
          "companies": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "mean": {
            "$ref": "#/components/schemas/ETripTransport"
          },
          "segments": {
            "items": {
              "$ref": "#/components/schemas/IClientSegment"
            },
            "type": "array"
          },
          "co2g": {
            "type": "number",
            "format": "double"
          },
          "vehicleIdentifier": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "origin",
          "destination",
          "priceCents",
          "feeCents",
          "paidPrice",
          "departureUTC",
          "arrivalUTC",
          "originOffset",
          "destinationOffset",
          "durationMinutes",
          "companies",
          "mean",
          "segments",
          "co2g"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IClientTrip": {
        "$ref": "#/components/schemas/ISerializedTrip_IClientSegment_"
      },
      "EPassengerCategory": {
        "enum": [
          "youths",
          "seniors",
          "adults"
        ],
        "type": "string"
      },
      "IDiscountCard": {
        "properties": {
          "id": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "cardCode": {
            "type": "string"
          },
          "visibility": {
            "type": "number",
            "format": "double"
          },
          "isIdRequired": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "label",
          "cardCode",
          "visibility",
          "isIdRequired"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "EPassengerTitle": {
        "enum": [
          "MR",
          "MS"
        ],
        "type": "string"
      },
      "ISerializedPassenger": {
        "properties": {
          "id": {
            "type": "number",
            "format": "double"
          },
          "lastName": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "category": {
            "$ref": "#/components/schemas/EPassengerCategory"
          },
          "discountCards": {
            "items": {
              "$ref": "#/components/schemas/IDiscountCard"
            },
            "type": "array"
          },
          "title": {
            "$ref": "#/components/schemas/EPassengerTitle"
          },
          "isCustomer": {
            "type": "boolean"
          },
          "birthdate": {
            "type": "string",
            "format": "date-time"
          },
          "age": {
            "type": "number",
            "format": "double"
          },
          "discountCardId": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "lastName",
          "firstName",
          "category",
          "discountCards",
          "title",
          "isCustomer",
          "birthdate",
          "age"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ISerializedCustomer": {
        "properties": {
          "mail": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "title": {
            "$ref": "#/components/schemas/EPassengerTitle"
          },
          "birthdate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "mail",
          "lastName",
          "firstName",
          "title",
          "birthdate"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ISerializedCart": {
        "properties": {
          "id": {
            "type": "string"
          },
          "partnerId": {
            "type": "string"
          },
          "partnerExternalId": {
            "type": "string"
          },
          "paidPrice": {
            "type": "number",
            "format": "double",
            "description": "The paid price from the customer perspective. Matches the sum of the trips price with all the fees"
          },
          "rawPrice": {
            "type": "number",
            "format": "double",
            "description": "The actual price from Tictactrip's perspective. Matches the sum of the trips price without any fees."
          },
          "totalPrice": {
            "type": "number",
            "format": "double"
          },
          "order": {
            "$ref": "#/components/schemas/Order"
          },
          "trips": {
            "properties": {
              "returnTrip": {
                "$ref": "#/components/schemas/IClientTrip"
              },
              "outboundTrip": {
                "$ref": "#/components/schemas/IClientTrip"
              }
            },
            "required": [
              "outboundTrip"
            ],
            "type": "object"
          },
          "passengers": {
            "items": {
              "$ref": "#/components/schemas/ISerializedPassenger"
            },
            "type": "array"
          },
          "customer": {
            "$ref": "#/components/schemas/ISerializedCustomer"
          },
          "isIdentityDocumentRequired": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "paidPrice",
          "rawPrice",
          "totalPrice",
          "trips",
          "isIdentityDocumentRequired"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "Pick_DeviceAttributes.id-or-notificationToken-or-createdAt_": {
        "properties": {
          "id": {
            "type": "number",
            "format": "double"
          },
          "notificationToken": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "notificationToken",
          "createdAt"
        ],
        "type": "object",
        "description": "From T, pick a set of properties whose keys are in the union K"
      },
      "EIdentityDocumentType": {
        "enum": [
          "IDENTITY_CARD",
          "PASSPORT"
        ],
        "type": "string"
      },
      "EIsoCountryCodes": {
        "enum": [
          "AF",
          "AX",
          "AL",
          "DZ",
          "AS",
          "AD",
          "AO",
          "AI",
          "AQ",
          "AG",
          "AR",
          "AM",
          "AW",
          "AU",
          "AT",
          "AZ",
          "BS",
          "BH",
          "BD",
          "BB",
          "BY",
          "BE",
          "BZ",
          "BJ",
          "BM",
          "BT",
          "BO",
          "BQ",
          "BA",
          "BW",
          "BV",
          "BR",
          "IO",
          "BN",
          "BG",
          "BF",
          "BI",
          "CV",
          "KH",
          "CM",
          "CA",
          "KY",
          "CF",
          "TD",
          "CL",
          "CN",
          "CX",
          "CC",
          "CO",
          "KM",
          "CG",
          "CD",
          "CK",
          "CR",
          "CI",
          "HR",
          "CU",
          "CW",
          "CY",
          "CZ",
          "DK",
          "DJ",
          "DM",
          "DO",
          "EC",
          "EG",
          "SV",
          "GQ",
          "ER",
          "EE",
          "SZ",
          "ET",
          "FK",
          "FO",
          "FJ",
          "FI",
          "FR",
          "GF",
          "PF",
          "TF",
          "GA",
          "GM",
          "GE",
          "DE",
          "GH",
          "GI",
          "GR",
          "GL",
          "GD",
          "GP",
          "GU",
          "GT",
          "GG",
          "GN",
          "GW",
          "GY",
          "HT",
          "HM",
          "VA",
          "HN",
          "HK",
          "HU",
          "IS",
          "IN",
          "ID",
          "IR",
          "IQ",
          "IE",
          "IM",
          "IL",
          "IT",
          "JM",
          "JP",
          "JE",
          "JO",
          "KZ",
          "KE",
          "KI",
          "KR",
          "KW",
          "KG",
          "LA",
          "LV",
          "LB",
          "LS",
          "LR",
          "LY",
          "LI",
          "LT",
          "LU",
          "MO",
          "MG",
          "MW",
          "MY",
          "MV",
          "ML",
          "MT",
          "MH",
          "MQ",
          "MR",
          "MU",
          "YT",
          "MX",
          "FM",
          "MD",
          "MC",
          "MN",
          "ME",
          "MS",
          "MA",
          "MZ",
          "MM",
          "NA",
          "NR",
          "NP",
          "NL",
          "NC",
          "NZ",
          "NI",
          "NE",
          "NG",
          "NU",
          "NF",
          "MK",
          "MP",
          "NO",
          "OM",
          "PK",
          "PW",
          "PS",
          "PA",
          "PG",
          "PY",
          "PE",
          "PH",
          "PN",
          "PL",
          "PT",
          "PR",
          "QA",
          "RE",
          "RO",
          "RU",
          "RW",
          "BL",
          "SH",
          "KN",
          "LC",
          "MF",
          "PM",
          "VC",
          "WS",
          "SM",
          "ST",
          "SA",
          "SN",
          "RS",
          "SC",
          "SL",
          "SG",
          "SX",
          "SK",
          "SI",
          "SB",
          "SO",
          "ZA",
          "GS",
          "SS",
          "ES",
          "LK",
          "SD",
          "SR",
          "SJ",
          "SE",
          "CH",
          "SY",
          "TW",
          "TJ",
          "TZ",
          "TH",
          "TL",
          "TG",
          "TK",
          "TO",
          "TT",
          "TN",
          "TR",
          "TM",
          "TC",
          "TV",
          "UG",
          "UA",
          "AE",
          "GB",
          "US",
          "UM",
          "UY",
          "UZ",
          "VU",
          "VE",
          "VN",
          "VG",
          "VI",
          "WF",
          "EH",
          "YE",
          "ZM",
          "ZW"
        ],
        "type": "string"
      },
      "IIdentityDocument": {
        "properties": {
          "type": {
            "$ref": "#/components/schemas/EIdentityDocumentType"
          },
          "documentIdentifier": {
            "type": "string"
          },
          "expirationDate": {
            "type": "string",
            "description": "YYYY-MM-DD"
          },
          "countryCode": {
            "$ref": "#/components/schemas/EIsoCountryCodes"
          }
        },
        "required": [
          "type",
          "documentIdentifier",
          "expirationDate",
          "countryCode"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ICartPassenger": {
        "properties": {
          "category": {
            "type": "string"
          },
          "age": {
            "type": "number",
            "format": "double"
          },
          "discountCards": {
            "items": {
              "properties": {
                "code": {
                  "type": "string",
                  "nullable": true,
                  "description": "The discount card number.\nThis field is required when using the TTT Booking API's UpdateCart endpoint."
                },
                "id": {
                  "type": "string",
                  "description": "Matches the TTT discount card ID's, such as \"TTT_VSC_YOUNG_PASS\""
                }
              },
              "required": [
                "id"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "title": {
            "$ref": "#/components/schemas/EPassengerTitle"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "birthdate": {
            "type": "string",
            "format": "date-time"
          },
          "identityDocument": {
            "$ref": "#/components/schemas/IIdentityDocument"
          },
          "isCustomer": {
            "type": "boolean"
          }
        },
        "required": [
          "age"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "DeviceAttributes": {
        "properties": {
          "id": {
            "type": "number",
            "format": "double"
          },
          "orderCustomerId": {
            "type": "string",
            "nullable": true
          },
          "notificationToken": {
            "type": "string"
          },
          "deviceId": {
            "type": "string"
          },
          "platform": {
            "type": "string"
          },
          "userAgent": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "required": [
          "id",
          "orderCustomerId",
          "notificationToken",
          "deviceId",
          "platform",
          "userAgent",
          "createdAt",
          "updatedAt",
          "deletedAt"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ICartCustomer": {
        "properties": {
          "id": {
            "type": "string"
          },
          "mail": {
            "type": "string"
          },
          "title": {
            "$ref": "#/components/schemas/EPassengerTitle"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "birthdate": {
            "type": "string",
            "format": "date-time"
          },
          "phoneNumber": {
            "type": "string"
          },
          "orders": {
            "items": {
              "$ref": "#/components/schemas/Order"
            },
            "type": "array"
          },
          "language": {
            "type": "string"
          },
          "devices": {
            "items": {
              "$ref": "#/components/schemas/DeviceAttributes"
            },
            "type": "array"
          },
          "isSubscribedToNewsletter": {
            "type": "boolean"
          }
        },
        "required": [
          "mail",
          "title",
          "firstName",
          "lastName",
          "birthdate",
          "isSubscribedToNewsletter"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ICreateCartBody": {
        "properties": {
          "outboundTripId": {
            "type": "string"
          },
          "returnTripId": {
            "type": "string"
          },
          "passengers": {
            "items": {
              "$ref": "#/components/schemas/ICartPassenger"
            },
            "type": "array"
          },
          "customer": {
            "$ref": "#/components/schemas/ICartCustomer"
          },
          "partnerId": {
            "type": "string",
            "nullable": true
          },
          "partnerExternalId": {
            "type": "string",
            "nullable": true,
            "description": "Matches an id provided from a partner. It is used to keep track of the partner's orders and enables an order match between their system and our own"
          },
          "deviceId": {
            "type": "number",
            "format": "double"
          }
        },
        "required": [
          "outboundTripId"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "Record_ISegmentResponse-at-id.ISegmentAlternatives_": {
        "properties": {},
        "type": "object",
        "description": "Construct a type with a set of properties K of type T"
      },
      "IUpdateCartResponse": {
        "properties": {
          "cart": {
            "$ref": "#/components/schemas/ISerializedCart"
          },
          "priceCentsDiff": {
            "type": "number",
            "format": "double"
          },
          "isAvailable": {
            "type": "boolean"
          },
          "segmentAlternatives": {
            "$ref": "#/components/schemas/Record_ISegmentResponse-at-id.ISegmentAlternatives_"
          }
        },
        "required": [
          "cart",
          "priceCentsDiff",
          "isAvailable",
          "segmentAlternatives"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IUpdateCartPayload": {
        "properties": {
          "passengers": {
            "items": {
              "$ref": "#/components/schemas/ICartPassenger"
            },
            "type": "array"
          },
          "customer": {
            "$ref": "#/components/schemas/ICartCustomer"
          },
          "segmentAlternatives": {
            "properties": {},
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "type": "object",
        "additionalProperties": false
      },
      "EOrderStatus": {
        "enum": [
          "CREATED",
          "SUCCESS",
          "CANCELED",
          "CANCELED_PARTIAL",
          "PENDING_BOOKING",
          "ERRORED",
          "UNAVAILABLE",
          "REFUNDED",
          "PRESOLD"
        ],
        "type": "string"
      },
      "TClientPassenger": {
        "properties": {
          "id": {
            "type": "number",
            "format": "double"
          },
          "lastName": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "category": {
            "$ref": "#/components/schemas/EPassengerCategory"
          },
          "discountCards": {
            "items": {
              "$ref": "#/components/schemas/IDiscountCard"
            },
            "type": "array"
          },
          "identityDocument": {
            "$ref": "#/components/schemas/IIdentityDocument"
          },
          "title": {
            "$ref": "#/components/schemas/EPassengerTitle"
          },
          "isCustomer": {
            "type": "boolean"
          },
          "birthDay": {
            "type": "number",
            "format": "double"
          },
          "birthMonth": {
            "type": "number",
            "format": "double"
          },
          "birthYear": {
            "type": "number",
            "format": "double"
          },
          "age": {
            "type": "number",
            "format": "double"
          },
          "discountCardId": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "lastName",
          "firstName",
          "category",
          "discountCards",
          "identityDocument",
          "title",
          "isCustomer",
          "birthDay",
          "birthMonth",
          "birthYear",
          "age"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "TClientCustomer": {
        "properties": {
          "mail": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "title": {
            "$ref": "#/components/schemas/EPassengerTitle"
          },
          "birthDay": {
            "type": "number",
            "format": "double"
          },
          "birthMonth": {
            "type": "number",
            "format": "double"
          },
          "birthYear": {
            "type": "number",
            "format": "double"
          }
        },
        "required": [
          "mail",
          "lastName",
          "firstName",
          "title",
          "birthDay",
          "birthMonth",
          "birthYear"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "EPaymentStatus": {
        "enum": [
          "ACCEPTED",
          "REFUSED",
          "CANCELLED",
          "ERROR",
          "INPROGRESS",
          "ONHOLD_PARTNER",
          "PENDING_RISK"
        ],
        "type": "string"
      },
      "ISerializedOrder": {
        "properties": {
          "id": {
            "type": "string"
          },
          "paidPrice": {
            "type": "number",
            "format": "double"
          },
          "rawPrice": {
            "type": "number",
            "format": "double"
          },
          "totalPrice": {
            "type": "number",
            "format": "double"
          },
          "orderDate": {
            "type": "string"
          },
          "cartId": {
            "type": "string"
          },
          "partnerId": {
            "type": "string"
          },
          "orderStatus": {
            "$ref": "#/components/schemas/EOrderStatus"
          },
          "trips": {
            "properties": {
              "returnTrip": {
                "$ref": "#/components/schemas/IClientTrip"
              },
              "outboundTrip": {
                "$ref": "#/components/schemas/IClientTrip"
              }
            },
            "required": [
              "outboundTrip"
            ],
            "type": "object"
          },
          "passengers": {
            "items": {
              "$ref": "#/components/schemas/TClientPassenger"
            },
            "type": "array"
          },
          "customer": {
            "$ref": "#/components/schemas/TClientCustomer"
          },
          "error": {
            "$ref": "#/components/schemas/IErrorCodeResponse"
          },
          "paymentStatus": {
            "$ref": "#/components/schemas/EPaymentStatus"
          }
        },
        "required": [
          "id",
          "paidPrice",
          "rawPrice",
          "totalPrice",
          "orderDate",
          "orderStatus",
          "trips",
          "passengers",
          "customer",
          "paymentStatus"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ICreateOrderResponse": {
        "properties": {
          "order": {
            "$ref": "#/components/schemas/ISerializedOrder"
          },
          "priceCentsDiff": {
            "type": "number",
            "format": "double"
          },
          "isAvailable": {
            "type": "boolean"
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time"
          },
          "paylineToken": {
            "type": "string"
          }
        },
        "required": [
          "order",
          "priceCentsDiff",
          "isAvailable",
          "expiresAt"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ICreateOrderPayload": {
        "properties": {
          "cartId": {
            "type": "string"
          }
        },
        "required": [
          "cartId"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "BookableTicket": {
        "additionalProperties": false,
        "type": "object",
        "description": "{@inheritDoc}"
      },
      "ITicketStatus": {
        "properties": {
          "id": {
            "type": "number",
            "format": "double"
          },
          "ticket": {
            "type": "number",
            "format": "double"
          },
          "status": {
            "$ref": "#/components/schemas/ETicketStatusStatus"
          },
          "bookableTicket": {
            "$ref": "#/components/schemas/BookableTicket"
          }
        },
        "required": [
          "id",
          "ticket",
          "status",
          "bookableTicket"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IEticket": {
        "properties": {
          "id": {
            "type": "number",
            "format": "double"
          },
          "ticket": {
            "type": "number",
            "format": "double"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "ticket",
          "url"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IBookableTicket": {
        "properties": {
          "id": {
            "type": "number",
            "format": "double"
          },
          "orderTicket": {
            "type": "number",
            "format": "double"
          },
          "data": {
            "properties": {},
            "additionalProperties": {},
            "type": "object"
          },
          "providerSegmentBookingRefId": {
            "type": "string"
          },
          "ticketStatuses": {
            "items": {
              "$ref": "#/components/schemas/ITicketStatus"
            },
            "type": "array"
          },
          "eTicket": {
            "$ref": "#/components/schemas/IEticket"
          }
        },
        "required": [
          "id",
          "orderTicket",
          "data",
          "providerSegmentBookingRefId",
          "ticketStatuses",
          "eTicket"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "CreateBookableTicketResponse": {
        "properties": {
          "bookableTicket": {
            "$ref": "#/components/schemas/IBookableTicket"
          }
        },
        "required": [
          "bookableTicket"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "CreateBookableTicketBody": {
        "properties": {
          "data": {
            "properties": {},
            "additionalProperties": {},
            "type": "object"
          },
          "ticketStatus": {
            "$ref": "#/components/schemas/ETicketStatusStatus"
          },
          "providerSegmentBookingRefId": {
            "type": "string"
          },
          "eTicketUrl": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "data",
          "ticketStatus",
          "providerSegmentBookingRefId",
          "eTicketUrl"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "TWsEndpoint": {
        "type": "string"
      },
      "TExtraData": {
        "additionalProperties": false,
        "type": "object"
      },
      "TEntry": {
        "properties": {
          "extraData": {
            "$ref": "#/components/schemas/TExtraData"
          },
          "wsEndpoint": {
            "$ref": "#/components/schemas/TWsEndpoint"
          },
          "createdAt": {
            "type": "string"
          }
        },
        "required": [
          "wsEndpoint",
          "createdAt"
        ],
        "type": "object"
      },
      "IBrowserServerCreateBody": {
        "properties": {
          "wsEndpoint": {
            "$ref": "#/components/schemas/TWsEndpoint"
          },
          "extraData": {
            "$ref": "#/components/schemas/TExtraData"
          }
        },
        "required": [
          "wsEndpoint"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "Record_string.Record_string.ICacheEntry__": {
        "properties": {},
        "type": "object",
        "description": "Construct a type with a set of properties K of type T"
      },
      "ESegmentProviderId.RENFE": {
        "enum": [
          501
        ],
        "type": "number"
      },
      "ESegmentProviderId.VSC": {
        "enum": [
          10
        ],
        "type": "number"
      },
      "ESegmentProviderId.TRENITALIA": {
        "enum": [
          500
        ],
        "type": "number"
      },
      "ESegmentProviderId.OBB": {
        "enum": [
          502
        ],
        "type": "number"
      },
      "ESegmentProviderId.EUROSTAR2": {
        "enum": [
          1000
        ],
        "type": "number"
      },
      "ESegmentProviderId.FLIXBUSV2": {
        "enum": [
          6
        ],
        "type": "number"
      },
      "TSegmentId": {
        "type": "string"
      },
      "ESegmentProviderId": {
        "enum": [
          5,
          6,
          4,
          7,
          8,
          10,
          11,
          2,
          11,
          13,
          21,
          22,
          24,
          104,
          500,
          501,
          502,
          503,
          989,
          990,
          991,
          992,
          993,
          994,
          995,
          1,
          996,
          997,
          998,
          999,
          23,
          17,
          940,
          941,
          942,
          943,
          944,
          945,
          948,
          949,
          950,
          951,
          952,
          953,
          954,
          955,
          956,
          957,
          958,
          959,
          960,
          961,
          962,
          963,
          964,
          800,
          801,
          802,
          803,
          804,
          805,
          806,
          807,
          808,
          809,
          810,
          811,
          812,
          813,
          814,
          815,
          816,
          817,
          818,
          819,
          820,
          821,
          822,
          823,
          824,
          825,
          826,
          827,
          828,
          829,
          830,
          831,
          832,
          833,
          834,
          838,
          840,
          843,
          855,
          856,
          863,
          872,
          882,
          886,
          887,
          895,
          896,
          898,
          899,
          750,
          751,
          1000
        ],
        "type": "number"
      },
      "ETransportType": {
        "enum": [
          "carpooling",
          "bus",
          "train"
        ],
        "type": "string"
      },
      "TSegmentProviderStopId": {
        "type": "string"
      },
      "TSegmentProviderBrandId": {
        "type": "string"
      },
      "TBrandId": {
        "type": "string"
      },
      "ENotAvailableReason": {
        "enum": [
          "CANCELLED",
          "FULL",
          "NOT_OPEN_TO_SALE",
          "NOT_SELLABLE",
          "MINORS_MUST_BE_ACCOMPANIED"
        ],
        "type": "string"
      },
      "ESeatPreferences": {
        "enum": [
          "TTT_SEAT_SOLO",
          "TTT_SEAT_DUO",
          "TTT_SEAT_QUATRO",
          "TTT_SEAT_SEXTO",
          "TTT_SEAT_SIDE_TO_SIDE",
          "TTT_SEAT_WINDOW",
          "TTT_SEAT_AISLE",
          "TTT_SEAT_CENTER",
          "TTT_DECK_LOWER",
          "TTT_DECK_UPPER",
          "TTT_BERTH_SUPERIOR",
          "TTT_BERTH_MEDIAN",
          "TTT_BERTH_INFERIOR",
          "TTT_BERTH_INFERIOR_MANDATORY"
        ],
        "type": "string"
      },
      "IExtendedSegmentResponseWithNullableValues": {
        "properties": {
          "originProviderStopId": {
            "$ref": "#/components/schemas/TSegmentProviderStopId"
          },
          "destinationProviderStopId": {
            "$ref": "#/components/schemas/TSegmentProviderStopId"
          },
          "departureUnixUtc": {
            "type": "number",
            "format": "double"
          },
          "arrivalUnixUtc": {
            "type": "number",
            "format": "double"
          },
          "departureOffset": {
            "type": "string"
          },
          "arrivalOffset": {
            "type": "string"
          },
          "cacheDate": {
            "type": "string"
          },
          "cacheSource": {
            "type": "string"
          },
          "notAvailableReason": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ENotAvailableReason"
              }
            ],
            "nullable": true
          },
          "providerId": {
            "$ref": "#/components/schemas/TBrandId"
          },
          "segmentProviderId": {
            "$ref": "#/components/schemas/ESegmentProviderId"
          },
          "priceCents": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "durationMinutes": {
            "type": "number",
            "format": "double"
          },
          "availableSeats": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "id": {
            "$ref": "#/components/schemas/TSegmentId"
          },
          "brandName": {
            "type": "string"
          },
          "transportType": {
            "$ref": "#/components/schemas/ETransportType"
          },
          "isAvailable": {
            "type": "boolean"
          },
          "segmentProviderBrandId": {
            "$ref": "#/components/schemas/TSegmentProviderBrandId"
          },
          "isBookable": {
            "type": "boolean"
          },
          "redirectionLink": {
            "type": "string"
          },
          "feeCents": {
            "type": "number",
            "format": "double"
          },
          "includedProviderFeeCents": {
            "type": "number",
            "format": "double"
          },
          "segmentProviderSegmentRefId": {
            "type": "string"
          },
          "vehicleIdentifier": {
            "type": "string",
            "nullable": true,
            "description": "The identifier for the physical transportation mean. Has to be set for it to be a candidate for a partial cache update."
          },
          "co2g": {
            "type": "number",
            "format": "double"
          },
          "bookingClass": {
            "type": "string",
            "nullable": true
          },
          "fareName": {
            "type": "string",
            "nullable": true
          },
          "conditionsName": {
            "type": "string"
          },
          "conditions": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "includedBaggage": {
            "type": "boolean"
          },
          "seatPreferences": {
            "items": {
              "$ref": "#/components/schemas/ESeatPreferences"
            },
            "type": "array"
          },
          "isPresale": {
            "type": "boolean"
          }
        },
        "required": [
          "originProviderStopId",
          "destinationProviderStopId",
          "departureUnixUtc",
          "arrivalUnixUtc",
          "departureOffset",
          "arrivalOffset",
          "notAvailableReason",
          "segmentProviderId",
          "priceCents",
          "id",
          "brandName",
          "transportType",
          "durationMinutes",
          "isAvailable",
          "feeCents",
          "includedProviderFeeCents",
          "co2g",
          "includedBaggage",
          "availableSeats",
          "isPresale"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ICreateCachePayload": {
        "properties": {
          "origin": {
            "type": "string"
          },
          "destination": {
            "type": "string"
          },
          "source": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "segments": {
            "items": {
              "$ref": "#/components/schemas/IExtendedSegmentResponseWithNullableValues"
            },
            "type": "array"
          }
        },
        "required": [
          "origin",
          "destination",
          "source",
          "segments"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "RefreshCachedSegmentPricesAvailableProvider": {
        "enum": [
          10,
          500,
          501,
          502
        ],
        "type": "number"
      },
      "Pick_ISegmentResponse.originProviderStopId-or-destinationProviderStopId-or-departureUnixUtc-or-arrivalUnixUtc-or-departureOffset-or-arrivalOffset-or-durationMinutes-or-priceCents-or-providerId-or-cacheDate-or-cacheSource-or-segmentProviderId_": {
        "properties": {
          "originProviderStopId": {
            "$ref": "#/components/schemas/TSegmentProviderStopId"
          },
          "destinationProviderStopId": {
            "$ref": "#/components/schemas/TSegmentProviderStopId"
          },
          "departureUnixUtc": {
            "type": "number",
            "format": "double"
          },
          "arrivalUnixUtc": {
            "type": "number",
            "format": "double"
          },
          "departureOffset": {
            "type": "string"
          },
          "arrivalOffset": {
            "type": "string"
          },
          "durationMinutes": {
            "type": "number",
            "format": "double"
          },
          "priceCents": {
            "type": "number",
            "format": "double"
          },
          "providerId": {
            "$ref": "#/components/schemas/TBrandId"
          },
          "cacheDate": {
            "type": "string"
          },
          "cacheSource": {
            "type": "string"
          },
          "segmentProviderId": {
            "$ref": "#/components/schemas/ESegmentProviderId"
          }
        },
        "required": [
          "originProviderStopId",
          "destinationProviderStopId",
          "departureUnixUtc",
          "arrivalUnixUtc",
          "departureOffset",
          "arrivalOffset",
          "durationMinutes",
          "priceCents",
          "segmentProviderId"
        ],
        "type": "object",
        "description": "From T, pick a set of properties whose keys are in the union K"
      },
      "ISegmentResponseReduced": {
        "$ref": "#/components/schemas/Pick_ISegmentResponse.originProviderStopId-or-destinationProviderStopId-or-departureUnixUtc-or-arrivalUnixUtc-or-departureOffset-or-arrivalOffset-or-durationMinutes-or-priceCents-or-providerId-or-cacheDate-or-cacheSource-or-segmentProviderId_"
      },
      "IRefreshCachePayload": {
        "properties": {
          "source": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "segments": {
            "items": {
              "$ref": "#/components/schemas/ISegmentResponseReduced"
            },
            "type": "array"
          }
        },
        "required": [
          "source",
          "segments"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "MailType": {
        "type": "string",
        "enum": [
          "ABANDONED_1",
          "ABANDONED_2"
        ]
      },
      "ICartNotification": {
        "properties": {
          "id": {
            "type": "number",
            "format": "double"
          },
          "cartId": {
            "type": "string"
          },
          "messageId": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "mailType": {
            "$ref": "#/components/schemas/MailType"
          },
          "templateId": {
            "type": "number",
            "format": "double"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "required": [
          "id",
          "cartId",
          "messageId",
          "version",
          "mailType",
          "templateId",
          "createdAt",
          "updatedAt",
          "deletedAt"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IClientCartNotification": {
        "properties": {
          "customer": {
            "$ref": "#/components/schemas/TClientCustomer"
          },
          "passengers": {
            "items": {
              "$ref": "#/components/schemas/TClientPassenger"
            },
            "type": "array"
          },
          "cart": {
            "properties": {
              "returnTrip": {
                "$ref": "#/components/schemas/IClientTrip"
              },
              "outboundTrip": {
                "$ref": "#/components/schemas/IClientTrip"
              }
            },
            "required": [
              "outboundTrip"
            ],
            "type": "object"
          },
          "totalPrice": {
            "type": "number",
            "format": "double"
          },
          "rawPrice": {
            "type": "number",
            "format": "double"
          },
          "paidPrice": {
            "type": "number",
            "format": "double"
          },
          "confirmedAt": {
            "type": "string",
            "format": "date-time"
          },
          "partnerExternalId": {
            "type": "string"
          },
          "partnerId": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "cartNotifications": {
            "items": {
              "$ref": "#/components/schemas/ICartNotification"
            },
            "type": "array"
          },
          "deviceMessagingToken": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "cart",
          "totalPrice",
          "rawPrice",
          "paidPrice",
          "confirmedAt",
          "id",
          "createdAt",
          "cartNotifications",
          "deviceMessagingToken"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "CreateCartNotificationResponse": {
        "properties": {
          "id": {
            "type": "number",
            "format": "double"
          },
          "messageId": {
            "type": "string"
          },
          "cartId": {
            "type": "string"
          },
          "templateId": {
            "type": "number",
            "format": "double"
          },
          "version": {
            "type": "string"
          },
          "mailType": {
            "$ref": "#/components/schemas/MailType"
          }
        },
        "required": [
          "id",
          "messageId",
          "cartId",
          "templateId",
          "version",
          "mailType"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "CreateCartNotificationBody": {
        "properties": {
          "messageId": {
            "type": "string"
          },
          "templateId": {
            "type": "number",
            "format": "double"
          },
          "version": {
            "type": "string"
          },
          "mailType": {
            "$ref": "#/components/schemas/MailType"
          }
        },
        "required": [
          "messageId",
          "templateId",
          "version",
          "mailType"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "TripAvailability": {
        "properties": {
          "segments": {
            "items": {
              "properties": {
                "notAvailableReason": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ENotAvailableReason"
                    }
                  ],
                  "nullable": true
                },
                "isAvailable": {
                  "type": "boolean"
                },
                "priceCents": {
                  "type": "number",
                  "format": "double"
                }
              },
              "required": [
                "notAvailableReason",
                "isAvailable",
                "priceCents"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "priceCentsDiff": {
            "type": "number",
            "format": "double"
          },
          "priceCents": {
            "type": "number",
            "format": "double"
          },
          "isDiscountCardApplied": {
            "type": "boolean"
          },
          "notAvailableReason": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ENotAvailableReason"
              }
            ],
            "nullable": true
          },
          "isAvailable": {
            "type": "boolean"
          }
        },
        "required": [
          "segments",
          "priceCentsDiff",
          "priceCents",
          "isDiscountCardApplied",
          "notAvailableReason",
          "isAvailable"
        ],
        "type": "object"
      },
      "ISearchSegment": {
        "properties": {
          "id": {
            "type": "string"
          },
          "company": {
            "type": "string"
          },
          "companyId": {
            "type": "string"
          },
          "origin": {
            "properties": {
              "long": {
                "type": "number",
                "format": "double"
              },
              "lat": {
                "type": "number",
                "format": "double"
              },
              "station": {
                "type": "string"
              },
              "country": {
                "type": "string"
              },
              "city": {
                "type": "string"
              }
            },
            "required": [
              "long",
              "lat",
              "station",
              "city"
            ],
            "type": "object"
          },
          "destination": {
            "properties": {
              "long": {
                "type": "number",
                "format": "double"
              },
              "lat": {
                "type": "number",
                "format": "double"
              },
              "station": {
                "type": "string"
              },
              "country": {
                "type": "string"
              },
              "city": {
                "type": "string"
              }
            },
            "required": [
              "long",
              "lat",
              "station",
              "city"
            ],
            "type": "object"
          },
          "priceCents": {
            "type": "number",
            "format": "double"
          },
          "redirectionLink": {
            "type": "string"
          },
          "departureUTC": {
            "type": "number",
            "format": "double"
          },
          "arrivalUTC": {
            "type": "number",
            "format": "double"
          },
          "durationMinutes": {
            "type": "number",
            "format": "double"
          },
          "originOffset": {
            "type": "string"
          },
          "destinationOffset": {
            "type": "string"
          },
          "isBookable": {
            "type": "boolean"
          },
          "mean": {
            "type": "string"
          },
          "segmentProviderId": {
            "type": "number",
            "format": "double"
          },
          "vehicleIdentifier": {
            "type": "string"
          },
          "co2g": {
            "type": "number",
            "format": "double"
          },
          "bookingClass": {
            "type": "string"
          },
          "fareName": {
            "type": "string"
          },
          "conditionsName": {
            "type": "string"
          },
          "conditions": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "isPresale": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "company",
          "origin",
          "destination",
          "priceCents",
          "departureUTC",
          "arrivalUTC",
          "durationMinutes",
          "originOffset",
          "destinationOffset",
          "isBookable",
          "mean",
          "segmentProviderId",
          "isPresale"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ISearchTrip": {
        "properties": {
          "origin": {
            "properties": {
              "station": {
                "type": "string"
              },
              "country": {
                "type": "string"
              },
              "city": {
                "type": "string"
              }
            },
            "required": [
              "station",
              "city"
            ],
            "type": "object"
          },
          "destination": {
            "properties": {
              "station": {
                "type": "string"
              },
              "country": {
                "type": "string"
              },
              "city": {
                "type": "string"
              }
            },
            "required": [
              "station",
              "city"
            ],
            "type": "object"
          },
          "available": {
            "type": "boolean"
          },
          "notAvailableReason": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ENotAvailableReason"
              }
            ],
            "nullable": true
          },
          "priceCents": {
            "type": "number",
            "format": "double"
          },
          "mean": {
            "type": "string"
          },
          "departureUTC": {
            "type": "number",
            "format": "double"
          },
          "arrivalUTC": {
            "type": "number",
            "format": "double"
          },
          "durationMinutes": {
            "type": "number",
            "format": "double"
          },
          "originOffset": {
            "type": "string"
          },
          "destinationOffset": {
            "type": "string"
          },
          "companies": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "score": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "id": {
            "type": "string"
          },
          "isPartiallyBookable": {
            "type": "boolean"
          },
          "isFullyBookable": {
            "type": "boolean"
          },
          "transportType": {
            "type": "string"
          },
          "segments": {
            "items": {
              "$ref": "#/components/schemas/ISearchSegment"
            },
            "type": "array"
          },
          "co2g": {
            "type": "number",
            "format": "double"
          }
        },
        "required": [
          "origin",
          "destination",
          "available",
          "notAvailableReason",
          "priceCents",
          "mean",
          "departureUTC",
          "arrivalUTC",
          "durationMinutes",
          "originOffset",
          "destinationOffset",
          "companies",
          "score",
          "id",
          "isPartiallyBookable",
          "isFullyBookable",
          "transportType",
          "segments",
          "co2g"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ISearchResults": {
        "properties": {
          "trips": {
            "properties": {
              "multimodal": {
                "items": {
                  "$ref": "#/components/schemas/ISearchTrip"
                },
                "type": "array"
              },
              "carpooling": {
                "items": {
                  "$ref": "#/components/schemas/ISearchTrip"
                },
                "type": "array"
              },
              "train": {
                "items": {
                  "$ref": "#/components/schemas/ISearchTrip"
                },
                "type": "array"
              },
              "bus": {
                "items": {
                  "$ref": "#/components/schemas/ISearchTrip"
                },
                "type": "array"
              }
            },
            "required": [
              "multimodal",
              "carpooling",
              "train",
              "bus"
            ],
            "type": "object"
          },
          "complete": {
            "type": "boolean"
          }
        },
        "required": [
          "trips",
          "complete"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "CheckTripAvailabilityResponse": {
        "properties": {
          "searchResults": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ISearchResults"
              }
            ],
            "nullable": true
          },
          "availability": {
            "$ref": "#/components/schemas/TripAvailability"
          }
        },
        "required": [
          "searchResults",
          "availability"
        ],
        "type": "object"
      },
      "GetSegmentAvailabilityPassenger": {
        "properties": {
          "discountCards": {
            "items": {
              "properties": {
                "cardCode": {
                  "type": "string"
                }
              },
              "required": [
                "cardCode"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "age": {
            "type": "number",
            "format": "double"
          }
        },
        "required": [
          "discountCards",
          "age"
        ],
        "type": "object"
      },
      "ETripDirection": {
        "enum": [
          "outboundTrip",
          "returnTrip"
        ],
        "type": "string"
      },
      "CheckTripAvailabilityPayload": {
        "properties": {
          "currentDirection": {
            "$ref": "#/components/schemas/ETripDirection"
          },
          "otherDirectionDate": {
            "type": "string"
          },
          "passengers": {
            "items": {
              "$ref": "#/components/schemas/GetSegmentAvailabilityPassenger"
            },
            "type": "array"
          },
          "searchId": {
            "type": "string"
          }
        },
        "required": [
          "passengers",
          "searchId"
        ],
        "type": "object"
      },
      "IPopularCity": {
        "properties": {
          "unique_name": {
            "type": "string"
          },
          "city_id": {
            "type": "number",
            "format": "double"
          },
          "local_name": {
            "type": "string"
          },
          "latitude": {
            "type": "number",
            "format": "double"
          },
          "longitude": {
            "type": "number",
            "format": "double"
          },
          "gpuid": {
            "type": "string"
          },
          "iscity": {
            "type": "boolean"
          },
          "popular": {
            "type": "boolean"
          },
          "nb_search": {
            "type": "string"
          }
        },
        "required": [
          "unique_name",
          "city_id",
          "local_name",
          "latitude",
          "longitude",
          "gpuid",
          "iscity",
          "popular",
          "nb_search"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ESearchDirection": {
        "enum": [
          "from",
          "to"
        ],
        "type": "string"
      },
      "ICityCompanyStation": {
        "properties": {
          "city": {
            "properties": {
              "name": {
                "type": "string"
              },
              "gpuid": {
                "type": "string"
              },
              "id": {
                "type": "number",
                "format": "double"
              }
            },
            "required": [
              "name",
              "gpuid",
              "id"
            ],
            "type": "object"
          },
          "companyStation": {
            "properties": {
              "name": {
                "type": "string"
              },
              "originalId": {
                "type": "string"
              },
              "id": {
                "type": "number",
                "format": "double"
              }
            },
            "required": [
              "name",
              "originalId",
              "id"
            ],
            "type": "object"
          }
        },
        "required": [
          "city",
          "companyStation"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ICityCompanyCity": {
        "properties": {
          "cityId": {
            "type": "number",
            "format": "double"
          },
          "companyCities": {
            "items": {
              "properties": {
                "name": {
                  "type": "string"
                },
                "originalId": {
                  "type": "string"
                },
                "id": {
                  "type": "number",
                  "format": "double"
                }
              },
              "required": [
                "name",
                "originalId",
                "id"
              ],
              "type": "object"
            },
            "type": "array"
          }
        },
        "required": [
          "cityId",
          "companyCities"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ICityPaths": {
        "properties": {
          "originId": {
            "type": "number",
            "format": "double"
          },
          "destinationId": {
            "type": "number",
            "format": "double"
          },
          "paths": {
            "items": {
              "items": {
                "type": "number",
                "format": "double"
              },
              "type": "array"
            },
            "type": "array"
          }
        },
        "required": [
          "originId",
          "destinationId",
          "paths"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ICompanies": {
        "properties": {
          "id": {
            "type": "number",
            "format": "double"
          },
          "coord_api": {
            "type": "boolean"
          },
          "direct_only": {
            "type": "boolean"
          },
          "has_station_api": {
            "type": "boolean"
          },
          "implemented": {
            "type": "boolean"
          },
          "is_visible_on_search": {
            "type": "boolean"
          },
          "is_customer_cancellation_enabled": {
            "type": "boolean"
          },
          "is_meta_company": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "coord_api",
          "direct_only",
          "has_station_api",
          "implemented",
          "is_visible_on_search",
          "is_customer_cancellation_enabled",
          "is_meta_company",
          "name"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "TIsoString": {
        "type": "string",
        "description": "ISO 8601 date string"
      },
      "EAvailabilityType": {
        "enum": [
          "SLIDING_WINDOW",
          "FIXED_WINDOW"
        ],
        "type": "string"
      },
      "EAvailabilityWindowGranularity": {
        "enum": [
          "ROLLING",
          "DAY"
        ],
        "type": "string"
      },
      "IAvailabilityExtension": {
        "description": "This interface allows to define the availability of a brand for a given date window\nThere are two types of availability:\n\nFIXED_WINDOW: All trains are available for a given time window at a precise time.\n- For example on May 3rd 10AM all trains will available between September 3rd and September 10th.\n\nSLIDING_WINDOW: Trains are released little by little following a pattern.\n- For example on May 3rd 10AM all trains will be available for the next four month between September 3rd and September 10th.\nThen on May 4th you can book trains until Sept 4th and so on.\nFinally on May 11th you will only be able to book trains until Sept 10th following this rule.",
        "properties": {
          "applicationDate": {
            "$ref": "#/components/schemas/TIsoString",
            "description": "Date from which the system is allowed to apply this rule"
          },
          "type": {
            "$ref": "#/components/schemas/EAvailabilityType",
            "description": "Type of the extension"
          },
          "windowLengthInDays": {
            "type": "number",
            "format": "double",
            "description": "Only applicable if type is set to SLIDING_WINDOW"
          },
          "from": {
            "$ref": "#/components/schemas/TIsoString",
            "description": "First circulation date of the extension window"
          },
          "to": {
            "$ref": "#/components/schemas/TIsoString",
            "description": "Last circulation date of the extension window"
          },
          "granularity": {
            "$ref": "#/components/schemas/EAvailabilityWindowGranularity",
            "description": "Granularity used to compute the SLIDING_WINDOW availability.\nDefaults to ROLLING if not specified."
          }
        },
        "required": [
          "applicationDate",
          "type",
          "from"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IBrandAvailabilityDetails": {
        "description": "This interface allows to define the availability policy for all brands of a company.",
        "properties": {
          "brands": {
            "properties": {},
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/IAvailabilityExtension"
              },
              "type": "array"
            },
            "type": "object"
          },
          "default": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IAvailabilityExtension"
              }
            ],
            "nullable": true
          }
        },
        "required": [
          "brands",
          "default"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ICachedOd": {
        "properties": {
          "origin_id": {
            "type": "string"
          },
          "destination_id": {
            "type": "string"
          }
        },
        "required": [
          "origin_id",
          "destination_id"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IGetCustomerContextResponse": {
        "properties": {
          "mail": {
            "type": "string"
          },
          "title": {
            "$ref": "#/components/schemas/EPassengerTitle"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "birthdate": {
            "type": "string",
            "format": "date-time"
          },
          "phoneNumber": {
            "type": "string"
          },
          "id": {
            "type": "string"
          }
        },
        "required": [
          "mail",
          "title",
          "firstName",
          "lastName",
          "birthdate",
          "phoneNumber",
          "id"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "TClientOrder": {
        "properties": {
          "paymentStatus": {
            "$ref": "#/components/schemas/EPaymentStatus"
          },
          "error": {
            "$ref": "#/components/schemas/IErrorCodeResponse"
          },
          "customer": {
            "$ref": "#/components/schemas/TClientCustomer"
          },
          "passengers": {
            "items": {
              "$ref": "#/components/schemas/TClientPassenger"
            },
            "type": "array"
          },
          "cart": {
            "properties": {
              "returnTrip": {
                "$ref": "#/components/schemas/IClientTrip"
              },
              "outboundTrip": {
                "$ref": "#/components/schemas/IClientTrip"
              }
            },
            "required": [
              "outboundTrip"
            ],
            "type": "object"
          },
          "partnerId": {
            "type": "string"
          },
          "totalPrice": {
            "type": "number",
            "format": "double"
          },
          "paidPrice": {
            "type": "number",
            "format": "double"
          },
          "rawPrice": {
            "type": "number",
            "format": "double"
          },
          "orderStatus": {
            "$ref": "#/components/schemas/EOrderStatus"
          },
          "cartId": {
            "type": "string"
          },
          "orderDate": {
            "type": "string"
          },
          "id": {
            "type": "string"
          }
        },
        "required": [
          "paymentStatus",
          "customer",
          "passengers",
          "cart",
          "totalPrice",
          "paidPrice",
          "rawPrice",
          "orderStatus",
          "orderDate",
          "id"
        ],
        "type": "object"
      },
      "ISerializeCustomerTrip": {
        "properties": {
          "originCity": {
            "type": "string"
          },
          "originRegion": {
            "type": "string"
          },
          "originCountry": {
            "type": "string"
          },
          "destinationCity": {
            "type": "string"
          },
          "destinationRegion": {
            "type": "string"
          },
          "destinationCountry": {
            "type": "string"
          },
          "departureUTC": {
            "type": "number",
            "format": "double"
          },
          "departureOffset": {
            "type": "string"
          },
          "arrivalUTC": {
            "type": "number",
            "format": "double"
          },
          "arrivalOffset": {
            "type": "string"
          },
          "providers": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "brands": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "distanceInKm": {
            "type": "number",
            "format": "double"
          },
          "co2InG": {
            "type": "number",
            "format": "double"
          },
          "transportType": {
            "type": "string"
          },
          "isCancelled": {
            "type": "boolean"
          }
        },
        "required": [
          "originCity",
          "originRegion",
          "originCountry",
          "destinationCity",
          "destinationRegion",
          "destinationCountry",
          "departureUTC",
          "departureOffset",
          "arrivalUTC",
          "arrivalOffset",
          "providers",
          "brands",
          "distanceInKm",
          "co2InG",
          "transportType",
          "isCancelled"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ISerializeCustomerOrder": {
        "properties": {
          "partnerId": {
            "type": "string"
          },
          "paidPrice": {
            "type": "number",
            "format": "double"
          },
          "priceCents": {
            "type": "number",
            "format": "double"
          },
          "feeCents": {
            "type": "number",
            "format": "double"
          },
          "createdAt": {
            "type": "string"
          },
          "numberOfPassengers": {
            "type": "number",
            "format": "double"
          },
          "paymentStatus": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "orderStatus": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "discountCards": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "outboundTrip": {
            "$ref": "#/components/schemas/ISerializeCustomerTrip"
          },
          "returnTrip": {
            "$ref": "#/components/schemas/ISerializeCustomerTrip"
          }
        },
        "required": [
          "partnerId",
          "paidPrice",
          "priceCents",
          "feeCents",
          "createdAt",
          "numberOfPassengers",
          "paymentStatus",
          "orderStatus",
          "discountCards",
          "outboundTrip"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ISerializeCustomer": {
        "properties": {
          "mail": {
            "type": "string"
          },
          "title": {
            "$ref": "#/components/schemas/EPassengerTitle"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "birthdate": {
            "type": "string"
          },
          "language": {
            "type": "string"
          },
          "orders": {
            "items": {
              "$ref": "#/components/schemas/ISerializeCustomerOrder"
            },
            "type": "array"
          }
        },
        "required": [
          "mail",
          "title",
          "firstName",
          "lastName",
          "birthdate",
          "language",
          "orders"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IGetAllCustomersOrders": {
        "properties": {
          "totalPages": {
            "type": "number",
            "format": "double"
          },
          "customers": {
            "items": {
              "$ref": "#/components/schemas/ISerializeCustomer"
            },
            "type": "array"
          }
        },
        "required": [
          "totalPages",
          "customers"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "GetUserActivityResponse": {
        "properties": {
          "lastCartCreated": {
            "properties": {
              "createdAt": {
                "type": "string"
              },
              "id": {
                "type": "string"
              }
            },
            "required": [
              "createdAt",
              "id"
            ],
            "type": "object",
            "nullable": true
          },
          "lastPaidOrder": {
            "properties": {
              "createdAt": {
                "type": "string"
              },
              "paidAt": {
                "type": "string"
              },
              "id": {
                "type": "string"
              }
            },
            "required": [
              "createdAt",
              "paidAt",
              "id"
            ],
            "type": "object",
            "nullable": true
          }
        },
        "required": [
          "lastCartCreated",
          "lastPaidOrder"
        ],
        "type": "object"
      },
      "ITripStats": {
        "properties": {
          "request": {
            "properties": {
              "to": {
                "type": "number",
                "format": "double"
              },
              "from": {
                "type": "number",
                "format": "double"
              }
            },
            "required": [
              "to",
              "from"
            ],
            "type": "object"
          },
          "response": {
            "properties": {},
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "request",
          "response"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IApiStatsStation": {
        "properties": {
          "id": {
            "type": "number",
            "format": "double"
          },
          "name": {
            "type": "string"
          },
          "latitude": {
            "type": "number",
            "format": "double"
          },
          "longitude": {
            "type": "number",
            "format": "double"
          }
        },
        "required": [
          "id",
          "name",
          "latitude",
          "longitude"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IApiStatsCity": {
        "properties": {
          "id": {
            "type": "number",
            "format": "double"
          },
          "localname": {
            "type": "string"
          },
          "latitude": {
            "type": "number",
            "format": "double"
          },
          "longitude": {
            "type": "number",
            "format": "double"
          },
          "stations": {
            "items": {
              "$ref": "#/components/schemas/IApiStatsStation"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "localname",
          "latitude",
          "longitude",
          "stations"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IApiStatsCompany": {
        "properties": {
          "fullname": {
            "type": "string"
          },
          "transportType": {
            "$ref": "#/components/schemas/EApiTransportType"
          }
        },
        "required": [
          "fullname",
          "transportType"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IApiStatsTransportInformation": {
        "properties": {
          "historyData": {
            "type": "boolean"
          },
          "minNbSteps": {
            "type": "number",
            "format": "double",
            "description": "minimum number of segments for the origin-destination"
          },
          "nbPerDay": {
            "type": "number",
            "format": "double",
            "description": "number of trips per day in average"
          },
          "bestItinerary": {
            "properties": {
              "cities": {
                "items": {
                  "type": "string"
                },
                "type": "array",
                "description": "array with the intermediate cities' full name"
              },
              "departureTsOfLast": {
                "type": "number",
                "format": "double",
                "description": "timestamp of the last departure expressed in minutes (08:00 => 8*60 => 480)"
              },
              "departureTsOfFirst": {
                "type": "number",
                "format": "double",
                "description": "timestamp of the first departure expressed in minutes (08:00 => 8*60 => 480)"
              },
              "stations": {
                "properties": {
                  "destination": {
                    "$ref": "#/components/schemas/IApiStatsStation"
                  },
                  "intermediateStations": {
                    "items": {
                      "$ref": "#/components/schemas/IApiStatsStation"
                    },
                    "type": "array"
                  },
                  "origin": {
                    "$ref": "#/components/schemas/IApiStatsStation"
                  }
                },
                "required": [
                  "destination",
                  "intermediateStations",
                  "origin"
                ],
                "type": "object"
              },
              "minNbSteps": {
                "type": "number",
                "format": "double"
              },
              "companies": {
                "items": {
                  "$ref": "#/components/schemas/IApiStatsCompany"
                },
                "type": "array"
              },
              "duration": {
                "properties": {
                  "mean": {
                    "type": "number",
                    "format": "double"
                  },
                  "max": {
                    "type": "number",
                    "format": "double"
                  },
                  "min": {
                    "type": "number",
                    "format": "double"
                  }
                },
                "required": [
                  "mean",
                  "max",
                  "min"
                ],
                "type": "object"
              },
              "price": {
                "properties": {
                  "mean": {
                    "type": "number",
                    "format": "double"
                  },
                  "max": {
                    "type": "number",
                    "format": "double"
                  },
                  "min": {
                    "type": "number",
                    "format": "double"
                  }
                },
                "required": [
                  "mean",
                  "max",
                  "min"
                ],
                "type": "object"
              }
            },
            "required": [
              "cities",
              "departureTsOfLast",
              "departureTsOfFirst",
              "stations",
              "minNbSteps",
              "companies",
              "duration",
              "price"
            ],
            "type": "object"
          }
        },
        "required": [
          "historyData",
          "minNbSteps",
          "nbPerDay",
          "bestItinerary"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "Record_never.never_": {
        "properties": {},
        "type": "object",
        "description": "Construct a type with a set of properties K of type T"
      },
      "IApiStatsTransportInformations": {
        "description": "When no stats are provided for a transport type, an empty object fills it",
        "properties": {
          "historyData": {
            "type": "boolean"
          },
          "train": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/IApiStatsTransportInformation"
              },
              {
                "$ref": "#/components/schemas/Record_never.never_"
              }
            ]
          },
          "bus": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/IApiStatsTransportInformation"
              },
              {
                "$ref": "#/components/schemas/Record_never.never_"
              }
            ]
          },
          "multimodality": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/IApiStatsTransportInformation"
              },
              {
                "$ref": "#/components/schemas/Record_never.never_"
              }
            ]
          },
          "carpooling": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/IApiStatsTransportInformation"
              },
              {
                "$ref": "#/components/schemas/Record_never.never_"
              }
            ]
          }
        },
        "required": [
          "historyData",
          "train",
          "bus",
          "multimodality",
          "carpooling"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IApiStatisticsTrip": {
        "properties": {
          "cities": {
            "properties": {
              "intermediateCities": {
                "items": {
                  "$ref": "#/components/schemas/IApiStatsCity"
                },
                "type": "array"
              },
              "destination": {
                "$ref": "#/components/schemas/IApiStatsCity"
              },
              "origin": {
                "$ref": "#/components/schemas/IApiStatsCity"
              }
            },
            "required": [
              "intermediateCities",
              "destination",
              "origin"
            ],
            "type": "object"
          },
          "companiesInvolved": {
            "items": {
              "$ref": "#/components/schemas/IApiStatsCompany"
            },
            "type": "array"
          },
          "transportInformation": {
            "$ref": "#/components/schemas/IApiStatsTransportInformations"
          },
          "distanceAsCrowFlies": {
            "type": "number",
            "format": "double"
          },
          "hasDirectTrip": {
            "type": "boolean"
          },
          "minNbSteps": {
            "type": "number",
            "format": "double"
          },
          "priceDurationGeneralInfo": {
            "properties": {
              "minDuration": {
                "type": "number",
                "format": "double",
                "description": "duration expressed in seconds"
              },
              "maxPrice": {
                "type": "number",
                "format": "double",
                "description": "price expressed in cents"
              },
              "minPrice": {
                "type": "number",
                "format": "double",
                "description": "price expressed in cents"
              }
            },
            "required": [
              "minDuration",
              "maxPrice",
              "minPrice"
            ],
            "type": "object"
          }
        },
        "required": [
          "cities",
          "companiesInvolved",
          "transportInformation",
          "distanceAsCrowFlies",
          "hasDirectTrip",
          "minNbSteps",
          "priceDurationGeneralInfo"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IApiStatisticsWithSearchCount": {
        "properties": {
          "searchCount": {
            "type": "number",
            "format": "double"
          },
          "stats": {
            "$ref": "#/components/schemas/IApiStatisticsTrip"
          }
        },
        "required": [
          "searchCount",
          "stats"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IApiTripStatistics": {
        "properties": {
          "recentStats": {
            "$ref": "#/components/schemas/IApiStatisticsWithSearchCount"
          },
          "previousStats": {
            "$ref": "#/components/schemas/IApiStatisticsWithSearchCount"
          }
        },
        "required": [
          "recentStats",
          "previousStats"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ISearchSegmentWithNullableValues": {
        "properties": {
          "id": {
            "type": "string"
          },
          "company": {
            "type": "string"
          },
          "companyId": {
            "type": "string"
          },
          "origin": {
            "properties": {
              "long": {
                "type": "number",
                "format": "double"
              },
              "lat": {
                "type": "number",
                "format": "double"
              },
              "station": {
                "type": "string"
              },
              "country": {
                "type": "string"
              },
              "city": {
                "type": "string"
              }
            },
            "required": [
              "long",
              "lat",
              "station",
              "city"
            ],
            "type": "object"
          },
          "destination": {
            "properties": {
              "long": {
                "type": "number",
                "format": "double"
              },
              "lat": {
                "type": "number",
                "format": "double"
              },
              "station": {
                "type": "string"
              },
              "country": {
                "type": "string"
              },
              "city": {
                "type": "string"
              }
            },
            "required": [
              "long",
              "lat",
              "station",
              "city"
            ],
            "type": "object"
          },
          "priceCents": {
            "type": "number",
            "format": "double"
          },
          "redirectionLink": {
            "type": "string",
            "nullable": true
          },
          "departureUTC": {
            "type": "number",
            "format": "double"
          },
          "arrivalUTC": {
            "type": "number",
            "format": "double"
          },
          "durationMinutes": {
            "type": "number",
            "format": "double"
          },
          "originOffset": {
            "type": "string"
          },
          "destinationOffset": {
            "type": "string"
          },
          "isBookable": {
            "type": "boolean"
          },
          "mean": {
            "type": "string"
          },
          "segmentProviderId": {
            "type": "number",
            "format": "double"
          },
          "vehicleIdentifier": {
            "type": "string",
            "nullable": true
          },
          "co2g": {
            "type": "number",
            "format": "double"
          },
          "bookingClass": {
            "type": "string"
          },
          "fareName": {
            "type": "string",
            "nullable": true
          },
          "conditionsName": {
            "type": "string"
          },
          "conditions": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "isPresale": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "company",
          "origin",
          "destination",
          "priceCents",
          "departureUTC",
          "arrivalUTC",
          "durationMinutes",
          "originOffset",
          "destinationOffset",
          "isBookable",
          "mean",
          "segmentProviderId",
          "isPresale"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ILighterSearchTrip": {
        "properties": {
          "origin": {
            "properties": {
              "station": {
                "type": "string"
              },
              "country": {
                "type": "string"
              },
              "city": {
                "type": "string"
              }
            },
            "required": [
              "station",
              "city"
            ],
            "type": "object"
          },
          "destination": {
            "properties": {
              "station": {
                "type": "string"
              },
              "country": {
                "type": "string"
              },
              "city": {
                "type": "string"
              }
            },
            "required": [
              "station",
              "city"
            ],
            "type": "object"
          },
          "available": {
            "type": "boolean"
          },
          "priceCents": {
            "type": "number",
            "format": "double"
          },
          "mean": {
            "type": "string"
          },
          "departureUTC": {
            "type": "number",
            "format": "double"
          },
          "arrivalUTC": {
            "type": "number",
            "format": "double"
          },
          "durationMinutes": {
            "type": "number",
            "format": "double"
          },
          "originOffset": {
            "type": "string"
          },
          "destinationOffset": {
            "type": "string"
          },
          "companies": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "score": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "id": {
            "type": "string"
          },
          "isPartiallyBookable": {
            "type": "boolean"
          },
          "isFullyBookable": {
            "type": "boolean"
          },
          "transportType": {
            "type": "string"
          },
          "segments": {
            "items": {
              "$ref": "#/components/schemas/ISearchSegmentWithNullableValues"
            },
            "type": "array"
          },
          "co2g": {
            "type": "number",
            "format": "double"
          },
          "notAvailableReason": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ENotAvailableReason"
              }
            ],
            "nullable": true
          },
          "includedBaggage": {
            "type": "boolean"
          }
        },
        "required": [
          "origin",
          "destination",
          "available",
          "priceCents",
          "mean",
          "departureUTC",
          "arrivalUTC",
          "durationMinutes",
          "originOffset",
          "destinationOffset",
          "companies",
          "score",
          "id",
          "isPartiallyBookable",
          "isFullyBookable",
          "transportType",
          "segments",
          "co2g"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ILighterSearchResults": {
        "properties": {
          "trips": {
            "properties": {
              "multimodal": {
                "items": {
                  "$ref": "#/components/schemas/ILighterSearchTrip"
                },
                "type": "array"
              },
              "carpooling": {
                "items": {
                  "$ref": "#/components/schemas/ILighterSearchTrip"
                },
                "type": "array"
              },
              "train": {
                "items": {
                  "$ref": "#/components/schemas/ILighterSearchTrip"
                },
                "type": "array"
              },
              "bus": {
                "items": {
                  "$ref": "#/components/schemas/ILighterSearchTrip"
                },
                "type": "array"
              }
            },
            "required": [
              "multimodal",
              "carpooling",
              "train",
              "bus"
            ],
            "type": "object"
          },
          "complete": {
            "type": "boolean"
          }
        },
        "required": [
          "trips",
          "complete"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "Record_string.any_": {
        "properties": {},
        "type": "object",
        "description": "Construct a type with a set of properties K of type T"
      },
      "IOdDetails": {
        "properties": {
          "originUniqueName": {
            "type": "string"
          },
          "destinationUniqueName": {
            "type": "string"
          },
          "originLocalName": {
            "type": "string"
          },
          "destinationLocalName": {
            "type": "string"
          },
          "originId": {
            "type": "number",
            "format": "double"
          },
          "destinationId": {
            "type": "number",
            "format": "double"
          },
          "originCountryCode": {
            "type": "string"
          },
          "destinationCountryCode": {
            "type": "string"
          },
          "international": {
            "type": "boolean"
          }
        },
        "required": [
          "originUniqueName",
          "destinationUniqueName",
          "originLocalName",
          "destinationLocalName",
          "originId",
          "destinationId",
          "originCountryCode",
          "destinationCountryCode",
          "international"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "Pick_DeviceCreationAttributes.notificationToken-or-platform-or-userAgent-or-deviceId_": {
        "properties": {
          "notificationToken": {
            "type": "string"
          },
          "deviceId": {
            "type": "string"
          },
          "platform": {
            "type": "string"
          },
          "userAgent": {
            "type": "string"
          }
        },
        "required": [
          "notificationToken",
          "deviceId",
          "platform",
          "userAgent"
        ],
        "type": "object",
        "description": "From T, pick a set of properties whose keys are in the union K"
      },
      "CreateDevicePayload": {
        "$ref": "#/components/schemas/Pick_DeviceCreationAttributes.notificationToken-or-platform-or-userAgent-or-deviceId_"
      },
      "IEditableContent": {
        "properties": {
          "id": {
            "type": "number",
            "format": "double"
          },
          "state": {
            "type": "string"
          },
          "priority": {
            "type": "number",
            "format": "double"
          },
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "content": {
            "properties": {},
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "required": [
          "id",
          "state",
          "priority",
          "date",
          "content"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "Pick_IEditableContent.Exclude_keyofIEditableContent.id-or-date__": {
        "properties": {
          "state": {
            "type": "string"
          },
          "priority": {
            "type": "number",
            "format": "double"
          },
          "content": {
            "properties": {},
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "required": [
          "state",
          "priority",
          "content"
        ],
        "type": "object",
        "description": "From T, pick a set of properties whose keys are in the union K"
      },
      "Omit_IEditableContent.id-or-date_": {
        "$ref": "#/components/schemas/Pick_IEditableContent.Exclude_keyofIEditableContent.id-or-date__",
        "description": "Construct a type with the properties of T except for those in type K."
      },
      "Partial_Omit_IEditableContent.id-or-state__": {
        "properties": {
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "priority": {
            "type": "number",
            "format": "double"
          },
          "content": {
            "properties": {},
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "type": "object",
        "description": "Make all properties in T optional"
      },
      "IFeatureFlag": {
        "properties": {
          "id": {
            "type": "number",
            "format": "double"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "active": {
            "type": "boolean"
          },
          "updatedBy": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "description",
          "active",
          "updatedBy"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "FileContext": {
        "enum": [
          "searchHeader"
        ],
        "type": "string"
      },
      "IGeojsonCache": {
        "properties": {
          "id": {
            "type": "number",
            "format": "double"
          },
          "lat": {
            "type": "number",
            "format": "double"
          },
          "lon": {
            "type": "number",
            "format": "double"
          },
          "zoom": {
            "type": "number",
            "format": "double"
          },
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "geojson": {
            "properties": {},
            "additionalProperties": {},
            "type": "object"
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "lat",
          "lon",
          "zoom",
          "date",
          "geojson",
          "type"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "GenerateGpuidResponse": {
        "properties": {
          "name": {
            "type": "string"
          },
          "latitude": {
            "type": "number",
            "format": "double"
          },
          "longitude": {
            "type": "number",
            "format": "double"
          },
          "countryCode": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "id": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "latitude",
          "longitude",
          "countryCode",
          "type",
          "id"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "GenerateGpuidBody": {
        "properties": {
          "name": {
            "type": "string"
          },
          "latitude": {
            "type": "number",
            "format": "double"
          },
          "longitude": {
            "type": "number",
            "format": "double"
          },
          "countryCode": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "latitude",
          "longitude",
          "countryCode",
          "type"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IRecordSearchResponse": {
        "properties": {
          "searchParts": {
            "properties": {
              "returnId": {
                "type": "number",
                "format": "double"
              },
              "outwardId": {
                "type": "number",
                "format": "double"
              }
            },
            "required": [
              "returnId",
              "outwardId"
            ],
            "type": "object"
          },
          "searchId": {
            "type": "number",
            "format": "double"
          }
        },
        "required": [
          "searchParts",
          "searchId"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IValidationError": {
        "properties": {
          "errorKey": {
            "type": "string"
          },
          "errorMessage": {
            "type": "string"
          },
          "fields": {
            "properties": {},
            "additionalProperties": {
              "properties": {
                "message": {
                  "type": "string"
                }
              },
              "required": [
                "message"
              ],
              "type": "object"
            },
            "type": "object"
          }
        },
        "required": [
          "errorKey",
          "errorMessage",
          "fields"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IRecordSearchPlace": {
        "properties": {
          "city": {
            "type": "number",
            "format": "double"
          },
          "station": {
            "type": "number",
            "format": "double"
          },
          "isNearFrom": {
            "type": "boolean"
          }
        },
        "required": [
          "city",
          "isNearFrom"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "CreateUserSearchBody": {
        "properties": {
          "origin": {
            "$ref": "#/components/schemas/IRecordSearchPlace"
          },
          "destination": {
            "$ref": "#/components/schemas/IRecordSearchPlace"
          },
          "departureDate": {
            "type": "string"
          },
          "returnDate": {
            "type": "string",
            "nullable": true
          },
          "isOneWay": {
            "type": "boolean"
          },
          "passengersNumber": {
            "type": "number",
            "format": "double"
          },
          "refererId": {
            "type": "string",
            "nullable": true
          },
          "partnerId": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "origin",
          "destination",
          "departureDate",
          "returnDate",
          "isOneWay",
          "passengersNumber"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IEnrichPath": {
        "properties": {
          "originCity": {
            "type": "number",
            "format": "double"
          },
          "destinationCity": {
            "type": "number",
            "format": "double"
          },
          "departureDate": {
            "type": "string"
          }
        },
        "required": [
          "originCity",
          "destinationCity",
          "departureDate"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "TSegmentProvider": {
        "properties": {
          "requiresIdentityDocument": {
            "type": "boolean"
          },
          "fullname": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "id": {
            "type": "number",
            "format": "double"
          }
        },
        "required": [
          "requiresIdentityDocument",
          "fullname",
          "name",
          "id"
        ],
        "type": "object"
      },
      "IApiStopCluster": {
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "latitude": {
            "type": "number",
            "format": "double"
          },
          "longitude": {
            "type": "number",
            "format": "double"
          }
        },
        "required": [
          "id",
          "name",
          "city",
          "region",
          "country",
          "latitude",
          "longitude"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IGetStopGroupResponse": {
        "properties": {
          "id": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "latitude": {
            "type": "number",
            "format": "double"
          },
          "longitude": {
            "type": "number",
            "format": "double"
          },
          "name": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "transportTypes": {
            "items": {
              "$ref": "#/components/schemas/EApiTransportType"
            },
            "type": "array"
          },
          "stopClusters": {
            "items": {
              "$ref": "#/components/schemas/IApiStopCluster"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "address",
          "city",
          "country",
          "latitude",
          "longitude",
          "name",
          "region",
          "transportTypes",
          "stopClusters"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IApiStopGroupWithTransportTypes": {
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "latitude": {
            "type": "number",
            "format": "double"
          },
          "longitude": {
            "type": "number",
            "format": "double"
          },
          "transportTypes": {
            "items": {
              "$ref": "#/components/schemas/EApiTransportType"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "name",
          "city",
          "region",
          "country",
          "address",
          "latitude",
          "longitude",
          "transportTypes"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IGetStopClusterResponse": {
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "latitude": {
            "type": "number",
            "format": "double"
          },
          "longitude": {
            "type": "number",
            "format": "double"
          },
          "transportTypes": {
            "items": {
              "$ref": "#/components/schemas/EApiTransportType"
            },
            "type": "array"
          },
          "stopGroups": {
            "items": {
              "$ref": "#/components/schemas/IApiStopGroupWithTransportTypes"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "name",
          "city",
          "region",
          "country",
          "latitude",
          "longitude",
          "transportTypes",
          "stopGroups"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IApiProvider": {
        "properties": {
          "name": {
            "type": "string"
          },
          "company": {
            "type": "string"
          },
          "transportType": {
            "$ref": "#/components/schemas/EApiTransportType"
          }
        },
        "required": [
          "name",
          "company",
          "transportType"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "Autocomplete": {
        "properties": {
          "id": {
            "type": "number",
            "format": "double"
          },
          "unique_name": {
            "type": "string"
          },
          "local_name": {
            "type": "string"
          },
          "latitude": {
            "type": "number",
            "format": "double"
          },
          "longitude": {
            "type": "number",
            "format": "double"
          },
          "new_id": {
            "type": "string"
          },
          "city_id": {
            "type": "number",
            "format": "double"
          },
          "gpuid": {
            "type": "string"
          },
          "nb_search": {
            "type": "string"
          },
          "popular": {
            "type": "boolean"
          },
          "iscity": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "unique_name",
          "local_name",
          "latitude",
          "longitude",
          "new_id",
          "city_id",
          "gpuid",
          "nb_search",
          "popular",
          "iscity"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IApiStopGroup": {
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "latitude": {
            "type": "number",
            "format": "double"
          },
          "longitude": {
            "type": "number",
            "format": "double"
          }
        },
        "required": [
          "id",
          "name",
          "city",
          "region",
          "country",
          "address",
          "latitude",
          "longitude"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IApiSegment": {
        "properties": {
          "id": {
            "type": "string"
          },
          "provider": {
            "$ref": "#/components/schemas/IApiProvider"
          },
          "origin": {
            "$ref": "#/components/schemas/IApiStopGroup"
          },
          "destination": {
            "$ref": "#/components/schemas/IApiStopGroup"
          },
          "priceCents": {
            "type": "number",
            "format": "double"
          },
          "departureUTC": {
            "type": "number",
            "format": "double"
          },
          "arrivalUTC": {
            "type": "number",
            "format": "double"
          },
          "originOffset": {
            "type": "string"
          },
          "destinationOffset": {
            "type": "string"
          },
          "durationMinutes": {
            "type": "number",
            "format": "double"
          },
          "transportType": {
            "$ref": "#/components/schemas/EApiTransportType"
          },
          "vehicleIdentifier": {
            "type": "string"
          },
          "co2g": {
            "type": "number",
            "format": "double"
          },
          "bookingClass": {
            "type": "string"
          },
          "fareName": {
            "type": "string"
          },
          "notAvailableReason": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ENotAvailableReason"
              }
            ],
            "nullable": true
          },
          "includedBaggage": {
            "type": "boolean"
          },
          "isPresale": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "provider",
          "origin",
          "destination",
          "priceCents",
          "departureUTC",
          "arrivalUTC",
          "originOffset",
          "destinationOffset",
          "durationMinutes",
          "transportType",
          "isPresale"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "Pick_IApiTrip.Exclude_keyofIApiTrip.totalFeeCents__": {
        "properties": {
          "id": {
            "type": "string"
          },
          "durationMinutes": {
            "type": "number",
            "format": "double"
          },
          "priceCents": {
            "type": "number",
            "format": "double"
          },
          "direction": {
            "$ref": "#/components/schemas/ETripDirection"
          },
          "origin": {
            "$ref": "#/components/schemas/IApiStopGroup"
          },
          "destination": {
            "$ref": "#/components/schemas/IApiStopGroup"
          },
          "available": {
            "type": "boolean"
          },
          "departureUTC": {
            "type": "number",
            "format": "double"
          },
          "arrivalUTC": {
            "type": "number",
            "format": "double"
          },
          "originOffset": {
            "type": "string"
          },
          "destinationOffset": {
            "type": "string"
          },
          "transportType": {
            "$ref": "#/components/schemas/ETripTransport"
          },
          "providers": {
            "items": {
              "$ref": "#/components/schemas/IApiProvider"
            },
            "type": "array"
          },
          "segments": {
            "items": {
              "$ref": "#/components/schemas/IApiSegment"
            },
            "type": "array"
          },
          "isIdentityDocumentRequired": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "durationMinutes",
          "priceCents",
          "direction",
          "origin",
          "destination",
          "available",
          "departureUTC",
          "arrivalUTC",
          "originOffset",
          "destinationOffset",
          "transportType",
          "providers",
          "segments",
          "isIdentityDocumentRequired"
        ],
        "type": "object",
        "description": "From T, pick a set of properties whose keys are in the union K"
      },
      "Omit_IApiTrip.totalFeeCents_": {
        "$ref": "#/components/schemas/Pick_IApiTrip.Exclude_keyofIApiTrip.totalFeeCents__",
        "description": "Construct a type with the properties of T except for those in type K."
      },
      "IBundle": {
        "properties": {
          "trips": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "redirectionLink": {
            "type": "string"
          }
        },
        "required": [
          "trips",
          "redirectionLink"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IApiSearchResponse": {
        "properties": {
          "trips": {
            "properties": {},
            "additionalProperties": {
              "$ref": "#/components/schemas/Omit_IApiTrip.totalFeeCents_"
            },
            "type": "object"
          },
          "bundles": {
            "items": {
              "$ref": "#/components/schemas/IBundle"
            },
            "type": "array"
          }
        },
        "required": [
          "trips",
          "bundles"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IApiInputPassenger": {
        "properties": {
          "age": {
            "type": "number",
            "format": "double"
          }
        },
        "required": [
          "age"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IApiTripTimeFilter": {
        "description": "Filter about the trip time. Each value is in the form 'YYYY-MM-DDTHH:mm'.",
        "properties": {
          "minDepartureTime": {
            "type": "string"
          },
          "maxDepartureTime": {
            "type": "string"
          },
          "minArrivalTime": {
            "type": "string"
          },
          "maxArrivalTime": {
            "type": "string"
          }
        },
        "type": "object",
        "additionalProperties": false
      },
      "IApiTripStopoverFilter": {
        "description": "Filter about the trip stopovers.",
        "properties": {
          "minStopovers": {
            "type": "number",
            "format": "double"
          },
          "maxStopovers": {
            "type": "number",
            "format": "double"
          }
        },
        "type": "object",
        "additionalProperties": false
      },
      "IApiTripDurationFilter": {
        "description": "Filter about the trip duration. Each value is in minutes.",
        "properties": {
          "minDuration": {
            "type": "number",
            "format": "double"
          },
          "maxDuration": {
            "type": "number",
            "format": "double"
          }
        },
        "type": "object",
        "additionalProperties": false
      },
      "IApiTripConnectionFilter": {
        "description": "Filter about the trip connection distance. Each value is in Km.\nUseful when you want to filter trips with a maximum distance between two stops.",
        "properties": {
          "maxConnectionDistance": {
            "type": "number",
            "format": "double"
          }
        },
        "type": "object",
        "additionalProperties": false
      },
      "IApiTripRelevanceSort": {
        "description": "Sorts the trips according to their relevance. The relevance of a trip is calculated based on a weighted sum of the normalized price and duration. The weighted sum yields a relevance score that ranges from 0 to 1.\n\nThe weightage given to duration over price is used as follows:\n - A weight of 0: This indicates that only the price is significant in determining the trip's relevance. In this case, trips with lower prices are given higher relevance and are displayed first.\n - A weight of 0.5: This means that both duration and price hold equal significance in determining the trip's relevance. The sorting of trips will balance between lower prices and shorter durations.\n - A weight of 1: This implies that only the duration is significant for determining the trip's relevance. Therefore, trips with shorter durations are considered more relevant and are displayed first.",
        "properties": {
          "durationOverPriceFactor": {
            "type": "number",
            "format": "double"
          }
        },
        "required": [
          "durationOverPriceFactor"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IApiTripStopGroupFilter": {
        "properties": {
          "originStopGroupIds": {
            "type": "number",
            "format": "double"
          },
          "destinationStopGroupIds": {
            "type": "number",
            "format": "double"
          }
        },
        "type": "object",
        "additionalProperties": false
      },
      "IApiTripProviderFilter": {
        "description": "Provides to the API the list of providers you want to include or exclude.\nProvider must be provided with their ID which can be found on the (/v2/segmentProviders)[https://developers.tictactrip.eu/api#operation/GetSegmentProviders] endpoint.\n- Included providers: Will trigger search ONLY for the providers you provided.\n- Excluded providers: Will trigger search for all providers EXCEPT the ones you provided.",
        "properties": {
          "includedProviders": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "excludedProviders": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object",
        "additionalProperties": false
      },
      "IApiTripFilter": {
        "description": "Possible filters for a trip (outbound or return).",
        "properties": {
          "timeFilters": {
            "$ref": "#/components/schemas/IApiTripTimeFilter"
          },
          "stopoverFilters": {
            "$ref": "#/components/schemas/IApiTripStopoverFilter"
          },
          "durationFilters": {
            "$ref": "#/components/schemas/IApiTripDurationFilter"
          },
          "connectionFilters": {
            "$ref": "#/components/schemas/IApiTripConnectionFilter"
          },
          "relevanceSorts": {
            "$ref": "#/components/schemas/IApiTripRelevanceSort"
          },
          "stopGroupFilters": {
            "$ref": "#/components/schemas/IApiTripStopGroupFilter"
          },
          "providerFilters": {
            "$ref": "#/components/schemas/IApiTripProviderFilter"
          }
        },
        "type": "object",
        "additionalProperties": false
      },
      "IApiGetResultsParams": {
        "properties": {
          "originGpuid": {
            "type": "string"
          },
          "destinationGpuid": {
            "type": "string"
          },
          "passengers": {
            "items": {
              "$ref": "#/components/schemas/IApiInputPassenger"
            },
            "type": "array"
          },
          "outboundDate": {
            "type": "string"
          },
          "returnDate": {
            "type": "string"
          },
          "outboundFilters": {
            "$ref": "#/components/schemas/IApiTripFilter"
          },
          "returnFilters": {
            "$ref": "#/components/schemas/IApiTripFilter"
          }
        },
        "required": [
          "originGpuid",
          "destinationGpuid",
          "passengers",
          "outboundDate"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ISegmentResponse": {
        "properties": {
          "originProviderStopId": {
            "$ref": "#/components/schemas/TSegmentProviderStopId"
          },
          "destinationProviderStopId": {
            "$ref": "#/components/schemas/TSegmentProviderStopId"
          },
          "departureUnixUtc": {
            "type": "number",
            "format": "double"
          },
          "arrivalUnixUtc": {
            "type": "number",
            "format": "double"
          },
          "departureOffset": {
            "type": "string"
          },
          "arrivalOffset": {
            "type": "string"
          },
          "cacheDate": {
            "type": "string"
          },
          "cacheSource": {
            "type": "string"
          },
          "notAvailableReason": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ENotAvailableReason"
              }
            ],
            "nullable": true
          },
          "providerId": {
            "$ref": "#/components/schemas/TBrandId"
          },
          "segmentProviderId": {
            "$ref": "#/components/schemas/ESegmentProviderId"
          },
          "priceCents": {
            "type": "number",
            "format": "double"
          },
          "durationMinutes": {
            "type": "number",
            "format": "double"
          },
          "availableSeats": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "id": {
            "$ref": "#/components/schemas/TSegmentId"
          },
          "brandName": {
            "type": "string"
          },
          "transportType": {
            "$ref": "#/components/schemas/ETransportType"
          },
          "isAvailable": {
            "type": "boolean"
          },
          "segmentProviderBrandId": {
            "$ref": "#/components/schemas/TSegmentProviderBrandId"
          },
          "isBookable": {
            "type": "boolean"
          },
          "redirectionLink": {
            "type": "string"
          },
          "feeCents": {
            "type": "number",
            "format": "double"
          },
          "includedProviderFeeCents": {
            "type": "number",
            "format": "double"
          },
          "segmentProviderSegmentRefId": {
            "type": "string"
          },
          "vehicleIdentifier": {
            "type": "string",
            "description": "The identifier for the physical transportation mean. Has to be set for it to be a candidate for a partial cache update."
          },
          "co2g": {
            "type": "number",
            "format": "double"
          },
          "bookingClass": {
            "type": "string"
          },
          "fareName": {
            "type": "string"
          },
          "conditionsName": {
            "type": "string"
          },
          "conditions": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "includedBaggage": {
            "type": "boolean"
          },
          "seatPreferences": {
            "items": {
              "$ref": "#/components/schemas/ESeatPreferences"
            },
            "type": "array"
          },
          "isPresale": {
            "type": "boolean"
          }
        },
        "required": [
          "originProviderStopId",
          "destinationProviderStopId",
          "departureUnixUtc",
          "arrivalUnixUtc",
          "departureOffset",
          "arrivalOffset",
          "notAvailableReason",
          "segmentProviderId",
          "priceCents",
          "id",
          "brandName",
          "transportType",
          "durationMinutes",
          "isAvailable",
          "feeCents",
          "includedProviderFeeCents",
          "co2g",
          "includedBaggage",
          "availableSeats",
          "isPresale"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "orderNotificationMailType": {
        "type": "string",
        "enum": [
          "NOTIFICATION_1"
        ],
        "nullable": false
      },
      "IOrderNotification": {
        "properties": {
          "id": {
            "type": "number",
            "format": "double"
          },
          "orderId": {
            "type": "string"
          },
          "messageId": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "mailType": {
            "$ref": "#/components/schemas/orderNotificationMailType"
          },
          "templateId": {
            "type": "number",
            "format": "double"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "required": [
          "id",
          "orderId",
          "messageId",
          "version",
          "mailType",
          "templateId",
          "createdAt",
          "updatedAt",
          "deletedAt"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "Pick_IOrderNotification.messageId-or-version-or-mailType-or-templateId_": {
        "properties": {
          "messageId": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "mailType": {
            "$ref": "#/components/schemas/orderNotificationMailType"
          },
          "templateId": {
            "type": "number",
            "format": "double"
          }
        },
        "required": [
          "messageId",
          "version",
          "mailType",
          "templateId"
        ],
        "type": "object",
        "description": "From T, pick a set of properties whose keys are in the union K"
      },
      "ICreateOrderNotificationBody": {
        "$ref": "#/components/schemas/Pick_IOrderNotification.messageId-or-version-or-mailType-or-templateId_"
      },
      "IFormatedOrderCustomer": {
        "properties": {
          "email": {
            "type": "string"
          },
          "title": {
            "$ref": "#/components/schemas/EPassengerTitle"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          }
        },
        "required": [
          "email",
          "title",
          "firstName",
          "lastName"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IGetOrder": {
        "properties": {
          "orderId": {
            "type": "string"
          },
          "customer": {
            "$ref": "#/components/schemas/IFormatedOrderCustomer"
          },
          "cart": {
            "properties": {
              "outboundTrip": {
                "properties": {
                  "destination": {
                    "properties": {
                      "arrivalOffset": {
                        "type": "string"
                      },
                      "arrivalUnixUtc": {
                        "type": "number",
                        "format": "double"
                      },
                      "city": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "arrivalOffset",
                      "arrivalUnixUtc",
                      "city"
                    ],
                    "type": "object"
                  },
                  "origin": {
                    "properties": {
                      "departureOffset": {
                        "type": "string"
                      },
                      "departureUnixUtc": {
                        "type": "number",
                        "format": "double"
                      },
                      "city": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "departureOffset",
                      "departureUnixUtc",
                      "city"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "destination",
                  "origin"
                ],
                "type": "object"
              }
            },
            "required": [
              "outboundTrip"
            ],
            "type": "object"
          },
          "orderNotifications": {
            "items": {
              "$ref": "#/components/schemas/IOrderNotification"
            },
            "type": "array"
          }
        },
        "required": [
          "orderId",
          "customer",
          "cart",
          "orderNotifications"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "OrderStatus": {
        "additionalProperties": false,
        "type": "object",
        "description": "{@inheritDoc}"
      },
      "IOrderStatus": {
        "properties": {
          "status": {
            "$ref": "#/components/schemas/EOrderStatus"
          },
          "errorKey": {
            "type": "string"
          }
        },
        "required": [
          "status"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "EOrderStatus.SUCCESS": {
        "enum": [
          "SUCCESS"
        ],
        "type": "string"
      },
      "EOrderStatus.CANCELED": {
        "enum": [
          "CANCELED"
        ],
        "type": "string"
      },
      "EOrderRefundStatus": {
        "enum": [
          "CREATED",
          "ACCEPTED",
          "INPROGRESS",
          "ERRORED"
        ],
        "type": "string"
      },
      "ERefundType": {
        "enum": [
          "CASH"
        ],
        "type": "string"
      },
      "IOrderRefundStatus": {
        "properties": {
          "id": {
            "type": "number",
            "format": "double"
          },
          "orderId": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/EOrderRefundStatus"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "refundAmountCents": {
            "type": "number",
            "format": "double"
          },
          "reason": {
            "type": "string"
          },
          "refundBy": {
            "type": "string"
          },
          "refundType": {
            "$ref": "#/components/schemas/ERefundType"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "deletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "required": [
          "id",
          "orderId",
          "status",
          "message",
          "refundAmountCents",
          "reason",
          "refundBy",
          "refundType",
          "createdAt",
          "updatedAt",
          "deletedAt"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "Pick_IOrderRefundStatus.status-or-message-or-refundAmountCents-or-reason-or-refundBy-or-refundType_": {
        "properties": {
          "status": {
            "$ref": "#/components/schemas/EOrderRefundStatus"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "refundAmountCents": {
            "type": "number",
            "format": "double"
          },
          "reason": {
            "type": "string"
          },
          "refundBy": {
            "type": "string"
          },
          "refundType": {
            "$ref": "#/components/schemas/ERefundType"
          }
        },
        "required": [
          "status",
          "message",
          "refundAmountCents",
          "reason",
          "refundBy",
          "refundType"
        ],
        "type": "object",
        "description": "From T, pick a set of properties whose keys are in the union K"
      },
      "ICreateOrderRefundStatusBody": {
        "$ref": "#/components/schemas/Pick_IOrderRefundStatus.status-or-message-or-refundAmountCents-or-reason-or-refundBy-or-refundType_"
      },
      "GetOrderTicketResponse": {
        "properties": {
          "id": {
            "type": "number",
            "format": "double"
          },
          "originStopClusterGpuid": {
            "type": "string"
          },
          "destinationStopClusterGpuid": {
            "type": "string"
          },
          "originStopGroupGpuid": {
            "type": "string"
          },
          "destinationStopGroupGpuid": {
            "type": "string"
          },
          "departureUnixUtc": {
            "type": "number",
            "format": "double"
          },
          "departureOffset": {
            "type": "string"
          },
          "arrivalUnixUtc": {
            "type": "number",
            "format": "double"
          },
          "arrivalOffset": {
            "type": "string"
          },
          "brandId": {
            "type": "number",
            "format": "double"
          },
          "isBookable": {
            "type": "boolean"
          },
          "priceCents": {
            "type": "number",
            "format": "double"
          },
          "feeCents": {
            "type": "number",
            "format": "double"
          },
          "orderId": {
            "type": "string"
          },
          "orderCreatedAt": {
            "type": "string"
          },
          "lockData": {
            "type": "string"
          },
          "segmentProviderSegmentRefId": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "originStopClusterGpuid",
          "destinationStopClusterGpuid",
          "originStopGroupGpuid",
          "destinationStopGroupGpuid",
          "departureUnixUtc",
          "departureOffset",
          "arrivalUnixUtc",
          "arrivalOffset",
          "brandId",
          "isBookable",
          "priceCents",
          "feeCents",
          "orderId",
          "orderCreatedAt",
          "lockData",
          "segmentProviderSegmentRefId"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "GetPresoldFutureOrderTicketsResponse": {
        "properties": {
          "pagination": {
            "properties": {
              "hasPreviousPage": {
                "type": "boolean"
              },
              "hasNextPage": {
                "type": "boolean"
              },
              "totalPages": {
                "type": "number",
                "format": "double"
              },
              "totalItems": {
                "type": "number",
                "format": "double"
              },
              "pageSize": {
                "type": "number",
                "format": "double"
              },
              "currentPage": {
                "type": "number",
                "format": "double"
              }
            },
            "required": [
              "hasPreviousPage",
              "hasNextPage",
              "totalPages",
              "totalItems",
              "pageSize",
              "currentPage"
            ],
            "type": "object"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/GetOrderTicketResponse"
            },
            "type": "array"
          }
        },
        "required": [
          "pagination",
          "data"
        ],
        "type": "object"
      },
      "OrderTicket": {
        "additionalProperties": false,
        "type": "object",
        "description": "{@inheritDoc}"
      },
      "IUpdateOrderTicketBody": {
        "properties": {
          "priceCents": {
            "type": "number",
            "format": "double"
          },
          "lockData": {
            "type": "string"
          },
          "cancelledAt": {
            "type": "string",
            "format": "date-time"
          },
          "scheduledBookingDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "type": "object",
        "additionalProperties": false
      },
      "TCreateOrderTicketVirtualCard": {
        "properties": {
          "cvc": {
            "type": "string"
          },
          "expiryMonth": {
            "type": "string"
          },
          "expiryYear": {
            "type": "string"
          },
          "numbers": {
            "type": "string"
          }
        },
        "required": [
          "cvc",
          "expiryMonth",
          "expiryYear",
          "numbers"
        ],
        "type": "object"
      },
      "TBookableTicketId": {
        "type": "string"
      },
      "IBookingCancellationConditions": {
        "properties": {
          "isCancellable": {
            "type": "boolean",
            "description": "Specifies whether the booking is cancellable or not"
          },
          "feeCents": {
            "type": "number",
            "format": "double",
            "nullable": true,
            "description": "The fee in cents that applies to the cancellation and must be deducted from the price to calculate the refund value"
          },
          "cutoff": {
            "type": "string",
            "nullable": true,
            "description": "The date (deadline) in ISO 8601 format by which the booking can be cancelled for a cost of `feeCents`. e.g. 2021-06-15T06:05:00.000Z"
          },
          "bookingId": {
            "$ref": "#/components/schemas/TBookableTicketId",
            "description": "Booking id"
          },
          "isRefundedByVoucher": {
            "type": "boolean",
            "description": "Specifies whether the booking is reimbursed with coupons or not"
          }
        },
        "required": [
          "isCancellable",
          "feeCents",
          "bookingId",
          "isRefundedByVoucher"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "OrderTicketCancellationStatus": {
        "additionalProperties": false,
        "type": "object",
        "description": "{@inheritDoc}"
      },
      "EOrderTicketCancellationStatus": {
        "enum": [
          "ACCEPTED",
          "CREATED",
          "ERRORED",
          "INPROGRESS",
          "REFUNDED"
        ],
        "type": "string"
      },
      "Partial_ICancellationStatusPayload_": {
        "properties": {
          "message": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "ACCEPTED",
              "CREATED",
              "ERRORED",
              "INPROGRESS",
              "REFUNDED"
            ],
            "nullable": false
          },
          "refundedAmountCents": {
            "type": "number",
            "format": "double"
          },
          "refundType": {
            "type": "string",
            "enum": [
              "CASH",
              "FLIXBUS_VOUCHER",
              "BLABLABUS_VOUCHER"
            ],
            "nullable": false
          },
          "refundExpirationDateUtc": {
            "type": "string",
            "format": "date-time"
          }
        },
        "type": "object",
        "description": "Make all properties in T optional"
      },
      "IOrderTicketUpdate": {
        "properties": {
          "trip": {
            "type": "number",
            "format": "double"
          },
          "isBookable": {
            "type": "boolean"
          },
          "brandId": {
            "type": "number",
            "format": "double"
          },
          "segmentProviderSegmentRefId": {
            "type": "string"
          },
          "originStopClusterGpuid": {
            "type": "string"
          },
          "destinationStopClusterGpuid": {
            "type": "string"
          },
          "departureUnixUtc": {
            "type": "string"
          },
          "departureOffset": {
            "type": "string"
          },
          "arrivalUnixUtc": {
            "type": "string"
          },
          "arrivalOffset": {
            "type": "string"
          },
          "priceCents": {
            "type": "number",
            "format": "double"
          },
          "feeCents": {
            "type": "number",
            "format": "double"
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          },
          "deletedAt": {
            "type": "string"
          },
          "originStopGroupGpuid": {
            "type": "string"
          },
          "destinationStopGroupGpuid": {
            "type": "string"
          },
          "redirectUrl": {
            "type": "string"
          },
          "lockData": {
            "type": "string"
          },
          "vehicleIdentifier": {
            "type": "string"
          },
          "co2g": {
            "type": "number",
            "format": "double"
          },
          "bookingClass": {
            "type": "string"
          },
          "fareName": {
            "type": "string"
          },
          "conditionsName": {
            "type": "string"
          },
          "conditions": {
            "type": "string"
          },
          "cacheDate": {
            "type": "string"
          },
          "includedProviderFeeCents": {
            "type": "number",
            "format": "double"
          },
          "cancelledAt": {
            "type": "string"
          },
          "cacheSource": {
            "type": "string"
          },
          "isAvailable": {
            "type": "boolean"
          },
          "availableSeats": {
            "type": "string"
          }
        },
        "required": [
          "trip",
          "isBookable",
          "brandId",
          "segmentProviderSegmentRefId",
          "originStopClusterGpuid",
          "destinationStopClusterGpuid",
          "departureUnixUtc",
          "departureOffset",
          "arrivalUnixUtc",
          "arrivalOffset",
          "priceCents",
          "feeCents",
          "createdAt",
          "updatedAt",
          "deletedAt",
          "originStopGroupGpuid",
          "destinationStopGroupGpuid",
          "redirectUrl",
          "lockData",
          "vehicleIdentifier",
          "co2g",
          "bookingClass",
          "fareName",
          "conditionsName",
          "conditions",
          "cacheDate",
          "includedProviderFeeCents",
          "cancelledAt",
          "cacheSource",
          "isAvailable",
          "availableSeats"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IRefundBookingPayload": {
        "properties": {
          "amountToRefundCents": {
            "type": "number",
            "format": "double"
          }
        },
        "required": [
          "amountToRefundCents"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "GetPresoldFutureOrderTripsResponse": {
        "properties": {
          "pagination": {
            "properties": {
              "hasPreviousPage": {
                "type": "boolean"
              },
              "hasNextPage": {
                "type": "boolean"
              },
              "totalPages": {
                "type": "number",
                "format": "double"
              },
              "totalItems": {
                "type": "number",
                "format": "double"
              },
              "pageSize": {
                "type": "number",
                "format": "double"
              },
              "currentPage": {
                "type": "number",
                "format": "double"
              }
            },
            "required": [
              "hasPreviousPage",
              "hasNextPage",
              "totalPages",
              "totalItems",
              "pageSize",
              "currentPage"
            ],
            "type": "object"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/IClientTrip"
            },
            "type": "array"
          }
        },
        "required": [
          "pagination",
          "data"
        ],
        "type": "object"
      },
      "ServiceDate": {
        "properties": {
          "year": {
            "type": "number",
            "format": "double"
          },
          "month": {
            "type": "number",
            "format": "double"
          },
          "day": {
            "type": "number",
            "format": "double"
          }
        },
        "required": [
          "year",
          "month",
          "day"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "StopTime": {
        "properties": {
          "year": {
            "type": "number",
            "format": "double"
          },
          "month": {
            "type": "number",
            "format": "double"
          },
          "day": {
            "type": "number",
            "format": "double"
          },
          "hours": {
            "type": "number",
            "format": "double"
          },
          "minutes": {
            "type": "number",
            "format": "double"
          },
          "seconds": {
            "type": "number",
            "format": "double"
          },
          "nanos": {
            "type": "number",
            "format": "double"
          },
          "utc_offset": {
            "type": "string"
          }
        },
        "required": [
          "year",
          "month",
          "day",
          "hours",
          "minutes",
          "seconds",
          "nanos",
          "utc_offset"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "SegmentKey": {
        "properties": {
          "ticketing_trip_id": {
            "type": "string"
          },
          "from_ticketing_stop_time_id": {
            "type": "string"
          },
          "to_ticketing_stop_time_id": {
            "type": "string"
          },
          "service_date": {
            "$ref": "#/components/schemas/ServiceDate"
          },
          "boarding_time": {
            "$ref": "#/components/schemas/StopTime"
          },
          "arrival_time": {
            "$ref": "#/components/schemas/StopTime"
          }
        },
        "required": [
          "ticketing_trip_id",
          "from_ticketing_stop_time_id",
          "to_ticketing_stop_time_id",
          "service_date",
          "boarding_time",
          "arrival_time"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "Itinerary": {
        "properties": {
          "segment_keys": {
            "items": {
              "$ref": "#/components/schemas/SegmentKey"
            },
            "type": "array"
          }
        },
        "required": [
          "segment_keys"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ServiceClass": {
        "properties": {
          "type": {
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "Segment": {
        "properties": {
          "service_class": {
            "$ref": "#/components/schemas/ServiceClass"
          }
        },
        "required": [
          "service_class"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "Amount": {
        "properties": {
          "units": {
            "type": "number",
            "format": "double"
          },
          "nanos": {
            "type": "number",
            "format": "double"
          },
          "currency_code": {
            "type": "string"
          }
        },
        "required": [
          "units",
          "nanos",
          "currency_code"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "LineItem": {
        "properties": {
          "line_item_type": {
            "type": "string"
          },
          "amount": {
            "$ref": "#/components/schemas/Amount"
          }
        },
        "required": [
          "line_item_type",
          "amount"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "LowestStandardFare": {
        "properties": {
          "total_amount": {
            "$ref": "#/components/schemas/Amount"
          },
          "line_items": {
            "items": {
              "$ref": "#/components/schemas/LineItem"
            },
            "type": "array"
          }
        },
        "required": [
          "total_amount",
          "line_items"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "Available": {
        "properties": {
          "available_seat_count": {
            "type": "number",
            "format": "double"
          },
          "total_seat_count": {
            "type": "number",
            "format": "double"
          }
        },
        "required": [
          "available_seat_count",
          "total_seat_count"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "Availability": {
        "properties": {
          "available": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Available"
              },
              {
                "additionalProperties": false,
                "type": "object"
              }
            ]
          }
        },
        "required": [
          "available"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "TripOption": {
        "properties": {
          "segments": {
            "items": {
              "$ref": "#/components/schemas/Segment"
            },
            "type": "array"
          },
          "lowest_standard_fare": {
            "$ref": "#/components/schemas/LowestStandardFare"
          },
          "availability": {
            "$ref": "#/components/schemas/Availability"
          }
        },
        "required": [
          "segments",
          "lowest_standard_fare",
          "availability"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "TripOptionSet": {
        "properties": {
          "trip_options": {
            "items": {
              "$ref": "#/components/schemas/TripOption"
            },
            "type": "array"
          }
        },
        "required": [
          "trip_options"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ItineraryResponse": {
        "properties": {
          "itinerary": {
            "$ref": "#/components/schemas/Itinerary"
          },
          "trip_option_set": {
            "$ref": "#/components/schemas/TripOptionSet"
          }
        },
        "required": [
          "itinerary",
          "trip_option_set"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "BulkTripOptionsResult": {
        "properties": {
          "itinerary_responses": {
            "items": {
              "$ref": "#/components/schemas/ItineraryResponse"
            },
            "type": "array"
          }
        },
        "required": [
          "itinerary_responses"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IGetBulkTripOptionsResponse": {
        "properties": {
          "bulk_trip_options_result": {
            "$ref": "#/components/schemas/BulkTripOptionsResult"
          }
        },
        "required": [
          "bulk_trip_options_result"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ITripOptionsError": {
        "properties": {
          "trip_options_error": {
            "properties": {
              "error_type": {
                "type": "string"
              },
              "error_message": {
                "type": "string"
              }
            },
            "required": [
              "error_type",
              "error_message"
            ],
            "type": "object"
          }
        },
        "required": [
          "trip_options_error"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "MarketDate": {
        "properties": {
          "origin_ticketing_stop_id": {
            "type": "string"
          },
          "destination_ticketing_stop_id": {
            "type": "string"
          },
          "departure_date": {
            "$ref": "#/components/schemas/ServiceDate"
          }
        },
        "required": [
          "origin_ticketing_stop_id",
          "destination_ticketing_stop_id",
          "departure_date"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IGetBulkTripOptionsRequestPayload": {
        "properties": {
          "market_dates": {
            "items": {
              "$ref": "#/components/schemas/MarketDate"
            },
            "type": "array"
          },
          "known_itineraries": {
            "items": {},
            "type": "array"
          },
          "only_known_itineraries": {
            "type": "boolean"
          }
        },
        "required": [
          "market_dates"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IPartner": {
        "properties": {
          "id": {
            "type": "string"
          },
          "gpuids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "placeholder": {
            "type": "string"
          },
          "header": {
            "type": "string"
          },
          "subHeader": {
            "type": "string"
          },
          "primaryColor": {
            "type": "string"
          },
          "secondaryColor": {
            "type": "string"
          },
          "backgroundUrl": {
            "type": "string"
          },
          "logoUrl": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IGetOrdersResponse": {
        "properties": {
          "orders": {
            "items": {
              "$ref": "#/components/schemas/ISerializedOrder"
            },
            "type": "array"
          },
          "pagination": {
            "properties": {
              "hasPreviousPage": {
                "type": "boolean"
              },
              "hasNextPage": {
                "type": "boolean"
              },
              "totalPages": {
                "type": "number",
                "format": "double"
              },
              "totalItems": {
                "type": "number",
                "format": "double"
              },
              "itemsPerPage": {
                "type": "number",
                "format": "double"
              },
              "currentPage": {
                "type": "number",
                "format": "double"
              }
            },
            "required": [
              "hasPreviousPage",
              "hasNextPage",
              "totalPages",
              "totalItems",
              "itemsPerPage",
              "currentPage"
            ],
            "type": "object"
          }
        },
        "required": [
          "orders",
          "pagination"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IPassengerCategories": {
        "properties": {
          "name": {
            "type": "string"
          },
          "min_age": {
            "type": "number",
            "format": "double"
          },
          "max_age": {
            "type": "number",
            "format": "double"
          },
          "age_required": {
            "type": "boolean"
          }
        },
        "required": [
          "name",
          "min_age",
          "max_age",
          "age_required"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "PaylineBuyer": {
        "properties": {
          "email": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "customerId": {
            "type": "string"
          },
          "shippingAdress": {
            "type": "string"
          },
          "billingAddress": {
            "type": "string"
          },
          "accountCreateDate": {
            "type": "string"
          },
          "birthDate": {
            "type": "string"
          },
          "ip": {
            "type": "string",
            "description": "IP address of the buyer"
          }
        },
        "required": [
          "email",
          "title",
          "lastName",
          "firstName",
          "customerId"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "Payment": {
        "additionalProperties": false,
        "type": "object",
        "description": "{@inheritDoc}"
      },
      "UpdatePaymentStatusRequestBody": {
        "properties": {
          "paymentStatus": {
            "$ref": "#/components/schemas/EPaymentStatus"
          },
          "pspMetadata": {
            "properties": {
              "longMessage": {
                "type": "string"
              },
              "shortMessage": {
                "$ref": "#/components/schemas/EPaymentStatus"
              },
              "code": {
                "type": "string"
              }
            },
            "required": [
              "longMessage",
              "shortMessage",
              "code"
            ],
            "type": "object"
          }
        },
        "required": [
          "paymentStatus"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ICityConnection": {
        "properties": {
          "providers": {
            "items": {
              "$ref": "#/components/schemas/ESegmentProviderId"
            },
            "type": "array"
          },
          "distance": {
            "type": "number",
            "format": "double"
          },
          "destinationCluster": {
            "properties": {
              "localName": {
                "type": "string"
              },
              "longitude": {
                "type": "number",
                "format": "double"
              },
              "latitude": {
                "type": "number",
                "format": "double"
              },
              "gpuid": {
                "type": "string"
              },
              "id": {
                "type": "number",
                "format": "double"
              }
            },
            "required": [
              "localName",
              "longitude",
              "latitude",
              "gpuid",
              "id"
            ],
            "type": "object"
          },
          "originCluster": {
            "properties": {
              "localName": {
                "type": "string"
              },
              "longitude": {
                "type": "number",
                "format": "double"
              },
              "latitude": {
                "type": "number",
                "format": "double"
              },
              "gpuid": {
                "type": "string"
              },
              "id": {
                "type": "number",
                "format": "double"
              }
            },
            "required": [
              "localName",
              "longitude",
              "latitude",
              "gpuid",
              "id"
            ],
            "type": "object"
          }
        },
        "required": [
          "providers",
          "distance",
          "destinationCluster",
          "originCluster"
        ],
        "type": "object"
      },
      "ISegmentPresaleResponse": {
        "properties": {
          "priceCents": {
            "type": "number",
            "format": "double"
          },
          "averageDurationMinutes": {
            "type": "number",
            "format": "double"
          },
          "metadata": {}
        },
        "required": [
          "priceCents",
          "averageDurationMinutes"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IPricingResponse_ISegmentResponse_": {
        "properties": {
          "cityConnection": {
            "$ref": "#/components/schemas/ICityConnection"
          },
          "liveSearchResults": {
            "items": {
              "$ref": "#/components/schemas/ISegmentResponse"
            },
            "type": "array"
          },
          "presaleSearchResults": {
            "$ref": "#/components/schemas/ISegmentPresaleResponse"
          },
          "originStopCluster": {
            "type": "string"
          },
          "destinationStopCluster": {
            "type": "string"
          },
          "companyId": {
            "$ref": "#/components/schemas/ESegmentProviderId"
          }
        },
        "required": [
          "cityConnection",
          "originStopCluster",
          "destinationStopCluster",
          "companyId"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "EPrebookStatus": {
        "enum": [
          "NOT_YET_BOOKABLE",
          "BOOKABLE",
          "BOOKED",
          "ERRORED",
          "REFUNDED"
        ],
        "type": "string"
      },
      "IPresaleTicket": {
        "allOf": [
          {
            "$ref": "#/components/schemas/IClientSegment"
          },
          {
            "properties": {
              "saleOpeningDate": {
                "type": "string"
              },
              "prebookStatus": {
                "$ref": "#/components/schemas/EPrebookStatus"
              }
            },
            "required": [
              "saleOpeningDate",
              "prebookStatus"
            ],
            "type": "object"
          }
        ]
      },
      "ISerializedTrip_IPresaleTicket_": {
        "properties": {
          "id": {
            "type": "string"
          },
          "uuid": {
            "type": "string"
          },
          "origin": {
            "$ref": "#/components/schemas/TClientPlace"
          },
          "destination": {
            "$ref": "#/components/schemas/TClientPlace"
          },
          "priceCents": {
            "type": "number",
            "format": "double"
          },
          "feeCents": {
            "type": "number",
            "format": "double"
          },
          "paidPrice": {
            "type": "number",
            "format": "double"
          },
          "departureUTC": {
            "type": "number",
            "format": "double"
          },
          "arrivalUTC": {
            "type": "number",
            "format": "double"
          },
          "originOffset": {
            "type": "string"
          },
          "destinationOffset": {
            "type": "string"
          },
          "durationMinutes": {
            "type": "number",
            "format": "double"
          },
          "companies": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "mean": {
            "$ref": "#/components/schemas/ETripTransport"
          },
          "segments": {
            "items": {
              "$ref": "#/components/schemas/IPresaleTicket"
            },
            "type": "array"
          },
          "co2g": {
            "type": "number",
            "format": "double"
          },
          "vehicleIdentifier": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "origin",
          "destination",
          "priceCents",
          "feeCents",
          "paidPrice",
          "departureUTC",
          "arrivalUTC",
          "originOffset",
          "destinationOffset",
          "durationMinutes",
          "companies",
          "mean",
          "segments",
          "co2g"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IPresaleTrip": {
        "$ref": "#/components/schemas/ISerializedTrip_IPresaleTicket_"
      },
      "ISerializedOrder_IPresaleTrip_": {
        "properties": {
          "id": {
            "type": "string"
          },
          "paidPrice": {
            "type": "number",
            "format": "double"
          },
          "rawPrice": {
            "type": "number",
            "format": "double"
          },
          "totalPrice": {
            "type": "number",
            "format": "double"
          },
          "orderDate": {
            "type": "string"
          },
          "cartId": {
            "type": "string"
          },
          "partnerId": {
            "type": "string"
          },
          "orderStatus": {
            "$ref": "#/components/schemas/EOrderStatus"
          },
          "trips": {
            "properties": {
              "returnTrip": {
                "$ref": "#/components/schemas/IPresaleTrip"
              },
              "outboundTrip": {
                "$ref": "#/components/schemas/IPresaleTrip"
              }
            },
            "required": [
              "outboundTrip"
            ],
            "type": "object"
          },
          "passengers": {
            "items": {
              "$ref": "#/components/schemas/TClientPassenger"
            },
            "type": "array"
          },
          "customer": {
            "$ref": "#/components/schemas/TClientCustomer"
          },
          "error": {
            "$ref": "#/components/schemas/IErrorCodeResponse"
          },
          "paymentStatus": {
            "$ref": "#/components/schemas/EPaymentStatus"
          }
        },
        "required": [
          "id",
          "paidPrice",
          "rawPrice",
          "totalPrice",
          "orderDate",
          "orderStatus",
          "trips",
          "passengers",
          "customer",
          "paymentStatus"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IReducedCityConnection": {
        "properties": {
          "originCluster": {
            "properties": {
              "gpuid": {
                "type": "string"
              }
            },
            "required": [
              "gpuid"
            ],
            "type": "object"
          },
          "destinationCluster": {
            "properties": {
              "gpuid": {
                "type": "string"
              }
            },
            "required": [
              "gpuid"
            ],
            "type": "object"
          }
        },
        "required": [
          "originCluster",
          "destinationCluster"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "PriceCalendarServiceTrip": {
        "properties": {
          "numberOfStops": {
            "type": "number",
            "format": "double"
          },
          "companies": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "transportType": {
            "type": "string"
          },
          "priceCents": {
            "type": "number",
            "format": "double"
          },
          "durationMinutes": {
            "type": "number",
            "format": "double"
          },
          "arrivalOffset": {
            "type": "string"
          },
          "arrivalUnixUtc": {
            "type": "number",
            "format": "double"
          },
          "departureOffset": {
            "type": "string"
          },
          "departureUnixUtc": {
            "type": "number",
            "format": "double"
          }
        },
        "required": [
          "numberOfStops",
          "companies",
          "transportType",
          "priceCents",
          "durationMinutes",
          "arrivalOffset",
          "arrivalUnixUtc",
          "departureOffset",
          "departureUnixUtc"
        ],
        "type": "object"
      },
      "PriceCalendarDate": {
        "properties": {
          "trip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PriceCalendarServiceTrip"
              }
            ],
            "nullable": true
          },
          "date": {
            "type": "string"
          }
        },
        "required": [
          "trip",
          "date"
        ],
        "type": "object"
      },
      "PriceCalendar": {
        "items": {
          "$ref": "#/components/schemas/PriceCalendarDate"
        },
        "type": "array"
      },
      "Record_number.IAggregatedPriceHistory-or-null_": {
        "properties": {},
        "type": "object",
        "description": "Construct a type with a set of properties K of type T"
      },
      "PriceHistoryByTimeframeDay": {
        "$ref": "#/components/schemas/Record_number.IAggregatedPriceHistory-or-null_"
      },
      "ICompanyStations": {
        "properties": {
          "id": {
            "type": "number",
            "format": "double"
          },
          "company_id": {
            "type": "number",
            "format": "double"
          },
          "original_id": {
            "type": "string"
          },
          "latitude": {
            "type": "number",
            "format": "double"
          },
          "longitude": {
            "type": "number",
            "format": "double"
          },
          "station_name": {
            "type": "string"
          },
          "unique_name": {
            "type": "string"
          },
          "serviced": {
            "type": "boolean"
          },
          "geojson": {
            "type": "number",
            "format": "double"
          }
        },
        "required": [
          "id",
          "company_id",
          "original_id",
          "latitude",
          "longitude",
          "station_name",
          "unique_name",
          "serviced",
          "geojson"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IGetSegmentProviderStopResponse": {
        "properties": {
          "segmentProviderStop": {
            "$ref": "#/components/schemas/ICompanyStations"
          }
        },
        "required": [
          "segmentProviderStop"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ISegmentProviderStopPlaceInput": {
        "properties": {
          "id": {
            "$ref": "#/components/schemas/TSegmentProviderStopId"
          },
          "latitude": {
            "type": "number",
            "format": "double"
          },
          "longitude": {
            "type": "number",
            "format": "double"
          }
        },
        "required": [
          "id",
          "latitude",
          "longitude"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ISearchSegmentProviderStopOriginDestination": {
        "properties": {
          "origin": {
            "$ref": "#/components/schemas/ISegmentProviderStopPlaceInput"
          },
          "destination": {
            "$ref": "#/components/schemas/ISegmentProviderStopPlaceInput"
          }
        },
        "required": [
          "origin",
          "destination"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ISearchSegmentProviderStopOriginDestinationCardinality": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ISearchSegmentProviderStopOriginDestination"
          },
          {
            "properties": {
              "count": {
                "type": "number",
                "format": "double"
              }
            },
            "required": [
              "count"
            ],
            "type": "object"
          }
        ]
      },
      "IGetRouteIdsResponse": {
        "properties": {
          "routes": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "routes"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ISegmentProviderStopIdPair": {
        "properties": {
          "origin": {
            "type": "string"
          },
          "destination": {
            "type": "string"
          }
        },
        "required": [
          "origin",
          "destination"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IProviderOD": {
        "properties": {
          "originId": {
            "type": "string"
          },
          "originName": {
            "type": "string"
          },
          "destinationId": {
            "type": "string"
          },
          "coordinates": {
            "properties": {
              "destination": {
                "properties": {
                  "latitude": {
                    "type": "number",
                    "format": "double"
                  },
                  "longitude": {
                    "type": "number",
                    "format": "double"
                  }
                },
                "required": [
                  "latitude",
                  "longitude"
                ],
                "type": "object"
              },
              "origin": {
                "properties": {
                  "latitude": {
                    "type": "number",
                    "format": "double"
                  },
                  "longitude": {
                    "type": "number",
                    "format": "double"
                  }
                },
                "required": [
                  "latitude",
                  "longitude"
                ],
                "type": "object"
              }
            },
            "required": [
              "destination",
              "origin"
            ],
            "type": "object"
          },
          "destinationName": {
            "type": "string"
          },
          "providerName": {
            "type": "string"
          }
        },
        "required": [
          "originId",
          "originName",
          "destinationId",
          "coordinates",
          "destinationName",
          "providerName"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "TSegmentProviderStopClusterId": {
        "type": "string"
      },
      "ISegmentProviderStopClusterPlaceInput": {
        "properties": {
          "id": {
            "$ref": "#/components/schemas/TSegmentProviderStopClusterId"
          },
          "latitude": {
            "type": "number",
            "format": "double"
          },
          "longitude": {
            "type": "number",
            "format": "double"
          }
        },
        "required": [
          "id",
          "latitude",
          "longitude"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ISearchSegmentProviderStopClusterOriginDestination": {
        "properties": {
          "origin": {
            "$ref": "#/components/schemas/ISegmentProviderStopClusterPlaceInput"
          },
          "destination": {
            "$ref": "#/components/schemas/ISegmentProviderStopClusterPlaceInput"
          }
        },
        "required": [
          "origin",
          "destination"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "TStopClusterId": {
        "type": "number",
        "format": "double"
      },
      "IStopClusterPlaceInput": {
        "properties": {
          "id": {
            "$ref": "#/components/schemas/TStopClusterId"
          },
          "latitude": {
            "type": "number",
            "format": "double"
          },
          "longitude": {
            "type": "number",
            "format": "double"
          },
          "unique_name": {
            "type": "string"
          },
          "local_name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "latitude",
          "longitude"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ISearchStopClusterOriginDestination": {
        "properties": {
          "origin": {
            "$ref": "#/components/schemas/IStopClusterPlaceInput"
          },
          "destination": {
            "$ref": "#/components/schemas/IStopClusterPlaceInput"
          }
        },
        "required": [
          "origin",
          "destination"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ISegmentProviderStop": {
        "properties": {
          "id": {
            "type": "string"
          },
          "longitude": {
            "type": "number",
            "format": "double"
          },
          "latitude": {
            "type": "number",
            "format": "double"
          }
        },
        "required": [
          "id",
          "longitude",
          "latitude"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ISegmentProviderStopPair": {
        "properties": {
          "companyId": {
            "$ref": "#/components/schemas/ESegmentProviderId"
          },
          "origin": {
            "$ref": "#/components/schemas/ISegmentProviderStop"
          },
          "destination": {
            "$ref": "#/components/schemas/ISegmentProviderStop"
          }
        },
        "required": [
          "companyId",
          "origin",
          "destination"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "TApiStopGroupUrl": {
        "properties": {
          "id": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "latitude": {
            "type": "number",
            "format": "double"
          },
          "longitude": {
            "type": "number",
            "format": "double"
          },
          "name": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "transportTypes": {
            "items": {
              "$ref": "#/components/schemas/EApiTransportType"
            },
            "type": "array"
          },
          "stopClusters": {
            "items": {
              "$ref": "#/components/schemas/IApiStopCluster"
            },
            "type": "array"
          },
          "pageId": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "address",
          "city",
          "country",
          "latitude",
          "longitude",
          "name",
          "region",
          "transportTypes",
          "stopClusters",
          "pageId"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IOpenDataSncfApplicationPeriod": {
        "properties": {
          "begin": {
            "type": "string"
          },
          "end": {
            "type": "string"
          }
        },
        "required": [
          "begin",
          "end"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IOpenDataSncfImpactedStop": {
        "properties": {
          "amendedArrivalTime": {
            "type": "string"
          },
          "amendedDepartureTime": {
            "type": "string"
          },
          "baseDepartureTime": {
            "type": "string"
          },
          "baseArrivalTime": {
            "type": "string"
          },
          "isDetour": {
            "type": "boolean"
          },
          "cause": {
            "type": "string"
          },
          "arrivalStatus": {
            "type": "string"
          },
          "departureStatus": {
            "type": "string"
          },
          "stationName": {
            "type": "string"
          },
          "stopTimeEffect": {
            "type": "string"
          }
        },
        "required": [
          "amendedArrivalTime",
          "amendedDepartureTime",
          "baseDepartureTime",
          "baseArrivalTime",
          "isDetour",
          "cause",
          "arrivalStatus",
          "departureStatus",
          "stationName",
          "stopTimeEffect"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IOpenDataSncfImpactedObject": {
        "properties": {
          "impactedStops": {
            "items": {
              "$ref": "#/components/schemas/IOpenDataSncfImpactedStop"
            },
            "type": "array"
          },
          "ptObject": {
            "properties": {
              "tripName": {
                "type": "string"
              },
              "tripId": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "quality": {
                "type": "number",
                "format": "double"
              },
              "id": {
                "type": "string"
              },
              "embeddedType": {
                "type": "string"
              }
            },
            "required": [
              "tripName",
              "tripId",
              "name",
              "quality",
              "id",
              "embeddedType"
            ],
            "type": "object"
          }
        },
        "required": [
          "impactedStops",
          "ptObject"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IOpenDataSncfDisruption": {
        "properties": {
          "status": {
            "type": "string"
          },
          "disruptionId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "effect": {
            "type": "string"
          },
          "impactId": {
            "type": "string"
          },
          "applicationPeriods": {
            "items": {
              "$ref": "#/components/schemas/IOpenDataSncfApplicationPeriod"
            },
            "type": "array"
          },
          "updatedAt": {
            "type": "string"
          },
          "impactedObjects": {
            "items": {
              "$ref": "#/components/schemas/IOpenDataSncfImpactedObject"
            },
            "type": "array"
          }
        },
        "required": [
          "status",
          "disruptionId",
          "name",
          "effect",
          "impactId",
          "applicationPeriods",
          "updatedAt",
          "impactedObjects"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IOpenDataSncfDisplayInformations": {
        "properties": {
          "direction": {
            "type": "string"
          },
          "network": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "physicalMode": {
            "type": "string"
          },
          "headsign": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "tripShortName": {
            "type": "string"
          },
          "commercialMode": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "arrivalDateTime": {
            "type": "string"
          },
          "departureDateTime": {
            "type": "string"
          },
          "baseArrivalDateTime": {
            "type": "string"
          },
          "baseDepartureDateTime": {
            "type": "string"
          },
          "dataFreshness": {
            "type": "string"
          }
        },
        "required": [
          "direction",
          "network",
          "name",
          "physicalMode",
          "headsign",
          "label",
          "tripShortName",
          "commercialMode",
          "description",
          "arrivalDateTime",
          "departureDateTime",
          "baseArrivalDateTime",
          "baseDepartureDateTime",
          "dataFreshness"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IOpenDataSncfServiceDepartureResponse": {
        "properties": {
          "disruptions": {
            "items": {
              "$ref": "#/components/schemas/IOpenDataSncfDisruption"
            },
            "type": "array"
          },
          "departures": {
            "items": {
              "$ref": "#/components/schemas/IOpenDataSncfDisplayInformations"
            },
            "type": "array"
          }
        },
        "required": [
          "disruptions",
          "departures"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IStopGroupConnections": {
        "properties": {
          "origin": {
            "properties": {
              "longitude": {
                "type": "number",
                "format": "double"
              },
              "latitude": {
                "type": "number",
                "format": "double"
              },
              "id": {
                "type": "string"
              }
            },
            "required": [
              "longitude",
              "latitude",
              "id"
            ],
            "type": "object"
          },
          "destination": {
            "properties": {
              "longitude": {
                "type": "number",
                "format": "double"
              },
              "latitude": {
                "type": "number",
                "format": "double"
              },
              "id": {
                "type": "string"
              }
            },
            "required": [
              "longitude",
              "latitude",
              "id"
            ],
            "type": "object"
          }
        },
        "required": [
          "origin",
          "destination"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IOpenDataSncfServiceArrivalResponse": {
        "properties": {
          "disruptions": {
            "items": {
              "$ref": "#/components/schemas/IOpenDataSncfDisruption"
            },
            "type": "array"
          },
          "arrivals": {
            "items": {
              "$ref": "#/components/schemas/IOpenDataSncfDisplayInformations"
            },
            "type": "array"
          }
        },
        "required": [
          "disruptions",
          "arrivals"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IStopGroupProviderData": {
        "properties": {
          "provider": {
            "type": "string"
          },
          "trainsPerDay": {
            "type": "number",
            "format": "double"
          },
          "firstDeparture": {
            "type": "string"
          },
          "lastDeparture": {
            "type": "string"
          },
          "firstArrival": {
            "type": "string"
          },
          "lastArrival": {
            "type": "string"
          }
        },
        "required": [
          "provider",
          "trainsPerDay",
          "firstDeparture",
          "lastDeparture",
          "firstArrival",
          "lastArrival"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ICloseStopGroups": {
        "properties": {
          "newId": {
            "type": "string"
          },
          "uniqueName": {
            "type": "string"
          },
          "latitude": {
            "type": "number",
            "format": "double"
          },
          "longitude": {
            "type": "number",
            "format": "double"
          }
        },
        "required": [
          "newId",
          "uniqueName",
          "latitude",
          "longitude"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "IStopGroupsInformations": {
        "properties": {
          "name": {
            "type": "string"
          },
          "gpuid": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "latitude": {
            "type": "number",
            "format": "double"
          },
          "longitude": {
            "type": "number",
            "format": "double"
          },
          "journeysPerDay": {
            "type": "number",
            "format": "double"
          },
          "firstDeparture": {
            "type": "string"
          },
          "lastDeparture": {
            "type": "string"
          },
          "firstArrival": {
            "type": "string"
          },
          "lastArrival": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "servicedDestinations": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "stopGroupType": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "providersName": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "providers": {
            "items": {
              "$ref": "#/components/schemas/IStopGroupProviderData"
            },
            "type": "array"
          },
          "closeStopGroups": {
            "items": {
              "$ref": "#/components/schemas/ICloseStopGroups"
            },
            "type": "array"
          }
        },
        "required": [
          "name",
          "gpuid",
          "address",
          "latitude",
          "longitude",
          "journeysPerDay",
          "city",
          "servicedDestinations",
          "stopGroupType",
          "providersName",
          "providers",
          "closeStopGroups"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ICreateTicketResponse": {
        "properties": {
          "status": {
            "type": "number",
            "format": "double"
          }
        },
        "required": [
          "status"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ICreateTicketBody": {
        "properties": {
          "subject": {
            "properties": {
              "typeOfRequest": {
                "type": "string"
              },
              "message": {
                "type": "string"
              }
            },
            "required": [
              "typeOfRequest",
              "message"
            ],
            "type": "object"
          },
          "email": {
            "type": "string"
          },
          "phoneNumber": {
            "type": "string"
          },
          "orderId": {
            "type": "string"
          },
          "departureDate": {
            "type": "string"
          },
          "moreInformations": {
            "type": "string"
          },
          "departureCity": {
            "type": "string"
          },
          "arrivalCity": {
            "type": "string"
          },
          "files": {
            "items": {
              "properties": {
                "base64": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                }
              },
              "required": [
                "base64",
                "name"
              ],
              "type": "object"
            },
            "type": "array"
          }
        },
        "required": [
          "subject",
          "email",
          "phoneNumber",
          "orderId",
          "departureDate",
          "moreInformations"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "Pick_UserAttributes.Exclude_keyofUserAttributes.createdAt-or-updatedAt-or-deletedAt__": {
        "properties": {
          "id": {
            "type": "number",
            "format": "double"
          },
          "title": {
            "$ref": "#/components/schemas/EPassengerTitle"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "mail": {
            "type": "string"
          },
          "birthdate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "title",
          "firstName",
          "lastName",
          "mail",
          "birthdate"
        ],
        "type": "object",
        "description": "From T, pick a set of properties whose keys are in the union K"
      },
      "Omit_UserAttributes.createdAt-or-updatedAt-or-deletedAt_": {
        "$ref": "#/components/schemas/Pick_UserAttributes.Exclude_keyofUserAttributes.createdAt-or-updatedAt-or-deletedAt__",
        "description": "Construct a type with the properties of T except for those in type K."
      },
      "UserDto": {
        "$ref": "#/components/schemas/Omit_UserAttributes.createdAt-or-updatedAt-or-deletedAt_"
      },
      "Pick_PassengerAttributes.mail-or-lastName-or-firstName-or-birthdate-or-title_": {
        "properties": {
          "title": {
            "$ref": "#/components/schemas/EPassengerTitle"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "mail": {
            "type": "string",
            "nullable": true
          },
          "birthdate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "title",
          "firstName",
          "lastName",
          "mail",
          "birthdate"
        ],
        "type": "object",
        "description": "From T, pick a set of properties whose keys are in the union K"
      },
      "Pick_PassengerDiscountCardAttributes.code-or-expirationDate-or-discountCardId_": {
        "properties": {
          "code": {
            "type": "string"
          },
          "expirationDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "discountCardId": {
            "type": "string"
          }
        },
        "required": [
          "code",
          "expirationDate",
          "discountCardId"
        ],
        "type": "object",
        "description": "From T, pick a set of properties whose keys are in the union K"
      },
      "PassengerDiscountCardDto": {
        "$ref": "#/components/schemas/Pick_PassengerDiscountCardAttributes.code-or-expirationDate-or-discountCardId_"
      },
      "Pick_PassengerIdentityDocumentAttributes.type-or-expirationDate-or-documentIdentifier-or-countryCode_": {
        "properties": {
          "expirationDate": {
            "type": "string",
            "format": "date-time"
          },
          "type": {
            "$ref": "#/components/schemas/EIdentityDocumentType"
          },
          "documentIdentifier": {
            "type": "string"
          },
          "countryCode": {
            "$ref": "#/components/schemas/EIsoCountryCodes"
          }
        },
        "required": [
          "expirationDate",
          "type",
          "documentIdentifier",
          "countryCode"
        ],
        "type": "object",
        "description": "From T, pick a set of properties whose keys are in the union K"
      },
      "PassengerIdentityDocumentDto": {
        "$ref": "#/components/schemas/Pick_PassengerIdentityDocumentAttributes.type-or-expirationDate-or-documentIdentifier-or-countryCode_"
      },
      "CreatePassengerDto": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Pick_PassengerAttributes.mail-or-lastName-or-firstName-or-birthdate-or-title_"
          },
          {
            "properties": {
              "identityDocument": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PassengerIdentityDocumentDto"
                  }
                ],
                "nullable": true
              },
              "discountCards": {
                "items": {
                  "$ref": "#/components/schemas/PassengerDiscountCardDto"
                },
                "type": "array"
              }
            },
            "required": [
              "identityDocument",
              "discountCards"
            ],
            "type": "object"
          }
        ]
      },
      "Partial_IPartner_": {
        "properties": {
          "id": {
            "type": "string"
          },
          "gpuids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "placeholder": {
            "type": "string"
          },
          "header": {
            "type": "string"
          },
          "subHeader": {
            "type": "string"
          },
          "primaryColor": {
            "type": "string"
          },
          "secondaryColor": {
            "type": "string"
          },
          "backgroundUrl": {
            "type": "string"
          },
          "logoUrl": {
            "type": "string"
          }
        },
        "type": "object",
        "description": "Make all properties in T optional"
      }
    },
    "securitySchemes": {
      "authentication": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "info": {
    "title": "@tictactrip/api",
    "version": "2.1489.0",
    "description": "Tictactrip's API service",
    "license": {
      "name": "UNLICENSED"
    },
    "contact": {
      "name": "Tictactrip",
      "email": "dev@tictactrip.eu",
      "url": "https://www.tictactrip.eu"
    }
  },
  "openapi": "3.0.0",
  "paths": {
    "/v2/segmentProviders": {
      "get": {
        "operationId": "GetSegmentProviders",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/TSegmentProvider"
                  },
                  "type": "array"
                },
                "examples": {
                  "Example 1": {
                    "value": [
                      {
                        "id": 1,
                        "name": "vsc",
                        "fullname": "Voyages SNCF",
                        "requiresIdentityDocument": false
                      }
                    ]
                  }
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                }
              }
            }
          }
        },
        "description": "Returns all SegmentProviders",
        "security": [
          {
            "authentication": [
              "bookPartner",
              "searchPartner",
              "admin"
            ]
          }
        ],
        "parameters": []
      }
    },
    "/v2/stopGroups": {
      "get": {
        "operationId": "GetAllStopGroups",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/IGetStopGroupResponse"
                  },
                  "type": "array"
                },
                "examples": {
                  "Example 1": {
                    "value": [
                      {
                        "id": "g|FRavignon_@spg3vp",
                        "name": "Avignon Centre",
                        "city": "Avignon",
                        "region": "Provence-Alpes-C\u00f4te d\u2019Azur",
                        "country": "FR",
                        "address": "1 rue du centre, 84000, Avignon",
                        "latitude": 43.9408,
                        "longitude": 4.79167,
                        "transportTypes": [
                          "bus",
                          "train"
                        ],
                        "stopClusters": [
                          {
                            "id": "c|FRavignon_@spg6j",
                            "name": "Avignon",
                            "city": "Avignon",
                            "region": "Provence-Alpes-C\u00f4te d'Azur",
                            "country": "FR",
                            "latitude": 43.952499,
                            "longitude": 4.804022
                          }
                        ]
                      }
                    ]
                  }
                }
              }
            }
          },
          "500": {
            "description": "If an unexpected error occurred",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "general:internal:unexpected",
                      "errorMessage": "An unexpected error occurred"
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns the list of all StopGroups.",
        "security": [
          {
            "authentication": [
              "bookPartner",
              "searchPartner",
              "admin"
            ]
          }
        ],
        "parameters": [
          {
            "in": "query",
            "name": "providerId",
            "required": false,
            "schema": {
              "format": "double",
              "type": "number"
            }
          }
        ]
      }
    },
    "/v2/stopGroups/{stopGroupGpuid}": {
      "get": {
        "operationId": "GetStopGroup",
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IGetStopGroupResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "id": "g|FRavignon_@spg3vp",
                      "name": "Avignon Centre",
                      "city": "Avignon",
                      "region": "Provence-Alpes-C\u00f4te d\u2019Azur",
                      "country": "FR",
                      "address": "1 rue du centre, 84000, Avignon",
                      "latitude": 43.9408,
                      "longitude": 4.79167,
                      "transportTypes": [
                        "bus",
                        "train"
                      ],
                      "stopClusters": [
                        {
                          "id": "c|FRavignon_@spg6j",
                          "name": "Avignon",
                          "city": "Avignon",
                          "region": "Provence-Alpes-C\u00f4te d'Azur",
                          "country": "FR",
                          "latitude": 43.952499,
                          "longitude": 4.804022
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "StopGroup not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "partnersApi:client:stopGroupNotFound",
                      "errorMessage": "This StopGroup could not be found"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "If an unexpected error occurred",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "general:internal:unexpected",
                      "errorMessage": "An unexpected error occurred"
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns a StopGroup details.",
        "security": [
          {
            "authentication": [
              "bookPartner",
              "searchPartner",
              "admin"
            ]
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "stopGroupGpuid",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "g|FRavignon_@spg3vp"
          }
        ]
      }
    },
    "/v2/stopClusters": {
      "get": {
        "operationId": "GetAllStopClusters",
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/IGetStopClusterResponse"
                  },
                  "type": "array"
                },
                "examples": {
                  "Example 1": {
                    "value": [
                      {
                        "id": "c|FRangers__@gbrw5",
                        "name": "Angers",
                        "city": "Angers",
                        "region": "Pays-de-la-Loire",
                        "country": "FR",
                        "latitude": 47.478419,
                        "longitude": 0.563166,
                        "transportTypes": [
                          "bus",
                          "train"
                        ],
                        "stopGroups": [
                          {
                            "id": "g|FRangmaiec@gbrw5c",
                            "name": "Angers Maitre Ecole",
                            "city": "Angers",
                            "region": "Pays-de-la-Loire",
                            "country": "FR",
                            "address": "21 Rue Louis Legendre, 49100 Angers, France",
                            "latitude": 47.467,
                            "longitude": 0.5322,
                            "transportTypes": [
                              "train"
                            ]
                          },
                          {
                            "id": "g|FRangsaila@gbrw52",
                            "name": "Angers Saint-Laud",
                            "city": "Angers",
                            "region": "Pays-de-la-Loire",
                            "country": "FR",
                            "address": "1 Esplanade De La Gare, 49100 Angers, France",
                            "latitude": 47.46477,
                            "longitude": 0.55693,
                            "transportTypes": [
                              "bus",
                              "train"
                            ]
                          }
                        ]
                      }
                    ]
                  }
                }
              }
            }
          },
          "500": {
            "description": "If an unexpected error occurred",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "general:internal:unexpected",
                      "errorMessage": "An unexpected error occurred"
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns the list of all StopClusters.",
        "security": [
          {
            "authentication": [
              "bookPartner",
              "searchPartner",
              "admin"
            ]
          }
        ],
        "parameters": []
      }
    },
    "/v2/stopClusters/{stopClusterGpuid}": {
      "get": {
        "operationId": "GetStopCluster",
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IGetStopClusterResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "id": "c|FRangers__@gbrw5",
                      "name": "Angers",
                      "city": "Angers",
                      "region": "Pays-de-la-Loire",
                      "country": "FR",
                      "latitude": 47.478419,
                      "longitude": 0.563166,
                      "transportTypes": [
                        "bus",
                        "train"
                      ],
                      "stopGroups": [
                        {
                          "id": "g|FRangmaiec@gbrw5c",
                          "name": "Angers Maitre Ecole",
                          "city": "Angers",
                          "region": "Pays-de-la-Loire",
                          "country": "FR",
                          "address": "21 Rue Louis Legendre, 49100 Angers, France",
                          "latitude": 47.467,
                          "longitude": 0.5322,
                          "transportTypes": [
                            "train"
                          ]
                        },
                        {
                          "id": "g|FRangsaila@gbrw52",
                          "name": "Angers Saint-Laud",
                          "city": "Angers",
                          "region": "Pays-de-la-Loire",
                          "country": "FR",
                          "address": "1 Esplanade De La Gare, 49100 Angers, France",
                          "latitude": 47.46477,
                          "longitude": 0.55693,
                          "transportTypes": [
                            "bus",
                            "train"
                          ]
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "StopCluster not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "partnersApi:client:stopClusterNotFound",
                      "errorMessage": "This StopCluster could not be found"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "If an unexpected error occurred",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "general:internal:unexpected",
                      "errorMessage": "An unexpected error occurred"
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns a StopCluster details.",
        "security": [
          {
            "authentication": [
              "bookPartner",
              "searchPartner",
              "admin"
            ]
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "stopClusterGpuid",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "c|FRangers__@gbrw5"
          }
        ]
      }
    },
    "/v2/autocomplete": {
      "get": {
        "operationId": "GetAutocomplete",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Autocomplete"
                  },
                  "type": "array"
                }
              }
            }
          },
          "400": {
            "description": "Missing or invalid query parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "partnersApi:client:missingQueryParam",
                      "errorMessage": "The query parameter \"q\" is required"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "If an unexpected error occurred",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "general:internal:unexpected",
                      "errorMessage": "An unexpected error occurred"
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Autocomplete search for stop clusters and stop groups by name.\nReturns cities and stations matching the query, filtered by the partner's allowed gpuids when applicable.\nMirrors the behaviour of the legacy GET /autocomplete route.",
        "security": [
          {
            "authentication": [
              "bookPartner",
              "searchPartner",
              "admin"
            ]
          }
        ],
        "parameters": [
          {
            "description": "The search query (e.g. a city name or prefix)",
            "in": "query",
            "name": "q",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "Paris"
          }
        ]
      }
    },
    "/v2/cities/popular/{limit}": {
      "get": {
        "operationId": "GetPopularCities",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/IPopularCity"
                  },
                  "type": "array"
                }
              }
            }
          },
          "500": {
            "description": "If an unexpected error occurred",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "general:internal:unexpected",
                      "errorMessage": "An unexpected error occurred"
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns the `limit` most searched cities within 2 months.",
        "security": [
          {
            "authentication": [
              "bookPartner",
              "searchPartner",
              "admin"
            ]
          }
        ],
        "parameters": [
          {
            "description": "The maximum number of cities to return.",
            "in": "path",
            "name": "limit",
            "required": true,
            "schema": {
              "format": "double",
              "type": "number"
            },
            "example": 10
          }
        ]
      }
    },
    "/v2/cities/popular/{direction}/{uniqueName}/{limit}": {
      "get": {
        "operationId": "GetPopularCitiesFromTo",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/IPopularCity"
                  },
                  "type": "array"
                }
              }
            }
          },
          "500": {
            "description": "If an unexpected error occurred",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "general:internal:unexpected",
                      "errorMessage": "An unexpected error occurred"
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns the `limit` most searched cities for a given direction from/to a city within 2 weeks.\nFalls back to global top cities if no results are found.",
        "security": [
          {
            "authentication": [
              "bookPartner",
              "searchPartner",
              "admin"
            ]
          }
        ],
        "parameters": [
          {
            "description": "Can be either `from` or `to`.",
            "in": "path",
            "name": "direction",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/ESearchDirection"
            }
          },
          {
            "description": "The unique name of the city to be based on.",
            "in": "path",
            "name": "uniqueName",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "paris"
          },
          {
            "description": "The maximum number of cities to return (capped at 10).",
            "in": "path",
            "name": "limit",
            "required": true,
            "schema": {
              "format": "double",
              "type": "number"
            },
            "example": 5
          }
        ]
      }
    },
    "/v2/results": {
      "post": {
        "operationId": "GetResults",
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IApiSearchResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "trips": {
                        "67f077b4-3836-4616-ace2-42d68b0f4c71": {
                          "id": "67f077b4-3836-4616-ace2-42d68b0f4c71",
                          "direction": "outboundTrip",
                          "origin": {
                            "id": "g|FRavignon_@spg3vp",
                            "name": "Avignon Centre",
                            "city": "Avignon",
                            "region": "Provence-Alpes-C\u00f4te d\u2019Azur",
                            "country": "FR",
                            "address": "1 rue du centre, 84000, Avignon",
                            "latitude": 43.9408,
                            "longitude": 4.79167
                          },
                          "destination": {
                            "id": "g|FRavignon_@spg3vp",
                            "name": "Avignon Centre",
                            "city": "Avignon",
                            "region": "Provence-Alpes-C\u00f4te d\u2019Azur",
                            "country": "FR",
                            "address": "1 rue du centre, 84000, Avignon",
                            "latitude": 43.9408,
                            "longitude": 4.79167
                          },
                          "available": true,
                          "priceCents": 6000,
                          "durationMinutes": 210,
                          "departureUTC": 1619759072,
                          "arrivalUTC": 1619773472,
                          "originOffset": "+0200",
                          "destinationOffset": "+0200",
                          "isIdentityDocumentRequired": false,
                          "transportType": "MULTIMODAL",
                          "providers": [
                            {
                              "name": "Altibus",
                              "company": "Altibus",
                              "transportType": "bus"
                            },
                            {
                              "name": "TGV",
                              "company": "SNCF",
                              "transportType": "train"
                            }
                          ],
                          "segments": [
                            {
                              "id": "0123456789",
                              "provider": {
                                "name": "Altibus",
                                "company": "Altibus",
                                "transportType": "bus"
                              },
                              "origin": {
                                "id": "g|FRavignon_@spg3vp",
                                "name": "Avignon Centre",
                                "city": "Avignon",
                                "region": "Provence-Alpes-C\u00f4te d\u2019Azur",
                                "country": "FR",
                                "address": "1 rue du centre, 84000, Avignon",
                                "latitude": 43.9408,
                                "longitude": 4.79167
                              },
                              "destination": {
                                "id": "g|FRavignon_@spg3vp",
                                "name": "Avignon Centre",
                                "city": "Avignon",
                                "region": "Provence-Alpes-C\u00f4te d\u2019Azur",
                                "country": "FR",
                                "address": "1 rue du centre, 84000, Avignon",
                                "latitude": 43.9408,
                                "longitude": 4.79167
                              },
                              "priceCents": 2000,
                              "durationMinutes": 120,
                              "departureUTC": 1619759072,
                              "arrivalUTC": 1619773472,
                              "originOffset": "+0200",
                              "destinationOffset": "+0200",
                              "transportType": "bus",
                              "includedBaggage": true,
                              "notAvailableReason": null,
                              "isPresale": false
                            },
                            {
                              "id": "2345678901",
                              "provider": {
                                "name": "TGV",
                                "company": "SNCF",
                                "transportType": "train"
                              },
                              "origin": {
                                "id": "g|FRavignon_@spg3vp",
                                "name": "Avignon Centre",
                                "city": "Avignon",
                                "region": "Provence-Alpes-C\u00f4te d\u2019Azur",
                                "country": "FR",
                                "address": "1 rue du centre, 84000, Avignon",
                                "latitude": 43.9408,
                                "longitude": 4.79167
                              },
                              "destination": {
                                "id": "g|FRavignon_@spg3vp",
                                "name": "Avignon Centre",
                                "city": "Avignon",
                                "region": "Provence-Alpes-C\u00f4te d\u2019Azur",
                                "country": "FR",
                                "address": "1 rue du centre, 84000, Avignon",
                                "latitude": 43.9408,
                                "longitude": 4.79167
                              },
                              "priceCents": 4000,
                              "durationMinutes": 80,
                              "departureUTC": 1619774072,
                              "arrivalUTC": 1619778872,
                              "originOffset": "+0200",
                              "destinationOffset": "+0200",
                              "transportType": "train",
                              "includedBaggage": true,
                              "notAvailableReason": null,
                              "vehicleIdentifier": "6319",
                              "co2g": 50,
                              "bookingClass": "2_ND_CLASS",
                              "fareName": "PREM'S",
                              "isPresale": false
                            }
                          ]
                        }
                      },
                      "bundles": [
                        {
                          "trips": [
                            "67f077b4-3836-4616-ace2-42d68b0f4c71"
                          ],
                          "redirectionLink": "v2/redirect/?outboundTripId=67f077b4-3836-4616-ace2-42d68b0f4c71&partnerId=FR-WB-TEST"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "string",
                      "errorMessage": "string"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "If the stopCluster is not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "partnersApi:client:stopClusterNotFound",
                      "errorMessage": "This StopCluster could not be found"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "If an unexpected error occurred",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "general:internal:unexpected",
                      "errorMessage": "An unexpected error occurred"
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Fetch results. Ignore search request that are further than 1800KM.",
        "security": [
          {
            "authentication": [
              "admin",
              "searchPartner",
              "bookPartner"
            ]
          }
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IApiGetResultsParams"
              },
              "example": {
                "originGpuid": "c|FRavignon_@spg6j",
                "destinationGpuid": "c|FRmarseill@spey6",
                "passengers": [
                  {
                    "age": 22
                  }
                ],
                "outboundDate": "2021-04-28T00:00:00Z",
                "returnDate": "2021-04-28T00:00:00Z"
              }
            }
          }
        }
      }
    },
    "/booking/v3/carts/{cartId}": {
      "get": {
        "operationId": "GetCart",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "cart": {
                      "$ref": "#/components/schemas/ISerializedCart"
                    }
                  },
                  "required": [
                    "cart"
                  ],
                  "type": "object"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "cart": {
                        "id": "6771146ca0b7432b",
                        "partnerId": null,
                        "partnerExternalId": null,
                        "paidPrice": 1420,
                        "rawPrice": 1320,
                        "totalPrice": 1420,
                        "isIdentityDocumentRequired": false,
                        "trips": {
                          "outboundTrip": {
                            "id": "1165021",
                            "uuid": "1f945779-4d9d-47ae-a711-c32bbcbf7639",
                            "origin": {
                              "id": 12709,
                              "city": "Pralognan La Vanoise",
                              "country": "France",
                              "station": "PRALOGNAN LA VANOISE Airelles"
                            },
                            "destination": {
                              "id": 549,
                              "city": "Mo\u00fbtiers",
                              "country": "France",
                              "station": "Mo\u00fbtiers - Salins-les-Thermes - Brides-les-Bains"
                            },
                            "originOffset": "+0200",
                            "destinationOffset": "+0200",
                            "priceCents": 1420,
                            "feeCents": 0,
                            "paidPrice": 1420,
                            "departureUTC": 1663561920,
                            "arrivalUTC": 1663566300,
                            "durationMinutes": 73,
                            "companies": [
                              "Altibus"
                            ],
                            "segments": [
                              {
                                "id": "1764084",
                                "company": "Altibus",
                                "mean": "bus",
                                "origin": {
                                  "city": "Pralognan La Vanoise",
                                  "country": "France",
                                  "station": "PRALOGNAN LA VANOISE Airelles",
                                  "lat": 45.3819,
                                  "long": 6.72121
                                },
                                "destination": {
                                  "city": "Mo\u00fbtiers",
                                  "country": "France",
                                  "station": "Mo\u00fbtiers - Salins-les-Thermes - Brides-les-Bains",
                                  "lat": 45.4852,
                                  "long": 6.5291
                                },
                                "isBookable": true,
                                "priceCents": 1420,
                                "feeCents": 100,
                                "includedProviderFeeCents": 120,
                                "departureUTC": 1663561920,
                                "arrivalUTC": 1663566300,
                                "originOffset": "+0200",
                                "destinationOffset": "+0200",
                                "durationMinutes": 73,
                                "redirectionLink": "/redirect?company=21&trip=MOG577&date=19/09/2022&env=production",
                                "isPresale": false
                              }
                            ],
                            "mean": "BUS",
                            "co2g": 669
                          }
                        },
                        "passengers": [
                          {
                            "id": 1445751,
                            "lastName": null,
                            "firstName": null,
                            "title": null,
                            "isCustomer": false,
                            "discountCardId": null,
                            "category": "adults",
                            "discountCards": [],
                            "age": 30,
                            "birthdate": null
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "If cart does not exist",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "carts:client:cartNotFound",
                      "errorMessage": "Cart was not found"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "If an unexpected error occurred",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "general:internal:unexpected",
                      "errorMessage": "An unexpected error occurred"
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Get a cart by its id and its matching order if it exists.",
        "security": [
          {
            "authentication": [
              "admin",
              "bookPartner"
            ]
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "cartId",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "6771146ca0b7432b"
          }
        ]
      },
      "patch": {
        "operationId": "UpdateCart",
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "isAvailable": {
                      "type": "boolean"
                    },
                    "priceCentsDiff": {
                      "type": "number",
                      "format": "double"
                    },
                    "cart": {
                      "$ref": "#/components/schemas/ISerializedCart"
                    }
                  },
                  "required": [
                    "isAvailable",
                    "priceCentsDiff",
                    "cart"
                  ],
                  "type": "object"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "cart": {
                        "id": "6771146ca0b7432b",
                        "partnerId": null,
                        "partnerExternalId": null,
                        "paidPrice": 1180,
                        "totalPrice": 1180,
                        "rawPrice": 1080,
                        "isIdentityDocumentRequired": false,
                        "trips": {
                          "outboundTrip": {
                            "id": "1165021",
                            "uuid": "1f945779-4d9d-47ae-a711-c32bbcbf7639",
                            "origin": {
                              "id": 12709,
                              "city": "Pralognan La Vanoise",
                              "country": "France",
                              "station": "PRALOGNAN LA VANOISE Airelles"
                            },
                            "destination": {
                              "id": 549,
                              "city": "Mo\u00fbtiers",
                              "country": "France",
                              "station": "Mo\u00fbtiers - Salins-les-Thermes - Brides-les-Bains"
                            },
                            "originOffset": "+0200",
                            "destinationOffset": "+0200",
                            "priceCents": 1080,
                            "feeCents": 0,
                            "paidPrice": 1180,
                            "departureUTC": 1663561920,
                            "arrivalUTC": 1663566300,
                            "durationMinutes": 73,
                            "companies": [
                              "Altibus"
                            ],
                            "segments": [
                              {
                                "id": "1764084",
                                "company": "Altibus",
                                "mean": "bus",
                                "origin": {
                                  "city": "Pralognan La Vanoise",
                                  "country": "France",
                                  "station": "PRALOGNAN LA VANOISE Airelles",
                                  "lat": 45.3819,
                                  "long": 6.72121
                                },
                                "destination": {
                                  "city": "Mo\u00fbtiers",
                                  "country": "France",
                                  "station": "Mo\u00fbtiers - Salins-les-Thermes - Brides-les-Bains",
                                  "lat": 45.4852,
                                  "long": 6.5291
                                },
                                "isBookable": true,
                                "priceCents": 1180,
                                "feeCents": 100,
                                "includedProviderFeeCents": 120,
                                "departureUTC": 1663561920,
                                "arrivalUTC": 1663566300,
                                "originOffset": "+0200",
                                "destinationOffset": "+0200",
                                "durationMinutes": 73,
                                "redirectionLink": "/redirect?company=21&trip=MOG577&date=19/09/2022&env=production",
                                "isPresale": false
                              }
                            ],
                            "mean": "BUS",
                            "co2g": 669
                          }
                        },
                        "passengers": [
                          {
                            "id": 1445752,
                            "lastName": "name",
                            "firstName": "firstName",
                            "title": "MR",
                            "isCustomer": true,
                            "discountCardId": null,
                            "category": "adults",
                            "discountCards": [],
                            "age": 30,
                            "birthdate": "1992-09-09T00:00:00.000Z"
                          }
                        ],
                        "customer": {
                          "mail": "mail@mail.com",
                          "title": "MR",
                          "lastName": "lastName",
                          "firstName": "firstName",
                          "birthdate": "1992-09-09T00:00:00.000Z"
                        }
                      },
                      "isAvailable": false
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "If cart does not exist",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "carts:client:cartNotFound",
                      "errorMessage": "Cart was not found"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "If an unexpected error occurred",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "general:internal:unexpected",
                      "errorMessage": "An unexpected error occurred"
                    }
                  }
                }
              }
            }
          }
        },
        "description": "\nUpdates a cart with the provided informations. A price lookup is done everytime a cart is patched.\nKeep in mind that patching a cart with an empty payload WILL NOT reset the cart's data, and will trigger a price lookup with the saved cart's data.",
        "security": [
          {
            "authentication": [
              "admin",
              "bookPartner"
            ]
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "cartId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IUpdateCartPayload"
              },
              "example": {
                "passengers": [
                  {
                    "lastName": "name",
                    "discountCards": [],
                    "isCustomer": true,
                    "title": "MR",
                    "firstName": "firstName",
                    "category": "adults",
                    "age": 25,
                    "birthdate": "1992-09-09"
                  }
                ],
                "customer": {
                  "lastName": "lastName",
                  "mail": "mail@mail.com",
                  "isSubscribedToNewsletter": false,
                  "title": "MR",
                  "firstName": "firstName",
                  "birthdate": "1992-09-09"
                }
              }
            }
          }
        }
      }
    },
    "/booking/v3/carts": {
      "post": {
        "operationId": "CreateCart",
        "responses": {
          "201": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "cart": {
                      "$ref": "#/components/schemas/ISerializedCart"
                    }
                  },
                  "required": [
                    "cart"
                  ],
                  "type": "object"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "cart": {
                        "id": "6771146ca0b7432b",
                        "partnerId": null,
                        "partnerExternalId": null,
                        "paidPrice": 1420,
                        "rawPrice": 1320,
                        "totalPrice": 1420,
                        "isIdentityDocumentRequired": false,
                        "trips": {
                          "outboundTrip": {
                            "id": "1165021",
                            "uuid": "1f945779-4d9d-47ae-a711-c32bbcbf7639",
                            "origin": {
                              "id": 12709,
                              "city": "Pralognan La Vanoise",
                              "country": "France",
                              "station": "PRALOGNAN LA VANOISE Airelles"
                            },
                            "destination": {
                              "id": 549,
                              "city": "Mo\u00fbtiers",
                              "country": "France",
                              "station": "Mo\u00fbtiers - Salins-les-Thermes - Brides-les-Bains"
                            },
                            "originOffset": "+0200",
                            "destinationOffset": "+0200",
                            "priceCents": 1420,
                            "feeCents": 0,
                            "paidPrice": 1420,
                            "departureUTC": 1663561920,
                            "arrivalUTC": 1663566300,
                            "durationMinutes": 73,
                            "companies": [
                              "Altibus"
                            ],
                            "segments": [
                              {
                                "id": "1764084",
                                "company": "Altibus",
                                "mean": "bus",
                                "origin": {
                                  "city": "Pralognan La Vanoise",
                                  "country": "France",
                                  "station": "PRALOGNAN LA VANOISE Airelles",
                                  "lat": 45.3819,
                                  "long": 6.72121
                                },
                                "destination": {
                                  "city": "Mo\u00fbtiers",
                                  "country": "France",
                                  "station": "Mo\u00fbtiers - Salins-les-Thermes - Brides-les-Bains",
                                  "lat": 45.4852,
                                  "long": 6.5291
                                },
                                "isBookable": true,
                                "priceCents": 1420,
                                "feeCents": 100,
                                "includedProviderFeeCents": 120,
                                "departureUTC": 1663561920,
                                "arrivalUTC": 1663566300,
                                "originOffset": "+0200",
                                "destinationOffset": "+0200",
                                "durationMinutes": 73,
                                "redirectionLink": "/redirect?company=21&trip=MOG577&date=19/09/2022&env=production",
                                "isPresale": false
                              }
                            ],
                            "mean": "BUS",
                            "co2g": 669
                          }
                        },
                        "passengers": [
                          {
                            "id": 1445751,
                            "lastName": null,
                            "firstName": null,
                            "title": null,
                            "isCustomer": false,
                            "discountCardId": null,
                            "category": "adults",
                            "discountCards": [],
                            "age": 30,
                            "birthdate": null
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "If trip does not exist or has expired",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "carts:client:tripExpired",
                      "errorMessage": "The trip does not exist or has expired"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "If partner is not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "partnersApi:client:partnerNotFound",
                      "errorMessage": "Partner was not found"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "If an unexpected error occurred",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "general:internal:unexpected",
                      "errorMessage": "An unexpected error occurred"
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Creates a cart. Has to contain at least an outbound trip id and minimal passenger information for it to work.",
        "security": [
          {
            "authentication": [
              "admin",
              "bookPartner"
            ]
          }
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ICreateCartBody"
              },
              "example": {
                "outboundTripId": "1f945779-4d9d-47ae-a711-c32bbcbf7639",
                "passengers": [
                  {
                    "age": 30,
                    "discountCards": []
                  }
                ]
              }
            }
          }
        }
      }
    },
    "/booking/v3/orders": {
      "get": {
        "operationId": "GetOrders",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IGetOrdersResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "orders": [
                        {
                          "id": "8bc8557793fe4447",
                          "orderDate": "2022-09-09T15:30:02.896Z",
                          "cartId": "6771146ca0b7432b",
                          "orderStatus": "CREATED",
                          "paidPrice": 1180,
                          "rawPrice": 1180,
                          "totalPrice": 1880,
                          "trips": {
                            "outboundTrip": {
                              "id": "309496",
                              "origin": {
                                "city": "Pralognan La Vanoise",
                                "country": "France",
                                "station": "PRALOGNAN LA VANOISE Airelles"
                              },
                              "destination": {
                                "city": "Mo\u00fbtiers",
                                "country": "France",
                                "station": "Mo\u00fbtiers - Salins-les-Thermes - Brides-les-Bains"
                              },
                              "priceCents": 1180,
                              "feeCents": 0,
                              "paidPrice": 1180,
                              "departureUTC": 1663561920,
                              "arrivalUTC": 1663566300,
                              "originOffset": "+0200",
                              "destinationOffset": "+0200",
                              "durationMinutes": 73,
                              "companies": [
                                "Altibus"
                              ],
                              "segments": [
                                {
                                  "id": "406308",
                                  "company": "Altibus",
                                  "mean": "bus",
                                  "origin": {
                                    "city": "Pralognan La Vanoise",
                                    "country": "France",
                                    "station": "PRALOGNAN LA VANOISE Airelles",
                                    "lat": 45.3886,
                                    "long": 6.7163
                                  },
                                  "destination": {
                                    "city": "Mo\u00fbtiers",
                                    "country": "France",
                                    "station": "Mo\u00fbtiers - Salins-les-Thermes - Brides-les-Bains",
                                    "lat": 45.4867,
                                    "long": 6.5311
                                  },
                                  "priceCents": 1180,
                                  "feeCents": 100,
                                  "includedProviderFeeCents": 120,
                                  "departureUTC": 1663561920,
                                  "arrivalUTC": 1663566300,
                                  "originOffset": "+0200",
                                  "destinationOffset": "+0200",
                                  "durationMinutes": 73,
                                  "isBookable": true,
                                  "redirectionLink": "/redirect?company=21&trip=MOG577&date=19/09/2022&env=production",
                                  "eTicketUrl": "https://api.tictactrip.eu/booking/v3/orders/8bc8557793fe4447/etickets/79967/download?filename=eticket",
                                  "isPresale": false
                                }
                              ],
                              "mean": "BUS",
                              "co2g": 669
                            }
                          },
                          "passengers": [
                            {
                              "id": 349410,
                              "title": "MR",
                              "lastName": "name",
                              "firstName": "firstName",
                              "category": "adults",
                              "discountCards": [],
                              "isCustomer": true,
                              "identityDocument": null,
                              "age": 30,
                              "birthDay": 9,
                              "birthMonth": 9,
                              "birthYear": 1992,
                              "discountCardId": null
                            }
                          ],
                          "customer": {
                            "mail": "mail@mail.com",
                            "title": "MR",
                            "lastName": "name",
                            "firstName": "firstName",
                            "birthDay": 9,
                            "birthMonth": 9,
                            "birthYear": 1992
                          },
                          "paymentStatus": "ACCEPTED"
                        }
                      ],
                      "pagination": {
                        "currentPage": 1,
                        "itemsPerPage": 30,
                        "totalItems": 1,
                        "totalPages": 1,
                        "hasNextPage": false,
                        "hasPreviousPage": false
                      }
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "If an unexpected error occurred",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "general:internal:unexpected",
                      "errorMessage": "An unexpected error occurred"
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Retrieves a paginated list of all orders for the authenticated partner, ordered by most recent first.\nEach page contains up to 30 orders.",
        "security": [
          {
            "authentication": [
              "admin",
              "bookPartner"
            ]
          }
        ],
        "parameters": [
          {
            "description": "Page number (1-indexed). Defaults to 1.",
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "default": 1,
              "format": "double",
              "type": "number"
            }
          },
          {
            "description": "Number of orders per page. Defaults to 30 and is capped at 30.",
            "in": "query",
            "name": "itemsPerPage",
            "required": false,
            "schema": {
              "default": 30,
              "format": "double",
              "type": "number"
            }
          }
        ]
      },
      "post": {
        "operationId": "CreateOrder",
        "responses": {
          "201": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ICreateOrderResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "order": {
                        "id": "8bc8557793fe4447",
                        "orderDate": "2022-09-09T13:24:15.533Z",
                        "cartId": "6771146ca0b7432b",
                        "orderStatus": "CREATED",
                        "totalPrice": 1180,
                        "rawPrice": 1180,
                        "paidPrice": 1180,
                        "trips": {
                          "outboundTrip": {
                            "id": "309495",
                            "origin": {
                              "city": "Pralognan La Vanoise",
                              "country": "France",
                              "station": "PRALOGNAN LA VANOISE Airelles"
                            },
                            "destination": {
                              "city": "Mo\u00fbtiers",
                              "country": "France",
                              "station": "Mo\u00fbtiers - Salins-les-Thermes - Brides-les-Bains"
                            },
                            "priceCents": 1180,
                            "feeCents": 0,
                            "paidPrice": 1180,
                            "departureUTC": 1663561920,
                            "arrivalUTC": 1663566300,
                            "originOffset": "+0200",
                            "destinationOffset": "+0200",
                            "durationMinutes": 73,
                            "companies": [
                              "Altibus"
                            ],
                            "segments": [
                              {
                                "id": "406307",
                                "company": "Altibus",
                                "mean": "bus",
                                "origin": {
                                  "city": "Pralognan La Vanoise",
                                  "country": "France",
                                  "station": "PRALOGNAN LA VANOISE Airelles",
                                  "lat": 45.3886,
                                  "long": 6.7163
                                },
                                "destination": {
                                  "city": "Mo\u00fbtiers",
                                  "country": "France",
                                  "station": "Mo\u00fbtiers - Salins-les-Thermes - Brides-les-Bains",
                                  "lat": 45.4867,
                                  "long": 6.5311
                                },
                                "priceCents": 1180,
                                "feeCents": 100,
                                "includedProviderFeeCents": 120,
                                "departureUTC": 1663561920,
                                "arrivalUTC": 1663566300,
                                "originOffset": "+0200",
                                "destinationOffset": "+0200",
                                "durationMinutes": 73,
                                "isBookable": true,
                                "redirectionLink": "/redirect?company=21&trip=MOG577&date=19/09/2022&env=production",
                                "isPresale": false
                              }
                            ],
                            "mean": "BUS",
                            "co2g": 669
                          }
                        },
                        "passengers": [
                          {
                            "id": 349409,
                            "title": "MR",
                            "lastName": "name",
                            "firstName": "firstName",
                            "category": "adults",
                            "discountCards": [],
                            "isCustomer": true,
                            "identityDocument": null,
                            "age": 30,
                            "birthDay": 9,
                            "birthMonth": 9,
                            "birthYear": 1992,
                            "discountCardId": null
                          }
                        ],
                        "customer": {
                          "mail": "mail@mail.com",
                          "title": "MR",
                          "lastName": "name",
                          "firstName": "firstName",
                          "birthDay": 9,
                          "birthMonth": 9,
                          "birthYear": 1992
                        },
                        "paymentStatus": "ACCEPTED"
                      },
                      "priceCentsDiff": 0,
                      "isAvailable": true,
                      "expiresAt": "2022-09-09T13:39:15.533Z"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "string",
                      "errorMessage": "string"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "If an unexpected error occurred",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "general:internal:unexpected",
                      "errorMessage": "An unexpected error occurred"
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Creates an order. It uses the cart's information to build the order from it.\nThe cart must have been patched with customer information and at least one passenger.",
        "security": [
          {
            "authentication": [
              "admin",
              "bookPartner"
            ]
          }
        ],
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ICreateOrderPayload"
              },
              "example": {
                "cartId": "6771146ca0b7432b"
              }
            }
          }
        }
      }
    },
    "/booking/v3/orders/{orderId}": {
      "get": {
        "operationId": "GetOrder",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "order": {
                      "$ref": "#/components/schemas/ISerializedOrder"
                    }
                  },
                  "required": [
                    "order"
                  ],
                  "type": "object"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "order": {
                        "id": "8bc8557793fe4447",
                        "orderDate": "2022-09-09T15:30:02.896Z",
                        "cartId": "6771146ca0b7432b",
                        "orderStatus": "CREATED",
                        "paidPrice": 1180,
                        "rawPrice": 1180,
                        "totalPrice": 1880,
                        "trips": {
                          "outboundTrip": {
                            "id": "309496",
                            "origin": {
                              "city": "Pralognan La Vanoise",
                              "country": "France",
                              "station": "PRALOGNAN LA VANOISE Airelles"
                            },
                            "destination": {
                              "city": "Mo\u00fbtiers",
                              "country": "France",
                              "station": "Mo\u00fbtiers - Salins-les-Thermes - Brides-les-Bains"
                            },
                            "priceCents": 1180,
                            "feeCents": 0,
                            "paidPrice": 1180,
                            "departureUTC": 1663561920,
                            "arrivalUTC": 1663566300,
                            "originOffset": "+0200",
                            "destinationOffset": "+0200",
                            "durationMinutes": 73,
                            "companies": [
                              "Altibus"
                            ],
                            "segments": [
                              {
                                "id": "406308",
                                "company": "Altibus",
                                "mean": "bus",
                                "origin": {
                                  "city": "Pralognan La Vanoise",
                                  "country": "France",
                                  "station": "PRALOGNAN LA VANOISE Airelles",
                                  "lat": 45.3886,
                                  "long": 6.7163
                                },
                                "destination": {
                                  "city": "Mo\u00fbtiers",
                                  "country": "France",
                                  "station": "Mo\u00fbtiers - Salins-les-Thermes - Brides-les-Bains",
                                  "lat": 45.4867,
                                  "long": 6.5311
                                },
                                "priceCents": 1180,
                                "feeCents": 100,
                                "includedProviderFeeCents": 120,
                                "departureUTC": 1663561920,
                                "arrivalUTC": 1663566300,
                                "originOffset": "+0200",
                                "destinationOffset": "+0200",
                                "durationMinutes": 73,
                                "isBookable": true,
                                "redirectionLink": "/redirect?company=21&trip=MOG577&date=19/09/2022&env=production",
                                "eTicketUrl": "https://api.tictactrip.eu/booking/v3/orders/8bc8557793fe4447/etickets/79967/download?filename=eticket",
                                "isPresale": false
                              }
                            ],
                            "mean": "BUS",
                            "co2g": 669
                          }
                        },
                        "passengers": [
                          {
                            "id": 349410,
                            "title": "MR",
                            "lastName": "name",
                            "firstName": "firstName",
                            "category": "adults",
                            "discountCards": [],
                            "isCustomer": true,
                            "identityDocument": null,
                            "age": 30,
                            "birthDay": 9,
                            "birthMonth": 9,
                            "birthYear": 1992,
                            "discountCardId": null
                          }
                        ],
                        "customer": {
                          "mail": "mail@mail.com",
                          "title": "MR",
                          "lastName": "name",
                          "firstName": "firstName",
                          "birthDay": 9,
                          "birthMonth": 9,
                          "birthYear": 1992
                        },
                        "paymentStatus": "ACCEPTED"
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "If order does not exist",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "orders:client:orderNotFound",
                      "errorMessage": "Order was not found"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "If an unexpected error occurred",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "general:internal:unexpected",
                      "errorMessage": "An unexpected error occurred"
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Retrieves the order from the given cart ID.",
        "security": [
          {
            "authentication": [
              "admin",
              "bookPartner"
            ]
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "orderId",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "8bc8557793fe4447"
          }
        ]
      }
    },
    "/booking/v3/discountCards": {
      "get": {
        "operationId": "GetDiscountCards",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/IDiscountCard"
                  },
                  "type": "array"
                },
                "examples": {
                  "Example 1": {
                    "value": [
                      {
                        "id": "TTT_ADULT_PASS",
                        "label": "Avantage Adulte",
                        "visibility": 7,
                        "cardCode": "WEEKEND_PASS",
                        "isIdRequired": true
                      },
                      {
                        "id": "TTT_VSC_YOUNG_PASS",
                        "label": "Avantage Jeune",
                        "visibility": 6,
                        "cardCode": "YOUNG_PASS",
                        "isIdRequired": true
                      },
                      {
                        "id": "TTT_VSC_SENIOR_PASS",
                        "label": "Avantage Senior",
                        "visibility": 5,
                        "cardCode": "SENIOR_PASS",
                        "isIdRequired": true
                      },
                      {
                        "id": "TTT_VSC_FAM30",
                        "label": "Famille nombreuse 30%",
                        "visibility": 4,
                        "cardCode": "FAM30",
                        "isIdRequired": false
                      },
                      {
                        "id": "TTT_VSC_FAM40",
                        "label": "Famille nombreuse 40%",
                        "visibility": 3,
                        "cardCode": "FAM40",
                        "isIdRequired": false
                      },
                      {
                        "id": "TTT_VSC_FAM50",
                        "label": "Famille nombreuse 50%",
                        "visibility": 2,
                        "cardCode": "FAM50",
                        "isIdRequired": false
                      },
                      {
                        "id": "TTT_VSC_FAM75",
                        "label": "Famille nombreuse 75%",
                        "visibility": 1,
                        "cardCode": "FAM75",
                        "isIdRequired": false
                      }
                    ]
                  }
                }
              }
            }
          },
          "500": {
            "description": "If an unexpected error occurred",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "general:internal:unexpected",
                      "errorMessage": "An unexpected error occurred"
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Returns all available discount cards.",
        "security": [],
        "parameters": []
      }
    },
    "/booking/v3/orders/{orderId}/book": {
      "post": {
        "operationId": "CreateBook",
        "responses": {
          "202": {
            "description": "Booking in progress",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "order": {
                      "$ref": "#/components/schemas/ISerializedOrder"
                    }
                  },
                  "required": [
                    "order"
                  ],
                  "type": "object"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "order": {
                        "id": "8bc8557793fe4447",
                        "orderDate": "2022-09-09T15:30:02.896Z",
                        "cartId": "6771146ca0b7432b",
                        "orderStatus": "PENDING_BOOKING",
                        "paidPrice": 1180,
                        "rawPrice": 1180,
                        "totalPrice": 1880,
                        "trips": {
                          "outboundTrip": {
                            "id": "309496",
                            "origin": {
                              "city": "Pralognan La Vanoise",
                              "country": "France",
                              "station": "PRALOGNAN LA VANOISE Airelles"
                            },
                            "destination": {
                              "city": "Mo\u00fbtiers",
                              "country": "France",
                              "station": "Mo\u00fbtiers - Salins-les-Thermes - Brides-les-Bains"
                            },
                            "priceCents": 1180,
                            "feeCents": 0,
                            "paidPrice": 1180,
                            "departureUTC": 1663561920,
                            "arrivalUTC": 1663566300,
                            "originOffset": "+0200",
                            "destinationOffset": "+0200",
                            "durationMinutes": 73,
                            "companies": [
                              "Altibus"
                            ],
                            "segments": [
                              {
                                "id": "406308",
                                "company": "Altibus",
                                "mean": "bus",
                                "origin": {
                                  "city": "Pralognan La Vanoise",
                                  "country": "France",
                                  "station": "PRALOGNAN LA VANOISE Airelles",
                                  "lat": 45.3886,
                                  "long": 6.7163
                                },
                                "destination": {
                                  "city": "Mo\u00fbtiers",
                                  "country": "France",
                                  "station": "Mo\u00fbtiers - Salins-les-Thermes - Brides-les-Bains",
                                  "lat": 45.4867,
                                  "long": 6.5311
                                },
                                "priceCents": 1180,
                                "feeCents": 100,
                                "includedProviderFeeCents": 120,
                                "departureUTC": 1663561920,
                                "arrivalUTC": 1663566300,
                                "originOffset": "+0200",
                                "destinationOffset": "+0200",
                                "durationMinutes": 73,
                                "isBookable": true,
                                "redirectionLink": "/redirect?company=21&trip=MOG577&date=19/09/2022&env=production",
                                "isPresale": false
                              }
                            ],
                            "mean": "BUS",
                            "co2g": 669
                          }
                        },
                        "passengers": [
                          {
                            "id": 349410,
                            "title": "MR",
                            "lastName": "name",
                            "firstName": "firstName",
                            "category": "adults",
                            "discountCards": [],
                            "isCustomer": true,
                            "identityDocument": null,
                            "age": 30,
                            "birthDay": 9,
                            "birthMonth": 9,
                            "birthYear": 1992,
                            "discountCardId": null
                          }
                        ],
                        "customer": {
                          "mail": "mail@mail.com",
                          "title": "MR",
                          "lastName": "name",
                          "firstName": "firstName",
                          "birthDay": 9,
                          "birthMonth": 9,
                          "birthYear": 1992
                        },
                        "paymentStatus": "ACCEPTED"
                      }
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "string",
                      "errorMessage": "string"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "If an unexpected error occurred",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "general:internal:unexpected",
                      "errorMessage": "An unexpected error occurred"
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Triggers an asynchronous booking process.",
        "security": [
          {
            "authentication": [
              "admin",
              "bookPartner"
            ]
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "orderId",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "8bc8557793fe4447"
          }
        ]
      }
    },
    "/booking/v3/orders/{orderId}/ticket": {
      "get": {
        "operationId": "DownloadTicket",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "byte"
                }
              }
            }
          },
          "404": {
            "description": "If no order is found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "orderEtickets:client:orderNotFound",
                      "errorMessage": "Order was not found"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "If an unexpected error occurred",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "general:internal:unexpected",
                      "errorMessage": "An unexpected error occurred"
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Download an order Eticket and gives the name provided to the file.",
        "security": [
          {
            "authentication": [
              "admin",
              "bookPartner"
            ]
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "orderId",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "8bc8557793fe4447"
          },
          {
            "in": "query",
            "name": "filename",
            "required": false,
            "schema": {
              "default": "ticket",
              "type": "string"
            },
            "example": "myTicketName"
          }
        ]
      }
    },
    "/booking/v3/orderTickets/{orderTicketId}/cancellation/conditions": {
      "get": {
        "operationId": "PartnerCancellationConditions",
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/IBookingCancellationConditions"
                    },
                    {
                      "properties": {
                        "voucherAmountCents": {
                          "type": "number",
                          "format": "double"
                        }
                      },
                      "type": "object"
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "If you're accessing an order ticket you haven't emitted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "partnersApi:client:notIssuer",
                      "errorMessage": "The user is not the issuer of this entity"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "If no order is found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "orderEtickets:client:orderNotFound",
                      "errorMessage": "Order was not found"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "If cancelling a ticket that shouldn't be canceled",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "bookableTickets:client:bookableTicketNotCancellable",
                      "errorMessage": "Bookable ticket is not cancellable"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "If an unexpected error occurred",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "general:internal:unexpected",
                      "errorMessage": "An unexpected error occurred"
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Get cancellation conditions.",
        "security": [
          {
            "authentication": [
              "admin",
              "bookPartner"
            ]
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "orderTicketId",
            "required": true,
            "schema": {
              "format": "double",
              "type": "number"
            }
          }
        ]
      }
    },
    "/booking/v3/orderTickets/{orderTicketId}/cancellation": {
      "put": {
        "operationId": "PartnerCancelBooking",
        "responses": {
          "200": {
            "description": "The status of the cancellation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderTicketCancellationStatus"
                }
              }
            }
          },
          "403": {
            "description": "If you're accessing an order ticket you haven't emitted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "partnersApi:client:notIssuer",
                      "errorMessage": "The user is not the issuer of this entity"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "If no order is found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "orderEtickets:client:orderNotFound",
                      "errorMessage": "Order was not found"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "If cancelling a ticket that shouldn't be canceled",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "bookableTickets:client:bookableTicketNotCancellable",
                      "errorMessage": "Bookable ticket is not cancellable"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "If an unexpected error occurred",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IErrorCodeResponse"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "errorKey": "general:internal:unexpected",
                      "errorMessage": "An unexpected error occurred"
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "authentication": [
              "admin",
              "bookPartner"
            ]
          }
        ],
        "parameters": [
          {
            "description": "The order ticket id",
            "in": "path",
            "name": "orderTicketId",
            "required": true,
            "schema": {
              "format": "double",
              "type": "number"
            }
          }
        ]
      }
    }
  },
  "servers": [
    {
      "url": "/"
    }
  ]
}