openapi: 3.0.3
info:
  title: Passolution Dataservice API
  version: 2.0.0
  contact:
    name: Passolution
    url: https://passolution.eu
    email: info@passolution.eu
  description: >
    The Passolution Dataservice API is a RESTful interface to retrieve entry
    requirements, visa regulations, health information and more for destinations
    around the world.<br/><br/>


    # Introduction

    ### Target Group

    Our API is suitable for suppliers of front and back office systems, as well
    as tour operators and OTAs who wish to deliver data from Passolution within
    the framework of the EU Package Travel Directive via their systems to travel
    agencies or end customers.<br/><br/>


    ### Available Languages

    The required data can be supplied in different languages. Currently the
    following languages are supported:

    * German

    * English

    * Dutch

    * Bulgarian

    * Czech

    * Danish

    * Finnish

    * French

    * Greek

    * Hungarian

    * Italian

    * Norwegian

    * Polish

    * Portuguese

    * Romanian

    * Russian

    * Slovak

    * Slovenian

    * Spanish

    * Swedish

    * Turkish

    <br/>

    <br/>


    ### API Requests

    Our API is stateless and accepts HTTP GET & POST requests. The request body
    can be sent in JSON data format.<br/><br/>


    ### API Response

    The API response is in JSON data format.


    #### HTTP Status Codes

    | Code | Meaning | Description |

    | ------- | ------- | --------|

    | 200 | OK | The API request is successful. |

    | 204 | NO CONTENT | There is no content available for the request. |

    | 401 | AUTHORIZATION ERROR | Invalid or expired credentials used. |

    | 403 | FORBIDDEN | No permission to do the operation. |

    | 404 | METHOD NOT ALLOWED | The specified method is not allowed. |

    | 429 | TOO MANY REQUESTS | Number of API requests for the 24 hour period is
    exceeded or the concurrency limit of the user for the app is exceeded. |

    | 500 | INTERNAL SERVER ERROR | Generic error that is encountered due to an
    unexpected server error. |


    # Authentication

    Our API (api.passolution.eu) requires bearer token (access token) to be sent
    as HTTP Authorization header, ie:

    ```text

    Authorization: Bearer <access-token>

    ```

    To facilitate bearer / access token generation, our authorization server
    web.passolution.eu implements OAuth 2 specification. It authenticates
    Passolution users and then allows users to authorize third party
    applications (eg: your app) to access Passolution API on their behalf for
    providing services to them that rely on Passolution data.


    **If you wish to provide services to our users, kindly contact us to get
    your OAuth details** (Client ID & Secret) which you will need for requesting
    access to API on a user's behalf.<br/><br/>


    # OAuth Authentication

    The Passolution Dataservice API uses OAuth 2.0 protocol, an
    industry-standard protocol for authentication & authorization of third-party
    applications (eg: your app) to gain delegated access to API (Passolution)
    resources on a user's (Passoution) behalf.


    #### OAuth Benefits

    - Third-party applications are not required to handle or store user
    credentials, which can be a security risk.

    - Third-party applications gain delegated access, i.e., access only to
    resources authorized by user.

    - Users can revoke an application's access anytime.

    - OAuth 2.0 access tokens expire after a set period of time which reduces
    risk, eg: when old access tokens are leaked in a security breach. If an
    application faces a security breach, all its access tokens can be disabled
    at once (preventing unauthorized access) without affecting user's or other
    application's access.


    #### How OAuth 2.0 works?

    ![OAuth Process](https://api.passolution.eu/images/oauth_process.png "OAuth
    Process")

    <a href="https://api.passolution.eu/images/oauth_process.png"
    target="_blank">Open Full Image</a>


    #### OAuth Terminology

    You should familiarize yourself with following terms to help understand the
    OAuth authorization flow before you start using Passolution Dataservice API:


    ##### Protected Resources

    The Passolution Dataservice resources, such as Entry, Visa, Transit Visa &
    Health Requirements etc.


    ##### Resource Server

    The Passolution API Service (api.passolution.eu) that hosts protected
    resources.


    ##### OAuth Client

    An application (eg: your app) implementing OAuth protocol that sends
    requests to the Resource Server (Passolution API) to access protected
    resources on behalf of a Passolution user.


    ##### Authorization Server

    Passolution Service (web.passolution.eu) that authenticates users and allows
    users to authorize an OAuth Client (your app) to access Resource Server
    (Passolution API) on their behalf. After authorization, the OAuth Client
    (your app) can contact this server to get user's Access Token.


    ##### Access Token

    Access Token allows access to Resource Server (Passolution API) on a user's
    behalf.


    It is a long string of seemingly random characters that actually is encoded
    data which allows Resource Server (Passolution API) to know which OAuth
    Client is accessing the API service on which user's behalf.


    ##### Refresh Token

    A token that can be used to obtain a new Access Token by contacting the
    Authorization Server (web.passolution.eu). A new token should be generated
    using the refresh token before the refresh token expires.


    ##### Client ID

    A unique ID assigned to an OAuth Client application used in OAuth protocol.


    ##### Client Secret

    A shared secret value that allows Authorization Server (web.passolution.eu)
    to authenticate an OAuth Client application during OAuth protocol data
    exchange.


    ##### Authorization Code

    Once a Passolution user authorizes your OAuth Client application, our
    Authorization Server (web.passolution.eu) will generate and send an
    Authorization Code to your application. Your application can then contact
    the Authorization Server to exchange this Authorization Code with Access
    Token & Refresh Token for the Passolution user.


    ##### Grant Types

    Grant Types are different ways an OAuth Client (eg: your application) can
    request access token. There are several OAuth Grant Types which are
    described below.


    # OAuth Grant Types

    OAuth Grant Types are different ways you can get access token for your own
    Passolution account or on behalf of a Passolution user. They have different
    limitations and use cases which are explained below.


    #### Authorization Code

    This is the most widely used grant type for **applications that require
    delegated access** (access on a user's behalf) and **have its own servers**
    that can directly interact with our Authorization Server
    (web.passolution.eu) to get access tokens.


    #### Authorization Code Grant With PKCE

    This grant type is used when you **don't have your own servers** that can
    securely store your OAuth Client Secret & user's access tokens but still
    **need delegated access** on Passolution user's behalf.


    For example, if you have a Single Page App without backend servers, you can
    get access token with this grant type and store the access token for user in
    their browser itself (Web Storage API).


    #### Client Credentials

    This grant type can be used to **get access token for your own Passolution
    account only**. Kindly note that this grant type does not provide access on
    other Passolution user's behalf.


    # Requesting Access Token

    **Note**: If you are unsure which Grant Type / method of requesting Access
    Token you need to use, kindly go over the 'OAuth Grant Types' section first.


    **If you don't have your OAuth details, kindly contact us with the following
    details about your application**:

    | Detail | Explanation |

    | ------- | ------- |

    | **Website**: | Website for general information about your product /
    service,<br/>**eg**: https://example.com |

    | **Redirect&nbsp;URL**: | Endpoint where your application / service will
    handle OAuth responses sent by Passolution Authorization Server<br/>**eg**:
    https://example.com/handle-oauth-authorization |

    | **Grant&nbsp;Type**: | The Grant Type your application needs to use, check
    'OAuth Grant Types' section for details.<br/>**eg**: Authorization Code |


    We will provide you the following OAuth details after setting up OAuth
    Client for your application:

    | Detail | Explanation |

    | ------- | ------- |

    | **Client&nbsp;ID**: | A unique ID assigned to your OAuth Client
    application to be used in OAuth protocol. |

    | **Client&nbsp;Secret**: | A shared secret value that allows Authorization
    Server (web.passolution.eu) to authenticate your OAuth Client application
    during OAuth protocol data exchange.<br/>**It should not be stored outside
    of your secure servers** |


    We will now go over the OAuth Grant Types (method of requesting Access
    Token) and discuss how they can be implemented in your application.


    Here are some endpoints on our OAuth Authorization Server that your
    application will need to interact with:

    | OAuth Endpoint | URL |

    | ------- | ------- |

    | **Authorization URL**: | https://web.passolution.eu/oauth/authorize |

    | **Token URL**: | https://web.passolution.eu/oauth/token |

    | **Token Refresh URL**: | https://web.passolution.eu/oauth/token |


    ## Authorization Code

    For this grant type (read '_OAuth Grant Types_' section), your application
    will have to redirect users to Passolution's Authorization Server's
    Authorization URL with following parameters:

    | Parameter | Description |

    | ------- | ------- |

    | client_id | Your OAuth Client ID |

    | redirect_uri | Redirect URL that you provided us when requesting OAuth
    details for your application. |

    | response_type | 'response_type' parameter should be set to 'code' for
    Authorization Code Grant Type. |

    | scope | 'scope' parameter should be set to '*' to request access to all
    API resources. |

    | state | 'state' parameter should contain a random string that you store to
    user's session storage and verify later when handling authorization response
    received on your Redirect URL endpoint sent as redirect_uri parameter. |


    **state** parameter code logic example:

    ```javascript

    const userState = RandomString::generate(); // eg: G8TZWEjUmuWFZgtHZ5gs

    UserSession::set('user-oauth-state', userState);

    Redirect::toUrl('https://web.passolution.eu/oauth/authorize?...&state=' +
    userState);

    ```


    Example:

    ```text

    https://web.passolution.eu/oauth/authorize?client_id=your-client-id&redirect_uri=https://your-website.example.com/handle-oauth-authorization&response_type=code&scope=%2A&state=random-state-for-user

    ```


    At this stage, on our Authorization Server, the user will be asked to login
    (if not already logged in) and then they will be able to decide if they want
    to allow access to your application. Once they allow access, they will be
    redirected to your Redirect URL with following parameters:

    | Parameter | Description |

    | ------- | ------- |

    | state | This is the random string that you sent when redirecting user to
    Authorization Server. You should have stored it in user's session storage
    and should now **confirm that the values received matches the stored
    value**. |

    | code | This is authorization code that you can use to get access token as
    explained in next step. |


    Example:

    ```text

    https://your-website.example.com/handle-oauth-authorization?state=random-state-that-was-sent-for-user&code=authorization_code

    ```


    **state** parameter verification logic example:

    ```javascript

    // stored earlier when redirecting user for login

    const userState = UserSession::get('user-oauth-state');

    if(userState == Url::getParameter('state')) {
      // exchange authorization code for Access Token as described below.
    }

    else {
      throw Exception('OAuth Login: Invalid state parameter received.');
    }

    ```

    <br/>


    To exchange the authorization code (code parameter received on Redirect URL)
    for Access Token & Refresh Token for the user, you have to make a POST
    request to Authorization Server's Token URL
    (https://web.passolution.eu/oauth/token), eg:

    ```http request

    POST https://web.passolution.eu/oauth/token

    Content-Type: application/json


    {
      "client_id": "your-client-id",
      "client_secret": "your-client-secret",
      "grant_type": "authorization_code",
      "redirect_uri": "https://your-website.example.com/handle-oauth-authorization",
      "code": "authorization-code"
    }

    ```

    Data fields used in the request body above are described below:

    | Parameter | Description |

    | ------- | ------- |

    | client_id | Your OAuth Client ID |

    | client_secret | Your OAuth Client Secret<br/>**It should not be stored
    outside of your secure servers** |

    | grant_type | 'grant_type' field should be set to 'authorization_code' for
    the Authorization Code Grant Type |

    | redirect_uri | Redirect URL of the endpoint where the authorization
    response was received. |

    | code | The authorization code received as 'code' parameter to your
    Redirect URL endpoint |


    The Token URL endpoint will respond with JSON response containing following
    fields:

    ```json

    {
      "expires_in": 31536000,
      "access_token": "eyJ...",
      "refresh_token": "def..."
    }

    ```

    | Parameter | Description |

    | ------- | ------- |

    | expires_in | Number of seconds after which the access token will expire. |

    | access_token | Access Token for the User |

    | refresh_token | Refresh Token for the User which can be used to generate
    new Access Token before expiry |


    ## Authorization Code Grant With PKCE

    For this grant type (read '_OAuth Grant Types_' section), your application
    will have to redirect users to Passolution's Authorization Server's
    Authorization URL with following parameters:

    | Parameter | Description |

    | ------- | ------- |

    | client_id | Your OAuth Client ID |

    | redirect_uri | Redirect URL that you provided us when requesting OAuth
    details for your application. |

    | response_type | 'response_type' parameter should be set to 'code' for
    Authorization Code Grant Type. |

    | scope | 'scope' parameter should be set to '*' to request access to all
    API resources. |

    | state | 'state' parameter should contain a random string that you store to
    user's session storage and verify later when handling authorization response
    received on your Redirect URL endpoint sent as redirect_uri parameter. |

    | code_challenge | 'code_challenge' parameter value should be Base64 encoded
    value (URL safe characters) of SHA256 hash of a randomly generated 'Code
    Verifier'. The Code Verifier should be randomly generated string of length
    between 43 and 128 characters. Trailing '=' characters as well as any
    whitespace or line breaks should be removed from the Base64 encoded
    value.<br/>**See code logic below** |

    | code_challenge_method | 'code_challenge_method' parameter should be set to
    'S256' specifying the SHA256 hash algorithm being used. |


    **state & code_challenge** parameter code logic example:

    ```javascript

    const userState = RandomString::generate(); // eg: G8TZWEjUmuWFZgtHZ5gs

    UserSession::set('user-oauth-state', userState);


    const codeVerifierLength = 128;

    const codeVerifier = RandomString::generate(codeVerifierLength); // eg:
    L5nD...UKbN

    UserSession::set('user-oauth-code-verifier', codeVerifier);


    const hashBinary = SHA256::hashAsBinary(codeVerifier); // SHA256 hash as
    binary data

    let codeChallenge = Base64::encode(hashBinary); // Base64 encode SHA256 hash


    // Removing trailing '=' characters and replace URL unsafe characters ('+' &
    '/')

    codeChallenge = String::removeFromEnd(codeChallenge, '=');

    codeChallenge = String::replace(codeChallenge, '+', '-');

    codeChallenge = String::replace(codeChallenge, '/', '_');


    Redirect::toUrl('https://web.passolution.eu/oauth/authorize?...&state=' +
    userState + '&code_challenge=' + codeChallenge);

    ```


    Example:

    ```text

    https://web.passolution.eu/oauth/authorize?client_id=your-client-id&redirect_uri=https://your-website.example.com/handle-oauth-authorization&response_type=code&scope=%2A&state=random-state-for-user&code_challenge=code-challange&code_challenge_method=S256

    ```


    At this stage, on our Authorization Server, the user will be asked to login
    (if not already logged in) and then they will be able to decide if they want
    to allow access to your application. Once they allow access, they will be
    redirected to your Redirect URL with following parameters:

    | Parameter | Description |

    | ------- | ------- |

    | state | This is the random string that you sent when redirecting user to
    Authorization Server. You should have stored it in user's session storage
    and should now **confirm that the values received matches the stored
    value**. |

    | code | This is authorization code that you can use to get access token as
    explained in next step. |


    Example:

    ```text

    https://your-website.example.com/handle-oauth-authorization?state=random-state-that-was-sent-for-user&code=authorization_code

    ```


    **state** parameter verification logic example:

    ```javascript

    // stored earlier when redirecting user for login

    const userState = UserSession::get('user-oauth-state');

    if(userState == Url::getParameter('state')) {
      // exchange authorization code for Access Token as described below.
    }

    else {
      throw Exception('OAuth Login: Invalid state parameter received.');
    }

    ```

    <br/>


    To exchange the authorization code (code parameter received on Redirect URL)
    for Access Token & Refresh Token for the user, you have to make a POST
    request to Authorization Server's Token URL
    (https://web.passolution.eu/oauth/token), eg:

    ```http request

    POST https://web.passolution.eu/oauth/token

    Content-Type: application/json


    {
      "client_id": "your-client-id",
      "grant_type": "authorization_code",
      "redirect_uri": "https://your-website.example.com/handle-oauth-authorization",
      "code": "authorization-code",
      "code_verifier": "code-verifier"
    }

    ```

    Data fields used in the request body above are described below:

    | Parameter | Description |

    | ------- | ------- |

    | client_id | Your OAuth Client ID |

    | grant_type | 'grant_type' field should be set to 'authorization_code' for
    the Authorization Code Grant Type |

    | redirect_uri | Redirect URL of the endpoint where the authorization
    response was received. |

    | code | The authorization code received as 'code' parameter to your
    Redirect URL endpoint |

    | code_verifier | The Code Verifier (non hashed value) that we randomly
    generated earlier for user and stored in session storage. |


    The Token URL endpoint will respond with JSON response containing following
    fields:

    ```json

    {
      "expires_in": 31536000,
      "access_token": "eyJ...",
      "refresh_token": "def..."
    }

    ```

    | Parameter | Description |

    | ------- | ------- |

    | expires_in | Number of seconds after which the access token will expire. |

    | access_token | Access Token for the User |

    | refresh_token | Refresh Token for the User which can be used to generate
    new Access Token before expiry |


    ## Client Credentials

    Since this grant type (read '_OAuth Grant Types_' section) only allows
    access to your own account, you only need your OAuth Client ID & Client
    Secret to generate an Access Token using the Token URL endpoint
    (https://web.passolution.eu/oauth/token):


    ```http request

    POST https://web.passolution.eu/oauth/token

    Content-Type: application/json


    {
      "client_id": "your-client-id",
      "client_secret": "your-client-secret",
      "grant_type": "client_credentials"
    }

    ```


    | Parameter | Description |

    | ------- | ------- |

    | client_id | Your OAuth Client ID |

    | client_secret | Your OAuth Client Secret<br/>**It should not be stored
    outside of your secure servers** |

    | grant_type | 'grant_type' field should be set to 'client_credentials' when
    using Client Credentials Grant Type |


    <br/>


    The Token URL endpoint will respond with JSON response containing following
    fields:

    ```json

    {
      "expires_in": 31536000,
      "access_token": "eyJ..."
    }

    ```

    | Parameter | Description |

    | ------- | ------- |

    | expires_in | Number of seconds after which the access token will expire. |

    | access_token | Access Token for the OAuth Client Passolution Account |


    # Using Access Token

    The Access Token received from Token URL can be used to access API by
    sending it in Authorization header as a Bearer token, eg:

    ```http request

    GET https://api.passolution.eu/api/v2/infosystem/passolution

    Authorization: Bearer eyJ...

    ```


    # Refreshing Access Token

    The Refresh Token received with Access Token can be used to get a **new
    Access Token & Refresh Token** before the expiry by making a POST request to
    Authorization Server's Token Refresh URL
    (https://web.passolution.eu/oauth/token):


    > **Note**: A Refresh Token can be used only once. Make sure to store new
    Refresh Token received when refreshing an Access Token for future use.


    ```http request

    POST https://web.passolution.eu/oauth/token

    Content-Type: application/json


    {
      "client_id": "your-client-id",
      "client_secret": "your-client-secret",
      "grant_type": "refresh_token",
      "refresh_token": "refresh-token-value"
    }

    ```

    > **Note**: The Token Refresh URL is rate limited to 300 requests per
    minute.


    | Parameter | Description |

    | ------- | ------- |

    | client_id | Your OAuth Client ID |

    | client_secret | Your OAuth Client Secret<br/>**It should not be stored
    outside of your secure servers** |

    | grant_type | 'grant_type' field should be set to 'refresh_token' when
    using refresh token for generating new Access Token |

    | refresh_token | The refresh token that was received when exchanging
    'authorization code' for Access Token |


    <br/>


    The Refresh Token URL endpoint will respond with JSON response containing
    following fields:

    ```json

    {
      "expires_in": 31536000,
      "access_token": "eyJ...",
      "refresh_token": "def..."
    }

    ```

    | Parameter | Description |

    | ------- | ------- |

    | expires_in | Number of seconds after which the new access token will
    expire. |

    | access_token | New Access Token for the User |

    | refresh_token | **New Refresh Token** for the User which can be used to
    generate new Access Token again |


    > **Note**: A Refresh Token can be used only once. Make sure to store the
    new Refresh Token received in response for future use.


    # Important Note

    **OAuth Client Secret, Access Tokens / Bearer Tokens must be kept
    confidential**. \

    \

    **DO NOT** expose these details anywhere in public forums, public
    repositories or on your website's client-side code like HTML or JavaScript.
    Exposing it to the public may lead to data theft or loss.


    <br/>

    <br/>

    <br/>
servers:
  - url: https://api.passolution.eu/api/v2
paths:
  /health:
    get:
      security: []
      tags:
        - API Server
      summary: Health Information
      description: >-
        You may ping this endpoint to confirm that Passolution API is working &
        accessible.
      operationId: checkHealth
      responses:
        default:
          description: API Health Information
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      error:
                        type: boolean
                        default: false
                      status:
                        type: string
                        enum:
                          - healthy
                          - unhealthy
                  - type: object
                    properties:
                      requestid:
                        type: string
                        format: uuid
                        description: Unique Request ID identifying this request.
                      responsetime:
                        type: number
                        description: Time taken to generate response.
  /version:
    get:
      security: []
      tags:
        - API Server
      summary: Version Information
      description: Get the API version number
      operationId: checkVersion
      responses:
        default:
          description: API Version Information
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      error:
                        type: boolean
                        default: false
                      version:
                        type: string
                        example: V2.7
                      commit_hash:
                        type: string
                        example: eab87573
                  - $ref: >-
                      #/paths/~1health/get/responses/default/content/application~1json/schema/allOf/1
  /account/subscription:
    get:
      summary: Subscription
      description: >-
        Get information about user's subscription of Passolution service
        including available features.
      operationId: getAccountSubscription
      security: []
      tags:
        - Account Information
      responses:
        '200':
          description: Account subscription information.
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                      - standard
                      - premium
                    example: premium
                  features:
                    type: array
                    items:
                      type: string
                    example:
                      - content.country
                      - content.cruise
                      - content.individual
                      - content.tour_operator
                      - customer.send_emails
                      - customer.travel_detail_link.create
                      - customer.travel_detail_link.manage
                      - customer.travel_detail_link.advert.manage
                      - customer.travel_detail_link.email_subscriptions
                      - customer.travel_detail_link.inspiration.manage
                      - customer.travel_detail_link.media.manage
                      - embed.corona
                      - subscription
        '401':
          description: Authentication information not provided or invalid.
  /countries:
    get:
      summary: Countries
      description: Get list of countries with basic information.
      operationId: getCountries
      security: []
      tags:
        - Basic Data - General
      parameters:
        - name: code
          description: Search a country by its 2 character country code (ISO 3166-1).
          required: false
          in: query
          schema:
            type: string
        - name: limit
          description: Limit number of records returned in response.
          required: false
          in: query
          schema:
            type: integer
            format: int32
            default: 10
        - name: sort_by
          description: Specify column to sort records by.
          required: false
          in: query
          schema:
            type: string
            default: code
            enum:
              - code
              - continent
              - capital
              - population
              - area
              - coastline
              - currency
              - governmentform
              - dialingprefix
              - birthrate
              - deathrate
              - lifeexpectancy
        - name: sort_order
          description: Specify order for sorting.
          required: false
          in: query
          schema:
            type: string
            default: asc
            enum:
              - asc
              - desc
        - name: page
          description: Specify page number to retrieve records of a particular page.
          required: false
          in: query
          schema:
            type: integer
            format: int32
            default: 1
        - name: active
          description: Get only active records in response.
          required: false
          in: query
          schema:
            type: integer
            format: int32
            default: 1
      responses:
        default:
          description: List of countries with basic information.
  /countries/de/locations:
    parameters:
      - name: zip_code
        description: Get locations matching the given zip code.
        required: false
        in: query
        schema:
          type: string
          example: 12683
      - name: zip_codes
        description: Get locations matching the given comma separated zip codes.
        required: false
        in: query
        schema:
          type: string
          example: 12683,78267
      - name: limit
        required: false
        in: query
        schema:
          type: integer
          format: int32
          default: 20
    get:
      summary: Get Location Information
      operationId: getCountryLocations
      tags:
        - Basic Data - General
      description: |
        Get list of locations optionally filtered by zip code. \
        **Note**: Only German locations are currently supported.
      responses:
        '200':
          description: List of matching locations.
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      locations:
                        type: array
                        items:
                          type: object
                          properties:
                            name:
                              type: string
                              example: Biesdorf
                            zip_code:
                              type: integer
                              format: int32
                              example: 12683
                            state:
                              type: string
                              example: Berlin
                  - type: object
                    properties:
                      links:
                        type: object
                        properties:
                          first:
                            type: string
                            format: url
                          prev:
                            type: string
                            format: url
                          next:
                            type: string
                            format: url
                          last:
                            type: string
                            format: url
                      meta:
                        type: object
                        properties:
                          per_page:
                            type: number
                            format: int32
                          current_page:
                            type: number
                            format: int32
                          from:
                            type: number
                            format: int32
                          to:
                            type: number
                            format: int32
                          total:
                            type: number
                            format: int32
                          last_page:
                            type: number
                            format: int32
                          path:
                            type: string
                            format: url
                  - type: object
                    properties:
                      requestid:
                        type: string
                        format: uuid
                        description: Unique Request ID identifying this request.
                      responsetime:
                        type: number
                        description: Time taken to generate response.
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
  /nationalities:
    get:
      summary: Nationalities
      description: Get list of nationalities with basic information.
      operationId: getNationalities
      security: []
      tags:
        - Basic Data - General
      parameters:
        - $ref: '#/paths/~1countries/get/parameters/1'
        - name: sort_by
          description: Specify column to sort records by.
          required: false
          in: query
          schema:
            type: string
            default: code
        - $ref: '#/paths/~1countries/get/parameters/3'
        - $ref: '#/paths/~1countries/get/parameters/4'
        - name: active
          description: Get only active records in response.
          required: false
          in: query
          schema:
            type: integer
            format: int32
            default: 1
      responses:
        default:
          description: List of nationalities.
  /languages:
    get:
      summary: Languages
      description: 'Get list of available languages. '
      operationId: getLanguages
      security: []
      tags:
        - Basic Data - General
      parameters:
        - $ref: '#/paths/~1countries/get/parameters/1'
        - name: sort_by
          description: Column to sort records by.
          required: false
          in: query
          schema:
            type: string
            default: code
            enum:
              - code
              - content
              - active
        - $ref: '#/paths/~1countries/get/parameters/3'
        - $ref: '#/paths/~1countries/get/parameters/4'
        - name: active
          description: get active records
          required: false
          in: query
          schema:
            type: integer
            format: int32
            default: 1
      responses:
        default:
          description: no response description was provided for this operation
  /auth/login/generate_link:
    get:
      summary: Login Link Generation
      description: >
        Allows generation of a link which logs a user into Passolution website
        directly and redirects to provided page.

        The generated link is only **valid for 30 seconds** as it is supposed to
        be consumed directly.


        Using account access token, you can generate login link of any user of
        the account:

        ```text

        .../auth/login/generate_link?page=/&username=user@example.com

        ```


        If you have user access token, you can generate login link for user
        directly:

        ```

        .../auth/login/generate_link?page=/

        ```
      operationId: generateLoginLink
      tags:
        - Account Information
      parameters:
        - name: page
          description: Page to redirect to after logging in the user.
          in: query
          schema:
            type: string
            example: /
        - name: username
          description: >-
            Username to generate login link for. Only allowed when using account
            access token.
          in: query
          schema:
            type: string
            example: user@example.com
      responses:
        '200':
          description: One time login link.
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      username:
                        type: string
                        description: Username of user the login link belongs to.
                        example: user@example.com
                      link:
                        type: object
                        properties:
                          url:
                            type: string
                            example: >-
                              https://web.passolution.eu/auth/login/{generated-token}?user=user@example.com&page=/
                          token:
                            type: string
                            example: '{generated-token}'
                  - $ref: >-
                      #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/2
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
  /entry/documents:
    get:
      summary: Entry - Documents
      description: >
        Entry Document records are dynamic records that we provide information
        about in our Entry Requirements for different destinations. \

        \

        You may use this endpoint to know possible documents that are currently
        supported. \

        It may also be useful in searching for destinations based on these
        documents (eg: using .../api/v2/destinations endpoint).
      operationId: getEntryDocumentRecords
      security: []
      tags:
        - Basic Data - Entry Requirements
      responses:
        '200':
          description: List of Entry Document records.
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      documents:
                        type: array
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                              example: document_code
                              description: >
                                The code value shouldn't change for a document
                                and can be used to identify documents. \

                                However, kindly note that a document may be
                                removed at any time.
                            name:
                              type: string
                              example: Document Name
                  - $ref: >-
                      #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/2
  /entry/additional-info:
    get:
      summary: Entry - Additional Info
      description: >
        Entry Additional Info records are dynamic topics that we provide
        information about in our Entry Requirements for different destinations.
        \

        \

        You may use this endpoint to know possible topics that are currently
        available. \

        It may also be useful in searching for destinations based on these
        topics (eg: using .../api/v2/destinations endpoint).
      operationId: getEntryAdditionalInformationRecords
      security: []
      tags:
        - Basic Data - Entry Requirements
      responses:
        '200':
          description: List of Entry Additional Info records.
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      additional_info:
                        type: array
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                              example: topic_code
                              description: >
                                The code value shouldn't change for a topic and
                                can be used to identify topics. \

                                However, kindly note that a topic may be removed
                                at any time.
                            name:
                              type: string
                              example: Topic Name
                  - $ref: >-
                      #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/2
  /health/immunizations:
    get:
      summary: Health - Immunizations
      description: >
        Immunization records are dynamic records that we provide information
        about in our Entry Requirements for different destinations. \

        \

        You may use this endpoint to know possible immunizations that are
        currently available. \

        It may also be useful in searching for destinations based on these
        immunizations (eg: using .../api/v2/destinations endpoint).
      operationId: getHealthImmunizationRecords
      security: []
      tags:
        - Basic Data - Entry Requirements
      responses:
        '200':
          description: List of Immunization records.
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      immunizations:
                        type: array
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                              example: immunization_code
                              description: >
                                The code value shouldn't change for an
                                immunization and can be used to identify
                                immunizations. \

                                However, kindly note that an immunization may be
                                removed at any time.
                            name:
                              type: string
                              example: Immunization Name
                  - $ref: >-
                      #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/2
  /infosystem/general:
    get:
      tags:
        - Infosystem
      summary: Country News
      description: Get General Updates
      operationId: getInfosystemGeneral
      parameters:
        - name: sort_by
          required: false
          in: query
          schema:
            type: string
            default: created_at
        - $ref: '#/paths/~1countries/get/parameters/3'
        - $ref: '#/paths/~1countries/get/parameters/1'
        - $ref: '#/paths/~1countries/get/parameters/4'
      responses:
        '200':
          description: Country News Records
  /infosystem/passolution:
    get:
      summary: Passolution News
      description: Get Passolution News
      operationId: getPassolutionNews
      tags:
        - Infosystem
      parameters:
        - $ref: '#/paths/~1countries/get/parameters/1'
        - $ref: '#/paths/~1countries/get/parameters/4'
      responses:
        '200':
          description: Passolution News
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    allOf:
                      - type: object
                        properties:
                          data:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: number
                                  format: int32
                                date:
                                  type: string
                                  format: datetime
                                  example: '2020-01-01 00:00:00'
                                headline:
                                  type: string
                                  example: News Headline
                                content:
                                  type: string
                                  example: News Content
                      - $ref: >-
                          #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/1
                  - $ref: >-
                      #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/2
  /destinations:
    parameters:
      - name: lang
        description: Language code for response content.
        in: query
        schema:
          type: string
          default: de
          example: en
          enum:
            - de
            - en
            - fr
            - it
            - nl
            - pl
            - es
            - pt
            - ru
            - bg
            - cs
            - da
            - el
            - fi
            - hu
            - nb
            - ro
            - sk
            - sl
            - sv
            - tr
      - name: sort_by
        description: Specify field to sort destinations by.
        required: false
        in: query
        schema:
          type: string
          default: code
          enum:
            - code
            - name
      - $ref: '#/paths/~1countries/get/parameters/3'
    post:
      summary: Search Destinations
      description: >
        Get list of destinations / countries that meet traveller's preferences &
        eligibility. \

        **See examples below**
      operationId: searchDestinations
      tags:
        - Entry Requirements
      requestBody:
        description: >
          Specify filter params as request body. Additionally, specify fields
          that you need in response.\

          \

          **Example 1**: Get destinations where **entry is allowed with
          Passport**:

          ```json

          {
            "entry": {
              "documents": {
                "passport": {
                  "entry_allowed": true
                }
              }
            }
          }

          ```

          \

          **Example 2**: Get destinations where entry is allowed with Passport
          **as well as** ID Card:

          ```json

          {
            "entry": {
              "documents": {
                "passport": {
                  "entry_allowed": true
                },
                "id_card": {
                  "entry_allowed": true
                }
              }
            }
          }

          ```

          **Use case**: All travellers either have Passport or ID Card. The
          returned destinations will allow access using either document. \

          \

          **Example 3**: Get destinations where entry is allowed with **either**
          Passport **or** ID Card: \

          ```json

          {
            "entry": {
              "filters": [
                {
                  "documents": {
                    "passport": {
                      "entry_allowed": true
                    }
                  }
                },
                {
                  "documents": {
                    "id_card": {
                      "entry_allowed": true
                    }
                  }
                }
              ],
              "operator": "OR"
            }
          }

          ```

          **Use Case**: All travellers have **both** Passport and ID Card so
          using **OR** operator returns more destinations. **Eg**: A destination
          allowing access with Passport but not with ID Card alone, will be
          included in search results.
        required: false
        content:
          application/json:
            schema:
              description: Request Body
              type: object
              properties:
                entry:
                  type: object
                  properties:
                    documents:
                      type: object
                      properties:
                        document_code:
                          type: object
                          description: >-
                            The 'document_code' key should be one of the
                            document keys supported by API. You can get possible
                            values by using .../api/v2/entry/documents endpoint.
                          properties:
                            entry_allowed:
                              type: boolean
                    additional_info:
                      type: object
                      properties:
                        list:
                          type: object
                          properties:
                            code:
                              type: object
                              description: >-
                                The 'code' key should be one of the keys
                                supported by API. You can get possible values by
                                using .../api/v2/entry/additional-info endpoint.
                              properties:
                                status:
                                  type: string
                                  enum:
                                    - not_required
                                    - required
                visa:
                  type: object
                  properties:
                    required:
                      type: object
                      properties:
                        status:
                          type: string
                          enum:
                            - not_required
                            - required
                    application:
                      type: object
                      properties:
                        foreign_representation:
                          type: object
                          properties:
                            available:
                              type: boolean
                        e_visa:
                          type: object
                          properties:
                            available:
                              type: boolean
                        on_arrival:
                          type: object
                          properties:
                            available:
                              type: boolean
                health:
                  type: object
                  properties:
                    risk_groups:
                      type: object
                      properties:
                        pregnant:
                          type: object
                          properties:
                            has_risk:
                              type: boolean
                              example: false
                        child:
                          type: object
                          properties:
                            has_risk:
                              type: boolean
                              example: false
                    immunizations:
                      type: object
                      properties:
                        immunization_code:
                          type: object
                          description: >-
                            The 'immunization_code' key should be one of the
                            immunization keys supported by API. You can get
                            possible values by using
                            .../api/v2/health/immunizations endpoint.
                          properties:
                            required:
                              type: boolean
                            recommended:
                              type: boolean
                    medication:
                      type: object
                      properties:
                        information:
                          type: object
                          description: >-
                            The 'information_code' key should be one of the keys
                            supported by API. The API will respond with list of
                            allowed keys in error message if you send any
                            arbitrary key.
                          properties:
                            insurance:
                              type: object
                              properties:
                                status:
                                  type: string
                                  enum:
                                    - not_required
                                    - required
                fields:
                  type: object
                  properties:
                    travel_advisory:
                      type: object
                      properties:
                        type:
                          type: boolean
      responses:
        '200':
          description: List of matching destinations.
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      destinations:
                        type: array
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                              description: 2 character country code defined in ISO 3166-1
                              example: ES
                            name:
                              type: string
                              description: Destination name.
                              example: Spain
                            travel_advisory:
                              type: object
                              properties:
                                type:
                                  type: string
                                  example: inactive
                  - $ref: >-
                      #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/2
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
  /content/all/{type}:
    parameters:
      - name: type
        in: path
        schema:
          enum:
            - html
            - text
            - pdf
      - $ref: '#/paths/~1destinations/parameters/0'
      - name: countries
        description: Country codes as array or comma separated.
        in: query
        schema:
          type: array
          example:
            - TR
            - ZA
            - AE
          items:
            type: string
            default: ''
            minLength: 2
            maxLength: 2
      - name: nat
        description: Traveller nationality codes as array or comma separated.
        in: query
        schema:
          type: array
          example:
            - DE
            - AT
          items:
            type: string
            default: ''
            minLength: 2
            maxLength: 2
      - name: cruise_compass_cruise_id
        description: >-
          Cruise Compass Cruise ID to fetch requirements for given cruise's
          destinations. Kindly contact us if you don't have Cruise ID
          information for Cruise Compass.
        in: query
        schema:
          type: string
      - name: return_regions
        description: >-
          Return region / state codes (COUNTRY_CODE:REGION_CODE) as comma
          separated.
        in: query
        schema:
          type: array
          example:
            - DE:BE
            - DE:BW
            - CH:ZH
          items:
            type: string
      - name: states
        description: Return state codes (Germany) as comma separated.
        in: query
        schema:
          type: array
          example:
            - BE
            - BW
          items:
            type: string
            default: ''
            minLength: 2
            maxLength: 2
      - name: zip_code
        description: Comma separated zip codes to specify states for return requirements.
        in: query
        schema:
          type: string
          example: 12683,78267
      - name: zip_location
        description: >-
          Comma separated location names if the zip_code parameter contains zip
          code belonging to more than one state.
        in: query
        schema:
          type: string
          example: Biesdorf,Aach
      - name: target-device
        description: >-
          Send this parameter if the content is to be displayed on a device with
          limited screen space.
        in: query
        schema:
          type: string
          enum:
            - mobile
    post:
      summary: All Requirements - HTML
      operationId: getAllInformationHtml
      description: >
        ***Note:*** Shareable link feature may not be enabled for your account.

        \

        ***Note:*** If shareable link is not required, a GET request can be
        made.
      tags:
        - Entry Requirements
      requestBody:
        description: >
          Basic usages are provided below, check documentation for different
          parameters for more usages:

          ```json

          {
            "language": "de",
            "destinations": ["FR", "ES"],
            "nationalities": ["DE", "AU"]
          }

          ```

          To retreive entry requirements using cruise compass cruise ID:

          ```json

          {
            "language": "de",
            "cruise_compass_cruise_id": "68-251101-10",
            "nationalities": ["DE"]
          }

          ```

          Specify travel information (trip) if travel detail link should be
          generated.

          ```json

          {
            "language": "de",
            "destinations": ["FR", "ES"],
            "nationalities": ["DE", "AU"],
            "trip": {
              "name": "Trip Name",
              "start_date": "2020-01-01",
              "end_date": "2020-01-01",
              "reference": "REF-1001",
              "note": "Optional note about trip."
            }
          }

          ```
        required: false
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    language:
                      $ref: >-
                        #/paths/~1information~1share/post/requestBody/content/application~1json/schema/allOf/0/properties/language
                    destinations:
                      type: array
                      items:
                        $ref: >-
                          #/paths/~1information~1share/post/requestBody/content/application~1json/schema/allOf/0/properties/destinations/items
                      description: |
                        Simple query:
                        ```json
                        {
                          "destinations": ["FR", "ES"]
                        }
                        ```
                        Specifying destination type:
                        ```json
                        {
                          "destinations": [
                            {"destination": "FR","type": "travel"},
                            {"destination": "ES", "type": "transit"}
                          ]
                        }
                        ```
                        For cruise query:
                        ```json
                        {
                          "cruise_compass_cruise_id": "111-2222-33",
                          "destinations": [
                            {"destination": "FR","type": "pre-stay"},
                            {"destination": "ES", "type": "follow-up"}
                          ]
                        }
                        ```
                    nationalities:
                      type: array
                      items:
                        $ref: >-
                          #/paths/~1information~1share/post/requestBody/content/application~1json/schema/allOf/0/properties/nationalities/items
                      example:
                        - TR
                        - ZA
                        - AE
                - type: object
                  properties:
                    cruise_compass_cruise_id:
                      type: string
                      description: >-
                        Cruise Compass Cruise ID to fetch requirements for given
                        cruise's destinations. Kindly contact us if you don't
                        have Cruise ID information for Cruise Compass.
                - type: object
                  properties:
                    trip:
                      type: object
                      properties:
                        name:
                          type: string
                          maxLength: 255
                          example: Trip Name
                        start_date:
                          type: string
                          format: date
                          example: '2020-01-01'
                        end_date:
                          type: string
                          format: date
                          example: '2020-01-01'
                        reference:
                          type: string
                          nullable: true
                          maxLength: 20
                        note:
                          type: string
                          nullable: true
                          maxLength: 255
                - type: object
                  properties:
                    tour_operators:
                      type: array
                      items:
                        type: string
                    individual_contents:
                      type: array
                      items:
                        type: string
                    cover_media:
                      type: string
                      description: >-
                        Selects cover media to be displayed on the enduser link.
                        Use UUID retrieved from /travel-details/media endpoint.
                    show_country_info:
                      type: boolean
                      nullable: true
                      default: false
      responses:
        '200':
          description: Information in HTML Format
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          records:
                            type: array
                            items:
                              type: object
                              properties:
                                destination:
                                  type: string
                                  default: DE
                                destination_type:
                                  type: string
                                  default: travel
                                  enum:
                                    - travel
                                    - transit
                                    - cruise
                                    - pre-stay
                                    - follow-up
                                nationality:
                                  type: string
                                  default: DE
                                title:
                                  type: string
                                overview:
                                  type: object
                                  properties:
                                    language:
                                      type: string
                                      default: EN
                                    title:
                                      type: string
                                    content:
                                      type: string
                                entry:
                                  $ref: >-
                                    #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/records/items/properties/overview
                                visa:
                                  $ref: >-
                                    #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/records/items/properties/overview
                                transit_visa:
                                  $ref: >-
                                    #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/records/items/properties/overview
                                health:
                                  $ref: >-
                                    #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/records/items/properties/overview
                                final_provisions:
                                  $ref: >-
                                    #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/records/items/properties/overview
                          individual_content:
                            type: object
                            properties:
                              name:
                                type: string
                              success:
                                type: boolean
                                description: >-
                                  Whether the individual content was retrieved
                                  successfully. If not, an error message will be
                                  returned in 'error' field.
                              error:
                                type: string
                                nullable: true
                                description: >-
                                  This field will contain an error message if
                                  individual content was not retrieved due to
                                  any reason.
                              sections:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    code:
                                      type: string
                                    success:
                                      type: boolean
                                      description: >-
                                        Whether the individual content section
                                        was retrieved successfully. If not, an
                                        error message will be returned in
                                        'error' field.
                                    error:
                                      type: string
                                      nullable: true
                                      description: >-
                                        This field will contain an error message
                                        if individual content section was not
                                        retrieved due to any reason.
                                    name:
                                      type: string
                                    content:
                                      type: string
                          tour_operators:
                            type: array
                            nullable: true
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                name:
                                  type: string
                                success:
                                  type: boolean
                                  description: >-
                                    Whether the tour operator content was
                                    retrieved successfully. If not, an error
                                    message will be returned in 'error' field.
                                error:
                                  type: string
                                  nullable: true
                                  description: >-
                                    This field will contain an error message if
                                    tour operator content was not retrieved due
                                    to any reason.
                                contents:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      code:
                                        type: string
                                      name:
                                        type: string
                                      content:
                                        type: string
                      - $ref: >-
                          #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/2
                  - type: object
                    properties:
                      trip_url:
                        type: string
                        format: url
                        example: https://travel-details.eu/en?tid=ABCD-EFGH-IJKL
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
  /content/all/text:
    parameters:
      - $ref: '#/paths/~1destinations/parameters/0'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/2'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/3'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/4'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/5'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/6'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/7'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/8'
    post:
      summary: All Requirements - Text
      operationId: getAllInformationText
      description: >
        ***Note:*** Shareable link feature may not be enabled for your account.

        \

        ***Note:*** If shareable link is not required, a GET request can be
        made.
      tags:
        - Entry Requirements
      requestBody:
        description: >
          Basic usages are provided below, check documentation for different
          parameters for more usages:

          ```json

          {
            "language": "de",
            "destinations": ["FR", "ES"],
            "nationalities": ["DE", "AU"]
          }

          ```

          To retreive entry requirements using cruise compass cruise ID:

          ```json

          {
            "language": "de",
            "cruise_compass_cruise_id": "68-251101-10",
            "nationalities": ["DE"]
          }

          ```

          Specify travel information (trip) if travel detail link should be
          generated.

          ```json

          {
            "language": "de",
            "destinations": ["FR", "ES"],
            "nationalities": ["DE", "AU"],
            "trip": {
              "name": "Trip Name",
              "start_date": "2020-01-01",
              "end_date": "2020-01-01",
              "reference": "REF-1001",
              "note": "Optional note about trip."
            }
          }

          ```
        required: false
        content:
          application/json:
            schema:
              allOf:
                - $ref: >-
                    #/paths/~1content~1all~1{type}/post/requestBody/content/application~1json/schema/allOf/0
                - type: object
                  properties:
                    cruise_compass_cruise_id:
                      $ref: >-
                        #/paths/~1content~1all~1{type}/post/requestBody/content/application~1json/schema/allOf/1/properties/cruise_compass_cruise_id
                - $ref: >-
                    #/paths/~1content~1all~1{type}/post/requestBody/content/application~1json/schema/allOf/2
                - $ref: >-
                    #/paths/~1content~1all~1{type}/post/requestBody/content/application~1json/schema/allOf/3
      responses:
        '200':
          description: Information in Text Format
          content:
            application/json:
              schema:
                allOf:
                  - allOf:
                      - type: object
                        properties:
                          records:
                            type: array
                            items:
                              type: object
                              properties:
                                destination:
                                  type: string
                                  default: DE
                                destination_type:
                                  $ref: >-
                                    #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/records/items/properties/destination_type
                                nationality:
                                  type: string
                                  default: DE
                                title:
                                  type: string
                                overview:
                                  $ref: >-
                                    #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/records/items/properties/overview
                                entry:
                                  $ref: >-
                                    #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/records/items/properties/overview
                                visa:
                                  $ref: >-
                                    #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/records/items/properties/overview
                                transit_visa:
                                  $ref: >-
                                    #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/records/items/properties/overview
                                health:
                                  $ref: >-
                                    #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/records/items/properties/overview
                                final_provisions:
                                  $ref: >-
                                    #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/records/items/properties/overview
                          individual_content:
                            $ref: >-
                              #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/individual_content
                          tour_operators:
                            $ref: >-
                              #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/tour_operators
                      - $ref: >-
                          #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/2
                  - $ref: >-
                      #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/1
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
  /content/all/pdf:
    parameters:
      - $ref: '#/paths/~1destinations/parameters/0'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/2'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/3'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/4'
    post:
      summary: All Requirements - PDF
      operationId: getAllInformationPdf
      tags:
        - Entry Requirements
      requestBody:
        description: >
          Basic usages are provided below, check documentation for different
          parameters for more usages:

          ```json

          {
            "language": "de",
            "destinations": ["FR", "ES"],
            "nationalities": ["DE", "AU"]
          }

          ```

          To retreive entry requirements using cruise compass cruise ID:

          ```json

          {
            "language": "de",
            "cruise_compass_cruise_id": "68-251101-10",
            "nationalities": ["DE"]
          }

          ```
        required: false
        content:
          application/json:
            schema:
              allOf:
                - $ref: >-
                    #/paths/~1content~1all~1{type}/post/requestBody/content/application~1json/schema/allOf/0
                - type: object
                  properties:
                    cruise_compass_cruise_id:
                      $ref: >-
                        #/paths/~1content~1all~1{type}/post/requestBody/content/application~1json/schema/allOf/1/properties/cruise_compass_cruise_id
                - $ref: >-
                    #/paths/~1content~1all~1{type}/post/requestBody/content/application~1json/schema/allOf/2
                - $ref: >-
                    #/paths/~1content~1all~1{type}/post/requestBody/content/application~1json/schema/allOf/3
      responses:
        '200':
          description: PDF File
          content:
            application/pdf:
              schema:
                type: string
                example: PDF File Binary Output
                format: binary
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
  /content/country/html:
    parameters:
      - $ref: '#/paths/~1destinations/parameters/0'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/2'
    post:
      summary: HTML
      operationId: getCountryInformationHtml
      tags:
        - Country Information
      responses:
        '200':
          description: Country Information in HTML Format
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      records:
                        type: array
                        items:
                          allOf:
                            - type: object
                              properties:
                                country:
                                  type: string
                                  default: DE
                            - $ref: >-
                                #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/records/items/properties/overview
                            - type: object
                              properties:
                                topics:
                                  type: object
                                  additionalProperties:
                                    type: object
                                    properties:
                                      title:
                                        type: string
                                      content:
                                        type: string
                                  example:
                                    topic_1:
                                      title: string
                                      content: string
                                    topic_2:
                                      title: string
                                      content: string
                                    ...:
                                      title: string
                                      content: string
                  - $ref: >-
                      #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/2
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
  /content/country/pdf:
    parameters:
      - $ref: '#/paths/~1destinations/parameters/0'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/2'
    post:
      summary: PDF
      operationId: getCountryInformationPdf
      tags:
        - Country Information
      responses:
        '200':
          description: PDF File
          content:
            application/pdf:
              schema:
                type: string
                example: PDF File Binary Output
                format: binary
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
  /information/search:
    post:
      summary: Get Destination Info
      parameters:
        - $ref: '#/paths/~1destinations/parameters/0'
        - name: destco
          description: Travel destination country codes as array or comma separated.
          in: query
          schema:
            type: array
            example:
              - TR
              - ZA
              - AE
            items:
              type: string
              default: ''
              minLength: 2
              maxLength: 2
        - $ref: '#/paths/~1content~1all~1{type}/parameters/3'
        - $ref: '#/paths/~1content~1all~1{type}/parameters/5'
        - $ref: '#/paths/~1content~1all~1{type}/parameters/6'
        - name: dest3l
          description: Destination airport IATA codes as array or comma separated.
          in: query
          schema:
            type: array
            example:
              - FRA
              - LAX
              - LHR
            items:
              type: string
              minLength: 3
              maxLength: 3
      description: >
        Get travel information for destinations based on travellers'
        nationalities. \

        Optionally, get shareable link for the information. \

        \

        ***Note:*** Shareable link feature may not be enabled for your account.
        \

        ***Note:*** If shareable link is not required, a GET request can be
        made.
      operationId: searchInformation
      tags:
        - Travel Information
      requestBody:
        required: false
        description: >-
          Provide trip information if you need shareable link with access to
          requested travel information.
        content:
          application/json:
            schema:
              type: object
              properties:
                trip:
                  type: object
                  properties:
                    name:
                      type: string
                      maxLength: 255
                      example: Trip Name
                    start_date:
                      type: string
                      format: date
                      example: '2020-01-01'
                    end_date:
                      type: string
                      format: date
                      example: '2020-01-01'
                    reference:
                      type: string
                      nullable: true
                      maxLength: 20
                    note:
                      type: string
                      nullable: true
                      maxLength: 255
      responses:
        '200':
          description: Travel Information
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      request:
                        type: object
                        properties:
                          destco:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                countryname:
                                  type: string
                                countryname_en:
                                  type: string
                                countryname_translated:
                                  type: string
                          nat:
                            $ref: >-
                              #/paths/~1information~1search/post/responses/200/content/application~1json/schema/allOf/0/properties/request/properties/destco
                      response:
                        oneOf:
                          - type: object
                            properties:
                              additionalContent:
                                type: string
                              entry:
                                type: object
                                properties:
                                  id:
                                    type: string
                                  version:
                                    type: number
                                  status:
                                    type: string
                                  language:
                                    type: string
                                  headline:
                                    type: string
                                  content:
                                    type: string
                                  source:
                                    type: string
                              visa:
                                allOf:
                                  - $ref: >-
                                      #/paths/~1information~1search/post/responses/200/content/application~1json/schema/allOf/0/properties/response/oneOf/0/properties/entry
                                  - type: object
                                    properties:
                                      visa_required:
                                        type: number
                              transitvisa:
                                $ref: >-
                                  #/paths/~1information~1search/post/responses/200/content/application~1json/schema/allOf/0/properties/response/oneOf/0/properties/entry
                              inoculation:
                                $ref: >-
                                  #/paths/~1information~1search/post/responses/200/content/application~1json/schema/allOf/0/properties/response/oneOf/0/properties/entry
                          - type: array
                            items:
                              type: object
                              properties:
                                additionalContent:
                                  type: string
                                entry:
                                  type: object
                                  properties:
                                    request:
                                      type: object
                                      properties:
                                        nationality:
                                          type: object
                                          properties:
                                            code:
                                              type: string
                                            countryname:
                                              type: string
                                        country:
                                          type: object
                                          properties:
                                            code:
                                              type: string
                                            countryname:
                                              type: string
                                    response:
                                      $ref: >-
                                        #/paths/~1information~1search/post/responses/200/content/application~1json/schema/allOf/0/properties/response/oneOf/0/properties/entry
                                visa:
                                  allOf:
                                    - $ref: >-
                                        #/paths/~1information~1search/post/responses/200/content/application~1json/schema/allOf/0/properties/response/oneOf/1/items/properties/entry
                                    - type: object
                                      properties:
                                        response:
                                          type: object
                                          properties:
                                            visa_required:
                                              type: number
                                transitvisa:
                                  $ref: >-
                                    #/paths/~1information~1search/post/responses/200/content/application~1json/schema/allOf/0/properties/response/oneOf/1/items/properties/entry
                                inoculation:
                                  $ref: >-
                                    #/paths/~1information~1search/post/responses/200/content/application~1json/schema/allOf/0/properties/response/oneOf/1/items/properties/entry
                  - type: object
                    properties:
                      trip_url:
                        type: string
                        format: url
                        example: https://travel-details.eu/en?tid=ABCD-EFGH-IJKL
                  - $ref: >-
                      #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/2
  /information/share:
    post:
      summary: Share Travel Info
      description: Get link to share travel information easily.
      tags:
        - Travel Information
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    language:
                      type: string
                      default: de
                      example: en
                      enum:
                        - de
                        - en
                        - fr
                        - it
                        - nl
                        - pl
                        - es
                        - pt
                        - ru
                        - bg
                        - cs
                        - da
                        - el
                        - fi
                        - hu
                        - nb
                        - ro
                        - sk
                        - sl
                        - sv
                        - tr
                    destinations:
                      type: array
                      items:
                        oneOf:
                          - type: string
                            minLength: 2
                            maxLength: 2
                          - type: object
                            properties:
                              destination:
                                $ref: >-
                                  #/paths/~1information~1share/post/requestBody/content/application~1json/schema/allOf/0/properties/destinations/items/oneOf/0
                              type:
                                type: string
                                description: >-
                                  pre-stay & follow-up destination types can
                                  only be used if query is for cruise
                                  information.
                                default: travel
                                enum:
                                  - travel
                                  - transit
                                  - pre-stay
                                  - follow-up
                      description: |
                        Simple query:
                        ```json
                        {
                          "destinations": ["FR", "ES"]
                        }
                        ```
                        Specifying destination type:
                        ```json
                        {
                          "destinations": [
                            {"destination": "FR","type": "travel"},
                            {"destination": "ES", "type": "transit"}
                          ]
                        }
                        ```
                        For cruise query:
                        ```json
                        {
                          "cruise_compass_cruise_id": "111-2222-33",
                          "destinations": [
                            {"destination": "FR","type": "pre-stay"},
                            {"destination": "ES", "type": "follow-up"}
                          ]
                        }
                        ```
                    nationalities:
                      type: array
                      items:
                        type: string
                        default: ''
                        minLength: 2
                        maxLength: 2
                      example:
                        - TR
                        - ZA
                        - AE
                - type: object
                  properties:
                    states:
                      type: array
                      example:
                        - BE
                        - BW
                      items:
                        type: string
                        default: ''
                        minLength: 2
                        maxLength: 2
                    show_country_info:
                      description: >-
                        Specify if country information should be shown to
                        visitors.
                      type: boolean
                      example: true
                - type: object
                  properties:
                    trip:
                      type: object
                      properties:
                        name:
                          type: string
                          maxLength: 255
                          example: Trip Name
                        start_date:
                          type: string
                          format: date
                          example: '2020-01-01'
                        end_date:
                          type: string
                          format: date
                          example: '2020-01-01'
                        reference:
                          type: string
                          nullable: true
                          maxLength: 20
                        note:
                          type: string
                          nullable: true
                          maxLength: 255
                - $ref: >-
                    #/paths/~1content~1all~1{type}/post/requestBody/content/application~1json/schema/allOf/3
                - type: object
                  properties:
                    subscribe:
                      type: array
                      items:
                        type: object
                        properties:
                          email_address:
                            type: string
                            format: email
                          language:
                            $ref: >-
                              #/paths/~1travel-details~1{id}/post/requestBody/content/application~1json/schema/allOf/3/properties/subscribe/items/properties/language
      responses:
        '200':
          description: Unique URL with access to requested information.
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      url:
                        type: string
                        description: A unique link with access to requested information.
                  - $ref: >-
                      #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/2
  /travel-details:
    post:
      summary: Get Links
      operationId: getTravelDetails
      tags:
        - Travel Details Links
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                status:
                  type: string
                  enum:
                    - unseen
                    - seen
                tid:
                  type: string
                  example: ABCD-EFGH-IJKL
                reference_id:
                  oneOf:
                    - type: object
                      properties:
                        like:
                          type: string
                          example: REF-12%
                        '=':
                          type: string
                          example: REF-123
                    - type: string
                      example: REF-123
                trip_name:
                  oneOf:
                    - type: object
                      properties:
                        like:
                          type: string
                          example: Trip%
                        '=':
                          type: string
                          example: Trip Name
                    - type: string
                      example: Trip Name
                destinations:
                  type: array
                  items:
                    oneOf:
                      - type: string
                        minLength: 2
                        maxLength: 2
                      - type: object
                        properties:
                          destination:
                            $ref: >-
                              #/paths/~1travel-details/post/requestBody/content/application~1json/schema/properties/destinations/items/oneOf/0
                          type:
                            type: string
                            enum:
                              - pre-stay
                              - follow-up
                nationalities:
                  type: array
                  example:
                    - DE
                    - AT
                  items:
                    type: string
                start_date:
                  type: object
                  properties:
                    <:
                      type: string
                      format: datetime
                      example: '2020-01-01'
                    <=:
                      type: string
                      format: datetime
                      example: '2020-01-01'
                    '=':
                      type: string
                      format: datetime
                      example: '2020-01-01'
                    '>=':
                      type: string
                      format: datetime
                      example: '2020-01-01'
                    '>':
                      type: string
                      format: datetime
                      example: '2020-01-01'
                end_date:
                  $ref: >-
                    #/paths/~1travel-details/post/requestBody/content/application~1json/schema/properties/start_date
                created_at:
                  $ref: >-
                    #/paths/~1travel-details/post/requestBody/content/application~1json/schema/properties/start_date
                sort_by:
                  type: string
                  default: created_at
                  enum:
                    - created_at
                    - start_date
                sort_order:
                  type: string
                  default: asc
                  enum:
                    - asc
                    - desc
      responses:
        '200':
          description: Travel Details Links
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          type: object
                          properties:
                            tid:
                              type: string
                              example: ABCD-EFGH-IJKL
                            reference_id:
                              type: string
                              nullable: true
                              example: REF-123
                            trip_name:
                              type: string
                              example: Trip Name
                            destinations:
                              type: array
                              example:
                                - TR
                                - ZA
                                - AE
                              items:
                                type: string
                            nationalities:
                              type: array
                              example:
                                - DE
                                - AT
                              items:
                                type: string
                            start_date:
                              type: string
                              format: date
                              example: '2020-01-01'
                            end_date:
                              type: string
                              format: date
                              example: '2020-01-07'
                            tour_operators:
                              type: array
                              description: >-
                                Tour operator content will be displayed on the
                                travel details link for records with the given
                                codes.
                              example:
                                - tour_operator_1
                                - tour_operator_2
                              items:
                                type: string
                            individual_contents:
                              type: array
                              description: >-
                                Individual content sections will be displayed on
                                the travel details link for the given codes.
                              example:
                                - individual_content_section_1
                                - individual_content_section_2
                              items:
                                type: string
                            cover_media:
                              type: string
                              description: >-
                                Travel detail link will show a cover media which
                                has the given UUID.
                              nullable: true
                            note:
                              type: string
                              nullable: true
                              example: A note about the trip.
                            visits:
                              type: integer
                              default: 0
                            last_visited_at:
                              type: string
                              format: datetime
                              example: '2020-01-01 00:00:00'
                            last_important_change_at:
                              $ref: >-
                                #/paths/~1travel-details/post/responses/200/content/application~1json/schema/allOf/0/properties/data/items/properties/last_visited_at
                            created_at:
                              $ref: >-
                                #/paths/~1travel-details/post/responses/200/content/application~1json/schema/allOf/0/properties/data/items/properties/last_visited_at
                  - $ref: >-
                      #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/1
                  - $ref: >-
                      #/paths/~1health/get/responses/default/content/application~1json/schema/allOf/1
  /travel-details/{id}:
    get:
      summary: Get Info
      operationId: getTravelDetailLink
      tags:
        - Travel Details Links
      parameters:
        - name: id
          description: Travel Detail Link ID.
          in: path
          required: true
          schema:
            type: string
            example: ABCD-EFGH-IJKL
        - name: with
          in: query
          schema:
            type: array
            items:
              type: string
              enum:
                - requirements
                - subscriptions
          description: >-
            Comma separated codes to retrieve additional information. Allowed
            codes: requirements, subscriptions.
          example: requirements,subscriptions
        - name: content_type
          in: query
          schema:
            type: string
            enum:
              - html
              - text
          example: html
          description: >-
            If requirements information is requested using the 'with' parameter,
            you may additionally specify if simple text or html content should
            be returned for requirements. Default: html
        - name: mark_visited
          in: query
          schema:
            type: boolean
          example: true
          description: >-
            Whether to mark the travel detail link as 'visited' by travellers,
            ie: all important changes seen by travellers. These links will no
            longer trigger the 'unseen important changes' emails that are sent
            to managers if there are unseen important changes for a link.
      responses:
        '200':
          description: Travel Details Link Information
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      data:
                        type: object
                        properties:
                          tid:
                            type: string
                            example: ABCD-EFGH-IJKL
                          reference_id:
                            type: string
                            nullable: true
                            example: REF-123
                          trip_name:
                            type: string
                            example: Trip Name
                          cruise_compass:
                            type: object
                            properties:
                              cruise_id:
                                type: string
                                description: >-
                                  Cruise ID for associated Cruise Compass
                                  cruise.
                            nullable: true
                          destinations:
                            type: array
                            example:
                              - TR
                              - ZA
                              - AE
                            items:
                              type: string
                          destinations_list:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                  description: Destination code for the information record.
                                  example: FR
                                type:
                                  type: string
                                  default: cruise
                                  enum:
                                    - cruise
                                    - pre-stay
                                    - follow-up
                          nationalities:
                            type: array
                            example:
                              - DE
                              - AT
                            items:
                              type: string
                          nationalities_meta:
                            type: array
                            items:
                              type: object
                              properties:
                                code:
                                  type: string
                                  description: >-
                                    Code for nationality that this meta
                                    information record belongs to.
                                inherent:
                                  type: boolean
                                  description: >-
                                    Whether the nationality was added by an API
                                    request.
                                added_by_user:
                                  type: boolean
                                  description: >-
                                    Whether the nationality was added by a
                                    traveller on travel detail link.
                          tour_operators:
                            type: array
                            description: >-
                              Tour operator content will be displayed on the
                              travel details link for records with these codes.
                            example:
                              - tour_operator_1
                              - tour_operator_2
                            items:
                              type: string
                          individual_contents:
                            type: array
                            description: >-
                              Individual content sections will be displayed on
                              the travel details link for these codes.
                            example:
                              - individual_content_section_1
                              - individual_content_section_2
                            items:
                              type: string
                          start_date:
                            type: string
                            format: date
                            example: '2020-01-01'
                          end_date:
                            type: string
                            format: date
                            example: '2020-01-07'
                          note:
                            type: string
                            nullable: true
                            example: A note about the trip.
                          cover_media:
                            type: string
                            description: >-
                              Cover media that will be displayed on the enduser
                              link.
                          visits:
                            type: integer
                            default: 0
                          last_visited_at:
                            type: string
                            format: datetime
                            example: '2020-01-01 00:00:00'
                          last_important_change_at:
                            $ref: >-
                              #/paths/~1travel-details~1{id}/get/responses/200/content/application~1json/schema/allOf/0/properties/data/properties/last_visited_at
                          created_at:
                            $ref: >-
                              #/paths/~1travel-details~1{id}/get/responses/200/content/application~1json/schema/allOf/0/properties/data/properties/last_visited_at
                      requirements:
                        type: array
                        nullable: true
                        items:
                          type: object
                          properties:
                            destination:
                              type: string
                              default: DE
                            destination_type:
                              $ref: >-
                                #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/records/items/properties/destination_type
                            nationality:
                              type: string
                              default: DE
                            title:
                              type: string
                            overview:
                              $ref: >-
                                #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/records/items/properties/overview
                            entry:
                              $ref: >-
                                #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/records/items/properties/overview
                            visa:
                              $ref: >-
                                #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/records/items/properties/overview
                            transit_visa:
                              $ref: >-
                                #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/records/items/properties/overview
                            health:
                              $ref: >-
                                #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/records/items/properties/overview
                            final_provisions:
                              $ref: >-
                                #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/records/items/properties/overview
                      individual_content:
                        $ref: >-
                          #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/individual_content
                      tour_operators:
                        $ref: >-
                          #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/tour_operators
                      subscriptions:
                        type: array
                        items:
                          type: object
                          properties:
                            email_address:
                              type: string
                              format: email
                            language:
                              type: string
                              default: de
                              example: en
                              enum:
                                - de
                                - en
                                - fr
                                - it
                                - nl
                                - pl
                                - es
                                - pt
                                - ru
                                - bg
                                - cs
                                - da
                                - el
                                - fi
                                - hu
                                - nb
                                - ro
                                - sk
                                - sl
                                - sv
                                - tr
                            created_at:
                              type: string
                              format: date
                            verified_at:
                              type: string
                              nullable: true
                              format: date
                  - $ref: >-
                      #/paths/~1health/get/responses/default/content/application~1json/schema/allOf/1
    post:
      summary: Update Info
      operationId: UpdateTravelDetailLink
      tags:
        - Travel Details Links
      parameters:
        - $ref: '#/paths/~1travel-details~1{id}/get/parameters/0'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    trip_name:
                      type: string
                      maxLength: 255
                      example: Trip Name
                    destinations:
                      type: array
                      items:
                        oneOf:
                          - $ref: >-
                              #/paths/~1travel-details/post/requestBody/content/application~1json/schema/properties/destinations/items/oneOf/0
                          - type: object
                            properties:
                              destination:
                                $ref: >-
                                  #/paths/~1travel-details/post/requestBody/content/application~1json/schema/properties/destinations/items/oneOf/0
                              type:
                                type: string
                                enum:
                                  - pre-stay
                                  - follow-up
                    nationalities:
                      type: array
                      items:
                        type: string
                        minLength: 2
                        maxLength: 2
                      example:
                        - DE
                        - AT
                    start_date:
                      type: string
                      format: date
                      example: '2020-01-01'
                    end_date:
                      type: string
                      format: date
                      example: '2020-01-01'
                - type: object
                  properties:
                    tour_operators:
                      type: array
                      items:
                        type: string
                    individual_contents:
                      type: array
                      items:
                        type: string
                    cover_media:
                      type: string
                      description: >-
                        Selects cover media to be displayed on the enduser link.
                        Use UUID retrieved from /travel-details/media endpoint.
                    show_country_info:
                      type: boolean
                      nullable: true
                      default: false
                - type: object
                  properties:
                    reference_id:
                      type: string
                      nullable: true
                      example: REF-123
                      maxLength: 20
                    note:
                      type: string
                      nullable: true
                      example: A note about the trip
                      maxLength: 255
                - type: object
                  properties:
                    subscribe:
                      type: array
                      items:
                        type: object
                        properties:
                          email_address:
                            type: string
                            format: email
                          language:
                            type: string
                            description: Language to use for emails sent to traveller.
                            default: de
                            example: en
                            enum:
                              - de
                              - en
                              - fr
                              - it
                              - nl
                              - pl
                              - es
                              - pt
                              - ru
                              - bg
                              - cs
                              - da
                              - el
                              - fi
                              - hu
                              - nb
                              - ro
                              - sk
                              - sl
                              - sv
                              - tr
      responses:
        '200':
          description: Travel Details Link Information
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      data:
                        $ref: >-
                          #/paths/~1travel-details~1{id}/get/responses/200/content/application~1json/schema/allOf/0/properties/data
                  - $ref: >-
                      #/paths/~1health/get/responses/default/content/application~1json/schema/allOf/1
    delete:
      summary: Delete Link
      operationId: deleteTravelDetailLink
      tags:
        - Travel Details Links
      parameters:
        - $ref: '#/paths/~1travel-details~1{id}/get/parameters/0'
      responses:
        '204':
          description: HTTP 204 response confirms deletion of the travel detail link.
  /travel-details/media:
    post:
      summary: Get Media Records
      operationId: getTravelDetailMediaList
      tags:
        - Travel Information
      parameters:
        - $ref: '#/paths/~1countries/get/parameters/4'
      responses:
        '200':
          description: Travel Details Links
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              description: UUID for the media record.
                              example: 085e0a5c-00a7-4c94-8dcf-170fcb20ea7a
                            name:
                              type: string
                            type:
                              type: string
                              enum:
                                - image
                                - video
                  - $ref: >-
                      #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/1
                  - $ref: >-
                      #/paths/~1health/get/responses/default/content/application~1json/schema/allOf/1
  /content/overview/json:
    parameters:
      - name: lang
        description: Language code for response content.
        in: query
        schema:
          type: string
          default: de
          example: en
          enum:
            - de
            - en
            - fr
            - it
            - nl
            - pl
            - es
            - pt
            - ru
            - bg
            - cs
            - da
            - el
            - fi
            - hu
            - nb
            - ro
            - sk
            - sl
            - sv
            - tr
      - name: destinations
        description: Travel destination country codes as array or comma separated.
        in: query
        schema:
          type: array
          example:
            - TR
            - ZA
            - AE
          items:
            type: string
            minLength: 2
            maxLength: 2
      - name: nationalities
        description: Traveller nationality codes as array or comma separated.
        in: query
        schema:
          type: array
          example:
            - DE
            - AT
          items:
            type: string
            minLength: 2
            maxLength: 2
    post:
      summary: Overview - JSON
      operationId: getOverviewInformationJson
      tags:
        - Entry Requirements
      responses:
        '200':
          description: Country Overview Information in JSON Format
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      records:
                        type: array
                        items:
                          allOf:
                            - type: object
                              properties:
                                destination:
                                  type: string
                                  default: DE
                                nationality:
                                  type: string
                                  default: DE
                                language:
                                  type: string
                                  description: Language code for the information record.
                                  default: de
                                  example: en
                                  enum:
                                    - de
                                    - en
                                    - fr
                                    - it
                                    - nl
                                    - pl
                                    - es
                                    - pt
                                    - ru
                                    - bg
                                    - cs
                                    - da
                                    - el
                                    - fi
                                    - hu
                                    - nb
                                    - ro
                                    - sk
                                    - sl
                                    - sv
                                    - tr
                            - type: object
                              properties:
                                entry:
                                  type: object
                                  properties:
                                    allowed:
                                      type: boolean
                                    additional_content:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          heading:
                                            type: string
                                          content:
                                            type: string
                                    registration:
                                      type: object
                                      properties:
                                        required:
                                          type: boolean
                                          nullable: true
                                        additional_content:
                                          $ref: >-
                                            #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                    documents:
                                      type: object
                                      properties:
                                        passport:
                                          type: object
                                          properties:
                                            allowed:
                                              type: boolean
                                              nullable: true
                                        id_card:
                                          type: object
                                          properties:
                                            allowed:
                                              type: boolean
                                              nullable: true
                                    documents_additional_content:
                                      $ref: >-
                                        #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                    minors:
                                      type: object
                                      properties:
                                        documents_required:
                                          type: boolean
                                          nullable: true
                                        additional_content:
                                          $ref: >-
                                            #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                visa:
                                  type: object
                                  properties:
                                    required:
                                      type: boolean
                                      nullable: true
                                    additional_content:
                                      $ref: >-
                                        #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                health:
                                  type: object
                                  properties:
                                    insurance:
                                      type: object
                                      properties:
                                        required:
                                          type: boolean
                                          nullable: true
                                        additional_content:
                                          $ref: >-
                                            #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                    vaccination:
                                      type: object
                                      properties:
                                        required:
                                          type: boolean
                                          nullable: true
                                        additional_content:
                                          $ref: >-
                                            #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                  - $ref: >-
                      #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/2
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
  /content/overview/html:
    parameters:
      - $ref: '#/paths/~1content~1overview~1json/parameters/0'
      - $ref: '#/paths/~1content~1overview~1json/parameters/1'
      - $ref: '#/paths/~1content~1overview~1json/parameters/2'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/9'
    post:
      summary: Overview - HTML
      operationId: getOverviewInformationHtml
      tags:
        - Entry Requirements
      responses:
        '200':
          description: Country Overview Information in HTML Format
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      records:
                        type: array
                        items:
                          allOf:
                            - type: object
                              properties:
                                destination:
                                  type: string
                                  default: DE
                                nationality:
                                  type: string
                                  default: DE
                                language:
                                  $ref: >-
                                    #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/0/properties/language
                            - $ref: >-
                                #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/records/items/properties/overview
                  - $ref: >-
                      #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/2
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
  /content/overview/pdf:
    parameters:
      - $ref: '#/paths/~1content~1overview~1json/parameters/0'
      - $ref: '#/paths/~1content~1overview~1json/parameters/1'
      - $ref: '#/paths/~1content~1overview~1json/parameters/2'
    post:
      summary: Overview - PDF
      operationId: getOverviewInformationPdf
      tags:
        - Entry Requirements
      responses:
        '200':
          description: PDF File
          content:
            application/pdf:
              schema:
                type: string
                example: PDF File Binary Output
                format: binary
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
  /content/entry/json:
    parameters:
      - $ref: '#/paths/~1destinations/parameters/0'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/2'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/3'
    post:
      summary: Entry - JSON
      operationId: getEntryInformationJson
      tags:
        - Entry Requirements
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                filters:
                  type: object
                  properties:
                    documents:
                      type: object
                      properties:
                        document_code:
                          type: object
                          description: >-
                            The 'document_code' key should be one of the
                            document keys supported by API. You can get possible
                            values by using .../api/v2/entry/documents endpoint.
                          properties:
                            entry_allowed:
                              type: boolean
                    additional_info:
                      type: object
                      properties:
                        list:
                          type: object
                          properties:
                            code:
                              type: object
                              description: >-
                                The 'code' key should be one of the keys
                                supported by API. You can get possible values by
                                using .../api/v2/entry/additional-info endpoint.
                              properties:
                                status:
                                  type: string
                                  enum:
                                    - not_required
                                    - required
      responses:
        '200':
          description: Country Entry Information in JSON Format
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      records:
                        type: array
                        items:
                          allOf:
                            - type: object
                              properties:
                                destination:
                                  $ref: >-
                                    #/paths/~1travel-details~1{id}/get/responses/200/content/application~1json/schema/allOf/0/properties/data/properties/destinations_list/items/properties/code
                                nationality:
                                  type: string
                                  description: Nationality code for the information record.
                                  example: DE
                                status:
                                  type: string
                                  enum:
                                    - possible
                                    - temporarily_stopped
                                    - no_info_available
                                documents:
                                  type: object
                                  description: >-
                                    There will be multiple records for different
                                    documents under their corresponding
                                    'document_code' key. You may get current
                                    list of 'document_code' key using
                                    .../api/v2/entry/documents endpoint. These
                                    keys may change / be removed and new keys
                                    may be added.
                                  properties:
                                    passport:
                                      allOf:
                                        - type: object
                                          properties:
                                            name:
                                              type: string
                                            entry_allowed:
                                              type: boolean
                                              nullable: true
                                            validity:
                                              type: object
                                              properties:
                                                type:
                                                  type: string
                                                  enum:
                                                    - beyond_stay_period
                                                    - on_arrival
                                                    - during_stay
                                                    - elapsed
                                                    - beyond_visa_application_period
                                                    - after_visa_expiration
                                                days:
                                                  type: number
                                                  nullable: true
                                        - type: object
                                          properties:
                                            unused_pages:
                                              type: number
                                              nullable: true
                                            additional_content:
                                              $ref: >-
                                                #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                    document_code:
                                      allOf:
                                        - $ref: >-
                                            #/paths/~1content~1entry~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/0/properties/documents/properties/passport/allOf/0
                                        - type: object
                                          properties:
                                            additional_content:
                                              $ref: >-
                                                #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                general_document_info:
                                  type: object
                                  properties:
                                    general:
                                      type: object
                                      properties:
                                        content:
                                          $ref: >-
                                            #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                    validity:
                                      type: object
                                      properties:
                                        content:
                                          $ref: >-
                                            #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                documents_additional_content:
                                  $ref: >-
                                    #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                minors:
                                  type: object
                                  nullable: true
                                  properties:
                                    documents:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          name:
                                            type: string
                                          required:
                                            type: boolean
                                          required_if:
                                            type: array
                                            items:
                                              oneOf:
                                                - type: object
                                                  properties:
                                                    conditions:
                                                      type: array
                                                      items:
                                                        type: object
                                                        properties:
                                                          type:
                                                            type: string
                                                            enum:
                                                              - travel
                                                          travel:
                                                            type: object
                                                            properties:
                                                              with:
                                                                type: string
                                                                enum:
                                                                  - alone
                                                                  - one_parent
                                          recommended:
                                            type: boolean
                                          recommended_if:
                                            type: array
                                            items:
                                              $ref: >-
                                                #/paths/~1content~1entry~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/0/properties/minors/properties/documents/items/properties/required_if/items
                                          additional_content:
                                            $ref: >-
                                              #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                    documents_required:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          name:
                                            type: string
                                    additional_content_top:
                                      $ref: >-
                                        #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                    additional_content_bottom:
                                      $ref: >-
                                        #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                additional_info:
                                  type: object
                                  properties:
                                    entry:
                                      type: object
                                      properties:
                                        by_land:
                                          type: object
                                          properties:
                                            content:
                                              $ref: >-
                                                #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                        by_sea:
                                          type: object
                                          properties:
                                            content:
                                              $ref: >-
                                                #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                        by_land_or_sea:
                                          type: object
                                          properties:
                                            content:
                                              $ref: >-
                                                #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                    list:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          code:
                                            type: string
                                          title:
                                            type: string
                                          content:
                                            $ref: >-
                                              #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                    additional_content:
                                      $ref: >-
                                        #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                additional_content:
                                  $ref: >-
                                    #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                  - $ref: >-
                      #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/2
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
  /content/entry/html:
    parameters:
      - $ref: '#/paths/~1destinations/parameters/0'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/2'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/3'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/9'
    post:
      summary: Entry - HTML
      operationId: getEntryInformationHtml
      tags:
        - Entry Requirements
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                filters:
                  type: object
                  properties:
                    documents:
                      type: object
                      properties:
                        document_code:
                          type: object
                          description: >-
                            The 'document_code' key should be one of the
                            document keys supported by API. You can get possible
                            values by using .../api/v2/entry/documents endpoint.
                          properties:
                            entry_allowed:
                              type: boolean
                    additional_info:
                      type: object
                      properties:
                        list:
                          type: object
                          properties:
                            code:
                              type: object
                              description: >-
                                The 'code' key should be one of the keys
                                supported by API. You can get possible values by
                                using .../api/v2/entry/additional-info endpoint.
                              properties:
                                status:
                                  type: string
                                  enum:
                                    - not_required
                                    - required
      responses:
        '200':
          description: Country Entry Information in HTML Format
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      records:
                        type: array
                        items:
                          allOf:
                            - type: object
                              properties:
                                destination:
                                  type: string
                                  default: DE
                                nationality:
                                  type: string
                                  default: DE
                            - $ref: >-
                                #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/records/items/properties/overview
                  - $ref: >-
                      #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/2
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
  /content/entry/text:
    parameters:
      - $ref: '#/paths/~1destinations/parameters/0'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/2'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/3'
    post:
      summary: Entry - Text
      operationId: getEntryInformationText
      tags:
        - Entry Requirements
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                filters:
                  type: object
                  properties:
                    documents:
                      type: object
                      properties:
                        document_code:
                          type: object
                          description: >-
                            The 'document_code' key should be one of the
                            document keys supported by API. You can get possible
                            values by using .../api/v2/entry/documents endpoint.
                          properties:
                            entry_allowed:
                              type: boolean
                    additional_info:
                      type: object
                      properties:
                        list:
                          type: object
                          properties:
                            code:
                              type: object
                              description: >-
                                The 'code' key should be one of the keys
                                supported by API. You can get possible values by
                                using .../api/v2/entry/additional-info endpoint.
                              properties:
                                status:
                                  type: string
                                  enum:
                                    - not_required
                                    - required
      responses:
        '200':
          description: Country Entry Information in Text Format
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      records:
                        type: array
                        items:
                          allOf:
                            - type: object
                              properties:
                                destination:
                                  type: string
                                  default: DE
                                nationality:
                                  type: string
                                  default: DE
                            - $ref: >-
                                #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/records/items/properties/overview
                  - $ref: >-
                      #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/2
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
  /content/entry/pdf:
    parameters:
      - $ref: '#/paths/~1destinations/parameters/0'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/2'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/3'
    post:
      summary: Entry - PDF
      operationId: getEntryInformationPdf
      tags:
        - Entry Requirements
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                filters:
                  type: object
                  properties:
                    documents:
                      type: object
                      properties:
                        document_code:
                          type: object
                          description: >-
                            The 'document_code' key should be one of the
                            document keys supported by API. You can get possible
                            values by using .../api/v2/entry/documents endpoint.
                          properties:
                            entry_allowed:
                              type: boolean
                    additional_info:
                      type: object
                      properties:
                        list:
                          type: object
                          properties:
                            code:
                              type: object
                              description: >-
                                The 'code' key should be one of the keys
                                supported by API. You can get possible values by
                                using .../api/v2/entry/additional-info endpoint.
                              properties:
                                status:
                                  type: string
                                  enum:
                                    - not_required
                                    - required
      responses:
        '200':
          description: PDF File
          content:
            application/pdf:
              schema:
                type: string
                example: PDF File Binary Output
                format: binary
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
  /content/visa/json:
    parameters:
      - $ref: '#/paths/~1destinations/parameters/0'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/2'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/3'
    post:
      summary: Visa - JSON
      operationId: getVisaInformationJson
      tags:
        - Entry Requirements
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                filters:
                  type: object
                  properties:
                    required:
                      type: object
                      properties:
                        status:
                          type: string
                          enum:
                            - not_required
                            - required
                    application:
                      type: object
                      properties:
                        foreign_representation:
                          type: object
                          properties:
                            available:
                              type: boolean
                        e_visa:
                          type: object
                          properties:
                            available:
                              type: boolean
                        on_arrival:
                          type: object
                          properties:
                            available:
                              type: boolean
      responses:
        '200':
          description: Country Visa Information in JSON Format
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      records:
                        type: array
                        items:
                          allOf:
                            - type: object
                              properties:
                                destination:
                                  $ref: >-
                                    #/paths/~1travel-details~1{id}/get/responses/200/content/application~1json/schema/allOf/0/properties/data/properties/destinations_list/items/properties/code
                                nationality:
                                  $ref: >-
                                    #/paths/~1content~1entry~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/0/properties/nationality
                                required:
                                  type: object
                                  properties:
                                    status:
                                      type: string
                                      enum:
                                        - required
                                        - not_required
                                        - entry_temporarily_stopped
                                        - unknown
                                    additional_content:
                                      $ref: >-
                                        #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                required_if:
                                  type: array
                                  items:
                                    oneOf:
                                      - type: object
                                        properties:
                                          conditions:
                                            type: array
                                            items:
                                              type: object
                                              properties:
                                                type:
                                                  type: string
                                                  enum:
                                                    - stay
                                                stay:
                                                  type: object
                                                  properties:
                                                    length:
                                                      type: object
                                                      properties:
                                                        comparator:
                                                          type: string
                                                          enum:
                                                            - greater_than
                                                            - less_than
                                                            - equal_to
                                                        value:
                                                          type: number
                                                        unit:
                                                          type: string
                                                          enum:
                                                            - day
                                required_after_days:
                                  type: integer
                                  nullable: true
                                application:
                                  type: object
                                  properties:
                                    foreign_representation:
                                      type: object
                                      properties:
                                        available:
                                          type: boolean
                                          nullable: true
                                        handling_time:
                                          nullable: true
                                          oneOf:
                                            - type: object
                                              properties:
                                                from:
                                                  type: integer
                                                  example: 5
                                                to:
                                                  type: integer
                                                  example: 7
                                                unit:
                                                  type: string
                                                  enum:
                                                    - day
                                                    - week
                                            - type: object
                                              properties:
                                                value:
                                                  type: string
                                                  enum:
                                                    - several
                                                unit:
                                                  type: string
                                                  enum:
                                                    - day
                                                    - week
                                        additional_content:
                                          $ref: >-
                                            #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                    e_visa:
                                      type: object
                                      properties:
                                        available:
                                          type: boolean
                                          nullable: true
                                        application_url:
                                          type: string
                                          format: url
                                          nullable: true
                                        handling_time:
                                          $ref: >-
                                            #/paths/~1content~1visa~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/0/properties/application/properties/foreign_representation/properties/handling_time
                                        additional_content:
                                          $ref: >-
                                            #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                    on_arrival:
                                      type: object
                                      properties:
                                        available:
                                          type: boolean
                                          nullable: true
                                        additional_content:
                                          $ref: >-
                                            #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                documents:
                                  type: object
                                  properties:
                                    list:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          name:
                                            type: string
                                          additional_content:
                                            $ref: >-
                                              #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                    additional_content:
                                      type: object
                                      properties:
                                        introductory:
                                          $ref: >-
                                            #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                        supplemental:
                                          $ref: >-
                                            #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                entry:
                                  type: object
                                  properties:
                                    by_land:
                                      type: object
                                      properties:
                                        content:
                                          $ref: >-
                                            #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                    by_sea:
                                      type: object
                                      properties:
                                        content:
                                          $ref: >-
                                            #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                    by_land_or_sea:
                                      type: object
                                      properties:
                                        content:
                                          $ref: >-
                                            #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                footnotes:
                                  $ref: >-
                                    #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                  - $ref: >-
                      #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/2
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
  /content/visa/html:
    parameters:
      - $ref: '#/paths/~1destinations/parameters/0'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/2'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/3'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/9'
    post:
      summary: Visa - HTML
      operationId: getVisaInformationHtml
      tags:
        - Entry Requirements
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                filters:
                  type: object
                  properties:
                    required:
                      type: object
                      properties:
                        status:
                          type: string
                          enum:
                            - not_required
                            - required
                    application:
                      type: object
                      properties:
                        foreign_representation:
                          type: object
                          properties:
                            available:
                              type: boolean
                        e_visa:
                          type: object
                          properties:
                            available:
                              type: boolean
                        on_arrival:
                          type: object
                          properties:
                            available:
                              type: boolean
      responses:
        '200':
          description: Country Visa Information in HTML Format
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      records:
                        type: array
                        items:
                          allOf:
                            - type: object
                              properties:
                                destination:
                                  type: string
                                  default: DE
                                nationality:
                                  type: string
                                  default: DE
                            - $ref: >-
                                #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/records/items/properties/overview
                  - $ref: >-
                      #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/2
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
  /content/visa/text:
    parameters:
      - $ref: '#/paths/~1destinations/parameters/0'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/2'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/3'
    post:
      summary: Visa - Text
      operationId: getVisaInformationText
      tags:
        - Entry Requirements
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                filters:
                  type: object
                  properties:
                    required:
                      type: object
                      properties:
                        status:
                          type: string
                          enum:
                            - not_required
                            - required
                    application:
                      type: object
                      properties:
                        foreign_representation:
                          type: object
                          properties:
                            available:
                              type: boolean
                        e_visa:
                          type: object
                          properties:
                            available:
                              type: boolean
                        on_arrival:
                          type: object
                          properties:
                            available:
                              type: boolean
      responses:
        '200':
          description: Country Visa Information in Text Format
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      records:
                        type: array
                        items:
                          allOf:
                            - type: object
                              properties:
                                destination:
                                  type: string
                                  default: DE
                                nationality:
                                  type: string
                                  default: DE
                            - $ref: >-
                                #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/records/items/properties/overview
                  - $ref: >-
                      #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/2
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
  /content/visa/pdf:
    parameters:
      - $ref: '#/paths/~1destinations/parameters/0'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/2'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/3'
    post:
      summary: Visa - PDF
      operationId: getVisaInformationPdf
      tags:
        - Entry Requirements
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                filters:
                  type: object
                  properties:
                    required:
                      type: object
                      properties:
                        status:
                          type: string
                          enum:
                            - not_required
                            - required
                    application:
                      type: object
                      properties:
                        foreign_representation:
                          type: object
                          properties:
                            available:
                              type: boolean
                        e_visa:
                          type: object
                          properties:
                            available:
                              type: boolean
                        on_arrival:
                          type: object
                          properties:
                            available:
                              type: boolean
      responses:
        '200':
          description: PDF File
          content:
            application/pdf:
              schema:
                type: string
                example: PDF File Binary Output
                format: binary
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
  /content/transit_visa/html:
    parameters:
      - $ref: '#/paths/~1destinations/parameters/0'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/2'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/3'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/9'
    post:
      summary: Transit Visa - HTML
      operationId: getTransitVisaInformationHtml
      tags:
        - Entry Requirements
      responses:
        '200':
          description: Country Transit Visa Information in HTML Format
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      records:
                        type: array
                        items:
                          allOf:
                            - type: object
                              properties:
                                destination:
                                  type: string
                                  default: DE
                                nationality:
                                  type: string
                                  default: DE
                            - $ref: >-
                                #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/records/items/properties/overview
                  - $ref: >-
                      #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/2
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
  /content/transit_visa/text:
    parameters:
      - $ref: '#/paths/~1destinations/parameters/0'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/2'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/3'
    post:
      summary: Transit Visa - Text
      operationId: getTransitVisaInformationText
      tags:
        - Entry Requirements
      responses:
        '200':
          description: Country Transit Visa Information in Text Format
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      records:
                        type: array
                        items:
                          allOf:
                            - type: object
                              properties:
                                destination:
                                  type: string
                                  default: DE
                                nationality:
                                  type: string
                                  default: DE
                            - $ref: >-
                                #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/records/items/properties/overview
                  - $ref: >-
                      #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/2
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
  /content/transit_visa/pdf:
    parameters:
      - $ref: '#/paths/~1destinations/parameters/0'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/2'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/3'
    post:
      summary: Transit Visa - PDF
      operationId: getTransitVisaInformationPdf
      tags:
        - Entry Requirements
      responses:
        '200':
          description: PDF File
          content:
            application/pdf:
              schema:
                type: string
                example: PDF File Binary Output
                format: binary
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
  /content/health/json:
    parameters:
      - $ref: '#/paths/~1destinations/parameters/0'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/2'
    post:
      summary: Health - JSON
      operationId: getHealthInformationJson
      tags:
        - Entry Requirements
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                filters:
                  type: object
                  properties:
                    risk_groups:
                      type: object
                      properties:
                        pregnant:
                          type: object
                          properties:
                            has_risk:
                              type: boolean
                              example: false
                        child:
                          type: object
                          properties:
                            has_risk:
                              type: boolean
                              example: false
                    immunizations:
                      type: object
                      properties:
                        immunization_code:
                          type: object
                          description: >-
                            The 'immunization_code' key should be one of the
                            immunization keys supported by API. You can get
                            possible values by using
                            .../api/v2/health/immunizations endpoint.
                          properties:
                            required:
                              type: boolean
                            recommended:
                              type: boolean
                    medication:
                      type: object
                      properties:
                        information:
                          type: object
                          description: >-
                            The 'information_code' key should be one of the keys
                            supported by API. The API will respond with list of
                            allowed keys in error message if you send any
                            arbitrary key.
                          properties:
                            insurance:
                              type: object
                              properties:
                                status:
                                  type: string
                                  enum:
                                    - not_required
                                    - required
      responses:
        '200':
          description: Country Health Information in JSON Format
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      records:
                        type: array
                        items:
                          allOf:
                            - type: object
                              properties:
                                destination:
                                  $ref: >-
                                    #/paths/~1travel-details~1{id}/get/responses/200/content/application~1json/schema/allOf/0/properties/data/properties/destinations_list/items/properties/code
                                nationality:
                                  $ref: >-
                                    #/paths/~1content~1entry~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/0/properties/nationality
                                status:
                                  type: string
                                  enum:
                                    - available
                                    - temporarily_stopped
                                    - unknown
                                additional_content:
                                  $ref: >-
                                    #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                immunizations:
                                  type: object
                                  description: >-
                                    The 'immunization_code' key is one of the
                                    immunization keys supported by API. These
                                    keys are dynamic, ie: a key may be removed
                                    or new key may be added.
                                  properties:
                                    immunization_code:
                                      type: object
                                      properties:
                                        name:
                                          type: string
                                        required:
                                          type: boolean
                                        required_if:
                                          type: array
                                          items:
                                            oneOf:
                                              - type: object
                                                properties:
                                                  conditions:
                                                    type: array
                                                    items:
                                                      oneOf:
                                                        - type: object
                                                          properties:
                                                            type:
                                                              type: string
                                                              enum:
                                                                - long_term_stay
                                                        - type: object
                                                          properties:
                                                            type:
                                                              type: string
                                                              enum:
                                                                - special_exposure
                                        recommended:
                                          type: boolean
                                        recommended_if:
                                          type: array
                                          items:
                                            $ref: >-
                                              #/paths/~1content~1health~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/0/properties/immunizations/properties/immunization_code/properties/required_if/items
                                        additional_content:
                                          $ref: >-
                                            #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                medication:
                                  type: object
                                  properties:
                                    information:
                                      type: array
                                      items:
                                        type: object
                                        properties:
                                          code:
                                            type: string
                                          name:
                                            type: string
                                          content:
                                            type: string
                                          additional_content:
                                            $ref: >-
                                              #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                    additional_content:
                                      $ref: >-
                                        #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                risk_groups:
                                  type: object
                                  properties:
                                    pregnant:
                                      type: object
                                      properties:
                                        has_risk:
                                          type: boolean
                                        risks:
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              code:
                                                type: string
                                              name:
                                                type: string
                                        additional_content:
                                          $ref: >-
                                            #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                                    child:
                                      type: object
                                      properties:
                                        has_risk:
                                          type: boolean
                                        risks:
                                          type: array
                                          items:
                                            type: object
                                            properties:
                                              code:
                                                type: string
                                              name:
                                                type: string
                                        additional_content:
                                          $ref: >-
                                            #/paths/~1content~1overview~1json/post/responses/200/content/application~1json/schema/allOf/0/properties/records/items/allOf/1/properties/entry/properties/additional_content
                  - $ref: >-
                      #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/2
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
  /content/health/html:
    parameters:
      - $ref: '#/paths/~1destinations/parameters/0'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/2'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/9'
    post:
      summary: Health - HTML
      operationId: getHealthInformationHtml
      tags:
        - Entry Requirements
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                filters:
                  type: object
                  properties:
                    risk_groups:
                      type: object
                      properties:
                        pregnant:
                          type: object
                          properties:
                            has_risk:
                              type: boolean
                              example: false
                        child:
                          type: object
                          properties:
                            has_risk:
                              type: boolean
                              example: false
                    immunizations:
                      type: object
                      properties:
                        immunization_code:
                          type: object
                          description: >-
                            The 'immunization_code' key should be one of the
                            immunization keys supported by API. You can get
                            possible values by using
                            .../api/v2/health/immunizations endpoint.
                          properties:
                            required:
                              type: boolean
                            recommended:
                              type: boolean
                    medication:
                      type: object
                      properties:
                        information:
                          type: object
                          description: >-
                            The 'information_code' key should be one of the keys
                            supported by API. The API will respond with list of
                            allowed keys in error message if you send any
                            arbitrary key.
                          properties:
                            insurance:
                              type: object
                              properties:
                                status:
                                  type: string
                                  enum:
                                    - not_required
                                    - required
      responses:
        '200':
          description: Country Health Information in HTML Format
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      records:
                        type: array
                        items:
                          allOf:
                            - type: object
                              properties:
                                destination:
                                  type: string
                                  default: DE
                            - $ref: >-
                                #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/records/items/properties/overview
                  - $ref: >-
                      #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/2
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
  /content/health/text:
    parameters:
      - $ref: '#/paths/~1destinations/parameters/0'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/2'
    post:
      summary: Health - Text
      operationId: getHealthInformationText
      tags:
        - Entry Requirements
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                filters:
                  type: object
                  properties:
                    risk_groups:
                      type: object
                      properties:
                        pregnant:
                          type: object
                          properties:
                            has_risk:
                              type: boolean
                              example: false
                        child:
                          type: object
                          properties:
                            has_risk:
                              type: boolean
                              example: false
                    immunizations:
                      type: object
                      properties:
                        immunization_code:
                          type: object
                          description: >-
                            The 'immunization_code' key should be one of the
                            immunization keys supported by API. You can get
                            possible values by using
                            .../api/v2/health/immunizations endpoint.
                          properties:
                            required:
                              type: boolean
                            recommended:
                              type: boolean
                    medication:
                      type: object
                      properties:
                        information:
                          type: object
                          description: >-
                            The 'information_code' key should be one of the keys
                            supported by API. The API will respond with list of
                            allowed keys in error message if you send any
                            arbitrary key.
                          properties:
                            insurance:
                              type: object
                              properties:
                                status:
                                  type: string
                                  enum:
                                    - not_required
                                    - required
      responses:
        '200':
          description: Country Health Information in Text Format
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      records:
                        type: array
                        items:
                          allOf:
                            - type: object
                              properties:
                                destination:
                                  type: string
                                  default: DE
                            - $ref: >-
                                #/paths/~1content~1all~1{type}/post/responses/200/content/application~1json/schema/allOf/0/allOf/0/properties/records/items/properties/overview
                  - $ref: >-
                      #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/2
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
  /content/health/pdf:
    parameters:
      - $ref: '#/paths/~1destinations/parameters/0'
      - $ref: '#/paths/~1content~1all~1{type}/parameters/2'
    post:
      summary: Health - PDF
      operationId: getHealthInformationPdf
      tags:
        - Entry Requirements
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                filters:
                  type: object
                  properties:
                    risk_groups:
                      type: object
                      properties:
                        pregnant:
                          type: object
                          properties:
                            has_risk:
                              type: boolean
                              example: false
                        child:
                          type: object
                          properties:
                            has_risk:
                              type: boolean
                              example: false
                    immunizations:
                      type: object
                      properties:
                        immunization_code:
                          type: object
                          description: >-
                            The 'immunization_code' key should be one of the
                            immunization keys supported by API. You can get
                            possible values by using
                            .../api/v2/health/immunizations endpoint.
                          properties:
                            required:
                              type: boolean
                            recommended:
                              type: boolean
                    medication:
                      type: object
                      properties:
                        information:
                          type: object
                          description: >-
                            The 'information_code' key should be one of the keys
                            supported by API. The API will respond with list of
                            allowed keys in error message if you send any
                            arbitrary key.
                          properties:
                            insurance:
                              type: object
                              properties:
                                status:
                                  type: string
                                  enum:
                                    - not_required
                                    - required
      responses:
        '200':
          description: PDF File
          content:
            application/pdf:
              schema:
                type: string
                example: PDF File Binary Output
                format: binary
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
  /individual-content:
    get:
      summary: Individual Content
      operationId: getIndividualContent
      tags:
        - Individual Content
      responses:
        '200':
          description: Individual Content
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      content:
                        type: array
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            main_language:
                              type: string
                            filters:
                              type: object
                              properties:
                                group:
                                  type: object
                                  properties:
                                    items:
                                      type: array
                                      items:
                                        oneOf:
                                          - type: object
                                            properties:
                                              type:
                                                type: string
                                                enum:
                                                  - rule
                                              rule:
                                                type: object
                                                properties:
                                                  subject:
                                                    type: string
                                                    enum:
                                                      - destination
                                                      - nationality
                                                  type:
                                                    type: string
                                                    enum:
                                                      - is_exactly
                                                      - contains_any
                                                      - contains_all
                                                      - doesnt_contain_any
                                                      - doesnt_contain_all
                                                    example: contains_any
                                                  values:
                                                    type: array
                                                    items:
                                                      type: string
                                                      example:
                                                        - FR
                                                        - ES
                                          - type: object
                                            properties:
                                              type:
                                                type: string
                                                enum:
                                                  - operator
                                              operator:
                                                type: object
                                                properties:
                                                  type:
                                                    type: string
                                                    enum:
                                                      - and
                                                      - or
                                          - type: object
                                            properties:
                                              type:
                                                type: string
                                                enum:
                                                  - group
                                              group:
                                                type: object
                                                properties:
                                                  items:
                                                    type: array
                                                    items:
                                                      oneOf:
                                                        - $ref: >-
                                                            #/paths/~1individual-content/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/filters/properties/group/properties/items/items/oneOf/0
                                                        - $ref: >-
                                                            #/paths/~1individual-content/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/filters/properties/group/properties/items/items/oneOf/1
                            translations:
                              type: object
                              properties:
                                de:
                                  type: object
                                  nullable: true
                                  properties:
                                    name:
                                      type: string
                                    content:
                                      type: string
                                en:
                                  $ref: >-
                                    #/paths/~1individual-content/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                nl:
                                  $ref: >-
                                    #/paths/~1individual-content/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                es:
                                  $ref: >-
                                    #/paths/~1individual-content/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                fr:
                                  $ref: >-
                                    #/paths/~1individual-content/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                it:
                                  $ref: >-
                                    #/paths/~1individual-content/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                pl:
                                  $ref: >-
                                    #/paths/~1individual-content/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                pt:
                                  $ref: >-
                                    #/paths/~1individual-content/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                ru:
                                  $ref: >-
                                    #/paths/~1individual-content/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                bg:
                                  $ref: >-
                                    #/paths/~1individual-content/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                cs:
                                  $ref: >-
                                    #/paths/~1individual-content/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                da:
                                  $ref: >-
                                    #/paths/~1individual-content/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                el:
                                  $ref: >-
                                    #/paths/~1individual-content/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                fi:
                                  $ref: >-
                                    #/paths/~1individual-content/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                hu:
                                  $ref: >-
                                    #/paths/~1individual-content/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                nb:
                                  $ref: >-
                                    #/paths/~1individual-content/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                ro:
                                  $ref: >-
                                    #/paths/~1individual-content/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                sk:
                                  $ref: >-
                                    #/paths/~1individual-content/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                sl:
                                  $ref: >-
                                    #/paths/~1individual-content/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                sv:
                                  $ref: >-
                                    #/paths/~1individual-content/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                tr:
                                  $ref: >-
                                    #/paths/~1individual-content/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                            active:
                              type: boolean
                            use_by_default:
                              type: boolean
                            applies_retrospectively:
                              type: boolean
                            created_at:
                              type: string
                              format: date
                              readOnly: true
                  - $ref: >-
                      #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/2
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
    post:
      summary: Update Individual Content
      operationId: updateIndividualContent
      tags:
        - Individual Content
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: >-
                #/paths/~1individual-content/get/responses/200/content/application~1json/schema/allOf/0
      responses:
        '200':
          description: Individual Content
          content:
            application/json:
              schema:
                allOf:
                  - $ref: >-
                      #/paths/~1individual-content/get/responses/200/content/application~1json/schema/allOf/0
                  - $ref: >-
                      #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/2
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
    delete:
      summary: Delete Individual Content Sections
      operationId: deleteIndividualContentSections
      tags:
        - Individual Content
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                content:
                  type: array
                  items:
                    type: object
                    properties:
                      code:
                        type: string
      responses:
        '200':
          description: Delete Individual Content Sections
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/2
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
  /individual-content/order:
    post:
      summary: Update Individual Content Section Order
      operationId: updateIndividualContentSectionOrder
      tags:
        - Individual Content
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                content:
                  type: array
                  items:
                    type: object
                    properties:
                      code:
                        type: string
      responses:
        '200':
          description: Individual Content
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/2
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
  /tour-operator/{code}:
    parameters:
      - name: code
        in: path
        required: true
        schema:
          type: string
          description: Tour Operator Code
    get:
      summary: Tour Operator Content
      operationId: getTourOperatorContent
      tags:
        - Tour Operator Content
      responses:
        '200':
          description: Tour Operator Content
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    properties:
                      content:
                        type: array
                        items:
                          type: object
                          properties:
                            code:
                              type: string
                            main_language:
                              type: string
                            filters:
                              type: object
                              properties:
                                group:
                                  type: object
                                  properties:
                                    items:
                                      type: array
                                      items:
                                        oneOf:
                                          - type: object
                                            properties:
                                              type:
                                                type: string
                                                enum:
                                                  - rule
                                              rule:
                                                type: object
                                                properties:
                                                  subject:
                                                    type: string
                                                    enum:
                                                      - destination
                                                      - nationality
                                                  type:
                                                    type: string
                                                    enum:
                                                      - is_exactly
                                                      - contains_any
                                                      - contains_all
                                                      - doesnt_contain_any
                                                      - doesnt_contain_all
                                                    example: contains_any
                                                  values:
                                                    type: array
                                                    items:
                                                      type: string
                                                      example:
                                                        - FR
                                                        - ES
                                          - type: object
                                            properties:
                                              type:
                                                type: string
                                                enum:
                                                  - operator
                                              operator:
                                                type: object
                                                properties:
                                                  type:
                                                    type: string
                                                    enum:
                                                      - and
                                                      - or
                                          - type: object
                                            properties:
                                              type:
                                                type: string
                                                enum:
                                                  - group
                                              group:
                                                type: object
                                                properties:
                                                  items:
                                                    type: array
                                                    items:
                                                      oneOf:
                                                        - $ref: >-
                                                            #/paths/~1tour-operator~1{code}/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/filters/properties/group/properties/items/items/oneOf/0
                                                        - $ref: >-
                                                            #/paths/~1tour-operator~1{code}/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/filters/properties/group/properties/items/items/oneOf/1
                            translations:
                              type: object
                              properties:
                                de:
                                  type: object
                                  nullable: true
                                  properties:
                                    name:
                                      type: string
                                    content:
                                      type: string
                                en:
                                  $ref: >-
                                    #/paths/~1tour-operator~1{code}/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                nl:
                                  $ref: >-
                                    #/paths/~1tour-operator~1{code}/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                es:
                                  $ref: >-
                                    #/paths/~1tour-operator~1{code}/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                fr:
                                  $ref: >-
                                    #/paths/~1tour-operator~1{code}/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                it:
                                  $ref: >-
                                    #/paths/~1tour-operator~1{code}/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                pl:
                                  $ref: >-
                                    #/paths/~1tour-operator~1{code}/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                pt:
                                  $ref: >-
                                    #/paths/~1tour-operator~1{code}/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                ru:
                                  $ref: >-
                                    #/paths/~1tour-operator~1{code}/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                bg:
                                  $ref: >-
                                    #/paths/~1tour-operator~1{code}/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                cs:
                                  $ref: >-
                                    #/paths/~1tour-operator~1{code}/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                da:
                                  $ref: >-
                                    #/paths/~1tour-operator~1{code}/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                el:
                                  $ref: >-
                                    #/paths/~1tour-operator~1{code}/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                fi:
                                  $ref: >-
                                    #/paths/~1tour-operator~1{code}/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                hu:
                                  $ref: >-
                                    #/paths/~1tour-operator~1{code}/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                nb:
                                  $ref: >-
                                    #/paths/~1tour-operator~1{code}/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                ro:
                                  $ref: >-
                                    #/paths/~1tour-operator~1{code}/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                sk:
                                  $ref: >-
                                    #/paths/~1tour-operator~1{code}/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                sl:
                                  $ref: >-
                                    #/paths/~1tour-operator~1{code}/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                sv:
                                  $ref: >-
                                    #/paths/~1tour-operator~1{code}/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                                tr:
                                  $ref: >-
                                    #/paths/~1tour-operator~1{code}/get/responses/200/content/application~1json/schema/allOf/0/properties/content/items/properties/translations/properties/de
                            active:
                              type: boolean
                            created_at:
                              type: string
                              format: date
                              readOnly: true
                  - $ref: >-
                      #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/2
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
    post:
      summary: Update Tour Operator Content
      operationId: updateTourOperatorContent
      tags:
        - Tour Operator Content
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: >-
                #/paths/~1tour-operator~1{code}/get/responses/200/content/application~1json/schema/allOf/0
      responses:
        '200':
          description: Tour Operator Content
          content:
            application/json:
              schema:
                allOf:
                  - $ref: >-
                      #/paths/~1tour-operator~1{code}/get/responses/200/content/application~1json/schema/allOf/0
                  - $ref: >-
                      #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/2
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
    delete:
      summary: Delete Tour Operator Content Sections
      operationId: deleteTourOperatorContentSections
      tags:
        - Tour Operator Content
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                content:
                  type: array
                  items:
                    type: object
                    properties:
                      code:
                        type: string
      responses:
        '200':
          description: Delete Tour Operator Content Sections
          content:
            application/json:
              schema:
                $ref: >-
                  #/paths/~1countries~1de~1locations/get/responses/200/content/application~1json/schema/allOf/2
        '401':
          $ref: '#/paths/~1account~1subscription/get/responses/401'
security:
  - oAuth: []
  - bearerAuth: []
components:
  securitySchemes:
    oAuth:
      type: oauth2
      x-defaultClientId: 9f70ec42-0920-4de1-9c75-7f2af396529d
      flows:
        authorizationCode:
          x-usePkce:
            disableManualConfiguration: true
            hideClientSecretInput: true
          authorizationUrl: https://web.passolution.eu/oauth/authorize
          tokenUrl: https://web.passolution.eu/oauth/token
          refreshUrl: https://web.passolution.eu/oauth/token
          scopes: {}
        clientCredentials:
          tokenUrl: https://web.passolution.eu/oauth/token
          refreshUrl: https://web.passolution.eu/oauth/token
          scopes: {}
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Authentication via Bearer Token. Use your API token in the Authorization
        header.
  schemas:
    Country:
      type: object
      properties:
        code:
          type: string
          example: DE
        name:
          type: string
          example: Germany
  responses:
    UnauthorizedError:
      description: Authentication information not provided or invalid.
