openapi: 3.1.0
info:
  title: SQUAKE API Documentation
  version: ''
  description: >
    # Introduction

    ## Trusted technology to achieve your carbon targets.


    The **SQUAKE Solution Suite** is live with industry leaders from several
    travel and logistics segments and performs accurate carbon calculations for
    all types of activities (e.g. flights, road, accommodation amongst others)
    according to national and international standards. It automates carbon
    reductions and/or compensations along the supply chain, from supplier
    selection (SAF, DAC, ecological restoration) to inventory management,
    invoicing and credit retirement.


    ## Customer Support

    For any issues or inquiries, you can reach our dedicated customer support
    team through our [Support Page](https://support.squake.earth/). This is the
    best place to ask questions, report incidents, or get assistance with
    integrating or using SQUAKE's solutions.


    ## Contact Forms

    Our contact forms are designed to help you communicate with us effectively.
    Whether you want to get in contact with our support team or need to report
    an incident, we've got you covered. Please use the appropriate form below:


    * [Contact
    Form](https://support.squake.earth/hc/en-gb/requests/new?ticket_form_id=5351278647581):
    Get in contact with our customer support team or share your thoughts and
    suggestions about our services and processes.

    * [Incident
    Form](https://support.squake.earth/hc/en-gb/requests/new?ticket_form_id=21154347283741):
    Report any issues or incidents you've encountered, and our support team will
    respond as soon as possible.


    ## Authentication

    SQUAKE uses API keys to authenticate requests. You can create and revoke API
    keys in the [Dashboard](https://app.squake.earth/), which you can access by
    contacting us under `product@squake.earth`. You should securely store your
    API keys; and encrypt them on rest if possible. Be aware that each API key
    is shown exactly once in the UI during creation. SQUAKE advises rotating API
    keys on a regular basis.


    To use the sandbox environment, a separate API key must be created. Switch
    to sandbox mode in the dashboard, then create an API key.


    All requests must be authenticated and made over HTTPS. SQUAKE supports TLS
    1.2 - TLS 1.3. Requests without authentication or via plain HTTP result in
    an error.


    When using HTTP Basic Auth, the API key is the username; leave the password
    blank. For bearer auth, pass the API key as the token.


    Example using HTTP Basic Auth (note: there is no password, but a colon is
    still required):


    ```shell

    curl https://api.squake.earth/v2/pricing -u <YOUR_API_KEY>

    ```


    Example using bearer auth:

    ```shell

    curl https://api.squake.earth/v2/pricing -H "Authorization: Bearer
    <YOUR_API_KEY>"

    ```


    ## Request ID

    SQUAKE associates each API request with a unique identifier. Find this value
    in the `SQUAKE-Request-Id` header. If you need to contact us regarding a
    specific request, providing the request identifier helps the resolution
    process.


    ## Uptime Monitoring

    Please visit [status.squake.earth](https://status.squake.earth) to check our
    uptime monitor. You can subscribe to events to stay informed of any service
    disruption. We will also publish a post-mortem about any incident should one
    occur.


    You can programmatically check if servers are reachable. Read the
    documentation of the `Health Check` endpoints for details. The health check
    endpoints are the only endpoints that do not require authentication.


    ## Sandbox

    There is a sandbox server available for testing at


    `https://api.sandbox.squake.earth`


    Sandbox and production are separate systems and share no data. Sandbox uses
    less computing power and may be slower than production. Both sandbox and
    production environments run the same version of the API; thus, they share
    the same feature set.


    To use the sandbox environment, a separate API key must be created. Switch
    to sandbox mode in the dashboard, then create an API key.


    ## Static IP Addresses

    All outgoing traffic originates from one of the following static IP
    addresses. SQUAKE owns these IP addresses and never shares them for any
    other traffic.


    | Environment | IP Address     | Geo Region     |

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

    | Production  | 52.59.66.213   | Europa/Germany |

    | Production  | 52.7.39.159    | USA            |

    | Sandbox     | 18.197.251.125 | Europa/Germany |


    ## Getting Started with SQUAKE API

    This guide will help you make requests to the SQUAKE API in order to
    calculate emissions for a travel journey.


    ### Choose a group of Endpoints

    SQUAKE API has the following group of endpoints:

    - [Calculations](https://docs-v2.squake.earth/docs/openapi/calculations) -
    Calculates carbon emissions for various activities in a low-latency process.

    - [Pricing](https://docs-v2.squake.earth/docs/openapi/pricing) - Returns
    pricing for a given product and carbon quantity, valid for two weeks by
    default.

    - [Combined Calculation &
    Pricing](https://docs-v2.squake.earth/docs/openapi/combined-calculation-and-pricing)
    - Performs carbon calculation and pricing in a single call for convenience.

    - [Carbon
    Comparison](https://docs-v2.squake.earth/docs/openapi/carbon-comparison) -
    Compares carbon quantities to recognizable items like cars or light bulbs.

    - [Purchases](https://docs-v2.squake.earth/docs/openapi/purchases) -
    Registers a purchase to compensate for carbon emissions, requiring a prior
    pricing quote.

    - [Products](https://docs-v2.squake.earth/docs/openapi/products) - Lists
    purchasable compensation options, including single climate projects and
    bundles.

    - [Files](https://docs-v2.squake.earth/docs/openapi/files) - Manages file
    attachments related to purchases, such as compensation confirmations.

    - [Webhooks](https://docs-v2.squake.earth/docs/openapi/webhooks) - Allows
    you to receive notifications about events happening in SQUAKE.

    - [Audits](https://docs-v2.squake.earth/docs/openapi/audits) - Provides a
    list of audits or a specific audit for calculations.

    - [Health Check](https://docs-v2.squake.earth/docs/openapi/health-check) -
    Verifies if SQUAKE's server is reachable.


    ### Precision of Calculations


    #### Bus Databases

    If you want operator-specific calculations for buses, then use the following
    [dataset](https://squake.notion.site/31f83752e3bd4cf2ba314ceb8fa2acc6?v=5190873dd753431187b735a8fe40038f)
    supported by SQUAKE's methodology.


    #### Car Databases

    If you have specific information about car models, then use one of the
    following methodologies:
    [ADEME](https://squake.notion.site/136f89fa8b1949e899f82f874d4f648c?v=49c586d0b74d4a6bbe2cf03d16546f5c)
    (France),
    [US-EPA](https://squake.notion.site/7f437246ecec4760a8b95b5c1d06f34a?v=454b352108e640ceb124890cf75f1c9f)
    (USA) and
    [EU-EEA](https://squake.notion.site/Car-EU-EEA-f38231a59f934d819ac1014c65bb701c)
    (EU).


    #### Hotel Databases

    Use the HCMI and SQUAKE methodologies
    [database](https://squake.notion.site/Hotel-HCMI-SQUAKE-7bd2c02fe23b45889e1c30ffc8018bcd)
    to obtain more accurate emissions. If you know an eco-label, use SQUAKE's
    [eco-label
    dataset](https://squake.notion.site/c5160e37d67d4280ae0d80675cbf2f12?v=debaae061f0643488990261c1a8b28b9).


    #### GLEC Databases

    For road and sea logistics activities according to GLEC, use the [GLEC
    dataset](https://squake.notion.site/GLEC-6947b398c6704220838ae5a16902b064).


    #### Train Databases

    For operator-specific calculations for trains, use the [train
    dataset](https://squake.notion.site/21a17389cc5c4e38946f97ecaf6435bb?v=6be41159e77247599fe9b3672782fd5e).


    #### Van Databases

    For van calculations, use the [EU-EEA supported
    dataset](https://squake.notion.site/b9afb2b6c23e4b60868c5b6148224c6d?v=49a2ac9295ab4cc18a328da841b7b583).


    ### Carbon Comparison

    Compare carbon quantities to more recognizable items like cars or kettles.
    View accepted units in this [comparison
    database](https://squake.notion.site/96b220031e8e4d64aec4f0e46a5bde97?v=8c67ffdcf91c4477acf0640688beea11).

    <br>

    <br>

    <br>
  termsOfService: https://www.squake.earth/legal/general-terms-and-conditions
  contact:
    name: SQUAKE.earth
    url: https://www.squake.earth/contact-us
    email: product@squake.earth
servers:
  - url: https://api.squake.earth
    description: Production
  - url: https://api.sandbox.squake.earth
    description: Sandbox
security:
  - {}
  - Bearer-Auth: []
tags:
  - name: Calculations
    description: ''
  - name: Pricing
    description: ''
  - name: Combined Calculation & Pricing
    description: ''
  - name: Carbon Comparison
    description: ''
  - name: Purchases
    description: ''
  - name: Products
    description: ''
  - name: Files
    description: ''
  - name: Webhooks
    description: ''
  - name: Audits
    description: >
      Audit logs are created when enabled on calculation requests.


      | ℹ️ To use this feature you need to have it enabled for your account,
      please contact us for more information.|

      |------------------------------------------------------------------------------------------------------------|
  - name: Health Check
    description: Check if SQUAKE's server can be reached.
paths:
  /v2/calculations:
    post:
      tags:
        - Calculations
      summary: Perform a Calculation
      description: >-
        The calculations endpoint can calculate carbon emissions for one or
        multiple activities. The carbon footprint or your journey consisting of,
        for example, a return flight, two cab rides, and a hotel stay can be
        computed all at once, passing all five activities in the items array.

        Include the string literal "items" in the "expand" array to retrieve
        values for each item separately in addition to the total carbon
        quantity.



        This is a low-latency endpoint. SQUAKE does not provide you with a
        unique identifier for any calculation results. You must quote a price on
        the pricing endpoint to purchase compensation for your carbon emissions.



        Some data sets are extensive and thus documented separately
        [here](https://squake.notion.site/Databases-2a5a8e757fc74b62bef3be7c5ac2f699).
      operationId: post-calculations
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                expand:
                  type: array
                  description: >-
                    If you choose to expand on e.g. "items", SQUAKE returns
                    emissions per each item separately (in addition to a total
                    value).
                  items:
                    const: items
                    examples:
                      - items
                carbon_unit:
                  $ref: '#/components/schemas/carbon_unit'
                distance_unit:
                  $ref: '#/components/schemas/distance_unit'
                audit_for:
                  $ref: '#/components/schemas/AuditFor'
                items:
                  type: array
                  items:
                    $ref: '#/components/schemas/Calculation-Items'
              required:
                - items
            examples:
              calculation-flight-defra:
                summary: Flight type with DEFRA methodology
                value:
                  expand:
                    - items
                  carbon_unit: tonne
                  distance_unit: kilometer
                  items:
                    - type: flight
                      methodology: DEFRA
                      external_reference: string
                      booking_class: economy
                      number_of_travelers: 1
                      aircraft_type: 7M7
                      fare_class: 'Y'
                      origin: BER
                      destination: CDG
                      airline: LH
                      radiative_forcing_index: true
                      sustainable_fuels:
                        carbon_reduction_percentage_of_total: 0.25
                      energy_scope: ttw
              calculation-accommodation:
                summary: Accommodation type
                value:
                  expand:
                    - items
                  carbon_unit: tonne
                  distance_unit: kilometer
                  items:
                    - type: accommodation
                      methodology: SQUAKE
                      external_reference: string
                      number_of_nights: 1
                      country: DE
                      number_of_travelers: 1
                      square_meters: 50
              calculation-air-freight:
                summary: Air Freight type
                value:
                  expand:
                    - items
                  carbon_unit: tonne
                  distance_unit: kilometer
                  items:
                    - type: air_freight
                      methodology: SQUAKE
                      external_reference: string
                      number_of_travelers: 1
                      origin: BER
                      destination: CDG
                      weight_in_tonnes: 1
              calculation-bus:
                summary: Bus type
                value:
                  expand:
                    - items
                  carbon_unit: tonne
                  distance_unit: kilometer
                  items:
                    - type: bus
                      methodology: SQUAKE
                      external_reference: string
                      number_of_travelers: 1
                      origin: BER
                      destination: PAR
                      fuel_type: diesel
                      operator_name: hamburger_hochbahn
              calculation-car:
                summary: Car type
                value:
                  expand:
                    - items
                  carbon_unit: tonne
                  distance_unit: kilometer
                  items:
                    - type: car
                      methodology: ACRISS
                      external_reference: string
                      number_of_travelers: 1
                      origin: BER
                      destination: CDG
                      distance_in_km: 878
                      fuel_type: diesel
                      acriss_car_type: C
                      sipp_car_type: XCAR
              calculation-coffee-production:
                summary: Coffee Production type
                value:
                  expand:
                    - items
                  carbon_unit: tonne
                  distance_unit: kilometer
                  items:
                    - type: coffee_production
                      methodology: SQUAKE
                      external_reference: string
                      country: ET
                      organic: true
                      quantity: 6
                      unit: tonne
              calculation-event:
                summary: Event type
                value:
                  expand:
                    - items
                  carbon_unit: tonne
                  distance_unit: kilometer
                  items:
                    - type: event
                      methodology: HCMI
                      external_reference: string
                      number_of_days: 1
                      country: DE
                      stars: 5
                      city: Berlin
                      square_meters: 50
                      hotel_type: hotel_average
              calculation-expenditure:
                summary: Expenditure type
                value:
                  expand:
                    - items
                  carbon_unit: tonne
                  distance_unit: kilometer
                  items:
                    - type: expenditure
                      methodology: OFNK
                      external_reference: string
                      currency: EUR
                      total: 500
                      country: DE
                      category: retail
                      merchant_category_code: 3000
              calculation-ferry:
                summary: Ferry type
                value:
                  expand:
                    - items
                  carbon_unit: tonne
                  distance_unit: kilometer
                  items:
                    - type: ferry
                      methodology: ADEME
                      external_reference: string
                      number_of_travelers: 1
                      origin: BER
                      destination: CDG
                      number_of_cars: 10
                      vesel_type: day_ferry
              calculation-hotel:
                summary: Hotel type
                value:
                  expand:
                    - items
                  carbon_unit: tonne
                  distance_unit: kilometer
                  items:
                    - type: hotel
                      methodology: SQUAKE
                      external_reference: string
                      number_of_nights: 3
                      hotel_type: hotel_average
                      room_type: double
                      country: DE
                      city: Berlin
                      eco_labels:
                        - eu_eco_label
                        - green_tourism
              calculation-inland-waterways:
                summary: Inland Waterways type
                value:
                  expand:
                    - items
                  carbon_unit: tonne
                  distance_unit: kilometer
                  items:
                    - type: inland_waterways
                      methodology: GLEC
                      external_reference: string
                      origin: BER
                      destination: CDG
                      weight_in_tonnes: 3
                      vessel_type: motor_vessels_under_50_m
                      energy_scope: wtw
              calculation-logistics-site:
                summary: Logistics Site type
                value:
                  expand:
                    - items
                  carbon_unit: tonne
                  distance_unit: kilometer
                  items:
                    - type: logistics_site
                      methodology: GLEC
                      external_reference: string
                      weight_in_tonnes: 3
                      logistics_site_type: warehouse
                      condition_type: mixed
              calculation-logistics:
                summary: Logistics type
                value:
                  expand:
                    - items
                  carbon_unit: tonne
                  distance_unit: kilometer
                  items:
                    - type: logistics
                      methodology: SQUAKE
                      external_reference: string
                      weight_in_kg: 2500
                      origin: BER
                      destination: PAR
                      shipping_method: express
              calculation-private-jet:
                summary: Private Jet type
                value:
                  expand:
                    - items
                  carbon_unit: tonne
                  distance_unit: kilometer
                  items:
                    - type: private_jet
                      methodology: SQUAKE
                      external_reference: string
                      origin: BER
                      destination: CDG
                      identifier: P18
                      identifier_kind: ICAO
              calculation-rail-freight:
                summary: Rail Freight type
                value:
                  expand:
                    - items
                  carbon_unit: tonne
                  distance_unit: kilometer
                  items:
                    - type: rail_freight
                      methodology: GLEC
                      external_reference: string
                      origin: BER
                      destination: CDG
                      weight_in_tonnes: 2.5
                      fuel_type: diesel
                      energy_scope: wtw
                      load_characteristic: average
              calculation-restaurant:
                summary: Restaurant type
                value:
                  expand:
                    - items
                  carbon_unit: tonne
                  distance_unit: kilometer
                  items:
                    - type: restaurant
                      methodology: BASE-EMPREINTE
                      external_reference: string
                      number_of_travelers: 1
                      meal_type: average
              calculation-road-freight:
                summary: Road Freight type
                value:
                  expand:
                    - items
                  carbon_unit: tonne
                  distance_unit: kilometer
                  items:
                    - type: road_freight
                      methodology: GLEC
                      external_reference: string
                      weight_in_tonnes: 1
                      origin: BER
                      destination: CDG
                      truck_type: van_under_3.5_t
                      energy_scope: wtw
              calculation-sea-freight:
                summary: Sea Freight type
                value:
                  expand:
                    - items
                  carbon_unit: tonne
                  distance_unit: kilometer
                  items:
                    - type: sea_freight
                      methodology: GLEC
                      external_reference: string
                      weight_in_tonnes: 1
                      origin: BER
                      destination: CDG
                      continer: false
                      vessel_type: general_cargo_under_4999_dwt
                      energy_scope: wtw
                      fuel_type: hfo
              calculation-train:
                summary: Train type
                value:
                  expand:
                    - items
                  carbon_unit: tonne
                  distance_unit: kilometer
                  items:
                    - type: train
                      methodology: SQUAKE
                      external_reference: string
                      number_of_travelers: 1
                      origin: BER
                      destination: CDG
                      fuel_type: diesel
                      train_type: regional
              calculation-van:
                summary: Van type
                value:
                  expand:
                    - items
                  carbon_unit: tonne
                  distance_unit: kilometer
                  items:
                    - type: van
                      methodology: EU-EEA
                      external_reference: string
                      weight_in_tonnes: 1
                      origin: BER
                      destination: CDG
                      manufacturer: ford
                      model: transit
                      fuel_type: diesel
                      engine_size_in_cubic_cm: 2000
              calculation-flight-with-audit:
                summary: Flight type with audit
                value:
                  expand:
                    - items
                  carbon_unit: tonne
                  distance_unit: kilometer
                  audit_for:
                    legal_name: string
                    external_id: user@example.com
                  items:
                    - audit: true
                      type: flight
                      methodology: DEFRA
                      external_reference: string
                      booking_class: economy
                      number_of_travelers: 1
                      aircraft_type: 7M7
                      fare_class: 'Y'
                      origin: BER
                      destination: CDG
                      airline: LH
                      radiative_forcing_index: true
                      sustainable_fuels:
                        carbon_reduction_percentage_of_total: 0.25
                      energy_scope: ttw
              calculation-flight-ademe:
                summary: Flight type with ADEME methodology
                value:
                  expand:
                    - items
                  carbon_unit: tonne
                  distance_unit: kilometer
                  items:
                    - type: flight
                      methodology: ADEME
                      external_reference: string
                      number_of_travelers: 1
                      aircraft_type: 7M7
                      aircraft_size: under_50_seats
                      origin: BER
                      destination: CDG
                      airline: LH
              calculation-flight-base-empreinte:
                summary: Flight type with BASE EMPREINTE methodology
                value:
                  expand:
                    - items
                  carbon_unit: tonne
                  distance_unit: kilometer
                  items:
                    - type: flight
                      methodology: BASE-EMPREINTE
                      external_reference: string
                      number_of_travelers: 1
                      aircraft_type: 7M7
                      aircraft_size: under_50_seats
                      origin: BER
                      destination: CDG
                      radiative_forcing_index: true
                      sustainable_fuels:
                        carbon_reduction_percentage_of_total: 0.25
              calculation-flight-co2-emissiefactoren-nl:
                summary: Flight type with CO2 Emissiefactoren NL methodology
                value:
                  expand:
                    - items
                  carbon_unit: tonne
                  distance_unit: kilometer
                  items:
                    - type: flight
                      methodology: CO2-EMISSIEFACTOREN-NL
                      external_reference: string
                      booking_class: economy
                      number_of_travelers: 1
                      aircraft_type: 7M7
                      fare_class: 'Y'
                      origin: BER
                      destination: CDG
                      airline: LH
                      radiative_forcing_index: true
                      sustainable_fuels:
                        carbon_reduction_percentage_of_total: 0.25
                      energy_scope: ttw
              calculation-flight-gate4:
                summary: Flight type with GATE4 methodology
                value:
                  expand:
                    - items
                  carbon_unit: tonne
                  distance_unit: kilometer
                  items:
                    - type: flight
                      methodology: GATE4
                      external_reference: string
                      booking_class: economy
                      number_of_travelers: 1
                      fare_class: 'Y'
                      origin: BER
                      destination: CDG
                      airline: LH
                      flight_number: BA115
                      departure_date: '2023-10-01'
                      sustainable_fuels:
                        carbon_reduction_percentage_of_total: 0.25
              calculation-flight-icao:
                summary: Flight type with ICAO methodology
                value:
                  expand:
                    - items
                  carbon_unit: tonne
                  distance_unit: kilometer
                  items:
                    - type: flight
                      methodology: ICAO
                      external_reference: string
                      booking_class: economy
                      number_of_travelers: 1
                      aircraft_type: 7M7
                      origin: BER
                      destination: CDG
                      fare_class: 'Y'
                      airline: LH
                      sustainable_fuels:
                        carbon_reduction_percentage_of_total: 0.25
              calculation-flight-tim:
                summary: Flight type with TIM methodology
                value:
                  expand:
                    - items
                  carbon_unit: tonne
                  distance_unit: kilometer
                  items:
                    - type: flight
                      methodology: TIM
                      external_reference: string
                      booking_class: economy
                      number_of_travelers: 1
                      fare_class: 'Y'
                      origin: BER
                      destination: CDG
                      airline: LH
                      departure_date: '2023-10-01'
                      sustainable_fuels:
                        carbon_reduction_percentage_of_total: 0.25
              calculation-flight-tu-chalmers:
                summary: Flight type with TU Chalmers methodology
                value:
                  expand:
                    - items
                  carbon_unit: tonne
                  distance_unit: kilometer
                  items:
                    - type: flight
                      methodology: TU-CHALMERS
                      external_reference: string
                      booking_class: economy
                      number_of_travelers: 1
                      fare_class: 'Y'
                      origin: BER
                      destination: CDG
                      airline: LH
                      plane_type: scheduled
                      biosfuel: true
                      sustainable_fuels:
                        carbon_reduction_percentage_of_total: 0.25
              calculation-flight-up-epa:
                summary: Flight type with US EPA methodology
                value:
                  expand:
                    - items
                  carbon_unit: tonne
                  distance_unit: kilometer
                  items:
                    - type: flight
                      methodology: US-EPA
                      external_reference: string
                      number_of_travelers: 1
                      origin: BER
                      destination: CDG
                      sustainable_fuels:
                        carbon_reduction_percentage_of_total: 0.25
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                  - carbon_quantity
                  - carbon_unit
                properties:
                  carbon_quantity:
                    type: number
                    examples:
                      - 0.37
                  carbon_unit:
                    $ref: '#/components/schemas/carbon_unit'
                  items:
                    type: array
                    description: >-
                      Expand items to receive emissions per item. By default,
                      this is not included.
                    items:
                      type: object
                      required:
                        - carbon_quantity
                        - carbon_unit
                        - type
                        - methodology
                      properties:
                        carbon_quantity:
                          type: number
                          examples:
                            - 0.37
                        carbon_unit:
                          $ref: '#/components/schemas/carbon_unit'
                        external_reference:
                          type: string
                        type:
                          $ref: '#/components/schemas/Carbon-Activity-Type'
                        methodology:
                          $ref: >-
                            #/components/schemas/Emissions-Calculation-Methodology
          headers:
            SQUAKE-Request-Id:
              schema:
                $ref: '#/components/schemas/SQUAKE-Request-Id'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
      security:
        - {}
        - Bearer-Auth: []
      servers:
        - url: https://api.squake.earth
          description: Production
        - url: https://api.sandbox.squake.earth
          description: Sandbox
  /v2/pricing:
    get:
      tags:
        - Pricing
      summary: Quote a Pricing
      description: >
        Returns pricing for a given product and carbon quantity (or a fixed
        total amount in any supported currency).

        <br><br>

        By default, requested pricing is valid for two weeks starting the moment
        you

        request it. Expired pricings can still be used as long as the underlying
        price

        hasn''t changed for your convenience.

        <br><br>

        Repeated purchases using the same pricing are possible via API and the
        checkout

        page using the pricing id or `payment_link`, respectively.

        <br><br>

        You can append additional parameters to the `payment_link`; SQUAKE's
        checkout

        page supports the following:


        * **localization**: Please use a two-letter ISO 639-1 code, for example:
        `&locale=en`

        for English.


        * **utm_***: any valid UTM tracking parameters, e.g.,
        `&utm_medium=email`.

        <br><br>


        This is a low-latency endpoint, useful for previewing pricing before
        making

        a purchase either via API or on the SQUAKE checkout page via the
        returned

        `payment_link`.'
      operationId: get-pricing
      parameters:
        - in: query
          name: filter
          style: form
          explode: true
          schema:
            type: object
            properties:
              product:
                description: The product_id to calculate pricing for.
                type: string
              carbon_quantity:
                description: The quantity of carbon to base the pricing on.
                type: number
              carbon_unit:
                $ref: '#/components/schemas/carbon_unit'
              fixed_total:
                description: >-
                  A fixed amount to compensate for emissions. The number refers
                  to the lowest denomination of the chosen currency, for example
                  sending 1234 EUR means 12.34 EUR.
                type: integer
              currency:
                $ref: '#/components/schemas/currency'
              expand[]:
                description: >-
                  Include the price or product as objects in the response (ID if
                  omitted).
                type: array
                items:
                  type: string
                  enum:
                    - product
                    - price
                  examples:
                    - product
              payment_link_return_url:
                description: >-
                  If the customer does not exit the browser after the purchase,
                  on success, SQUAKE will redirect the customer to this link.
                  This is used when you want your customer to use the SQUAKE
                  checkout page for the purchase.
                type: string
              payment_method:
                $ref: '#/components/schemas/payment_method'
            oneOf:
              - title: Carbon Quantity and Unit
                required:
                  - carbon_quantity
                  - carbon_unit
              - title: Fixed Total
                required:
                  - fixed_total
          examples:
            pricing-carbon-quantity:
              summary: Pricing with carbon quantity
              value:
                expand[]:
                  - price
                product: product_123ab
                carbon_quantity: 0.123
                carbon_unit: tonne
            pricing-fixed-price:
              summary: Pricing with fixed price
              value:
                expand[]:
                  - price
                product: product_123ab
                fixed_total: 465
                currency: EUR
            pricing-with-stripe:
              summary: Pricing with Stripe payment method
              value:
                expand[]:
                  - price
                product: product_123ab
                carbon_quantity: 0.123
                carbon_unit: tonne
                payment_method: stripe
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Pricing-Response-Params'
                description: foobarbaz
          headers:
            SQUAKE-Request-Id:
              schema:
                $ref: '#/components/schemas/SQUAKE-Request-Id'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
      security:
        - {}
        - Bearer-Auth: []
      servers:
        - url: https://api.squake.earth
          description: Production
        - url: https://api.sandbox.squake.earth
          description: Sandbox
  /v2/calculations-with-pricing:
    post:
      tags:
        - Combined Calculation & Pricing
      summary: Perform a Calculation including a Price Quote
      description: >
        Convenience all-in-one endpoint to perform carbon calculation

        and pricing. A purchase can be performed via API or SQUAKE's checkout
        page

        using the returned `payment_link`.

        <br><br>

        All features supported by either the `/calculations` or `/pricing`
        endpoint

        are equally valid for this combined endpoint. Please read the respective
        descriptions

        for details.

        <br><br>

        If you need only either pricing or carbon emissions, SQUAKE advises
        using

        the specific endpoints for lower latency and reduced implementation
        complexity.'
      operationId: post-calc-and-pricing
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                expand:
                  type: array
                  description: >-
                    If you choose to expand on e.g. "items", SQUAKE returns
                    emissions per each item separately (in addition to a total
                    value). If you include `items.pricing` a pricing token will
                    be returned for each item.
                  items:
                    type: string
                    enum:
                      - items
                      - product
                      - price
                      - items.pricing
                    examples:
                      - items
                items:
                  type: array
                  items:
                    $ref: '#/components/schemas/Calculation-Items'
                product:
                  type: string
                  pattern: product_[A-Za-z0-9]*
                  examples:
                    - product_afg3465afg3
                payment_link_return_url:
                  type: string
                  description: >-
                    If the customer does not exit the browser after the
                    purchase, on success, SQUAKE will redirect the customer to
                    this link.
                currency:
                  $ref: '#/components/schemas/currency'
                carbon_unit:
                  $ref: '#/components/schemas/carbon_unit'
                distance_unit:
                  $ref: '#/components/schemas/distance_unit'
                payment_method:
                  $ref: '#/components/schemas/payment_method'
              required:
                - items
                - product
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: A token encoding the pricing. Used to make a purchase.
                  carbon_quantity:
                    type: number
                  carbon_unit:
                    $ref: '#/components/schemas/carbon_unit'
                  payment_link:
                    type: string
                  price:
                    oneOf:
                      - type: string
                        description: ID of a price.
                        pattern: price_[A-Za-z0-9]*
                        examples:
                          - price_1MMroL2eZvKYlo2CxbxAACvb
                      - $ref: '#/components/schemas/Price'
                  product:
                    anyOf:
                      - type: string
                        description: ID of a product.
                        pattern: product_[A-Za-z0-9]*
                        examples:
                          - product_01fa2d8f04e424
                      - $ref: '#/components/schemas/Product'
                  valid_from:
                    $ref: '#/components/schemas/iso_8601_date'
                  valid_until:
                    $ref: '#/components/schemas/iso_8601_date'
                  currency:
                    $ref: '#/components/schemas/currency'
                  total:
                    type: integer
                    description: >-
                      The total amount in the lower denomination of the
                      currency; e.g. 12.34 USD would be 1234.
                  items:
                    type: array
                    description: >-
                      Expand items to receive emissions per item. By default,
                      this is not included.
                    items:
                      type: object
                      properties:
                        carbon_quantity:
                          type: number
                        carbon_unit:
                          $ref: '#/components/schemas/carbon_unit'
                        external_reference:
                          type: string
                        type:
                          $ref: '#/components/schemas/Carbon-Activity-Type'
                        methodology:
                          $ref: >-
                            #/components/schemas/Emissions-Calculation-Methodology
                        pricing:
                          type: object
                          description: Only included if `expand` includes `items.pricing`
                          properties:
                            id:
                              type: string
                              description: >-
                                A token encoding the pricing. Used to make a
                                purchase.
                            total:
                              type: string
                              description: >-
                                The total amount in the lower denomination of
                                the currency; e.g. 12.34 USD would be 1234.
                            currency:
                              $ref: '#/components/schemas/currency'
                          required:
                            - id
                            - total
                            - currency
                      required:
                        - carbon_quantity
                        - carbon_unit
                        - type
                        - methodology
                required:
                  - id
                  - carbon_quantity
                  - carbon_unit
                  - price
                  - product
                  - valid_from
                  - valid_until
                  - currency
                  - total
          headers:
            SQUAKE-Request-Id:
              schema:
                $ref: '#/components/schemas/SQUAKE-Request-Id'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
      security:
        - {}
        - Bearer-Auth: []
      servers:
        - url: https://api.squake.earth
          description: Production
        - url: https://api.sandbox.squake.earth
          description: Sandbox
  /v2/carbon-comparison:
    post:
      tags:
        - Carbon Comparison
      summary: Compare Carbon Usage
      description: >
        This endpoint allows you to compare carbon quantities to more

        recognizable items such as cars, light bulbs, or kettles.

        <br><br>

        Our list of metrics and comparison units are quite extensive so a list
        of

        accepted combinations has been compiled and is available
        [here](https://squake.notion.site/96b220031e8e4d64aec4f0e46a5bde97?v=8c67ffdcf91c4477acf0640688beea11&pvs=4)
      operationId: post-v2-carbon-comparison
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                carbon_quantity:
                  type: integer
                  minimum: 1
                  examples:
                    - 2000
                carbon_unit:
                  $ref: '#/components/schemas/carbon_unit'
                items:
                  type: array
                  description: >-
                    You can define one or more metrics you want to compare your
                    carbon quantity to.
                  items:
                    type: object
                    properties:
                      metric:
                        type: string
                        examples:
                          - annual_usage
                      comparison_unit:
                        type: string
                        description: >-
                          If you don't send a comparison unit then SQUAKE will
                          find the best match for the amount of CO2 you send in
                          the `carbon_quantity`
                        examples:
                          - cars
                    required:
                      - metric
              required:
                - carbon_quantity
                - carbon_unit
                - items
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  carbon_quantity:
                    type: integer
                    examples:
                      - 5000
                  carbon_unit:
                    $ref: '#/components/schemas/carbon_unit'
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        comparison_unit:
                          type: string
                          description: >-
                            The unit used as the comparison, if you passed one
                            in then it will be here. If you didn't send one then
                            this will be the one SQUAKE selected
                          examples:
                            - cars
                        metric:
                          type: string
                          examples:
                            - annual_usage
                        amount:
                          type: number
                          description: >-
                            The amount based on the metric, for example if
                            `metric` was `annual_usage` and `amount` was `0.5`
                            then that would be half a year
                          format: float
                      required:
                        - comparison_unit
                        - metric
                        - amount
                required:
                  - carbon_quantity
                  - carbon_unit
                  - items
          headers:
            SQUAKE-Request-Id:
              schema:
                type: string
              description: >-
                Unique identifier linked to this API request. If you need to
                contact us regarding a specific request, providing the request
                identifier helps the resolution process.
        '400':
          $ref: '#/components/responses/400'
      security:
        - {}
        - Bearer-Auth: []
      servers:
        - url: https://api.squake.earth
          description: Production
        - url: https://api.sandbox.squake.earth
          description: Sandbox
  /v2/purchases:
    post:
      tags:
        - Purchases
      summary: Create a Purchase
      description: >
        You can register a purchase programmatically to compensate for

        carbon emissions on this endpoint. You must quote for pricing beforehand
        and

        pass the returned pricing ID as a parameter.


        Alternatively, you can use the `payment_link` from the pricing endpoint
        to

        finalize the purchase using SQUAKE's provided checkout page.


        ### Lifecycle


        #### When purchasing via API (this endpoint)


        * **reserved**: A successful purchase starts in the state "reserved"; 
        SQUAKE

        registered your purchase and reserved carbon credits accordingly.


        * **canceled**: SQUAKE offers 14 days to cancel a purchase worry-free.
        This

        is a terminal state.


        * **confirmed**: The refundable period has passed. If you need to cancel
        the

        purchase beyond this point, please request a refund on the refunds
        endpoint.


        * **invoiced**: Without further action, a purchase is invoiced after the
        grace

        period and transitions to "invoiced".


        #### When purchasing via the checkout page


        * **payment_initiated**: the end customer entered the payment flow on
        the

        checkout page


        * **payment_aborted**: the payment failed permanently, for example,
        because

        the customer exited the page without finalizing the payment and didn''t
        return

        before the pricing''s validity ended. This is a terminal state.


        * **confirmed**: the payment provider informed SQUAKE about the
        successful

        payment. In this flow, this state exists only for a short time; the
        purchase

        immediately continues to "settled".


        #### Both


        * **settled**: SQUAKE has received the payment.


        * **refunded**: a refund request was successfully processed. This is a
        terminal

        state.


        * **certificates_confirmed**: all certificates for the carbon credits
        have

        been confirmed from all project partners related to the purchase.


        * **certificates_retired**: all certificates have been retired in the
        corresponding

        registries. This is a terminal state.
      operationId: post-purchases
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              type: object
              properties:
                pricing:
                  type: string
                  description: The ID from the pricing endpoint
                confirmation_document:
                  $ref: '#/components/schemas/Confirmation-Document'
                certificate_document:
                  $ref: '#/components/schemas/Certificate-Document'
                expand:
                  type: array
                  description: >-
                    Receive either the file-id, or the file-object of a
                    requested document. If omitted, only IDs are returned.
                  items:
                    const: files
                    examples:
                      - files
                metadata:
                  $ref: '#/components/schemas/Metadata'
                external_reference:
                  type: string
                  description: >-
                    If given, this reference must be unique. Suppose you need
                    idempotency on the purchase endpoint: in that case, the
                    external reference must be provided, meaning you can retry a
                    purchase call with the same pricing id multiple times
                    without registering multiple purchases, e.g., to recover
                    from a network failure. Remember: with a valid pricing id,
                    you can register as many purchases as you need. The
                    reference should have enough entropy; a great choice is a V4
                    UUID.
              required:
                - pricing
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Purchase'
          headers:
            SQUAKE-Request-Id:
              schema:
                $ref: '#/components/schemas/SQUAKE-Request-Id'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
      security:
        - {}
        - Bearer-Auth: []
      servers:
        - url: https://api.squake.earth
          description: Production
        - url: https://api.sandbox.squake.earth
          description: Sandbox
  /v2/purchases/{id}:
    get:
      tags:
        - Purchases
      summary: Retrieve a Purchase
      description: >
        Retrieve a purchase placed earlier. Useful to check for its state.

        To avoid short polling, you can register a webhook to stay informed
        about

        all your purchases automatically.


        You can use the `external_reference` as ID as well for the lookup; i.e.
        your

        unique identifier.
      operationId: get-purchases-id
      parameters:
        - name: expand[]
          in: query
          description: >-
            Include e.g. "files" to retrieve files as a full object (defaults to
            just their IDs)
          schema:
            type: string
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Purchase'
          headers:
            SQUAKE-Request-Id:
              schema:
                $ref: '#/components/schemas/SQUAKE-Request-Id'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - {}
        - Bearer-Auth: []
      servers:
        - url: https://api.squake.earth
          description: Production
        - url: https://api.sandbox.squake.earth
          description: Sandbox
    patch:
      tags:
        - Purchases
      summary: Update a Purchase
      description: >
        Update a purchase placed earlier.


        You can use the `external_reference` as ID as well for the lookup; i.e.
        your

        unique identifier.


        Omitted keys will not affect any present data. To remove optional data
        you must explicitly set the value to `null`.
      operationId: patch-purchases-id
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              type: object
              properties:
                confirmation_document:
                  $ref: '#/components/schemas/Confirmation-Document'
                certificate_document:
                  $ref: '#/components/schemas/Certificate-Document'
                expand:
                  type: array
                  description: >-
                    Receive either the file-id, or the file-object of a
                    requested document. If omitted, only IDs are returned.
                  items:
                    const: files
                    examples:
                      - files
                metadata:
                  $ref: '#/components/schemas/Metadata'
                external_reference:
                  type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Purchase'
          headers:
            SQUAKE-Request-Id:
              schema:
                $ref: '#/components/schemas/SQUAKE-Request-Id'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - {}
        - Bearer-Auth: []
      servers:
        - url: https://api.squake.earth
          description: Production
        - url: https://api.sandbox.squake.earth
          description: Sandbox
  /v2/purchases/{id}/cancel:
    post:
      tags:
        - Purchases
      summary: Cancel a Purchase
      description: >
        A purchase can be canceled as long as it is not confirmed; this

        is in the state `reserved`. After the cancelation period passes, the
        purchase

        transitions to `confirmed`. Confirmed purchases go to the batch
        settlement.
      operationId: post-purchases-id-cancel
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Purchase'
          headers:
            SQUAKE-Request-Id:
              schema:
                $ref: '#/components/schemas/SQUAKE-Request-Id'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - {}
        - Bearer-Auth: []
      servers:
        - url: https://api.squake.earth
          description: Production
        - url: https://api.sandbox.squake.earth
          description: Sandbox
  /v2/products:
    get:
      tags:
        - Products
      summary: Retrieve Products
      description: >
        A product is any purchasable compensation option SQUAKE offers.

        In the simplest case, a product maps to a single climate project such as
        "Sustainable

        Biofuel for Shipping". Depending on client need, SQUAKE also offers
        bundles

        of multiple climate projects; these can be centered around specific
        goals,

        e.g.,"carbon reduction", "location", or what is desired to achieve a
        particular

        price point or sustainability goal. Feel free to contact us for more
        information

        or custom products.
      operationId: get-products
      parameters:
        - name: locale
          in: query
          description: Descriptions of products can be localized.
          schema:
            $ref: '#/components/schemas/Locale'
        - name: page
          in: query
          description: >-
            An optional parameter that enables pagination, by default the amount
            of items per page is 25
          schema:
            type: number
            minimum: 1
        - name: items
          in: query
          description: >-
            An optional parameter that enables pagination, this controls the
            amount of items per page. Can be used separetly or in conjunction
            with `page`
          schema:
            type: number
            minimum: 1
            maximum: 25
            examples:
              - 5
        - name: category
          in: query
          description: Allows filtering of the categories of a product, filters by `code`
          schema:
            type: string
            examples:
              - Water
        - name: class
          in: query
          description: Allows filtering of the classes of a product, filters by `code`
          schema:
            type: string
            examples:
              - Nature Based
        - name: impact_type
          in: query
          description: Allows filtering of the impact types of a product, filters by `code`
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Product'
          headers:
            SQUAKE-Request-Id:
              schema:
                $ref: '#/components/schemas/SQUAKE-Request-Id'
        '401':
          $ref: '#/components/responses/401'
      security:
        - {}
        - Bearer-Auth: []
      servers:
        - url: https://api.squake.earth
          description: Production
        - url: https://api.sandbox.squake.earth
          description: Sandbox
  /v2/products/{id}:
    get:
      tags:
        - Products
      summary: Retrieve a Product
      description: Retrieve details about a specific product
      operationId: get-products-id
      parameters:
        - name: locale
          in: query
          description: Descriptions of products can be localized.
          schema:
            $ref: '#/components/schemas/Locale'
        - name: id
          in: path
          description: The product ID
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Product'
          headers:
            SQUAKE-Request-Id:
              schema:
                $ref: '#/components/schemas/SQUAKE-Request-Id'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
      security:
        - {}
        - Bearer-Auth: []
      servers:
        - url: https://api.squake.earth
          description: Production
        - url: https://api.sandbox.squake.earth
          description: Sandbox
  /v2/files/{id}:
    get:
      tags:
        - Files
      summary: Retrieve a File
      description: >
        Certain records may have files attached. For a purchase, you can

        request a compensation confirmation, for example. SQUAKE can send this
        via

        email; you can have it returned from the purchase request immediately or
        fetch

        the file from this endpoint later.


        SQUAKE advises fetching files async after the purchase to keep the
        latency

        of the purchase API call low. You will always receive the file ID from
        the

        purchase endpoint if files are, or will be, attached to the record.
      operationId: get-files-id
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/File'
          headers:
            SQUAKE-Request-Id:
              schema:
                $ref: '#/components/schemas/SQUAKE-Request-Id'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - {}
        - Bearer-Auth: []
      servers:
        - url: https://api.squake.earth
          description: Production
        - url: https://api.sandbox.squake.earth
          description: Sandbox
  /v2/healthz:
    get:
      tags:
        - Health Check
      summary: Healthz
      description: Simple health check to verify SQUAKE's server can be reached.
      operationId: get-v2-healthz
      responses:
        '200':
          description: OK
        '500':
          description: Internal Server Error
      security: []
      servers:
        - url: https://api.squake.earth
          description: Production
        - url: https://api.sandbox.squake.earth
          description: Sandbox
  /v2/livez:
    get:
      tags:
        - Health Check
      summary: Livez
      description: >-
        Health check to verify SQUAKE's server can be reached; this additionally
        checks the most critical sub-dependencies, such as database systems.
      operationId: get-v2-livez
      responses:
        '200':
          description: OK
        '500':
          description: Internal Server Error
      security: []
      servers:
        - url: https://api.squake.earth
          description: Production
        - url: https://api.sandbox.squake.earth
          description: Sandbox
  /v2/readyz:
    get:
      tags:
        - Health Check
      summary: Readyz
      description: >
        Extensive health check to verify SQUAKE's server can be reached;

        this additionally checks all sub-dependencies, such as database systems,
        and

        also considers the error rate of the most recent history. Meaning even
        if

        SQUAKE's servers are reachable, including their sub-systems, if other
        clients

        experience excessively many errors, this endpoint returns an error.
      operationId: get-v2-readyz
      responses:
        '200':
          description: OK
        '500':
          description: Internal Server Error
      security: []
      servers:
        - url: https://api.squake.earth
          description: Production
        - url: https://api.sandbox.squake.earth
          description: Sandbox
  /v2/webhooks:
    get:
      summary: Retrieve Registered Webhooks
      description: >
        Webhooks are HTTP callbacks that notify your application when

        events happen in SQUAKE's system.


        Instead of continuously polling our API, webhooks push data to your
        endpoint when events occur.


        This endpoint returns the list of currently registered webhooks.

        See the Integration Documentation for more information.
      operationId: get-v2-webhooks
      tags:
        - Webhooks
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Webhook'
      security:
        - {}
        - Bearer-Auth: []
      servers:
        - url: https://api.squake.earth
          description: Production
        - url: https://api.sandbox.squake.earth
          description: Sandbox
    post:
      summary: Register New Webhook
      description: >
        This endpoint allows you to register a new Webhook to subscribe to
        certain kind of events being triggered by Squake

        <br><br>

        **Important:** This endpoint returns a newly created webhook upon a
        successful request.

        <br>

        The webhook includes a `signing_key` used to verify the authenticity of
        future webhook messages.

        Please ensure you save this `signing_key`, as it cannot be retrieved
        later.
      operationId: post-v2-webhooks
      tags:
        - Webhooks
      requestBody:
        description: >
          This endpoint accepts JSON object with two fields:


          - `kind`

          - `endpoint_url`



          Right now we're supporting next types:


          - `order` - we'll send you an event when purchase which was made via
          stripe

          changes status

          - `confirmation_document_available` - we'll send a document when it's

          generated

          - `certificate_document_available` - we'll send a document when it's
          generated


          The `endpoint_url` value should be a valid URL that accepts `POST`
          requests.
        content:
          application/json:
            schema:
              type: object
              properties:
                kind:
                  type: string
                  enum:
                    - order
                    - confirmation_document_available
                    - certificate_document_available
                endpoint_url:
                  type: string
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookWithSigningKey'
        '422':
          $ref: '#/components/responses/422'
      security:
        - {}
        - Bearer-Auth: []
      servers:
        - url: https://api.squake.earth
          description: Production
        - url: https://api.sandbox.squake.earth
          description: Sandbox
  /v2/webhooks/{id}:
    get:
      summary: Retrieve Webhook Information
      description: >-
        This endpoint allows you to retrieve an information about a specific
        Webhook
      operationId: get-v2-webhooks-id
      tags:
        - Webhooks
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - {}
        - Bearer-Auth: []
      servers:
        - url: https://api.squake.earth
          description: Production
        - url: https://api.sandbox.squake.earth
          description: Sandbox
    put:
      summary: Update Webhook
      description: |
        This endpoint allows you to update a previously registered webhook.

        It accepts the same parameters as the Register New Webhook endpoint and
        responds with an updated Webhook entity
      operationId: put-v2-webhooks-id
      tags:
        - Webhooks
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                kind:
                  type: string
                  enum:
                    - order
                    - confirmation_document_available
                    - certificate_document_available
                endpoint_url:
                  type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422'
      security:
        - {}
        - Bearer-Auth: []
      servers:
        - url: https://api.squake.earth
          description: Production
        - url: https://api.sandbox.squake.earth
          description: Sandbox
    delete:
      summary: Delete Webhook
      description: This endpoint allows you to delete previously registered webhook
      operationId: delete-v2-webhooks-id
      tags:
        - Webhooks
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '204':
          description: No Content
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - {}
        - Bearer-Auth: []
      servers:
        - url: https://api.squake.earth
          description: Production
        - url: https://api.sandbox.squake.earth
          description: Sandbox
  /v2/audits:
    get:
      summary: Retrieve the list of Audit logs
      description: |
        Retrieve the list of audit logs for the authenticated client
      operationId: get-v2-audits
      tags:
        - Audits
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Audit'
        '403':
          $ref: '#/components/responses/403'
      security:
        - {}
        - Bearer-Auth: []
      servers:
        - url: https://api.squake.earth
          description: Production
        - url: https://api.sandbox.squake.earth
          description: Sandbox
  /v2/audits/{id}:
    get:
      summary: Retrieve a specific Audit log
      description: |
        Retrieves detailed information about a specific Audit log
      operationId: get-v2-audits-id
      tags:
        - Audits
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Audit'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
      security:
        - {}
        - Bearer-Auth: []
      servers:
        - url: https://api.squake.earth
          description: Production
        - url: https://api.sandbox.squake.earth
          description: Sandbox
components:
  securitySchemes:
    HTTP-Basic-Auth:
      type: http
      scheme: basic
    Bearer-Auth:
      type: http
      scheme: bearer
  responses:
    '400':
      description: Bad Request
      content:
        application/json:
          schema:
            type: object
            properties:
              errors:
                $ref: '#/components/schemas/API-Error'
      headers:
        SQUAKE-Request-Id:
          schema:
            $ref: '#/components/schemas/SQUAKE-Request-Id'
    '401':
      description: Unauthorized
      content:
        application/json:
          schema:
            type: object
            properties:
              errors:
                $ref: '#/components/schemas/API-Error'
      headers:
        SQUAKE-Request-Id:
          schema:
            $ref: '#/components/schemas/SQUAKE-Request-Id'
    '403':
      description: Forbidden
      content:
        application/json:
          schema:
            type: object
            properties:
              errors:
                $ref: '#/components/schemas/API-Error'
      headers:
        SQUAKE-Request-Id:
          schema:
            $ref: '#/components/schemas/SQUAKE-Request-Id'
    '404':
      description: Not Found
      content:
        application/json:
          schema:
            type: object
            properties:
              errors:
                $ref: '#/components/schemas/API-Error'
      headers:
        SQUAKE-Request-Id:
          schema:
            $ref: '#/components/schemas/SQUAKE-Request-Id'
    '422':
      description: Unprocessable Entity
      content:
        application/json:
          schema:
            type: object
            properties:
              errors:
                $ref: '#/components/schemas/API-Error'
      headers:
        SQUAKE-Request-Id:
          schema:
            $ref: '#/components/schemas/SQUAKE-Request-Id'
  schemas:
    Calculation-Items:
      title: Carbon Emission Calculation Types
      anyOf:
        - $ref: '#/components/schemas/Accommodation'
        - $ref: '#/components/schemas/Air-Freight'
        - $ref: '#/components/schemas/Bus'
        - $ref: '#/components/schemas/Car'
        - $ref: '#/components/schemas/Coffee-Production'
        - $ref: '#/components/schemas/Event'
        - $ref: '#/components/schemas/Expenditure'
        - $ref: '#/components/schemas/Ferry'
        - $ref: '#/components/schemas/Flight'
        - $ref: '#/components/schemas/Hotel'
        - $ref: '#/components/schemas/Inland-Waterways'
        - $ref: '#/components/schemas/Logistics-Site'
        - $ref: '#/components/schemas/Logistics'
        - $ref: '#/components/schemas/Private-Jet'
        - $ref: '#/components/schemas/Rail-Freight'
        - $ref: '#/components/schemas/Restaurant'
        - $ref: '#/components/schemas/Road-Freight'
        - $ref: '#/components/schemas/Sea-Freight'
        - $ref: '#/components/schemas/Train'
        - $ref: '#/components/schemas/Van'
    Carbon-Activity-Type:
      type: string
      enum:
        - accommodation
        - air_freight
        - bus
        - camping_site
        - car
        - co2_amount
        - coffee_production
        - cruise
        - expenditure
        - ferry
        - flight
        - general
        - hotel
        - logistics
        - logistics_site
        - money_amount
        - private_jet
        - sea_freight
        - inland_waterways
        - train
        - rail_freight
        - road_freight
        - van
      title: Carbon-Activity-Type
      examples:
        - air_freight
    Emissions-Calculation-Methodology:
      type: string
      enum:
        - ACRISS
        - ADEME
        - BASIC
        - CLEAN-CARGO
        - CO2-EMISSIEFACTOREN-NL
        - DIN-EN-16258
        - DEFRA
        - EU-EEA
        - EU-EMSA
        - US-EPA
        - HCMI
        - OFNK
        - ECTA
        - GLEC
        - ICAO
        - TIM
        - SQUAKE
      title: Emissions-Calculation-Methodology
      examples:
        - GLEC
    Pricing-Response-Params:
      type: object
      title: Pricing
      properties:
        id:
          type: string
          description: >-
            A token encoding the pricing; used to make a purchase. Requests for
            the same product and carbon quantity (or fixed total) may result in
            the same id. A pricing is valid for multiple purchases (the purchase
            endpoint is idempotent if you add an `external_reference` to the
            purchase call).
        payment_link:
          type: string
        price:
          oneOf:
            - type: string
              description: ID of a price.
              pattern: price_[A-Za-z0-9]*
              examples:
                - price_1MMroL2eZvKYlo2CxbxAACvb
            - $ref: '#/components/schemas/Price'
        product:
          anyOf:
            - type: string
              description: ID of a product.
              pattern: product_[A-Za-z0-9]*
              examples:
                - product_01fa2d8f04e424
            - $ref: '#/components/schemas/Product'
        valid_until:
          $ref: '#/components/schemas/iso_8601_date'
          description: >-
            By default, a price quote is valid from the moment you request it
            for two weeks. Expired price quotes are accepted if the underlying
            price hasn't changed.
        carbon_quantity:
          type: number
          description: Volume of carbon emissions
          readOnly: true
        carbon_unit:
          $ref: '#/components/schemas/carbon_unit'
        currency:
          $ref: '#/components/schemas/currency'
        total:
          type: integer
          description: >-
            The total amount in the lower denomination of the currency; e.g.
            12.34 USD would be 1234.
      required:
        - id
        - price
        - product
        - valid_until
        - carbon_quantity
        - carbon_unit
        - currency
        - total
    Price:
      type: object
      title: Price
      description: >-
        For carbon compensation products, prices define the unit cost (per unit,
        e.g., "tonne"). Prices are valid for a given period as the market
        fluctuates.



        Typically there is one currently valid price for a product. As the
        market fluctuates, prices can change; usually, SQUAKE is informed by
        their project partners of future price changes; hence multiple prices
        can be returned for the same product.



        This endpoint returns only valid prices. These are purley informational;
        for interacting with the API, `products` must be passed.
      properties:
        id:
          type: string
          pattern: price_[A-Za-z0-9]*
          readOnly: true
          examples:
            - price_1MMroL2eZvKYlo2CxbxAACvb
        product:
          type: string
          examples:
            - prod_N760vOJBvdEDY8
        unit_amount:
          type: integer
          description: >-
            The total amount in the lower denomination of the currency; e.g.
            12.34 USD would be 1234.
          format: int64
          examples:
            - 2500
        carbon_unit:
          $ref: '#/components/schemas/carbon_unit'
        currency:
          $ref: '#/components/schemas/currency'
        valid_from:
          $ref: '#/components/schemas/iso_8601_date'
      required:
        - id
        - product
        - unit_amount
        - carbon_unit
        - currency
        - valid_from
      examples: []
    Product:
      type: object
      title: Product
      description: >-
        A product is any purchasable compensation option SQUAKE offers. In the
        simplest case, a product maps to a single project such as "GoodShipping
        Sustainable Biofuel for Shipping". Depending on client need, SQUAKE also
        offers bundles of multiple projects; these can be centered around
        specific goals, e.g., "carbon avoidance", or mixed to achieve a
        particular price point. Feel free to contact us for more information or
        custom products.
      properties:
        id:
          type: string
          pattern: product_[A-Za-z0-9]*
          examples:
            - product_2rsg35sfsdf
        locations:
          type: array
          description: List of all locations impacted by the projects used in this product.
          items:
            $ref: '#/components/schemas/Location'
        certifications:
          type: array
          description: List of all certifications the projects for this product hold.
          items:
            $ref: '#/components/schemas/Certification'
        title:
          type: string
          description: 'A short human readable summary of the description. '
        description:
          type: string
          description: A human readable description.
        sdgs:
          type: array
          description: >-
            The Sustainable Development Goals (SDGs) aim to transform our world.
            They are a call to action to end poverty and inequality, protect the
            planet, and ensure that all people enjoy health, justice and
            prosperity.
          items:
            type: integer
            minimum: 1
            maximum: 17
            multipleOf: 1
            examples:
              - 7
        files:
          type: array
          description: Images attached to the product.
          items:
            $ref: '#/components/schemas/File'
        prices:
          type: array
          description: >-
            Multiple prices may exist, for example, when future price changes
            are already known.
          items:
            $ref: '#/components/schemas/Price'
        categories:
          type: array
          items:
            $ref: '#/components/schemas/ProductCategory'
        impact_types:
          type: array
          items:
            $ref: '#/components/schemas/ImpactType'
        classes:
          type: array
          items:
            $ref: '#/components/schemas/ProjectClass'
      required:
        - id
    Location:
      type: object
      title: Location
      description: >-
        Information on a location according to ISO 3166 or UN M49. This can be,
        for example, a country code such as `DE` for Germany (using alpha2), or
        a sub region code such as `155` for Western Europe, or region code such
        as `150` for Europe.
      properties:
        country:
          $ref: '#/components/schemas/country'
        sub_region:
          type: string
          description: One to Three-digit UN M49 sub region code.
          examples:
            - '150'
        region:
          type: string
          description: One to Three-digit UN M49 region code.
          examples:
            - '155'
      required:
        - country
    Certification:
      type: string
      enum:
        - American Carbon Registry
        - Australian Biodiversity Unit
        - BAFU VER
        - Clean Development Mechanism
        - DNV
        - Ernst & Young
        - European Biochar Certification
        - Gold Standard CER
        - Gold Standard VER
        - I-REC
        - International Sustainability & Carbon Certification (ISCC)
        - ISO 14064
        - Moor Futures
        - Müller BBM
        - Plan Vivo
        - TÜV
        - Verified Carbon Standard
      title: Certification
      description: >-
        Certification organizations rate and evaluate the quality of emitted
        carbon credits; such organizations assess, for example, the inclusion of
        safeguarding principles, the impact of climate and sustainable
        development goals, or the presence of a monitoring plan.
      examples:
        - European Biochar Certification
    File:
      type: object
      title: File
      properties:
        id:
          type: string
          pattern: file_[A-Za-z0-9]*
          examples:
            - file_asfg454s25
        filename:
          type: string
        purpose:
          type: string
          enum:
            - confirmation_document
            - certificate_document
            - project_image
          examples:
            - confirmation_document
        size:
          type: integer
          description: Byte size of the object
        type:
          type: string
          enum:
            - csv
            - jpg
            - pdf
            - png
            - webp
          examples:
            - pdf
        download_url:
          type: string
          description: >-
            The link will expire after 1 year. If blank, the document has not
            been created yet. Please poll until a link is included.
          format: uri
        notification:
          type: string
          description: >-
            Information pertaining to the file, e.g., when the file will be
            available
      required:
        - id
        - filename
        - purpose
        - size
        - type
    ProductCategory:
      type: object
      title: ProductCategory
      properties:
        code:
          type: string
          description: Unique identifier for a category
          pattern: ^[a-z_]+$
          examples:
            - forestry_and_land_use
        title:
          type: string
          description: English human-readable name of the category.
          examples:
            - Forestry and Land Use
      required:
        - code
    ImpactType:
      type: object
      title: ImpactType
      properties:
        code:
          type: string
          description: Unique identifier for a impact type
          pattern: ^[a-z_]+$
          examples:
            - avoidance
        title:
          type: string
          description: English human-readable name of the impact type
          examples:
            - Avoidance
      required:
        - code
    ProjectClass:
      type: object
      title: ProjectClass
      properties:
        code:
          type: string
          description: Unique identifier for a project class
          pattern: ^[a-z_]+$
          examples:
            - technology_based
        title:
          type: string
          description: English human-readable name of the project class
          examples:
            - Technology based
      required:
        - code
    Confirmation-Document:
      type: object
      title: Confirmation-Document
      properties:
        full_name:
          type: string
          description: >-
            Legal name of an entity or natural person to which the document
            shall be issued. If you cannot disclose this, you can send any
            de-personalized identifier (such as a UUID).
        address:
          $ref: '#/components/schemas/Address'
        email:
          type: string
          description: >-
            SQUAKE can send an email with the compensation confirmation. If
            omitted, no email is sent. In either case, a download link will be
            made available.
          format: email
        on_behalf_of:
          type: object
          description: >-
            If you make a compensation on behalf on another entity or person.
            This will be printed on the issued document.
          properties:
            full_name:
              type: string
            address:
              $ref: '#/components/schemas/Address'
          required:
            - full_name
        locale:
          $ref: '#/components/schemas/Locale'
      required:
        - full_name
        - address
    Address:
      type: object
      title: Address
      description: >-
        Address of a legal entity. Some (legal) documets require a full address
        to be given, e.g. an invoice.
      properties:
        city:
          type: string
          description: City, town, village,...
        country:
          $ref: '#/components/schemas/country'
        line1:
          type: string
          description: street, post box, company name, ...
        line2:
          type: string
          description: suite, apartment number, ...
        postal_code:
          type: string
          description: ZIP or postal code
        state:
          type: string
          description: County, Province, Region, State,...
      required:
        - city
        - country
        - line1
        - postal_code
    Locale:
      type: string
      enum:
        - de
        - en
        - es
        - fr
        - hi
        - it
        - ja
        - pt
        - pt-BR
        - zh-CN
      title: Locale
      description: >-
        Two-letter ISO 639-1 or BCP 47 code describing a language. Descriptions
        and emails meant for end users can be localized. System messages meant
        for developers are always in english.
      pattern: ^(?:[a-z]{2}|[a-z]{2}-[A-Z]{2})$
      minLength: 2
      maxLength: 5
      default: en
      examples:
        - en
    Certificate-Document:
      type: object
      title: Certificate-Document
      properties:
        full_name:
          type: string
          description: >-
            Legal name of an entity or natural person to which the document
            shall be issued. If you cannot disclose this, you can send any
            de-personalized identifier (such as a UUID).
        address:
          $ref: '#/components/schemas/Address'
        email:
          type: string
          description: >-
            SQUAKE can send an email with the compensation certificate. If
            omitted, no email is sent. In either case, a download link will be
            made available.
          format: email
        flags:
          type: array
          description: >-
            If "with_attribution" is sent, your name will be mentioned on the
            certificate; e.g. "(..) enabled by ${your_name} (..)".
          items:
            const: with_attribution
            examples:
              - with_attribution
        locale:
          $ref: '#/components/schemas/Locale'
      required:
        - full_name
        - address
    Metadata:
      type: object
      title: Metadata
      description: >-
        A set of key-value pairs of yours that helps you link this record in
        your system. Never displayed to users.
    Purchase:
      type: object
      title: Purchase
      examples: []
      properties:
        id:
          type: string
          pattern: purchase_[a-zA-Z0-9]*
          examples:
            - purchase_sd234asdfl23
        files:
          type: array
          description: >-
            Contains for example the certificate document if it was requested
            during the purchase.
          uniqueItems: true
          items:
            oneOf:
              - type: string
                pattern: file_[A-Za-z0-9]*
                examples:
                  - file_34sdfgJH9df4g35
              - $ref: '#/components/schemas/File'
        payment_method:
          $ref: '#/components/schemas/Payment-Method'
        state:
          $ref: '#/components/schemas/Purchase-State'
        metadata:
          $ref: '#/components/schemas/Metadata'
        checkout_page:
          type: object
          description: >-
            Present if the payment method is `stripe`, meaning self-fulfillment
            by the customer on SQUAKEs payment page.
          properties:
            url:
              type: string
              description: >-
                Send your customer to this URL to finalise the purchase. This
                link is not the stateless payment link, but bound to this
                purchase.
              format: uri
              examples:
                - https://checkout.squake.earth
            return_url:
              type: string
              description: >-
                If the customer does not exit the browser after the purchase, on
                success, SQUAKE will redirect the customer to this link.
              format: uri
              examples:
                - https://example.com
        carbon_quantity:
          type: number
        carbon_unit:
          $ref: '#/components/schemas/carbon_unit'
        total:
          type: integer
        currency:
          $ref: '#/components/schemas/currency'
        external_reference:
          type: string
          description: >-
            Unique identifier from your system; used as idempotency when
            creating this resource.
        cancellable_until:
          description: The date until which purchase can be cancelled
          type: string
          format: date-time
          example: '2025-01-01T15:00:00+00:00'
      required:
        - id
        - payment_method
        - state
        - carbon_quantity
        - carbon_unit
        - total
        - currency
      description: ''
    Payment-Method:
      type: string
      enum:
        - batch_settlement
        - stripe
      title: Payment-Method
      description: >-
        Mode of payment. The batch settlement means SQUAKE will invoice you
        regularly for a batch of purchases. The checkout page is SQUAKEs
        self-fulfillment solution where end-customers can purchase a product
        directly from SQUAKE as the merchant of record.
      default: batch_settlement
      examples:
        - batch_settlement
    Purchase-State:
      type: string
      enum:
        - reserved
        - confirmed
        - invoiced
        - settled
        - certificates_confirmed
        - certificates_retired
        - payment_initiated
        - canceled
        - voided
        - refunded
        - payment_aborted
      title: Purchase State
    Webhook:
      type: object
      description: >-
        Squake application generates events on certain actions. To be notified
        about these actions client can create a webhook. For now you can create
        one webhook per one kind of events.


        On the first creation of webhook, you would receive `signing_key`. 

        You should save these signing key securely as we're using it to sign our
        webhooks, so later you can check the authentity of the received event.


        To sign the webhook payload, we're creating HMAC signature of the
        payload using SHA256.
      properties:
        id:
          type: string
          description: >-
            A unique identifier for the webhook, represented as a universally
            unique identifier (UUID)
          format: uuid
        last_failed_at:
          type:
            - string
            - 'null'
          description: >-
            The timestamp of the most recent failed delivery attempt. If no
            failures have occurred, this field is null
          format: date-time
        last_sent_at:
          type:
            - string
            - 'null'
          description: >-
            The timestamp of the most recent successful delivery attempt. If no
            attempts have been made, this field is null
          format: date-time
        failed_attempts:
          type: integer
          description: The total number of consecutive failed delivery attempts
        kind:
          type: string
          enum:
            - order
            - carbon_activity_expired
            - confirmation_document_available
            - certificate_document_available
          description: The type of event that triggers the webhook
        endpoint_url:
          type: string
          description: >-
            The URL where the webhook payloads are sent. Must be a valid URI
            that accepts POST requests
          format: uri
      examples:
        - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08
          last_failed_at: '2024-08-22T14:10:78Z'
          last_sent_at: '2024-08-24T14:15:22Z'
          failed_attempts: 0
          kind: order
          endpoint_url: http://example.com
          signing_key: TAWHPBAVckH8KmxRtlRX/rQ/mona5vUem7QFtozGHxM=
      x-examples:
        Example 1:
          id: 38b2be09-e80b-4684-96d6-0b5b6bdf7738
          last_failed_at: null
          last_sent_at: null
          client_id: 46ad191f-1f15-4328-8be0-7a5ce78f5a78
          failed_attempts: 0
          kind: order
          endpoint_url: testik.com
          created_at: '2024-11-29T13:07:55.753Z'
          updated_at: '2024-11-29T13:07:55.753Z'
          deleted_at: null
    WebhookWithSigningKey:
      type: object
      description: >-
        Squake application generates events on certain actions. To be notified
        about these actions client can create a webhook. For now you can create
        one webhook per one kind of events.


        On the first creation of webhook, you would receive `signing_key`. 

        You should save these signing key securely as we're using it to sign our
        webhooks, so later you can check the authentity of the received event.


        To sign the webhook payload, we're creating HMAC signature of the
        payload using SHA256.
      properties:
        id:
          type: string
          description: >-
            A unique identifier for the webhook, represented as a universally
            unique identifier (UUID)
          format: uuid
        last_failed_at:
          type:
            - string
            - 'null'
          description: >-
            The timestamp of the most recent failed delivery attempt. If no
            failures have occurred, this field is null
          format: date-time
        last_sent_at:
          type:
            - string
            - 'null'
          description: >-
            he timestamp of the most recent successful delivery attempt. If no
            attempts have been made, this field is null
          format: date-time
        failed_attempts:
          type: integer
          description: The total number of consecutive failed delivery attempts
        kind:
          type: string
          enum:
            - order
            - carbon_activity_expired
            - confirmation_document_available
            - certificate_document_available
          description: The type of event that triggers the webhook
        endpoint_url:
          type: string
          description: >-
            The URL where the webhook payloads are sent. Must be a valid URI
            that accepts POST requests
          format: uri
        signing_key:
          type: string
          description: >-
            32 bit signing key that we're using to generate webhook signature.  

            `signing_key` is being generated on webhook creation and being
            exposed only once, so make sure you've saved it
      examples:
        - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08
          last_failed_at: '2024-08-22T14:10:78Z'
          last_sent_at: '2024-08-24T14:15:22Z'
          failed_attempts: 0
          kind: order
          endpoint_url: http://example.com
          signing_key: TAWHPBAVckH8KmxRtlRX/rQ/mona5vUem7QFtozGHxM=
      x-examples:
        Example 1:
          id: 38b2be09-e80b-4684-96d6-0b5b6bdf7738
          last_failed_at: null
          last_sent_at: null
          client_id: 46ad191f-1f15-4328-8be0-7a5ce78f5a78
          failed_attempts: 0
          kind: order
          endpoint_url: testik.com
          created_at: '2024-11-29T13:07:55.753Z'
          updated_at: '2024-11-29T13:07:55.753Z'
          deleted_at: null
    API-Error:
      type: array
      title: API Error
      items:
        type: object
        properties:
          code:
            type: string
            enum:
              - field_validation_error
              - server_error
              - not_authorized
              - not_found
              - invalid_methodology
              - invalid_type
            description: An application-specific error code, expressed as a string value.
            examples:
              - field_validation_error
          detail:
            type: string
            description: >-
              A human-readable explanation specific to this occurrence of the
              problem. Like title, this field's value can be localized.
          source:
            $ref: '#/components/schemas/API-ErrorSource'
            description: An object containing references to the primary source of the error
        required:
          - code
    API-ErrorSource:
      type: object
      title: API-ErrorSource
      properties:
        id:
          type: string
        attribute:
          type: string
        model:
          type: string
      required:
        - attribute
    carbon_unit:
      type: string
      enum:
        - tonne
        - kilogram
        - gram
      title: Carbon Unit
      description: >-
        SQUAKE uses The International System of Units (SI), commonly referred to
        as "metric system".
      examples:
        - tonne
    distance_unit:
      type: string
      enum:
        - meter
        - kilometer
        - feet
        - mile
        - nautical_mile
      title: Distance-Unit
      description: SQUAKE uses common distance units
      default: kilometer
      examples:
        - kilometer
    AuditFor:
      type: object
      description: >-
        If you make a calculation on behalf of a specific legal entity, you can
        specify their details here.
      title: AuditFor
      properties:
        legal_name:
          type: string
          description: Legal name of the entity you're performing calculation for.
        external_id:
          type: string
          description: External id of the entity you're performing audit for.
          format: email
      required:
        - legal_name
    Calculation-Base-Item:
      type: object
      properties:
        audit:
          type: boolean
          title: Audit mode
          description: >
            SQUAKE provides you the option to create audit records for your
            calculations requests.


            **Note:** to use this feature you need to have it enabled for your
            account, please contact us for more information.
          default: false
    external_reference:
      type: string
      title: external_reference
      description: >-
        A unique identifier that helps you link the resulting emissions to the
        requested item. Especially useful if multiple items are requested since
        SQUAKE cannot guarantee to keep the same order. The maximum length is
        128 characters.
      maxLength: 128
    country:
      type: string
      title: Country
      description: >-
        Two-letter or three-letter code as defined in ISO 3166-1 alpha-2 and
        alpha-3 respectively.
      pattern: ^[A-Z]{2,3}$
      minLength: 2
      maxLength: 3
      examples:
        - DE
    Accommodation:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Accommodation
          description: >
            Accommodation considers only activities related to short-term

            rentals, lodging, sublets, etc.


            SQUAKE has country-specific values for most parameters. If the
            country is

            omitted, default values will apply.
          properties:
            type:
              const: accommodation
              examples:
                - accommodation
            methodology:
              const: SQUAKE
              default: SQUAKE
              examples:
                - SQUAKE
            external_reference:
              $ref: '#/components/schemas/external_reference'
            number_of_nights:
              type: integer
              description: >-
                Required if start and end dates are omitted; else this is
                ignored.
              format: int32
              minimum: 1
              examples:
                - 2
            starts_on:
              type: string
              description: >-
                The format is ISO 8601 Date, `YYYY-MM-DD`. Required if
                season-specific methodology shall be used, or number of nights
                is omitted.
              format: date
              examples:
                - '2020-01-01'
            ends_on:
              type: string
              description: >-
                The format is ISO 8601 Date, `YYYY-MM-DD`. Required if
                season-specific methodology shall be used, or number of nights
                is omitted.
              format: date
              examples:
                - '2020-01-01'
            country:
              $ref: '#/components/schemas/country'
            number_of_travelers:
              type: integer
              description: The default value depends on the country.
              minimum: 1
              examples:
                - 1
            square_meters:
              type: number
              description: The default value depends on the country.
              format: double
              minimum: 1
              examples:
                - 50
            sauna:
              type: boolean
              default: false
            parking:
              type: boolean
              default: true
            swimming_pool:
              type: boolean
              default: false
            air_conditioner:
              type: boolean
              default: false
            garage:
              type: boolean
              default: false
          anyOf:
            - title: Specified interval
              required:
                - type
                - methodology
                - starts_on
                - ends_on
                - number_of_travelers
                - square_meters
            - title: Specified number of nights
              required:
                - type
                - methodology
                - number_of_nights
                - number_of_travelers
                - square_meters
    origin_destination:
      type: string
      title: origin_destination
      description: >-
        SQUAKE will try to resolve the origin/destination regardless of its
        format. Ideally, for addresses use the Post standard, for airports use
        IATA/ICAO code (format: `^[A-Z]{3,4}$`, e.g. `"MUC"`), for other
        locations used in trade and transportation use UN/LOCODE codes (format:
        `^[A-Z]{2}\W?[A-Z2-9]{3}$`, e.g. `"DEHAM"`). You can also pass lat/long
        (format: `^[-+]?\d{1,3}\.\d{1,10}\s?,\s?[-+]?\d{1,3}\.\d{1,10}$`, e.g.
        `"+40.712,-74.006"`).
    distance_in_km:
      type: number
      title: distance_in_km
      description: >-
        Prioritized over `origin` and `destination`. If you don't have a
        `distance_in_km`, you can use `origin` and `destination` and the
        distance will be automatically resolved. If you pass both
        `distance_in_km` and `origin`/`destination`, then `distance_in_km` will
        be used.
      format: double
      examples:
        - 137.11
    energy_scope:
      type: string
      enum:
        - ttw
        - wtw
      title: EnergyScope
      description: |
        `ttw` - Tank-to-Wheel

        `wtw` - Well-to-Wheel
      default: wtw
      examples:
        - ttw
    Air-Freight-DIN-EN-16258:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Air Freight DIN-EN-16258
          properties:
            type:
              const: air_freight
              examples:
                - air_freight
            methodology:
              type: string
              const: DIN-EN-16258
              description: 'Default: `"SQUAKE"`'
            external_reference:
              $ref: '#/components/schemas/external_reference'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            weight_in_tonnes:
              type: integer
            plane_type:
              type: string
              enum:
                - belly_freighter
                - freighter
              default: belly_freighter
              examples:
                - belly_freighter
            energy_scope:
              $ref: '#/components/schemas/energy_scope'
          required:
            - type
            - methodology
            - origin
            - destination
            - weight_in_tonnes
    Air-Freight-GLEC:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Air Freight GLEC
          properties:
            type:
              const: air_freight
              examples:
                - air_freight
            methodology:
              type: string
              const: GLEC
              description: 'Default: `"SQUAKE"`'
            external_reference:
              $ref: '#/components/schemas/external_reference'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            weight_in_tonnes:
              type: integer
            plane_type:
              type: string
              enum:
                - belly_freighter
                - freighter
                - average
              default: average
              examples:
                - average
            energy_scope:
              $ref: '#/components/schemas/energy_scope'
          required:
            - type
            - methodology
            - origin
            - destination
            - weight_in_tonnes
    Air-Freight-LUFHANSA-CARGO:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Air Freight Lufthansa Cargo
          properties:
            type:
              const: air_freight
              examples:
                - air_freight
            methodology:
              type: string
              const: LUFTHANSA-CARGO
              description: 'Default: `"SQUAKE"`'
            external_reference:
              $ref: '#/components/schemas/external_reference'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            weight_in_tonnes:
              type: integer
            plane_type:
              type: string
              enum:
                - belly_freighter
                - freighter
              default: belly_freighter
              examples:
                - belly_freighter
            aircraft_type:
              type: string
              enum:
                - M11
                - M1F
                - M1M
                - 77F
                - average
              default: average
          required:
            - type
            - methodology
            - origin
            - destination
            - distance_in_km
            - weight_in_tonnes
    Air-Freight-SQUAKE:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Air Freight SQUAKE
          properties:
            type:
              const: air_freight
              examples:
                - air_freight
            methodology:
              type: string
              const: SQUAKE
              description: 'Default: `"SQUAKE"`'
            external_reference:
              $ref: '#/components/schemas/external_reference'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            weight_in_tonnes:
              type: integer
          required:
            - type
            - methodology
            - origin
            - destination
            - weight_in_tonnes
    Air-Freight:
      type: object
      title: Air Freight
      description: >
        If you have freight and don't know the type, you can use `Logistics`.


        Additional information may be returned in the response for `GLEC`.


        The format is:


        ```json
          "data": [
            {
              "co2e_in_g": int,  
              "co2e_emissions_wtw_in_g": int,
              "co2e_per_tonne_km_in_g": int,
              "tonne_km": int,
              "reporting_year": int,
              "transportation_mode": "string"
            }
          ]
        ```


        Additional information may be returned in the response for
        `DIN-EN-16258`.


        The format is:

        ```json
          "data": [
            {
              "energy_factor_ttw_in_MJ": int,
              "energy_factor_wtw_in_MJ": int,
              "ghg_emissions_ttw_in_g": int,
              "ghg_emissions_wtw_in_g": int
            }
          ]
        ```
      properties:
        type:
          const: air_freight
          examples:
            - air_freight
        methodology:
          type: string
      discriminator:
        propertyName: methodology
        mapping:
          DIN-EN-16258: '#/components/schemas/Air-Freight-DIN-EN-16258'
          GLEC: '#/components/schemas/Air-Freight-GLEC'
          LUFTHANSA-CARGO: '#/components/schemas/Air-Freight-LUFHANSA-CARGO'
          SQUAKE: '#/components/schemas/Air-Freight-SQUAKE'
      anyOf:
        - $ref: '#/components/schemas/Air-Freight-DIN-EN-16258'
        - $ref: '#/components/schemas/Air-Freight-GLEC'
        - $ref: '#/components/schemas/Air-Freight-LUFHANSA-CARGO'
        - $ref: '#/components/schemas/Air-Freight-SQUAKE'
      Air-Freight-DIN-EN-16258:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Air Freight DIN-EN-16258
            properties:
              type:
                const: air_freight
                examples:
                  - air_freight
              methodology:
                type: string
                const: DIN-EN-16258
                description: 'Default: `"SQUAKE"`'
              external_reference:
                $ref: '#/components/schemas/external_reference'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              weight_in_tonnes:
                type: integer
              plane_type:
                type: string
                enum:
                  - belly_freighter
                  - freighter
                default: belly_freighter
                examples:
                  - belly_freighter
              energy_scope:
                $ref: '#/components/schemas/energy_scope'
            required:
              - type
              - methodology
              - origin
              - destination
              - weight_in_tonnes
      Air-Freight-LUFHANSA-CARGO:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Air Freight Lufthansa Cargo
            properties:
              type:
                const: air_freight
                examples:
                  - air_freight
              methodology:
                type: string
                const: LUFTHANSA-CARGO
                description: 'Default: `"SQUAKE"`'
              external_reference:
                $ref: '#/components/schemas/external_reference'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              weight_in_tonnes:
                type: integer
              plane_type:
                type: string
                enum:
                  - belly_freighter
                  - freighter
                default: belly_freighter
                examples:
                  - belly_freighter
              aircraft_type:
                type: string
                enum:
                  - M11
                  - M1F
                  - M1M
                  - 77F
                  - average
                default: average
            required:
              - type
              - methodology
              - origin
              - destination
              - distance_in_km
              - weight_in_tonnes
      Air-Freight-GLEC:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Air Freight GLEC
            properties:
              type:
                const: air_freight
                examples:
                  - air_freight
              methodology:
                type: string
                const: GLEC
                description: 'Default: `"SQUAKE"`'
              external_reference:
                $ref: '#/components/schemas/external_reference'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              weight_in_tonnes:
                type: integer
              plane_type:
                type: string
                enum:
                  - belly_freighter
                  - freighter
                  - average
                default: average
                examples:
                  - average
              energy_scope:
                $ref: '#/components/schemas/energy_scope'
            required:
              - type
              - methodology
              - origin
              - destination
              - weight_in_tonnes
      Air-Freight-SQUAKE:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Air Freight SQUAKE
            properties:
              type:
                const: air_freight
                examples:
                  - air_freight
              methodology:
                type: string
                const: SQUAKE
                description: 'Default: `"SQUAKE"`'
              external_reference:
                $ref: '#/components/schemas/external_reference'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              weight_in_tonnes:
                type: integer
            required:
              - type
              - methodology
              - origin
              - destination
              - weight_in_tonnes
    Bus-DEFRA:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Bus DEFRA
          properties:
            type:
              const: bus
              examples:
                - bus
            methodology:
              const: DEFRA
              examples:
                - DEFRA
              description: 'Default: `"SQUAKE"`'
            external_reference:
              $ref: '#/components/schemas/external_reference'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            number_of_travelers:
              type: integer
              minimum: 1
              default: 1
              examples:
                - 2
            energy_scope:
              $ref: '#/components/schemas/energy_scope'
            bus_type:
              type: string
              default: average_local_bus
              example: average_local_bus
              enum:
                - local_bus_not_london
                - local_bus_london
                - average_local_bus
                - coach
          required:
            - type
            - methodology
            - origin
            - destination
    Bus-SQUAKE:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Bus SQUAKE
          properties:
            type:
              const: bus
              examples:
                - bus
            methodology:
              const: SQUAKE
              examples:
                - SQUAKE
              description: 'Default: `"SQUAKE"`'
            external_reference:
              $ref: '#/components/schemas/external_reference'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            number_of_travelers:
              type: integer
              minimum: 1
              default: 1
              examples:
                - 2
            fuel_type:
              type: string
              enum:
                - lng
                - diesel
                - lpg
                - phev
                - hydrogen
                - electricity
                - average
              default: average
              example: diesel
            operator_name:
              type: string
              example: flixbus
              description: >-
                `SQUAKE`'s methodology allows passing the operator's name to get
                a more accurate result. Here is [the
                database](https://squake.notion.site/31f83752e3bd4cf2ba314ceb8fa2acc6?v=5190873dd753431187b735a8fe40038f)
                with the supported operators. If your operator is not supported,
                feel free to contact us.
          required:
            - type
            - methodology
            - origin
            - destination
    Bus:
      type: object
      title: Bus
      properties:
        type:
          const: bus
          examples:
            - bus
        methodology:
          type: string
      discriminator:
        propertyName: methodology
        mapping:
          DEFRA: '#/components/schemas/Bus-DEFRA'
          SQUAKE: '#/components/schemas/Bus-SQUAKE'
      anyOf:
        - $ref: '#/components/schemas/Bus-DEFRA'
        - $ref: '#/components/schemas/Bus-SQUAKE'
      Bus-DEFRA:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Bus DEFRA
            properties:
              type:
                const: bus
                examples:
                  - bus
              methodology:
                const: DEFRA
                examples:
                  - DEFRA
                description: 'Default: `"SQUAKE"`'
              external_reference:
                $ref: '#/components/schemas/external_reference'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              number_of_travelers:
                type: integer
                minimum: 1
                default: 1
                examples:
                  - 2
              energy_scope:
                $ref: '#/components/schemas/energy_scope'
              bus_type:
                type: string
                default: average_local_bus
                example: average_local_bus
                enum:
                  - local_bus_not_london
                  - local_bus_london
                  - average_local_bus
                  - coach
            required:
              - type
              - methodology
              - origin
              - destination
      Bus-SQUAKE:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Bus SQUAKE
            properties:
              type:
                const: bus
                examples:
                  - bus
              methodology:
                const: SQUAKE
                examples:
                  - SQUAKE
                description: 'Default: `"SQUAKE"`'
              external_reference:
                $ref: '#/components/schemas/external_reference'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              number_of_travelers:
                type: integer
                minimum: 1
                default: 1
                examples:
                  - 2
              fuel_type:
                type: string
                enum:
                  - lng
                  - diesel
                  - lpg
                  - phev
                  - hydrogen
                  - electricity
                  - average
                default: average
                example: diesel
              operator_name:
                type: string
                example: flixbus
                description: >-
                  `SQUAKE`'s methodology allows passing the operator's name to
                  get a more accurate result. Here is [the
                  database](https://squake.notion.site/31f83752e3bd4cf2ba314ceb8fa2acc6?v=5190873dd753431187b735a8fe40038f)
                  with the supported operators. If your operator is not
                  supported, feel free to contact us.
            required:
              - type
              - methodology
              - origin
              - destination
    Acriss-Car-Type:
      type: string
      enum:
        - M
        - 'N'
        - E
        - H
        - C
        - D
        - I
        - J
        - S
        - R
        - F
        - G
        - P
        - U
        - L
        - W
        - X
        - O
      description: |
        Available car types:
        |Code|Description|
        |--|--------|
        |C|Compact|
        |D|Compact Elite|
        |E|Economy|
        |F|Fullsize|
        |G|Fullsize Elite|
        |H|Economy Elite|
        |I|Intermediate|
        |J|Intermediate Elite|
        |L|Luxury|
        |M|Mini|
        |N|Mini Elite|
        |P|Premium|
        |R|Standard Elite|
        |S|Standard|
        |U|Premium Elite|
        |W|Luxury Elite|
        |X|Special|
        |O|Oversize|
      pattern: ^[A-Z]{1}$
      default: E
      examples:
        - E
    SIPP-Car-Code:
      type: string
      enum:
        - CBAN
        - CBAR
        - CBMN
        - CBMR
        - CCAN
        - CCAR
        - CCMD
        - CCMN
        - CCMR
        - CDAN
        - CDAR
        - CDMD
        - CDMN
        - CDMR
        - CFAR
        - CFMN
        - CFMR
        - CIMR
        - CLMR
        - CPAR
        - CPMN
        - CPMR
        - CTAR
        - CTMN
        - CTMR
        - CVAR
        - CVMD
        - CVMR
        - CWAR
        - CWMD
        - CWMN
        - CWMR
        - CXAN
        - CXAR
        - CXMN
        - CXMR
        - EBAN
        - EBAR
        - EBMN
        - EBMR
        - ECAN
        - ECAR
        - ECMD
        - ECMN
        - ECMR
        - EDAN
        - EDAR
        - EDMD
        - EDMN
        - EDMR
        - EFAD
        - EFAR
        - EFMR
        - EKMN
        - ESAR
        - ESMR
        - ETAR
        - ETMN
        - ETMR
        - EVMN
        - EVMR
        - EWMN
        - EWMR
        - EXAR
        - EXMN
        - EXMR
        - FBAR
        - FCAR
        - FCMR
        - FDAD
        - FDAR
        - FDMD
        - FDMN
        - FDMR
        - FFAN
        - FFAR
        - FFMN
        - FFMR
        - FIAR
        - FIMR
        - FPAR
        - FPMR
        - FTAR
        - FTMR
        - FVAN
        - FVAR
        - FVMD
        - FVMN
        - FVMR
        - FWAD
        - FWAR
        - FWMR
        - FXAR
        - FXMR
        - GVAR
        - GVMR
        - IBAR
        - IBMD
        - IBMR
        - ICAN
        - ICAR
        - ICMN
        - ICMR
        - IDAD
        - IDAN
        - IDAR
        - IDMD
        - IDMN
        - IDMR
        - IFAN
        - IFAR
        - IFMN
        - IFMR
        - IGMR
        - IIMR
        - IJAR
        - IJMR
        - ILMR
        - IPMR
        - ITAR
        - ITMN
        - ITMR
        - IVAN
        - IVAR
        - IVMN
        - IVMR
        - IWAN
        - IWAR
        - IWMD
        - IWMN
        - IWMR
        - IXAR
        - IXMN
        - IXMR
        - JFAR
        - LCAN
        - LCAR
        - LCMR
        - LDAD
        - LDAR
        - LDMR
        - LFAR
        - LFMR
        - LSAR
        - LSMR
        - LTAR
        - LTMR
        - LVAN
        - LVAR
        - LVMN
        - LVMR
        - LWAR
        - LXAR
        - MBAR
        - MBMN
        - MBMR
        - MCAR
        - MCMN
        - MCMR
        - MDAR
        - MDMN
        - MDMR
        - MFMR
        - MTAN
        - MTMN
        - MTMR
        - MVAR
        - MVMN
        - MVMR
        - MXAR
        - MXMN
        - MXMR
        - NTAN
        - NTMN
        - PCAR
        - PCMR
        - PDAD
        - PDAR
        - PDMD
        - PDMN
        - PDMR
        - PFAR
        - PFMN
        - PFMR
        - PIAR
        - PSAR
        - PTAR
        - PTMR
        - PVAR
        - PVMN
        - PVMR
        - PWAR
        - PWMN
        - PWMR
        - PXAR
        - PXMR
        - RVMR
        - SBAR
        - SCAN
        - SCAR
        - SCMD
        - SCMN
        - SCMR
        - SDAD
        - SDAN
        - SDAR
        - SDMD
        - SDMN
        - SDMR
        - SFAN
        - SFAR
        - SFMN
        - SFMR
        - STAR
        - STMR
        - SVAN
        - SVAR
        - SVMD
        - SVMN
        - SVMR
        - SWAN
        - SWAR
        - SWMD
        - SWMN
        - SWMR
        - SXMR
        - XBAR
        - XCAR
        - XCMN
        - XCMR
        - XDAR
        - XDMN
        - XDMR
        - XFAR
        - XFMN
        - XFMR
        - XJAR
        - XPMN
        - XRAR
        - XSAR
        - XTAR
        - XWAR
        - XXAR
      title: SIPP Car Code
      description: >
        If `acriss_car_type` is not passed then SQUAKE will automatically
        resolve it using the SIPP code.


        **Mutually exclusive** with `pseudo_car_type`, only one can be given at
        the same time.
      examples:
        - SDAN
    Pseudo-Car-Code:
      type: string
      enum:
        - ACAR
        - ACGO
        - ACNV
        - ACPG
        - ACPR
        - ACRS
        - ADSL
        - AEIG
        - AELC
        - AELT
        - AETH
        - AFWD
        - AGRN
        - AHYB
        - AHYD
        - ALLB
        - ALLC
        - ALLD
        - ALMO
        - AMAN
        - AMCY
        - AMFP
        - AMNO
        - AMTO
        - ANIN
        - AOFR
        - APET
        - APUP
        - AREC
        - ASEV
        - ASIX
        - ASPC
        - ASPT
        - ASUV
        - ATRV
        - AUTO
        - AVAN
        - AWGN
      title: Pseudo-Car-Code
      description: >
        If neither `acriss_car_type` nor `sipp_car_type` are not

        passed, then SQUAKE will automatically resolve it using the Pseudo code.


        **Mutually exclusive** with `sipp_car_type`, only one can be given at
        the same time.
      examples:
        - ACAR
    Car-ACRISS:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Car ACRISS
          examples: []
          required:
            - type
            - methodology
            - origin
            - destination
          properties:
            type:
              const: car
              examples:
                - car
            methodology:
              type: string
              const: ACRISS
              description: >
                ACRISS methodology uses tank-to-wheel factors, therefore it
                might return 0 emissions for electric cars.


                Default: `"ACRISS"`
              examples:
                - ACRISS
            external_reference:
              $ref: '#/components/schemas/external_reference'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            fuel_type:
              type: string
              enum:
                - diesel
                - petrol
                - electricity
                - hev
                - phev
              examples:
                - petrol
            acriss_car_type:
              $ref: '#/components/schemas/Acriss-Car-Type'
            sipp_car_type:
              $ref: '#/components/schemas/SIPP-Car-Code'
            pseudo_car_type:
              $ref: '#/components/schemas/Pseudo-Car-Code'
    Car-DEFRA:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Car DEFRA
          examples: []
          required:
            - type
            - methodology
            - origin
            - destination
          properties:
            type:
              const: car
              examples:
                - car
            methodology:
              type: string
              const: DEFRA
              description: 'Default: `"ACRISS"`'
              examples:
                - DEFRA
            external_reference:
              $ref: '#/components/schemas/external_reference'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            fuel_type:
              type: string
              enum:
                - diesel
                - petrol
                - average
                - electricity
                - hev
                - cng
                - lpg
                - phev
              examples:
                - petrol
            car_type:
              type: string
              enum:
                - mini
                - supermini
                - lower_medium
                - upper_medium
                - executive
                - luxury
                - sports
                - dual_purpose_4x4
                - mpv
                - average
              default: average
              examples:
                - sports
            acriss_car_type:
              $ref: '#/components/schemas/Acriss-Car-Type'
            sipp_car_type:
              $ref: '#/components/schemas/SIPP-Car-Code'
            energy_scope:
              $ref: '#/components/schemas/energy_scope'
    Car-BASIC:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Car BASIC
          examples: []
          required:
            - type
            - methodology
            - origin
            - destination
          properties:
            type:
              const: car
              examples:
                - car
            methodology:
              type: string
              const: BASIC
              description: 'Default: `"ACRISS"`'
              examples:
                - BASIC
            external_reference:
              $ref: '#/components/schemas/external_reference'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            fuel_type:
              type: string
              enum:
                - diesel
                - electricity
                - petrol
                - ethanol
                - bio_diesel
                - lpg
                - hydrogen
                - hvo
              examples:
                - petrol
            co2_grams_per_km:
              type: number
              description: CO2 amount in grams per kilometer.
              minimum: 0
              examples:
                - 110.4
            consumption_per_100_km:
              type: number
              description: Consumption per 100 kilometer.
              minimum: 0
              maximum: 1000
              examples:
                - 8.5
    Car-EU-EEA:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Car EU-EEA
          examples: []
          required:
            - type
            - methodology
            - origin
            - destination
          properties:
            type:
              const: car
              examples:
                - car
            methodology:
              type: string
              const: EU-EEA
              description: 'Default: `"ACRISS"`'
              examples:
                - EU-EEA
            external_reference:
              $ref: '#/components/schemas/external_reference'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            fuel_type:
              type: string
              enum:
                - diesel
                - petrol
                - hybrid_petrol
                - hybrid_diesel
                - ng
                - ng-biomethane
                - hydrogen
                - e85
                - average
                - biodiesel
                - electricity
                - lpg
              examples:
                - petrol
            manufacturer:
              type: string
              examples:
                - mercedes_benz
            model:
              type: string
              examples:
                - 500sel
            model_year:
              type: integer
              examples:
                - 1985
            country:
              $ref: '#/components/schemas/country'
            electric_energy_consumption_in_kw:
              type: number
            engine_capacity_in_cubic_cm:
              type: number
    Car-US-EPA:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Car US-EPA
          examples: []
          required:
            - type
            - methodology
            - origin
            - destination
          properties:
            type:
              const: car
              examples:
                - car
            methodology:
              type: string
              const: US-EPA
              description: 'Default: `"ACRISS"`'
              examples:
                - US-EPA
            external_reference:
              $ref: '#/components/schemas/external_reference'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            fuel_type:
              type: string
              enum:
                - diesel
                - electricity
                - midgrade_gasoline
                - natural_gas
                - premium_gasoline
                - regular_gasoline
                - propane
              examples:
                - diesel
            manufacturer:
              type: string
              examples:
                - mercedes_benz
            model:
              type: string
              examples:
                - 500sel
            model_year:
              type: integer
              examples:
                - 1985
            epa_vehicle_size_class:
              type: string
              description: >-
                EPA size class has a specific division of car sizes according to
                `US-EPA`.
              examples:
                - midsize_cars
            specific_transmission:
              type: string
              description: Specific transmission type of the car.
              examples:
                - automatic_4_spd
            engine_displacement_in_liters:
              type: number
              description: Engine displacement in liters.
              examples:
                - 5
            epa_model_type_index:
              type: integer
              description: A specific index of a car model according to `US-EPA`.
              examples:
                - 27914
            engine_cylinders:
              type: integer
              description: Number of engine cylinders.
              examples:
                - 8
    Car:
      type: object
      title: Car
      description: >
        `US-EPA` is the methodology from the "United States Environmental
        Protection Agency".


        `EU-EEA` is the methodology from the "European Energy Agency". `ACRISS`
        methodology uses tank-to-wheel factors, therefore
                it might return 0 emissions for electric cars.
        If you have more details available, use `EU-EEA` and `US-EPA`
        methodologies
            for a more precise result. In case of using `BASIC`, you must provide either
            `co2_grams_per_km` or consumption_per_100_km` and `fuel_type
      examples: []
      required:
        - type
        - methodology
        - origin
        - destination
      properties:
        type:
          const: car
          examples:
            - car
        methodology:
          type: string
      discriminator:
        propertyName: methodology
        mapping:
          ACRISS: '#/components/schemas/Car-ACRISS'
          DEFRA: '#/components/schemas/Car-DEFRA'
          BASIC: '#/components/schemas/Car-BASIC'
          EU-EEA: '#/components/schemas/Car-EU-EEA'
          US-EPA: '#/components/schemas/Car-US-EPA'
      anyOf:
        - $ref: '#/components/schemas/Car-ACRISS'
        - $ref: '#/components/schemas/Car-DEFRA'
        - $ref: '#/components/schemas/Car-BASIC'
        - $ref: '#/components/schemas/Car-EU-EEA'
        - $ref: '#/components/schemas/Car-US-EPA'
      Car-ACRISS:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Car ACRISS
            examples: []
            required:
              - type
              - methodology
              - origin
              - destination
            properties:
              type:
                const: car
                examples:
                  - car
              methodology:
                type: string
                const: ACRISS
                description: >
                  ACRISS methodology uses tank-to-wheel factors, therefore it
                  might return 0 emissions for electric cars.


                  Default: `"ACRISS"`
                examples:
                  - ACRISS
              external_reference:
                $ref: '#/components/schemas/external_reference'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              fuel_type:
                type: string
                enum:
                  - diesel
                  - petrol
                  - electricity
                  - hev
                  - phev
                examples:
                  - petrol
              acriss_car_type:
                $ref: '#/components/schemas/Acriss-Car-Type'
              sipp_car_type:
                $ref: '#/components/schemas/SIPP-Car-Code'
              pseudo_car_type:
                $ref: '#/components/schemas/Pseudo-Car-Code'
      Car-DEFRA:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Car DEFRA
            examples: []
            required:
              - type
              - methodology
              - origin
              - destination
            properties:
              type:
                const: car
                examples:
                  - car
              methodology:
                type: string
                const: DEFRA
                description: 'Default: `"ACRISS"`'
                examples:
                  - DEFRA
              external_reference:
                $ref: '#/components/schemas/external_reference'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              fuel_type:
                type: string
                enum:
                  - diesel
                  - petrol
                  - average
                  - electricity
                  - hev
                  - cng
                  - lpg
                  - phev
                examples:
                  - petrol
              car_type:
                type: string
                enum:
                  - mini
                  - supermini
                  - lower_medium
                  - upper_medium
                  - executive
                  - luxury
                  - sports
                  - dual_purpose_4x4
                  - mpv
                  - average
                default: average
                examples:
                  - sports
              acriss_car_type:
                $ref: '#/components/schemas/Acriss-Car-Type'
              sipp_car_type:
                $ref: '#/components/schemas/SIPP-Car-Code'
              energy_scope:
                $ref: '#/components/schemas/energy_scope'
      Car-BASIC:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Car BASIC
            examples: []
            required:
              - type
              - methodology
              - origin
              - destination
            properties:
              type:
                const: car
                examples:
                  - car
              methodology:
                type: string
                const: BASIC
                description: 'Default: `"ACRISS"`'
                examples:
                  - BASIC
              external_reference:
                $ref: '#/components/schemas/external_reference'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              fuel_type:
                type: string
                enum:
                  - diesel
                  - electricity
                  - petrol
                  - ethanol
                  - bio_diesel
                  - lpg
                  - hydrogen
                  - hvo
                examples:
                  - petrol
              co2_grams_per_km:
                type: number
                description: CO2 amount in grams per kilometer.
                minimum: 0
                examples:
                  - 110.4
              consumption_per_100_km:
                type: number
                description: Consumption per 100 kilometer.
                minimum: 0
                maximum: 1000
                examples:
                  - 8.5
      Car-EU-EEA:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Car EU-EEA
            examples: []
            required:
              - type
              - methodology
              - origin
              - destination
            properties:
              type:
                const: car
                examples:
                  - car
              methodology:
                type: string
                const: EU-EEA
                description: 'Default: `"ACRISS"`'
                examples:
                  - EU-EEA
              external_reference:
                $ref: '#/components/schemas/external_reference'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              fuel_type:
                type: string
                enum:
                  - diesel
                  - petrol
                  - hybrid_petrol
                  - hybrid_diesel
                  - ng
                  - ng-biomethane
                  - hydrogen
                  - e85
                  - average
                  - biodiesel
                  - electricity
                  - lpg
                examples:
                  - petrol
              manufacturer:
                type: string
                examples:
                  - mercedes_benz
              model:
                type: string
                examples:
                  - 500sel
              model_year:
                type: integer
                examples:
                  - 1985
              country:
                $ref: '#/components/schemas/country'
              electric_energy_consumption_in_kw:
                type: number
              engine_capacity_in_cubic_cm:
                type: number
      Car-US-EPA:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Car US-EPA
            examples: []
            required:
              - type
              - methodology
              - origin
              - destination
            properties:
              type:
                const: car
                examples:
                  - car
              methodology:
                type: string
                const: US-EPA
                description: 'Default: `"ACRISS"`'
                examples:
                  - US-EPA
              external_reference:
                $ref: '#/components/schemas/external_reference'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              fuel_type:
                type: string
                enum:
                  - diesel
                  - electricity
                  - midgrade_gasoline
                  - natural_gas
                  - premium_gasoline
                  - regular_gasoline
                  - propane
                examples:
                  - diesel
              manufacturer:
                type: string
                examples:
                  - mercedes_benz
              model:
                type: string
                examples:
                  - 500sel
              model_year:
                type: integer
                examples:
                  - 1985
              epa_vehicle_size_class:
                type: string
                description: >-
                  EPA size class has a specific division of car sizes according
                  to `US-EPA`.
                examples:
                  - midsize_cars
              specific_transmission:
                type: string
                description: Specific transmission type of the car.
                examples:
                  - automatic_4_spd
              engine_displacement_in_liters:
                type: number
                description: Engine displacement in liters.
                examples:
                  - 5
              epa_model_type_index:
                type: integer
                description: A specific index of a car model according to `US-EPA`.
                examples:
                  - 27914
              engine_cylinders:
                type: integer
                description: Number of engine cylinders.
                examples:
                  - 8
      Acriss-Car-Type:
        type: string
        enum:
          - M
          - 'N'
          - E
          - H
          - C
          - D
          - I
          - J
          - S
          - R
          - F
          - G
          - P
          - U
          - L
          - W
          - X
          - O
        description: |
          Available car types:
          |Code|Description|
          |--|--------|
          |C|Compact|
          |D|Compact Elite|
          |E|Economy|
          |F|Fullsize|
          |G|Fullsize Elite|
          |H|Economy Elite|
          |I|Intermediate|
          |J|Intermediate Elite|
          |L|Luxury|
          |M|Mini|
          |N|Mini Elite|
          |P|Premium|
          |R|Standard Elite|
          |S|Standard|
          |U|Premium Elite|
          |W|Luxury Elite|
          |X|Special|
          |O|Oversize|
        pattern: ^[A-Z]{1}$
        default: E
        examples:
          - E
      SIPP-Car-Code:
        type: string
        enum:
          - CBAN
          - CBAR
          - CBMN
          - CBMR
          - CCAN
          - CCAR
          - CCMD
          - CCMN
          - CCMR
          - CDAN
          - CDAR
          - CDMD
          - CDMN
          - CDMR
          - CFAR
          - CFMN
          - CFMR
          - CIMR
          - CLMR
          - CPAR
          - CPMN
          - CPMR
          - CTAR
          - CTMN
          - CTMR
          - CVAR
          - CVMD
          - CVMR
          - CWAR
          - CWMD
          - CWMN
          - CWMR
          - CXAN
          - CXAR
          - CXMN
          - CXMR
          - EBAN
          - EBAR
          - EBMN
          - EBMR
          - ECAN
          - ECAR
          - ECMD
          - ECMN
          - ECMR
          - EDAN
          - EDAR
          - EDMD
          - EDMN
          - EDMR
          - EFAD
          - EFAR
          - EFMR
          - EKMN
          - ESAR
          - ESMR
          - ETAR
          - ETMN
          - ETMR
          - EVMN
          - EVMR
          - EWMN
          - EWMR
          - EXAR
          - EXMN
          - EXMR
          - FBAR
          - FCAR
          - FCMR
          - FDAD
          - FDAR
          - FDMD
          - FDMN
          - FDMR
          - FFAN
          - FFAR
          - FFMN
          - FFMR
          - FIAR
          - FIMR
          - FPAR
          - FPMR
          - FTAR
          - FTMR
          - FVAN
          - FVAR
          - FVMD
          - FVMN
          - FVMR
          - FWAD
          - FWAR
          - FWMR
          - FXAR
          - FXMR
          - GVAR
          - GVMR
          - IBAR
          - IBMD
          - IBMR
          - ICAN
          - ICAR
          - ICMN
          - ICMR
          - IDAD
          - IDAN
          - IDAR
          - IDMD
          - IDMN
          - IDMR
          - IFAN
          - IFAR
          - IFMN
          - IFMR
          - IGMR
          - IIMR
          - IJAR
          - IJMR
          - ILMR
          - IPMR
          - ITAR
          - ITMN
          - ITMR
          - IVAN
          - IVAR
          - IVMN
          - IVMR
          - IWAN
          - IWAR
          - IWMD
          - IWMN
          - IWMR
          - IXAR
          - IXMN
          - IXMR
          - JFAR
          - LCAN
          - LCAR
          - LCMR
          - LDAD
          - LDAR
          - LDMR
          - LFAR
          - LFMR
          - LSAR
          - LSMR
          - LTAR
          - LTMR
          - LVAN
          - LVAR
          - LVMN
          - LVMR
          - LWAR
          - LXAR
          - MBAR
          - MBMN
          - MBMR
          - MCAR
          - MCMN
          - MCMR
          - MDAR
          - MDMN
          - MDMR
          - MFMR
          - MTAN
          - MTMN
          - MTMR
          - MVAR
          - MVMN
          - MVMR
          - MXAR
          - MXMN
          - MXMR
          - NTAN
          - NTMN
          - PCAR
          - PCMR
          - PDAD
          - PDAR
          - PDMD
          - PDMN
          - PDMR
          - PFAR
          - PFMN
          - PFMR
          - PIAR
          - PSAR
          - PTAR
          - PTMR
          - PVAR
          - PVMN
          - PVMR
          - PWAR
          - PWMN
          - PWMR
          - PXAR
          - PXMR
          - RVMR
          - SBAR
          - SCAN
          - SCAR
          - SCMD
          - SCMN
          - SCMR
          - SDAD
          - SDAN
          - SDAR
          - SDMD
          - SDMN
          - SDMR
          - SFAN
          - SFAR
          - SFMN
          - SFMR
          - STAR
          - STMR
          - SVAN
          - SVAR
          - SVMD
          - SVMN
          - SVMR
          - SWAN
          - SWAR
          - SWMD
          - SWMN
          - SWMR
          - SXMR
          - XBAR
          - XCAR
          - XCMN
          - XCMR
          - XDAR
          - XDMN
          - XDMR
          - XFAR
          - XFMN
          - XFMR
          - XJAR
          - XPMN
          - XRAR
          - XSAR
          - XTAR
          - XWAR
          - XXAR
        title: SIPP Car Code
        description: >
          If `acriss_car_type` is not passed then SQUAKE will automatically
          resolve it using the SIPP code.


          **Mutually exclusive** with `pseudo_car_type`, only one can be given
          at the same time.
        examples:
          - SDAN
      Pseudo-Car-Code:
        type: string
        enum:
          - ACAR
          - ACGO
          - ACNV
          - ACPG
          - ACPR
          - ACRS
          - ADSL
          - AEIG
          - AELC
          - AELT
          - AETH
          - AFWD
          - AGRN
          - AHYB
          - AHYD
          - ALLB
          - ALLC
          - ALLD
          - ALMO
          - AMAN
          - AMCY
          - AMFP
          - AMNO
          - AMTO
          - ANIN
          - AOFR
          - APET
          - APUP
          - AREC
          - ASEV
          - ASIX
          - ASPC
          - ASPT
          - ASUV
          - ATRV
          - AUTO
          - AVAN
          - AWGN
        title: Pseudo-Car-Code
        description: >
          If neither `acriss_car_type` nor `sipp_car_type` are not

          passed, then SQUAKE will automatically resolve it using the Pseudo
          code.


          **Mutually exclusive** with `sipp_car_type`, only one can be given at
          the same time.
        examples:
          - ACAR
    Coffee-Production:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Coffee Production
          properties:
            type:
              const: coffee_production
            methodology:
              const: SQUAKE
              default: SQUAKE
              examples:
                - SQUAKE
            external_reference:
              $ref: '#/components/schemas/external_reference'
            country:
              type: string
              enum:
                - BR
                - CI
                - CO
                - CR
                - ET
                - GN
                - HN
                - IN
                - PE
                - UG
                - VN
                - average
              description: Alpha2 country code of the coffee-producing country
              default: average
              examples:
                - BR
            organic:
              type: boolean
              description: Whether the coffee is organic or not.
              default: false
            quantity:
              type: number
              description: The quantity of coffee in `unit`.
              format: float
              minimum: 1
              examples:
                - 3.2
            unit:
              $ref: '#/components/schemas/carbon_unit'
          required:
            - type
            - methodology
            - quantity
    Event:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Event
          description: >-
            Use one of the available options for calculation depending on the
            available parameters.
          properties:
            type:
              const: event
              examples:
                - event
            methodology:
              const: HCMI
              examples:
                - HCMI
              default: HCMI
            external_reference:
              $ref: '#/components/schemas/external_reference'
            stars:
              type: integer
              description: >-
                `stars` is mutually exclusive with `hotel_type`, `stars` is
                prioritized over `hotel_type`.
              format: int32
              minimum: 1
              maximum: 5
              examples:
                - 5
            country:
              $ref: '#/components/schemas/country'
            city:
              type: string
              description: >-
                You can find the list of supported cities
                [here](https://squake.notion.site/51e2eb5f9e484c4dad4ceb100d2b90bb?v=013db568cf4c4dbd8403ab5f329458bf).
            state:
              type: string
              description: >-
                You can find the list of supported states
                [here](https://squake.notion.site/66a1450838b84494b0a17684b578ffa0?v=d1ee83f184cc4856bfa2a3f23a15c9ff).
            square_meters:
              type: number
              format: double
              minimum: 1
              examples:
                - 120
            number_of_days:
              type: integer
              format: int32
              minimum: 1
              examples:
                - 5
            hotel_type:
              type: string
              enum:
                - airport_location
                - convention_hotel
                - extended_stay
                - full_service_nonresort
                - full_service_resort
                - hotel_average
                - integrated_resort
                - limited_service
                - luxury_segment_nonresort
                - luxury_segment_resort
                - nonresort
                - resort
                - rural_highway_location
                - small_metro_town_location
                - suburban_location
                - upper_midscale_segment_nonresort
                - upper_midscale_segmentnonresort
                - upper_upscale_segment_nonresort
                - upper_upscale_segment_resort
                - upscale_segment_nonresort
                - upscale_segment_resort
                - urban_location
              description: >-
                `hotel_type` is mutually exclusive with `stars`. `stars` is
                prioritized over `hotel_type`.
              default: hotel_average
              examples:
                - hotel_average
          required:
            - type
            - methodology
            - country
            - square_meters
            - number_of_days
    MerchantName:
      type: string
      enum:
        - buckaroo*swapfiets
        - donkey.bike
        - easyparkb.v.
        - eshop.sz.si
        - freshmile*plbii8ysho
        - hopp.bike
        - https://www.ns.nl/
        - ignitride.com
        - ing*prod.europodroze.p
        - lim*temphold
        - mol*includingbikes
        - mps*vwwechargeeur
        - nearme.
        - parkster.com/de
        - paypal*dbvertriebg
        - poferries(web)
        - pyu*uber
        - suntransfers.com
        - teslainc.
        - uber*rides*dl
        - ubr*pending.uber.com
        - www.mopla.solutions
        - www.veoride.com
        - yego*ride11min
        - a1
        - abc
        - abodeinauto
        - aboeinauto
        - accel
        - agip
        - airportbusmunich
        - akpet
        - amoco
        - ampol
        - aobairportbus
        - aobairportbusbusweb
        - aobairportbusweb
        - apco
        - aral
        - arco
        - asda
        - avanti
        - avocargo
        - bapco
        - bayerischeregiobahn
        - berlinerverkehrsbetri
        - berlinerverkehrsbetriebe
        - bharatpetroleum
        - bicimad
        - bird
        - bkk
        - bkkbudapestgo
        - bkkbudapestgokartyar
        - bkkkartyar
        - blablacar
        - blunavy
        - blunavyferries
        - blunavytraghetti
        - bndinavigazione
        - bndinavigazionespa
        - bolt
        - bonnet
        - bonnetev
        - bonnetevcharging
        - bp
        - brb
        - buckarooswapfiets
        - budapestgo
        - budapestgokartyar
        - burmah
        - bvg
        - cabify
        - callabike
        - caltex
        - cepsa
        - cfl
        - cflgroupe
        - cflmobility
        - chargeassist
        - chargemap
        - chevron
        - circ
        - citylink
        - clark
        - cluno
        - compagniedestransportsstrasbourgeois
        - cooltra
        - cosan
        - cts
        - dance
        - db
        - dbvertrieb
        - dbvertriebg
        - dcs
        - delek
        - deutschebahn
        - digitalchargingsoluti
        - digitalchargingsolutions
        - digitalchargingsolutionsdcs
        - digitalchargingsolutionsgmbh
        - digitalchargingsolutionsgmbhdcs
        - donkeybike
        - donkeyrepublic
        - dot
        - dresdnerverkehrsbetriebe
        - dvb
        - easypark
        - easyparkbv
        - easyparkgmbh
        - ecobici
        - eddy
        - elf
        - emmy
        - emtbicimad
        - enbw
        - enbwenergie
        - enbwenergiebadenwuer
        - enbwenergiebadenwuertt
        - enbwenergiebadenwuettenberg
        - enbwenergiebadenwuttenberg
        - eneos
        - engen
        - eni
        - eshopszsi
        - esso
        - essoimperialoil
        - europodroze
        - exxon
        - exxonmobil
        - fairtiq
        - fairtiqaustriaapp
        - faritiqapp
        - faritiqaustria
        - faritiqaustriaapp
        - fastned
        - fastnedbv
        - fastneddeutschland
        - fastneddeutschlandgm
        - fastneddeutschlandgmbh
        - fastnedgmbh
        - federatedcooperatives
        - felyx
        - ferryhopper
        - ferryhoppersa
        - finn
        - finnassets
        - finnassetsgmbh
        - finnassetsigmbh
        - finngmbh
        - flixbus
        - freenow
        - freshmile
        - freshmileplbii8ysho
        - galp
        - galpenergy
        - gemeentevervoerbedrijf
        - gemeentevervoerbedrijfamsterdam
        - gett
        - golfoil
        - gosharing
        - groppoapi
        - grossraumverkehrhannover
        - gvb
        - gvh
        - hamburgerverkehrsverbund
        - helenoftroy
        - hindustanpetroleum
        - hopp
        - hoppbike
        - hsl
        - hsllogistik
        - httpsnsnl
        - httpswwwnsnl
        - husky
        - huskyenergy
        - hvv
        - hyundaioilbank
        - iberdolla
        - idemitsu
        - ignit
        - imperialoil
        - indianoilcorporation
        - ingitride
        - ingitridecom
        - ingprodeuropodrozep
        - iocl
        - ipiranga
        - irvingoil
        - jadrolinija
        - jadrolinijaweb
        - jxtd
        - karlsruherverkehrsverbund
        - kolnerverkehrsbetriebe
        - kolnerverkehrsbetriebeaktiengesellschaft
        - kroger
        - kvb
        - kvv
        - leipzigerverkehrsbetriebe
        - libertyglobal
        - lime
        - limtemphold
        - lotos
        - lufthansaexpressbus
        - lukoil
        - lvb
        - lwsncfconnect
        - lyft
        - magdeburgerverkehrsbetriebe
        - manulife
        - marathon
        - marathonoil
        - marathonpetrolium
        - martinbauer
        - martinbauergroup
        - metropolenantesmetro
        - metropolenantesmetrop
        - miele
        - mietwagenmarkt
        - mietwagenmarktde
        - miles
        - mitsubishi
        - mitsubishienergy
        - mitsubishienergybusinessgroup
        - mitsubishimotors
        - mobil
        - mohawk
        - moia
        - molbubi
        - molbubibike
        - molincludingbikes
        - mopla
        - moplasolutions
        - moplasolutionsgmbh
        - motivaenterprises
        - movacar
        - mpsvwwechargeeur
        - multix
        - mumtaz
        - munchnerverkehrsundtarifverbund
        - munichairportparking
        - murphyoil
        - mvb
        - mvv
        - mvvenergiechargingstation
        - nantesmetro
        - nationalexpress
        - nearme
        - nearmeinc
        - nederlandsespoorwegen
        - neste
        - nextbike
        - nippon
        - nippongas
        - nipponoil
        - nipponoilandgas
        - nipponoilgas
        - ns
        - nsnl
        - obb
        - oebb
        - omv
        - opet
        - oronegro
        - osterreichischebundesbahnen
        - pace
        - parkabilastaedi
        - parkopedia
        - parkopedialimited
        - parkopedialtd
        - parkster
        - parkstercom
        - parkstercomde
        - paypaldbvertriebg
        - petrobras
        - petrom
        - petron
        - petronas
        - phillips66
        - phoenix
        - plugsurfing
        - poferries
        - poferriesweb
        - preem
        - pumaenergy
        - pyuuber
        - q8
        - regioverkehrsverbundfreiburg
        - reitangruppen
        - repsol
        - rheinmainverkehrsverbund
        - rheinneckarverkehr
        - richoil
        - rigassatiksme
        - rmv
        - rnv
        - rnvvrn
        - rvf
        - ryd
        - sainsburys
        - sasol
        - saudiamarco
        - scotrail
        - servicenavigo
        - servicenavigo4042878
        - servicenavigo4889279
        - sgroup
        - sharenow
        - shell
        - shellaustralia
        - shellcanada
        - shellvpower
        - simpsonoil
        - sinclair
        - sitycleta
        - skenergy
        - skgas
        - skinnovation
        - skoil
        - slovenskezeleznice
        - sncf
        - sncfconnect
        - socar
        - >-
          societedestransportsintercommunauxdebruxellesmaatschappijvoorhetintercommunaalvervoertebrussel
        - societenationaledescheminsdeferfrancais
        - sohio
        - soil
        - solgroup
        - solpetroleum
        - speedway
        - spiritpetroleum
        - stib
        - stibmivb
        - stork
        - sunnycars
        - sunnycarsautovermietung
        - sunnycarsgmbh
        - suntransfers
        - suntransferscom
        - superpedestrian
        - superpedestrianlink
        - swapfiets
        - szsi
        - teboil
        - terpel
        - tesla
        - teslainc
        - texaco
        - thalys
        - thorntons
        - tidewater
        - tidewateroil
        - tier
        - total
        - totalenergies
        - transilien
        - transliniensncf
        - trenitalia
        - uber
        - uberrides
        - uberridesdl
        - ubrpendingubercom
        - ubrpengingubercom
        - unox
        - velib
        - velibmetropo
        - velibmetropole
        - velibmetropole2532669
        - veomicromobility
        - veomobility
        - veoride
        - verkehrsundtarifverbundstuttgart
        - verkehrsverbundgrossraumnurnberg
        - verkehrsverbundmittelthuringen
        - verkehrsverbundtirol
        - verkehrsverbundwarnow
        - vgn
        - vickers
        - vivelacar
        - vmt
        - voi
        - vvs
        - vvt
        - vvw
        - vwwecharge
        - wecharge
        - wechargeeur
        - weshare
        - westbahn
        - westbahnmanagement
        - wirelane
        - wirelanegmbh
        - wwwmoplasolutions
        - wwwveoridecom
        - xyenergy
        - yandextaxi
        - yego
        - yegoride
        - yegoride11min
        - yoio
        - zenergy
        - zeusscooters
        - zeusscooterslimited
        - zeusscooterslmt
        - zigzag
        - zigzagsharing
    Expenditure:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Expenditure
          properties:
            type:
              const: expenditure
              examples:
                - expenditure
            methodology:
              const: OFNK
              examples:
                - OFNK
              default: OFNK
            external_reference:
              $ref: '#/components/schemas/external_reference'
            merchant_category_code:
              type: integer
              description: >-
                4-digit number. **Mutually exclusive** with "merchant_category".
                One of both must be given.
            merchant_name:
              $ref: '#/components/schemas/MerchantName'
            total:
              type: integer
              description: Amount of money per transaction.
            currency:
              type: string
              default: EUR
            country:
              type: string
              enum:
                - AE
                - CA
                - DE
                - DK
                - FI
                - GB
                - GR
                - HK
                - IT
                - JP
                - LU
                - MX
                - NL
                - 'NO'
                - QA
                - SE
                - SK
              description: Alpha2 country code
              examples:
                - DE
                - US
                - JP
          anyOf:
            - title: With merchant_category
              required:
                - type
                - methodology
                - merchant_category
                - total
              anyOf:
                - title: With country code
                  properties:
                    merchant_category:
                      enum:
                        - groceries
                        - food
                        - retail
                        - air_travel
                        - clothing
                        - shopping
                        - service_stations
                        - catering
                        - lodging
                        - accommodation
                        - streaming_services
                        - video_streaming_services
                        - train_travel
                        - taxi_cabs
                        - limousines
                        - bakeries
                        - cafes
                        - drug_stores
                        - local_public_transport
                        - travel_agencies
                        - travel_package_holidays
                        - online_shopping
                        - car_rental
                        - furniture
                        - energy
                        - convenience_store
                        - alcoholic_beverages
                        - non-alcoholic_beverages
                        - general
                        - household_appliances
                        - communication
                        - glassware
                        - tableware
                        - household_utensils
                        - rent
                        - home
                        - maintenance
                        - repair
                        - security
                        - household_textiles
                        - tools_for_garden
                        - tools_for_house
                        - equipment_for_garden
                        - equipment_for_house
                        - water_supply
                        - miscellaneous_services
                        - education
                        - financial_services
                        - health_services
                        - insurance
                        - recreational_equipment
                        - recreational_items
                        - gardens
                        - pets
                        - outpatient_care_services
                        - recreational_services
                        - cultural_services
                        - services
                        - social_protection
                        - audio_streaming_services
                        - tobacco
                        - footwear_shopping
                        - personal_care
                        - personal_effects
                        - durables_for_culture
                        - durables_for_recreation
                        - secondhand_clothing
                        - newspapers
                        - books
                        - stationery
                        - audio_visual_equipment
                        - photographic_equipment
                        - information_processing_equipment
                        - electric_vehicles
                        - e-mobility
                        - operation_of_personal_transport_equipment
                        - purchase_of_vehicles
                - title: Without country code
                  properties:
                    merchant_category:
                      enum:
                        - air_travel
                        - automobile_parking_lots_and_garages
                        - automotive_service_shops
                        - bakeries_cafes
                        - bicycle_shops
                        - business_services
                        - car_and_truck_dealers
                        - car_rental
                        - catering
                        - clothes_shopping
                        - >-
                          commercial_sports_athletic_fields_professional_sport_clubs_and_sport_promoters
                        - >-
                          computer_programming_integrated_systems_design_and_data_processing_services
                        - computers_peripherals_and_software
                        - convenience_stores
                        - direct_marketing
                        - drug_stores
                        - electric_gas_sanitary_and_water_utilities
                        - electric_vehicle_charging_services
                        - furniture
                        - government_services
                        - groceries
                        - intra_government_purchases
                        - local_public_transport
                        - lodging_accommodation
                        - management_consulting_and_public_relations_services
                        - marinas_service_and_supplies
                        - >-
                          membership_clubs_country_clubs_and_private_golf_courses
                        - miscellaneous_general_merchandise
                        - miscellaneous_personal_services
                        - miscellaneous_specialty_retail
                        - motor_home_and_recreational_vehicle_rentals
                        - not_elsewhere_classified
                        - online_shopping
                        - real_estate_agents_and_managers
                        - retail
                        - service_stations
                        - steamship_cruise_line
                        - streaming_services
                        - streaming_services_video
                        - streaming_services_audio
                        - taxi_cabs
                        - theatrical_producers_and_ticket_agencies
                        - toll_and_bridge_fees
                        - train_travel
                        - travel_agencies
                        - variety_stores
            - title: With merchant_category_code
              required:
                - type
                - methodology
                - merchant_category_code
                - total
      MerchantName:
        type: string
        enum:
          - buckaroo*swapfiets
          - donkey.bike
          - easyparkb.v.
          - eshop.sz.si
          - freshmile*plbii8ysho
          - hopp.bike
          - https://www.ns.nl/
          - ignitride.com
          - ing*prod.europodroze.p
          - lim*temphold
          - mol*includingbikes
          - mps*vwwechargeeur
          - nearme.
          - parkster.com/de
          - paypal*dbvertriebg
          - poferries(web)
          - pyu*uber
          - suntransfers.com
          - teslainc.
          - uber*rides*dl
          - ubr*pending.uber.com
          - www.mopla.solutions
          - www.veoride.com
          - yego*ride11min
          - a1
          - abc
          - abodeinauto
          - aboeinauto
          - accel
          - agip
          - airportbusmunich
          - akpet
          - amoco
          - ampol
          - aobairportbus
          - aobairportbusbusweb
          - aobairportbusweb
          - apco
          - aral
          - arco
          - asda
          - avanti
          - avocargo
          - bapco
          - bayerischeregiobahn
          - berlinerverkehrsbetri
          - berlinerverkehrsbetriebe
          - bharatpetroleum
          - bicimad
          - bird
          - bkk
          - bkkbudapestgo
          - bkkbudapestgokartyar
          - bkkkartyar
          - blablacar
          - blunavy
          - blunavyferries
          - blunavytraghetti
          - bndinavigazione
          - bndinavigazionespa
          - bolt
          - bonnet
          - bonnetev
          - bonnetevcharging
          - bp
          - brb
          - buckarooswapfiets
          - budapestgo
          - budapestgokartyar
          - burmah
          - bvg
          - cabify
          - callabike
          - caltex
          - cepsa
          - cfl
          - cflgroupe
          - cflmobility
          - chargeassist
          - chargemap
          - chevron
          - circ
          - citylink
          - clark
          - cluno
          - compagniedestransportsstrasbourgeois
          - cooltra
          - cosan
          - cts
          - dance
          - db
          - dbvertrieb
          - dbvertriebg
          - dcs
          - delek
          - deutschebahn
          - digitalchargingsoluti
          - digitalchargingsolutions
          - digitalchargingsolutionsdcs
          - digitalchargingsolutionsgmbh
          - digitalchargingsolutionsgmbhdcs
          - donkeybike
          - donkeyrepublic
          - dot
          - dresdnerverkehrsbetriebe
          - dvb
          - easypark
          - easyparkbv
          - easyparkgmbh
          - ecobici
          - eddy
          - elf
          - emmy
          - emtbicimad
          - enbw
          - enbwenergie
          - enbwenergiebadenwuer
          - enbwenergiebadenwuertt
          - enbwenergiebadenwuettenberg
          - enbwenergiebadenwuttenberg
          - eneos
          - engen
          - eni
          - eshopszsi
          - esso
          - essoimperialoil
          - europodroze
          - exxon
          - exxonmobil
          - fairtiq
          - fairtiqaustriaapp
          - faritiqapp
          - faritiqaustria
          - faritiqaustriaapp
          - fastned
          - fastnedbv
          - fastneddeutschland
          - fastneddeutschlandgm
          - fastneddeutschlandgmbh
          - fastnedgmbh
          - federatedcooperatives
          - felyx
          - ferryhopper
          - ferryhoppersa
          - finn
          - finnassets
          - finnassetsgmbh
          - finnassetsigmbh
          - finngmbh
          - flixbus
          - freenow
          - freshmile
          - freshmileplbii8ysho
          - galp
          - galpenergy
          - gemeentevervoerbedrijf
          - gemeentevervoerbedrijfamsterdam
          - gett
          - golfoil
          - gosharing
          - groppoapi
          - grossraumverkehrhannover
          - gvb
          - gvh
          - hamburgerverkehrsverbund
          - helenoftroy
          - hindustanpetroleum
          - hopp
          - hoppbike
          - hsl
          - hsllogistik
          - httpsnsnl
          - httpswwwnsnl
          - husky
          - huskyenergy
          - hvv
          - hyundaioilbank
          - iberdolla
          - idemitsu
          - ignit
          - imperialoil
          - indianoilcorporation
          - ingitride
          - ingitridecom
          - ingprodeuropodrozep
          - iocl
          - ipiranga
          - irvingoil
          - jadrolinija
          - jadrolinijaweb
          - jxtd
          - karlsruherverkehrsverbund
          - kolnerverkehrsbetriebe
          - kolnerverkehrsbetriebeaktiengesellschaft
          - kroger
          - kvb
          - kvv
          - leipzigerverkehrsbetriebe
          - libertyglobal
          - lime
          - limtemphold
          - lotos
          - lufthansaexpressbus
          - lukoil
          - lvb
          - lwsncfconnect
          - lyft
          - magdeburgerverkehrsbetriebe
          - manulife
          - marathon
          - marathonoil
          - marathonpetrolium
          - martinbauer
          - martinbauergroup
          - metropolenantesmetro
          - metropolenantesmetrop
          - miele
          - mietwagenmarkt
          - mietwagenmarktde
          - miles
          - mitsubishi
          - mitsubishienergy
          - mitsubishienergybusinessgroup
          - mitsubishimotors
          - mobil
          - mohawk
          - moia
          - molbubi
          - molbubibike
          - molincludingbikes
          - mopla
          - moplasolutions
          - moplasolutionsgmbh
          - motivaenterprises
          - movacar
          - mpsvwwechargeeur
          - multix
          - mumtaz
          - munchnerverkehrsundtarifverbund
          - munichairportparking
          - murphyoil
          - mvb
          - mvv
          - mvvenergiechargingstation
          - nantesmetro
          - nationalexpress
          - nearme
          - nearmeinc
          - nederlandsespoorwegen
          - neste
          - nextbike
          - nippon
          - nippongas
          - nipponoil
          - nipponoilandgas
          - nipponoilgas
          - ns
          - nsnl
          - obb
          - oebb
          - omv
          - opet
          - oronegro
          - osterreichischebundesbahnen
          - pace
          - parkabilastaedi
          - parkopedia
          - parkopedialimited
          - parkopedialtd
          - parkster
          - parkstercom
          - parkstercomde
          - paypaldbvertriebg
          - petrobras
          - petrom
          - petron
          - petronas
          - phillips66
          - phoenix
          - plugsurfing
          - poferries
          - poferriesweb
          - preem
          - pumaenergy
          - pyuuber
          - q8
          - regioverkehrsverbundfreiburg
          - reitangruppen
          - repsol
          - rheinmainverkehrsverbund
          - rheinneckarverkehr
          - richoil
          - rigassatiksme
          - rmv
          - rnv
          - rnvvrn
          - rvf
          - ryd
          - sainsburys
          - sasol
          - saudiamarco
          - scotrail
          - servicenavigo
          - servicenavigo4042878
          - servicenavigo4889279
          - sgroup
          - sharenow
          - shell
          - shellaustralia
          - shellcanada
          - shellvpower
          - simpsonoil
          - sinclair
          - sitycleta
          - skenergy
          - skgas
          - skinnovation
          - skoil
          - slovenskezeleznice
          - sncf
          - sncfconnect
          - socar
          - >-
            societedestransportsintercommunauxdebruxellesmaatschappijvoorhetintercommunaalvervoertebrussel
          - societenationaledescheminsdeferfrancais
          - sohio
          - soil
          - solgroup
          - solpetroleum
          - speedway
          - spiritpetroleum
          - stib
          - stibmivb
          - stork
          - sunnycars
          - sunnycarsautovermietung
          - sunnycarsgmbh
          - suntransfers
          - suntransferscom
          - superpedestrian
          - superpedestrianlink
          - swapfiets
          - szsi
          - teboil
          - terpel
          - tesla
          - teslainc
          - texaco
          - thalys
          - thorntons
          - tidewater
          - tidewateroil
          - tier
          - total
          - totalenergies
          - transilien
          - transliniensncf
          - trenitalia
          - uber
          - uberrides
          - uberridesdl
          - ubrpendingubercom
          - ubrpengingubercom
          - unox
          - velib
          - velibmetropo
          - velibmetropole
          - velibmetropole2532669
          - veomicromobility
          - veomobility
          - veoride
          - verkehrsundtarifverbundstuttgart
          - verkehrsverbundgrossraumnurnberg
          - verkehrsverbundmittelthuringen
          - verkehrsverbundtirol
          - verkehrsverbundwarnow
          - vgn
          - vickers
          - vivelacar
          - vmt
          - voi
          - vvs
          - vvt
          - vvw
          - vwwecharge
          - wecharge
          - wechargeeur
          - weshare
          - westbahn
          - westbahnmanagement
          - wirelane
          - wirelanegmbh
          - wwwmoplasolutions
          - wwwveoridecom
          - xyenergy
          - yandextaxi
          - yego
          - yegoride
          - yegoride11min
          - yoio
          - zenergy
          - zeusscooters
          - zeusscooterslimited
          - zeusscooterslmt
          - zigzag
          - zigzagsharing
    Ferry:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Ferry
          properties:
            type:
              const: ferry
              examples:
                - ferry
            methodology:
              const: ADEME
              examples:
                - ADEME
              default: ADEME
            external_reference:
              $ref: '#/components/schemas/external_reference'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            number_of_travelers:
              type: number
              default: 0
              examples:
                - 2
            number_of_cars:
              type: number
              default: 0
              examples:
                - 1
            vessel_type:
              type: string
              enum:
                - night_ferry
                - day_ferry
                - ro_pax
                - river_vessel
              default: day_ferry
              examples:
                - night_ferry
          required:
            - type
            - methodology
            - origin
            - destination
    IATA-Aircraft-Type-Flight:
      type: string
      enum:
        - CS1
        - CS3
        - 31N
        - 32N
        - 32Q
        - '338'
        - '339'
        - '359'
        - 7M7
        - 7M8
        - 7M9
        - '789'
        - '141'
        - '142'
        - '143'
        - '146'
        - '310'
        - '312'
        - '313'
        - '318'
        - '319'
        - '320'
        - '321'
        - '330'
        - '332'
        - '333'
        - '340'
        - '342'
        - '343'
        - '345'
        - '346'
        - '380'
        - '388'
        - '703'
        - '707'
        - '717'
        - '721'
        - '722'
        - '727'
        - '731'
        - '732'
        - '733'
        - '734'
        - '735'
        - '736'
        - '737'
        - '738'
        - '739'
        - '741'
        - '742'
        - '743'
        - '744'
        - '747'
        - '752'
        - '753'
        - '757'
        - '762'
        - '763'
        - '764'
        - '767'
        - '772'
        - '773'
        - '777'
        - '787'
        - '788'
        - 14F
        - 31F
        - 31Y
        - 32A
        - 32F
        - 32S
        - 33F
        - 33X
        - 70F
        - 70M
        - 72A
        - 72F
        - 72M
        - 72S
        - 73A
        - 73C
        - 73E
        - 73F
        - 73G
        - 73H
        - 73J
        - 73L
        - 73M
        - 73N
        - 73P
        - 73Q
        - 73R
        - 73S
        - 73W
        - 73X
        - 73Y
        - 74C
        - 74D
        - 74E
        - 74F
        - 74H
        - 74J
        - 74L
        - 74M
        - 74N
        - 74R
        - 74T
        - 74X
        - 74Y
        - 75F
        - 75M
        - 75T
        - 75W
        - 76F
        - 76W
        - 76X
        - 76Y
        - 77F
        - 77L
        - 77W
        - 77X
        - A28
        - A40
        - A4F
        - A81
        - AB3
        - AB4
        - AB6
        - ABF
        - ABX
        - ABY
        - ACD
        - AGH
        - AN4
        - AN6
        - AN7
        - ANF
        - AR1
        - AR7
        - AR8
        - ARJ
        - AT3
        - AT4
        - AT5
        - AT7
        - ATF
        - ATP
        - ATR
        - B11
        - B12
        - B13
        - B14
        - B15
        - BE1
        - BE2
        - BE9
        - BEC
        - BEH
        - BES
        - BET
        - BH2
        - BNI
        - BNT
        - CCJ
        - CD2
        - CL4
        - CN1
        - CNA
        - CNC
        - CNF
        - CNJ
        - CNT
        - CR1
        - CR2
        - CR7
        - CR9
        - CRA
        - CRF
        - CRJ
        - CRK
        - CS2
        - CS5
        - CV5
        - CVF
        - CVR
        - CWC
        - D10
        - D11
        - D1C
        - D1F
        - D1Y
        - D28
        - D38
        - D3F
        - D6F
        - D8F
        - D8X
        - D8Y
        - D91
        - D92
        - D93
        - D94
        - D95
        - D9F
        - D9S
        - DC3
        - DC6
        - DC8
        - DC9
        - DF2
        - DFL
        - DH1
        - DH2
        - DH3
        - DH4
        - DH7
        - DH8
        - DHB
        - DHC
        - DHL
        - DHO
        - DHP
        - DHS
        - DHT
        - E70
        - E75
        - E90
        - E95
        - EM2
        - EMB
        - EMJ
        - ER3
        - ER4
        - ERD
        - ERJ
        - F21
        - F22
        - F23
        - F24
        - F27
        - F28
        - F50
        - F70
        - FK7
        - FRJ
        - GRG
        - GRM
        - GRS
        - HEC
        - HS7
        - I14
        - IL6
        - IL7
        - IL8
        - IL9
        - ILW
        - J31
        - J32
        - J41
        - JST
        - L10
        - L11
        - L12
        - L15
        - L1F
        - L49
        - L4T
        - LOE
        - LOF
        - LOH
        - LOM
        - LRJ
        - M11
        - M1F
        - M1M
        - M80
        - M81
        - M82
        - M83
        - M87
        - M88
        - M90
        - MA6
        - MBH
        - MD9
        - MIH
        - MU2
        - ND2
        - NDC
        - NDE
        - NDH
        - PA1
        - PA2
        - PAG
        - PAT
        - PL2
        - PL6
        - PN6
        - S20
        - S58
        - S61
        - S76
        - SF3
        - SFB
        - SFF
        - SH3
        - SH6
        - SHB
        - SHS
        - SSC
        - SU9
        - SWM
        - T20
        - T2F
        - TU3
        - TU5
        - VCV
        - WWP
        - YK2
        - YK4
        - YN2
        - YN7
        - YS1
        - '221'
        - '223'
        - '290'
        - '295'
        - '351'
        - '781'
      title: IATA Aircraft Type Flight
      description: >-
        For example, the Airbus A321 has the IATA short code `321`. ICAO
        publishes a similar list, their designator for the Airbus A321 is
        `A321`. Please don't hesitate to contact us if you can only work with
        ICAO codes.
      examples:
        - '321'
    airline:
      type: string
      description: >-
        The IATA Designator of an airline, e.g., 2-digit format like `LH` or
        3-digit format like `220`. Airline names and ICAO codes are also
        supported, SQUAKE will then automatically resolve it. The combination of
        `fare_class` and `airline` is mutually exclusive with `booking_class`.
      examples:
        - >-
          `LH` / `220` or `Lufthansa` or `DLH`, `DL` / `006` or `Delta Airlines`
          or `DAL`
    Flight-ADEME:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Flight ADEME
          properties:
            type:
              const: flight
              examples:
                - flight
            methodology:
              type: string
              const: ADEME
              description: 'Default: `"DEFRA"`'
              examples:
                - ADEME
            external_reference:
              $ref: '#/components/schemas/external_reference'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            number_of_travelers:
              type: integer
              format: int32
              minimum: 1
              default: 1
              examples:
                - 2
            aircraft_size:
              type: string
              enum:
                - under_50_seats
                - under_100_seats
                - under_180_seats
                - under_250_seats
                - over_250_seats
              description: >-
                An estimation of the aircraft's size based on the number of
                seats.
              examples:
                - under_100_seats
            aircraft_type:
              $ref: '#/components/schemas/IATA-Aircraft-Type-Flight'
            airline:
              $ref: '#/components/schemas/airline'
          required:
            - type
            - methodology
            - origin
            - destination
    radiative_forcing_index:
      type: boolean
      description: >-
        Controls if a multiplier that factors in gases emitted to the atmosphere
        when flying at altitude should be applied.
      default: true
    sustainable_fuels:
      type: object
      title: sustainable_fuels
      description: >-
        Indicates the usage of sustainable fuels. This lowers the computed
        emissions in SQUAKE but is not part of the current official emissions
        frameworks.
      properties:
        carbon_reduction_percentage_of_total:
          type: number
          description: >-
            The percentage of emissions reduction through the usage of 
            sustainable fuel.
          minimum: 0
          maximum: 1
          default: 0
          examples:
            - 0.25
      examples:
        - carbon_reduction_percentage_of_total: 0.25
    Flight-BASE-EMPREINTE:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Flight BASE-EMPREINTE
          properties:
            type:
              const: flight
              examples:
                - flight
            methodology:
              type: string
              const: BASE-EMPREINTE
              description: 'Default: `"DEFRA"`'
              examples:
                - BASE-EMPREINTE
            external_reference:
              $ref: '#/components/schemas/external_reference'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            number_of_travelers:
              type: integer
              format: int32
              minimum: 1
              default: 1
              examples:
                - 2
            aircraft_size:
              type: string
              enum:
                - under_50_seats
                - under_50_seats_jet
                - under_50_seats_turboprop
                - under_100_seats
                - under_100_seats_jet
                - under_100_seats_turboprop
                - under_220_seats
                - above_220_seats
              description: >-
                An estimation of the aircraft's size based on the number of
                seats; used for `ADEME` and `BASE-EMPREINTE`.
              examples:
                - under_100_seats
            aircraft_type:
              $ref: '#/components/schemas/IATA-Aircraft-Type-Flight'
            radiative_forcing_index:
              $ref: '#/components/schemas/radiative_forcing_index'
            sustainable_fuels:
              $ref: '#/components/schemas/sustainable_fuels'
          required:
            - type
            - methodology
            - origin
            - destination
    booking_class:
      type: string
      enum:
        - first
        - premium_economy
        - economy
        - business
      description: >-
        When `fare_class` and `airline` SQUAKE will then automatically resolve
        the correct `booking_class`.
      examples:
        - economy
    fare_class:
      type: string
      description: >-
        The combination of `fare_class` and `airline` is mutually exclusive with
        `booking_class`. This is a single letter e.g. `Y`, `J`, etc.
      examples:
        - B
    Flight-CO2-EMISSIEFACTOREN-NL:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Flight CO2-EMISSIEFACTOREN-NL
          properties:
            type:
              const: flight
              examples:
                - flight
            methodology:
              type: string
              const: CO2-EMISSIEFACTOREN-NL
              description: 'Default: `"DEFRA"`'
              examples:
                - CO2-EMISSIEFACTOREN-NL
            external_reference:
              $ref: '#/components/schemas/external_reference'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            booking_class:
              $ref: '#/components/schemas/booking_class'
              enum:
                - first
                - premium_economy
                - economy
                - business
                - average
            number_of_travelers:
              type: integer
              format: int32
              minimum: 1
              default: 1
              examples:
                - 2
            fare_class:
              $ref: '#/components/schemas/fare_class'
            airline:
              $ref: '#/components/schemas/airline'
            radiative_forcing_index:
              $ref: '#/components/schemas/radiative_forcing_index'
            sustainable_fuels:
              $ref: '#/components/schemas/sustainable_fuels'
            energy_scope:
              $ref: '#/components/schemas/energy_scope'
          required:
            - type
            - methodology
            - origin
            - destination
    Flight-DEFRA:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Flight DEFRA
          properties:
            type:
              const: flight
              examples:
                - flight
            methodology:
              type: string
              const: DEFRA
              description: 'Default: `"DEFRA"`'
              examples:
                - DEFRA
            external_reference:
              $ref: '#/components/schemas/external_reference'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            booking_class:
              $ref: '#/components/schemas/booking_class'
              default: average
            number_of_travelers:
              type: integer
              format: int32
              minimum: 1
              default: 1
              examples:
                - 2
            aircraft_type:
              $ref: '#/components/schemas/IATA-Aircraft-Type-Flight'
            fare_class:
              $ref: '#/components/schemas/fare_class'
            airline:
              $ref: '#/components/schemas/airline'
            radiative_forcing_index:
              $ref: '#/components/schemas/radiative_forcing_index'
            sustainable_fuels:
              $ref: '#/components/schemas/sustainable_fuels'
            energy_scope:
              $ref: '#/components/schemas/energy_scope'
          required:
            - type
            - methodology
            - origin
            - destination
    flight_number:
      type: string
      description: >-
        Flight numbers should include the airline designator, for example
        `BA115` is accepted but `115` also works with passed separately
        `airline`.
      examples:
        - BA115
    iso_8601_date:
      type: string
      title: ISO-8601-Date
      description: Date in ISO 8601 notation.
      format: date
      pattern: ^\d{4}-\d{2}-\d{2}$
      examples:
        - '2023-01-28'
    Flight-GATE4:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Flight GATE4
          properties:
            type:
              const: flight
              examples:
                - flight
            methodology:
              type: string
              const: GATE4
              description: 'Default: `"DEFRA"`'
              examples:
                - GATE4
            external_reference:
              $ref: '#/components/schemas/external_reference'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            booking_class:
              $ref: '#/components/schemas/booking_class'
            number_of_travelers:
              type: integer
              format: int32
              minimum: 1
              default: 1
              examples:
                - 2
            fare_class:
              $ref: '#/components/schemas/fare_class'
            airline:
              $ref: '#/components/schemas/airline'
            flight_number:
              $ref: '#/components/schemas/flight_number'
            departure_date:
              $ref: '#/components/schemas/iso_8601_date'
            sustainable_fuels:
              $ref: '#/components/schemas/sustainable_fuels'
          required:
            - type
            - methodology
            - origin
            - destination
    Flight-ICAO:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Flight ICAO
          properties:
            type:
              const: flight
              examples:
                - flight
            methodology:
              type: string
              const: ICAO
              description: 'Default: `"DEFRA"`'
              examples:
                - ICAO
            external_reference:
              $ref: '#/components/schemas/external_reference'
            booking_class:
              $ref: '#/components/schemas/booking_class'
              default: economy
            number_of_travelers:
              type: integer
              format: int32
              minimum: 1
              default: 1
              examples:
                - 2
            aircraft_type:
              $ref: '#/components/schemas/IATA-Aircraft-Type-Flight'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            fare_class:
              $ref: '#/components/schemas/fare_class'
            airline:
              $ref: '#/components/schemas/airline'
            sustainable_fuels:
              $ref: '#/components/schemas/sustainable_fuels'
          required:
            - type
            - methodology
            - origin
            - destination
    Flight-TIM:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Flight TIM
          properties:
            type:
              const: flight
              examples:
                - flight
            methodology:
              type: string
              const: TIM
              description: 'Default: `"DEFRA"`'
              examples:
                - TIM
            external_reference:
              $ref: '#/components/schemas/external_reference'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            energy_scope:
              $ref: '#/components/schemas/energy_scope'
            booking_class:
              $ref: '#/components/schemas/booking_class'
              default: economy
            number_of_travelers:
              type: integer
              format: int32
              minimum: 1
              default: 1
              examples:
                - 2
            fare_class:
              $ref: '#/components/schemas/fare_class'
            airline:
              $ref: '#/components/schemas/airline'
            flight_number:
              $ref: '#/components/schemas/flight_number'
            departure_date:
              $ref: '#/components/schemas/iso_8601_date'
            sustainable_fuels:
              $ref: '#/components/schemas/sustainable_fuels'
          required:
            - type
            - methodology
            - origin
            - destination
    Flight-TU-CHALMERS:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Flight TU-CHALMERS
          properties:
            type:
              const: flight
              examples:
                - flight
            methodology:
              type: string
              const: TU-CHALMERS
              description: 'Default: `"DEFRA"`'
              examples:
                - TU-CHALMERS
            external_reference:
              $ref: '#/components/schemas/external_reference'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            booking_class:
              $ref: '#/components/schemas/booking_class'
            number_of_travelers:
              type: integer
              format: int32
              minimum: 1
              default: 1
              examples:
                - 2
            fare_class:
              $ref: '#/components/schemas/fare_class'
            airline:
              $ref: '#/components/schemas/airline'
            sustainable_fuels:
              $ref: '#/components/schemas/sustainable_fuels'
            plane_type:
              type: string
              enum:
                - scheduled
                - charter
              default: scheduled
              example: scheduled
            biofuel:
              type: boolean
              default: false
          required:
            - type
            - methodology
            - origin
            - destination
    Flight-US-EPA:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Flight
          properties:
            type:
              const: flight
              examples:
                - flight
            methodology:
              type: string
              const: US-EPA
              description: 'Default: `"DEFRA"`'
              examples:
                - US-EPA
            external_reference:
              $ref: '#/components/schemas/external_reference'
            number_of_travelers:
              type: integer
              format: int32
              minimum: 1
              default: 1
              examples:
                - 2
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            sustainable_fuels:
              $ref: '#/components/schemas/sustainable_fuels'
          required:
            - type
            - methodology
            - origin
            - destination
    Flight:
      type: object
      title: Flight
      properties:
        type:
          const: flight
          examples:
            - flight
        methodology:
          type: string
      discriminator:
        propertyName: methodology
        mapping:
          ADEME: '#/components/schemas/Flight-ADEME'
          BASE-EMPREINTE: '#/components/schemas/Flight-BASE-EMPREINTE'
          CO2-EMISSIEFACTOREN-NL: '#/components/schemas/Flight-CO2-EMISSIEFACTOREN-NL'
          DEFRA: '#/components/schemas/Flight-DEFRA'
          GATE4: '#/components/schemas/Flight-GATE4'
          ICAO: '#/components/schemas/Flight-ICAO'
          TIM: '#/components/schemas/Flight-TIM'
          TU-CHALMERS: '#/components/schemas/Flight-TU-CHALMERS'
          US-EPA: '#/components/schemas/Flight-US-EPA'
      oneOf:
        - $ref: '#/components/schemas/Flight-ADEME'
        - $ref: '#/components/schemas/Flight-BASE-EMPREINTE'
        - $ref: '#/components/schemas/Flight-CO2-EMISSIEFACTOREN-NL'
        - $ref: '#/components/schemas/Flight-DEFRA'
        - $ref: '#/components/schemas/Flight-GATE4'
        - $ref: '#/components/schemas/Flight-ICAO'
        - $ref: '#/components/schemas/Flight-TIM'
        - $ref: '#/components/schemas/Flight-TU-CHALMERS'
        - $ref: '#/components/schemas/Flight-US-EPA'
      Flight-ADEME:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Flight ADEME
            properties:
              type:
                const: flight
                examples:
                  - flight
              methodology:
                type: string
                const: ADEME
                description: 'Default: `"DEFRA"`'
                examples:
                  - ADEME
              external_reference:
                $ref: '#/components/schemas/external_reference'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              number_of_travelers:
                type: integer
                format: int32
                minimum: 1
                default: 1
                examples:
                  - 2
              aircraft_size:
                type: string
                enum:
                  - under_50_seats
                  - under_100_seats
                  - under_180_seats
                  - under_250_seats
                  - over_250_seats
                description: >-
                  An estimation of the aircraft's size based on the number of
                  seats.
                examples:
                  - under_100_seats
              aircraft_type:
                $ref: '#/components/schemas/IATA-Aircraft-Type-Flight'
              airline:
                $ref: '#/components/schemas/airline'
            required:
              - type
              - methodology
              - origin
              - destination
      Flight-BASE-EMPREINTE:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Flight BASE-EMPREINTE
            properties:
              type:
                const: flight
                examples:
                  - flight
              methodology:
                type: string
                const: BASE-EMPREINTE
                description: 'Default: `"DEFRA"`'
                examples:
                  - BASE-EMPREINTE
              external_reference:
                $ref: '#/components/schemas/external_reference'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              number_of_travelers:
                type: integer
                format: int32
                minimum: 1
                default: 1
                examples:
                  - 2
              aircraft_size:
                type: string
                enum:
                  - under_50_seats
                  - under_50_seats_jet
                  - under_50_seats_turboprop
                  - under_100_seats
                  - under_100_seats_jet
                  - under_100_seats_turboprop
                  - under_220_seats
                  - above_220_seats
                description: >-
                  An estimation of the aircraft's size based on the number of
                  seats; used for `ADEME` and `BASE-EMPREINTE`.
                examples:
                  - under_100_seats
              aircraft_type:
                $ref: '#/components/schemas/IATA-Aircraft-Type-Flight'
              radiative_forcing_index:
                $ref: '#/components/schemas/radiative_forcing_index'
              sustainable_fuels:
                $ref: '#/components/schemas/sustainable_fuels'
            required:
              - type
              - methodology
              - origin
              - destination
      Flight-CO2-EMISSIEFACTOREN-NL:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Flight CO2-EMISSIEFACTOREN-NL
            properties:
              type:
                const: flight
                examples:
                  - flight
              methodology:
                type: string
                const: CO2-EMISSIEFACTOREN-NL
                description: 'Default: `"DEFRA"`'
                examples:
                  - CO2-EMISSIEFACTOREN-NL
              external_reference:
                $ref: '#/components/schemas/external_reference'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              booking_class:
                $ref: '#/components/schemas/booking_class'
                enum:
                  - first
                  - premium_economy
                  - economy
                  - business
                  - average
              number_of_travelers:
                type: integer
                format: int32
                minimum: 1
                default: 1
                examples:
                  - 2
              fare_class:
                $ref: '#/components/schemas/fare_class'
              airline:
                $ref: '#/components/schemas/airline'
              radiative_forcing_index:
                $ref: '#/components/schemas/radiative_forcing_index'
              sustainable_fuels:
                $ref: '#/components/schemas/sustainable_fuels'
              energy_scope:
                $ref: '#/components/schemas/energy_scope'
            required:
              - type
              - methodology
              - origin
              - destination
      Flight-DEFRA:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Flight DEFRA
            properties:
              type:
                const: flight
                examples:
                  - flight
              methodology:
                type: string
                const: DEFRA
                description: 'Default: `"DEFRA"`'
                examples:
                  - DEFRA
              external_reference:
                $ref: '#/components/schemas/external_reference'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              booking_class:
                $ref: '#/components/schemas/booking_class'
                default: average
              number_of_travelers:
                type: integer
                format: int32
                minimum: 1
                default: 1
                examples:
                  - 2
              aircraft_type:
                $ref: '#/components/schemas/IATA-Aircraft-Type-Flight'
              fare_class:
                $ref: '#/components/schemas/fare_class'
              airline:
                $ref: '#/components/schemas/airline'
              radiative_forcing_index:
                $ref: '#/components/schemas/radiative_forcing_index'
              sustainable_fuels:
                $ref: '#/components/schemas/sustainable_fuels'
              energy_scope:
                $ref: '#/components/schemas/energy_scope'
            required:
              - type
              - methodology
              - origin
              - destination
      Flight-GATE4:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Flight GATE4
            properties:
              type:
                const: flight
                examples:
                  - flight
              methodology:
                type: string
                const: GATE4
                description: 'Default: `"DEFRA"`'
                examples:
                  - GATE4
              external_reference:
                $ref: '#/components/schemas/external_reference'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              booking_class:
                $ref: '#/components/schemas/booking_class'
              number_of_travelers:
                type: integer
                format: int32
                minimum: 1
                default: 1
                examples:
                  - 2
              fare_class:
                $ref: '#/components/schemas/fare_class'
              airline:
                $ref: '#/components/schemas/airline'
              flight_number:
                $ref: '#/components/schemas/flight_number'
              departure_date:
                $ref: '#/components/schemas/iso_8601_date'
              sustainable_fuels:
                $ref: '#/components/schemas/sustainable_fuels'
            required:
              - type
              - methodology
              - origin
              - destination
      Flight-ICAO:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Flight ICAO
            properties:
              type:
                const: flight
                examples:
                  - flight
              methodology:
                type: string
                const: ICAO
                description: 'Default: `"DEFRA"`'
                examples:
                  - ICAO
              external_reference:
                $ref: '#/components/schemas/external_reference'
              booking_class:
                $ref: '#/components/schemas/booking_class'
                default: economy
              number_of_travelers:
                type: integer
                format: int32
                minimum: 1
                default: 1
                examples:
                  - 2
              aircraft_type:
                $ref: '#/components/schemas/IATA-Aircraft-Type-Flight'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              fare_class:
                $ref: '#/components/schemas/fare_class'
              airline:
                $ref: '#/components/schemas/airline'
              sustainable_fuels:
                $ref: '#/components/schemas/sustainable_fuels'
            required:
              - type
              - methodology
              - origin
              - destination
      Flight-TIM:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Flight TIM
            properties:
              type:
                const: flight
                examples:
                  - flight
              methodology:
                type: string
                const: TIM
                description: 'Default: `"DEFRA"`'
                examples:
                  - TIM
              external_reference:
                $ref: '#/components/schemas/external_reference'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              energy_scope:
                $ref: '#/components/schemas/energy_scope'
              booking_class:
                $ref: '#/components/schemas/booking_class'
                default: economy
              number_of_travelers:
                type: integer
                format: int32
                minimum: 1
                default: 1
                examples:
                  - 2
              fare_class:
                $ref: '#/components/schemas/fare_class'
              airline:
                $ref: '#/components/schemas/airline'
              flight_number:
                $ref: '#/components/schemas/flight_number'
              departure_date:
                $ref: '#/components/schemas/iso_8601_date'
              sustainable_fuels:
                $ref: '#/components/schemas/sustainable_fuels'
            required:
              - type
              - methodology
              - origin
              - destination
      Flight-TU-CHALMERS:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Flight TU-CHALMERS
            properties:
              type:
                const: flight
                examples:
                  - flight
              methodology:
                type: string
                const: TU-CHALMERS
                description: 'Default: `"DEFRA"`'
                examples:
                  - TU-CHALMERS
              external_reference:
                $ref: '#/components/schemas/external_reference'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              booking_class:
                $ref: '#/components/schemas/booking_class'
              number_of_travelers:
                type: integer
                format: int32
                minimum: 1
                default: 1
                examples:
                  - 2
              fare_class:
                $ref: '#/components/schemas/fare_class'
              airline:
                $ref: '#/components/schemas/airline'
              sustainable_fuels:
                $ref: '#/components/schemas/sustainable_fuels'
              plane_type:
                type: string
                enum:
                  - scheduled
                  - charter
                default: scheduled
                example: scheduled
              biofuel:
                type: boolean
                default: false
            required:
              - type
              - methodology
              - origin
              - destination
      Flight-US-EPA:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Flight
            properties:
              type:
                const: flight
                examples:
                  - flight
              methodology:
                type: string
                const: US-EPA
                description: 'Default: `"DEFRA"`'
                examples:
                  - US-EPA
              external_reference:
                $ref: '#/components/schemas/external_reference'
              number_of_travelers:
                type: integer
                format: int32
                minimum: 1
                default: 1
                examples:
                  - 2
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              sustainable_fuels:
                $ref: '#/components/schemas/sustainable_fuels'
            required:
              - type
              - methodology
              - origin
              - destination
      IATA-Aircraft-Type-Flight:
        type: string
        enum:
          - CS1
          - CS3
          - 31N
          - 32N
          - 32Q
          - '338'
          - '339'
          - '359'
          - 7M7
          - 7M8
          - 7M9
          - '789'
          - '141'
          - '142'
          - '143'
          - '146'
          - '310'
          - '312'
          - '313'
          - '318'
          - '319'
          - '320'
          - '321'
          - '330'
          - '332'
          - '333'
          - '340'
          - '342'
          - '343'
          - '345'
          - '346'
          - '380'
          - '388'
          - '703'
          - '707'
          - '717'
          - '721'
          - '722'
          - '727'
          - '731'
          - '732'
          - '733'
          - '734'
          - '735'
          - '736'
          - '737'
          - '738'
          - '739'
          - '741'
          - '742'
          - '743'
          - '744'
          - '747'
          - '752'
          - '753'
          - '757'
          - '762'
          - '763'
          - '764'
          - '767'
          - '772'
          - '773'
          - '777'
          - '787'
          - '788'
          - 14F
          - 31F
          - 31Y
          - 32A
          - 32F
          - 32S
          - 33F
          - 33X
          - 70F
          - 70M
          - 72A
          - 72F
          - 72M
          - 72S
          - 73A
          - 73C
          - 73E
          - 73F
          - 73G
          - 73H
          - 73J
          - 73L
          - 73M
          - 73N
          - 73P
          - 73Q
          - 73R
          - 73S
          - 73W
          - 73X
          - 73Y
          - 74C
          - 74D
          - 74E
          - 74F
          - 74H
          - 74J
          - 74L
          - 74M
          - 74N
          - 74R
          - 74T
          - 74X
          - 74Y
          - 75F
          - 75M
          - 75T
          - 75W
          - 76F
          - 76W
          - 76X
          - 76Y
          - 77F
          - 77L
          - 77W
          - 77X
          - A28
          - A40
          - A4F
          - A81
          - AB3
          - AB4
          - AB6
          - ABF
          - ABX
          - ABY
          - ACD
          - AGH
          - AN4
          - AN6
          - AN7
          - ANF
          - AR1
          - AR7
          - AR8
          - ARJ
          - AT3
          - AT4
          - AT5
          - AT7
          - ATF
          - ATP
          - ATR
          - B11
          - B12
          - B13
          - B14
          - B15
          - BE1
          - BE2
          - BE9
          - BEC
          - BEH
          - BES
          - BET
          - BH2
          - BNI
          - BNT
          - CCJ
          - CD2
          - CL4
          - CN1
          - CNA
          - CNC
          - CNF
          - CNJ
          - CNT
          - CR1
          - CR2
          - CR7
          - CR9
          - CRA
          - CRF
          - CRJ
          - CRK
          - CS2
          - CS5
          - CV5
          - CVF
          - CVR
          - CWC
          - D10
          - D11
          - D1C
          - D1F
          - D1Y
          - D28
          - D38
          - D3F
          - D6F
          - D8F
          - D8X
          - D8Y
          - D91
          - D92
          - D93
          - D94
          - D95
          - D9F
          - D9S
          - DC3
          - DC6
          - DC8
          - DC9
          - DF2
          - DFL
          - DH1
          - DH2
          - DH3
          - DH4
          - DH7
          - DH8
          - DHB
          - DHC
          - DHL
          - DHO
          - DHP
          - DHS
          - DHT
          - E70
          - E75
          - E90
          - E95
          - EM2
          - EMB
          - EMJ
          - ER3
          - ER4
          - ERD
          - ERJ
          - F21
          - F22
          - F23
          - F24
          - F27
          - F28
          - F50
          - F70
          - FK7
          - FRJ
          - GRG
          - GRM
          - GRS
          - HEC
          - HS7
          - I14
          - IL6
          - IL7
          - IL8
          - IL9
          - ILW
          - J31
          - J32
          - J41
          - JST
          - L10
          - L11
          - L12
          - L15
          - L1F
          - L49
          - L4T
          - LOE
          - LOF
          - LOH
          - LOM
          - LRJ
          - M11
          - M1F
          - M1M
          - M80
          - M81
          - M82
          - M83
          - M87
          - M88
          - M90
          - MA6
          - MBH
          - MD9
          - MIH
          - MU2
          - ND2
          - NDC
          - NDE
          - NDH
          - PA1
          - PA2
          - PAG
          - PAT
          - PL2
          - PL6
          - PN6
          - S20
          - S58
          - S61
          - S76
          - SF3
          - SFB
          - SFF
          - SH3
          - SH6
          - SHB
          - SHS
          - SSC
          - SU9
          - SWM
          - T20
          - T2F
          - TU3
          - TU5
          - VCV
          - WWP
          - YK2
          - YK4
          - YN2
          - YN7
          - YS1
          - '221'
          - '223'
          - '290'
          - '295'
          - '351'
          - '781'
        title: IATA Aircraft Type Flight
        description: >-
          For example, the Airbus A321 has the IATA short code `321`. ICAO
          publishes a similar list, their designator for the Airbus A321 is
          `A321`. Please don't hesitate to contact us if you can only work with
          ICAO codes.
        examples:
          - '321'
      airline:
        type: string
        description: >-
          The IATA Designator of an airline, e.g., 2-digit format like `LH` or
          3-digit format like `220`. Airline names and ICAO codes are also
          supported, SQUAKE will then automatically resolve it. The combination
          of `fare_class` and `airline` is mutually exclusive with
          `booking_class`.
        examples:
          - >-
            `LH` / `220` or `Lufthansa` or `DLH`, `DL` / `006` or `Delta
            Airlines` or `DAL`
      booking_class:
        type: string
        enum:
          - first
          - premium_economy
          - economy
          - business
        description: >-
          When `fare_class` and `airline` SQUAKE will then automatically resolve
          the correct `booking_class`.
        examples:
          - economy
      fare_class:
        type: string
        description: >-
          The combination of `fare_class` and `airline` is mutually exclusive
          with `booking_class`. This is a single letter e.g. `Y`, `J`, etc.
        examples:
          - B
      flight_number:
        type: string
        description: >-
          Flight numbers should include the airline designator, for example
          `BA115` is accepted but `115` also works with passed separately
          `airline`.
        examples:
          - BA115
      radiative_forcing_index:
        type: boolean
        description: >-
          Controls if a multiplier that factors in gases emitted to the
          atmosphere when flying at altitude should be applied.
        default: true
      sustainable_fuels:
        type: object
        title: sustainable_fuels
        description: >-
          Indicates the usage of sustainable fuels. This lowers the computed
          emissions in SQUAKE but is not part of the current official emissions
          frameworks.
        properties:
          carbon_reduction_percentage_of_total:
            type: number
            description: >-
              The percentage of emissions reduction through the usage of 
              sustainable fuel.
            minimum: 0
            maximum: 1
            default: 0
            examples:
              - 0.25
        examples:
          - carbon_reduction_percentage_of_total: 0.25
    number_of_nights:
      type: integer
      format: int32
      minimum: 1
      multipleOf: 1
      default: 3
      examples:
        - 2
    Hotel-DEFRA:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Hotel DEFRA
          properties:
            type:
              const: hotel
              examples:
                - hotel
            methodology:
              type: string
              const: DEFRA
              description: 'Default: `"SQUAKE"`'
              examples:
                - DEFRA
            external_reference:
              $ref: '#/components/schemas/external_reference'
            number_of_nights:
              $ref: '#/components/schemas/number_of_nights'
            country:
              $ref: '#/components/schemas/country'
            city:
              type: string
              description: >
                A city where the hotel is located. You can find the list of
                supported cities
                [here](https://squake.notion.site/51e2eb5f9e484c4dad4ceb100d2b90bb?v=013db568cf4c4dbd8403ab5f329458bf).


                `DEFRA` currently only supports `London` as a city.
          required:
            - type
            - methodology
            - number_of_nights
    stars:
      type: integer
      description: >-
        `stars` is mutually exclusive with `hotel_type`, `stars` is prioritized
        over `hotel_type`.
      format: int32
      minimum: 1
      maximum: 5
      multipleOf: 1
      examples:
        - 5
    hotel_type:
      type: string
      enum:
        - resort
        - nonresort
        - full_service_resort
        - full_service_nonresort
        - limited_service
        - economy_segment_nonresort
        - midscale_segment_nonresort
        - upper_midscale_segment_resort
        - upper_midscale_segment_nonresort
        - upscale_segment_resort
        - upscale_segment_nonresort
        - upper_upscale_segment_resort
        - upper_upscale_segment_nonresort
        - luxury_segment_resort
        - luxury_segment_nonresort
        - urban_location
        - suburban_location
        - small_metro_town_location
        - rural_highway_location
        - airport_location
        - all_suites_or_extended_stay_hotel
        - convention_or_conference_hotel
        - hotel_average
        - all_inclusive_resort
        - beach_resort
        - all_other_resort
      description: >-
        `hotel_type` is mutually exclusive with `stars`, `stars` is prioritized
        over `hotel_type`.
      default: hotel_average
    Hotel-HCMI:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Hotel HCMI
          properties:
            type:
              const: hotel
              examples:
                - hotel
            methodology:
              type: string
              const: HCMI
              description: 'Default: `"SQUAKE"`'
              examples:
                - HCMI
            external_reference:
              $ref: '#/components/schemas/external_reference'
            stars:
              $ref: '#/components/schemas/stars'
            number_of_nights:
              $ref: '#/components/schemas/number_of_nights'
            hcmi_member:
              type: boolean
              default: false
              examples:
                - true
            hotel_type:
              $ref: '#/components/schemas/hotel_type'
            country:
              $ref: '#/components/schemas/country'
              default: GB
            state:
              type: string
              description: >-
                A state or province where the hotel is located. You can find the
                list of supported states
                [here](https://squake.notion.site/66a1450838b84494b0a17684b578ffa0?v=d1ee83f184cc4856bfa2a3f23a15c9ff).
            city:
              type: string
              description: >-
                A city where the hotel is located. You can find the list of
                supported cities
                [here](https://squake.notion.site/51e2eb5f9e484c4dad4ceb100d2b90bb?v=013db568cf4c4dbd8403ab5f329458bf).
          required:
            - type
            - methodology
            - number_of_nights
    room_type:
      type: string
      enum:
        - adjacent_room
        - adjoining_room
        - cabana
        - connecting_rooms
        - double_double
        - double
        - executive_floor
        - hollywood_twin
        - king
        - mini_suite
        - murphy_room
        - president_suite
        - quad
        - queen
        - single
        - suite
        - triple
        - twin
      description: >-
        If you have less specific sizes, choose one of `single`, `double,`
        `suite` for best results.
      default: double
      examples:
        - single
    Hotel-SQUAKE:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Hotel SQUAKE
          properties:
            type:
              const: hotel
              examples:
                - hotel
            methodology:
              type: string
              const: SQUAKE
              description: 'Default: `"SQUAKE"`'
              examples:
                - SQUAKE
            external_reference:
              $ref: '#/components/schemas/external_reference'
            stars:
              $ref: '#/components/schemas/stars'
            room_type:
              $ref: '#/components/schemas/room_type'
            number_of_nights:
              $ref: '#/components/schemas/number_of_nights'
            hotel_type:
              $ref: '#/components/schemas/hotel_type'
            country:
              $ref: '#/components/schemas/country'
            state:
              type: string
              description: >-
                A state or province where the hotel is located. You can find the
                list of supported states
                [here](https://squake.notion.site/66a1450838b84494b0a17684b578ffa0?v=d1ee83f184cc4856bfa2a3f23a15c9ff).
            city:
              type: string
              description: >-
                A city where the hotel is located. You can find the list of
                supported cities
                [here](https://squake.notion.site/51e2eb5f9e484c4dad4ceb100d2b90bb?v=013db568cf4c4dbd8403ab5f329458bf).
            eco_labels:
              type: array
              description: >
                Eco-labels are returned in case an eco-label is assigned to the
                hotel. In case you are aware of the eco-labels that

                apply to specific hotels, you can pass them to us and we will
                consider them.


                You can find a list of our eco-labels
                [here](https://squake.notion.site/c5160e37d67d4280ae0d80675cbf2f12?v=debaae061f0643488990261c1a8b28b9).
              items:
                type: string
            garage:
              type: boolean
              default: false
            parking:
              type: boolean
              default: false
            code_type:
              type: string
              enum:
                - amadeus
                - booking.com
                - galileo_apollo
                - giata
                - sabre_tn
                - worldspan
              description: The code type of the passed code.
            code:
              type: string
              description: The hotel code from the specified code type.
              examples:
                - '123456'
          required:
            - type
            - methodology
            - number_of_nights
    Hotel:
      type: object
      title: Hotel
      description: >
        Hotel considers only activities related to rentals of rooms.


        SQUAKE will automatically resolve eco-labels if you supply both `code`

        and `code_type` for its methodology.


        Additionally, you can also pass eco-labels yourself in `eco_labels`.


        Additional information may be returned in the response for eco-label
        matches.\nThe format is:

        ```json
          "eco_labels": [
            {
              "id": "string",
              "link": "string",
              "name": "string",
              "description": "string"
            }
          ]
        ```
      properties:
        type:
          const: hotel
          examples:
            - hotel
        methodology:
          type: string
      discriminator:
        propertyName: methodology
        mapping:
          DEFRA: '#/components/schemas/Hotel-DEFRA'
          HCMI: '#/components/schemas/Hotel-HCMI'
          SQUAKE: '#/components/schemas/Hotel-SQUAKE'
      anyOf:
        - $ref: '#/components/schemas/Hotel-DEFRA'
        - $ref: '#/components/schemas/Hotel-HCMI'
        - $ref: '#/components/schemas/Hotel-SQUAKE'
      Hotel-DEFRA:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Hotel DEFRA
            properties:
              type:
                const: hotel
                examples:
                  - hotel
              methodology:
                type: string
                const: DEFRA
                description: 'Default: `"SQUAKE"`'
                examples:
                  - DEFRA
              external_reference:
                $ref: '#/components/schemas/external_reference'
              number_of_nights:
                $ref: '#/components/schemas/number_of_nights'
              country:
                $ref: '#/components/schemas/country'
              city:
                type: string
                description: >
                  A city where the hotel is located. You can find the list of
                  supported cities
                  [here](https://squake.notion.site/51e2eb5f9e484c4dad4ceb100d2b90bb?v=013db568cf4c4dbd8403ab5f329458bf).


                  `DEFRA` currently only supports `London` as a city.
            required:
              - type
              - methodology
              - number_of_nights
      Hotel-HCMI:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Hotel HCMI
            properties:
              type:
                const: hotel
                examples:
                  - hotel
              methodology:
                type: string
                const: HCMI
                description: 'Default: `"SQUAKE"`'
                examples:
                  - HCMI
              external_reference:
                $ref: '#/components/schemas/external_reference'
              stars:
                $ref: '#/components/schemas/stars'
              number_of_nights:
                $ref: '#/components/schemas/number_of_nights'
              hcmi_member:
                type: boolean
                default: false
                examples:
                  - true
              hotel_type:
                $ref: '#/components/schemas/hotel_type'
              country:
                $ref: '#/components/schemas/country'
                default: GB
              state:
                type: string
                description: >-
                  A state or province where the hotel is located. You can find
                  the list of supported states
                  [here](https://squake.notion.site/66a1450838b84494b0a17684b578ffa0?v=d1ee83f184cc4856bfa2a3f23a15c9ff).
              city:
                type: string
                description: >-
                  A city where the hotel is located. You can find the list of
                  supported cities
                  [here](https://squake.notion.site/51e2eb5f9e484c4dad4ceb100d2b90bb?v=013db568cf4c4dbd8403ab5f329458bf).
            required:
              - type
              - methodology
              - number_of_nights
      Hotel-SQUAKE:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Hotel SQUAKE
            properties:
              type:
                const: hotel
                examples:
                  - hotel
              methodology:
                type: string
                const: SQUAKE
                description: 'Default: `"SQUAKE"`'
                examples:
                  - SQUAKE
              external_reference:
                $ref: '#/components/schemas/external_reference'
              stars:
                $ref: '#/components/schemas/stars'
              room_type:
                $ref: '#/components/schemas/room_type'
              number_of_nights:
                $ref: '#/components/schemas/number_of_nights'
              hotel_type:
                $ref: '#/components/schemas/hotel_type'
              country:
                $ref: '#/components/schemas/country'
              state:
                type: string
                description: >-
                  A state or province where the hotel is located. You can find
                  the list of supported states
                  [here](https://squake.notion.site/66a1450838b84494b0a17684b578ffa0?v=d1ee83f184cc4856bfa2a3f23a15c9ff).
              city:
                type: string
                description: >-
                  A city where the hotel is located. You can find the list of
                  supported cities
                  [here](https://squake.notion.site/51e2eb5f9e484c4dad4ceb100d2b90bb?v=013db568cf4c4dbd8403ab5f329458bf).
              eco_labels:
                type: array
                description: >
                  Eco-labels are returned in case an eco-label is assigned to
                  the hotel. In case you are aware of the eco-labels that

                  apply to specific hotels, you can pass them to us and we will
                  consider them.


                  You can find a list of our eco-labels
                  [here](https://squake.notion.site/c5160e37d67d4280ae0d80675cbf2f12?v=debaae061f0643488990261c1a8b28b9).
                items:
                  type: string
              garage:
                type: boolean
                default: false
              parking:
                type: boolean
                default: false
              code_type:
                type: string
                enum:
                  - amadeus
                  - booking.com
                  - galileo_apollo
                  - giata
                  - sabre_tn
                  - worldspan
                description: The code type of the passed code.
              code:
                type: string
                description: The hotel code from the specified code type.
                examples:
                  - '123456'
            required:
              - type
              - methodology
              - number_of_nights
      hotel_type:
        type: string
        enum:
          - resort
          - nonresort
          - full_service_resort
          - full_service_nonresort
          - limited_service
          - economy_segment_nonresort
          - midscale_segment_nonresort
          - upper_midscale_segment_resort
          - upper_midscale_segment_nonresort
          - upscale_segment_resort
          - upscale_segment_nonresort
          - upper_upscale_segment_resort
          - upper_upscale_segment_nonresort
          - luxury_segment_resort
          - luxury_segment_nonresort
          - urban_location
          - suburban_location
          - small_metro_town_location
          - rural_highway_location
          - airport_location
          - all_suites_or_extended_stay_hotel
          - convention_or_conference_hotel
          - hotel_average
          - all_inclusive_resort
          - beach_resort
          - all_other_resort
        description: >-
          `hotel_type` is mutually exclusive with `stars`, `stars` is
          prioritized over `hotel_type`.
        default: hotel_average
      number_of_nights:
        type: integer
        format: int32
        minimum: 1
        multipleOf: 1
        default: 3
        examples:
          - 2
      room_type:
        type: string
        enum:
          - adjacent_room
          - adjoining_room
          - cabana
          - connecting_rooms
          - double_double
          - double
          - executive_floor
          - hollywood_twin
          - king
          - mini_suite
          - murphy_room
          - president_suite
          - quad
          - queen
          - single
          - suite
          - triple
          - twin
        description: >-
          If you have less specific sizes, choose one of `single`, `double,`
          `suite` for best results.
        default: double
        examples:
          - single
      stars:
        type: integer
        description: >-
          `stars` is mutually exclusive with `hotel_type`, `stars` is
          prioritized over `hotel_type`.
        format: int32
        minimum: 1
        maximum: 5
        multipleOf: 1
        examples:
          - 5
    Inland-Waterways:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Inland Waterways
          description: >
            If you have freight and don't know the type, you can use
            `Logistics`. Additional information may be returned in the response
            for `GLEC`. The format is:

            ```json
              "data": [
                {
                  "co2e_in_g": int,
                  "co2e_emissions_wtw_in_g": int,
                  "co2e_per_tonne_km_in_g": int,
                  "tonne_km": int,
                  "reporting_year": int,
                  "transportation_mode": "string"
                }
              ]
            ```
          properties:
            type:
              const: inland_waterways
              examples:
                - inland_waterways
            methodology:
              const: GLEC
              examples:
                - GLEC
              default: GLEC
            external_reference:
              $ref: '#/components/schemas/external_reference'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            weight_in_tonnes:
              type: number
              format: float
              exclusiveMinimum: 0
              examples:
                - 2.5
            vessel_type:
              type: string
              enum:
                - container_vessel_110_m
                - container_vessel_135_m
                - container_vessel_coupled_convoys
                - coupled_convoys
                - motor_vessels_under_50_m
                - motor_vessels_under_80_m
                - motor_vessel_under_110_m
                - motor_vessel_135_m
                - pushed_convoy_push_boat_2_barges
                - pushed_convoy_push_boat_4_5_barges
                - pushed_convoy_push_boat_6_barges
                - tanker_vessel
              default: motor_vessels_under_50_m
              examples:
                - motor_vessels_under_50_m
            energy_scope:
              $ref: '#/components/schemas/energy_scope'
          required:
            - type
            - methodology
            - origin
            - destination
            - weight_in_tonnes
    Logistics-Site:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Logistics Site
          description: >
            Additional information may be returned in the response for `GLEC`.
            The format is:

            ```json
              "data": [
                {
                  "co2e_in_g": int,
                  "co2e_per_tonne_in_g": int,
                  "reporting_year": int, 
                  "transportation_mode": "string"
                }
              ]
            ```
          properties:
            type:
              const: logistics_site
              examples:
                - logistics_site
            methodology:
              const: GLEC
              examples:
                - GLEC
              default: GLEC
            external_reference:
              $ref: '#/components/schemas/external_reference'
            weight_in_tonnes:
              type: number
            logistics_site_type:
              type: string
              enum:
                - transhipment_site
                - storage_and_transhipment
                - warehouse
                - maritime_container_terminal
                - liquid_bulk_terminal
              default: warehouse
              examples:
                - warehouse
            condition_type:
              type: string
              enum:
                - ambient
                - mixed
                - temperature_controlled
              description: >
                `temperature_controlled` is only relevant for
                `logistics_site_type: 'maritime_container_terminal'`
              default: mixed
              examples:
                - ambient
          required:
            - type
            - methodology
            - weight_in_tonnes
    Logistics:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Logistics
          description: >-
            Logistics is a generalization of air, sea, rail, and road freight.
            The journey provided via either `distance_in_km` or `origin` &
            `destination` is split into multiple parts, and the appropriate
            specific freight methodologies are used for each part, depending on
            the parameters provided. If you know the type in advance, prefer
            using the specific type.
          properties:
            type:
              const: logistics
              examples:
                - logistics
            methodology:
              const: SQUAKE
              examples:
                - SQUAKE
              default: SQUAKE
            external_reference:
              $ref: '#/components/schemas/external_reference'
            weight_in_kg:
              type: number
              format: float
              exclusiveMinimum: 0
              default: 2
              examples:
                - 23.4
            shipping_method:
              type: string
              enum:
                - express
                - normal
              default: express
              examples:
                - normal
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
          required:
            - type
            - methodology
            - weight_in_kg
            - origin
            - destination
    IATA-Aircraft-Type-Private-Jet:
      type: string
      enum:
        - '100'
        - '141'
        - '142'
        - '143'
        - '146'
        - 14F
        - '221'
        - '223'
        - '290'
        - '295'
        - '310'
        - '312'
        - '313'
        - '318'
        - '319'
        - 31F
        - 31N
        - 31X
        - 31Y
        - '320'
        - '321'
        - 32A
        - 32B
        - 32F
        - 32N
        - 32Q
        - 32S
        - '330'
        - '332'
        - '333'
        - '338'
        - '339'
        - 33F
        - 33X
        - '340'
        - '342'
        - '343'
        - '345'
        - '346'
        - '350'
        - '351'
        - '359'
        - '380'
        - '388'
        - '703'
        - '707'
        - 70F
        - 70M
        - '717'
        - '721'
        - '722'
        - '725'
        - '727'
        - 72A
        - 72F
        - 72M
        - '731'
        - '732'
        - '733'
        - '734'
        - '735'
        - '736'
        - '737'
        - '738'
        - '739'
        - 73A
        - 73C
        - 73E
        - 73F
        - 73G
        - 73H
        - 73J
        - 73L
        - 73M
        - 73N
        - 73P
        - 73Q
        - 73R
        - 73S
        - 73W
        - 73X
        - 73Y
        - '741'
        - '742'
        - '743'
        - '744'
        - '747'
        - 74C
        - 74D
        - 74E
        - 74F
        - 74H
        - 74I
        - 74L
        - 74M
        - 74N
        - 74R
        - 74T
        - 74X
        - 74Y
        - '752'
        - '753'
        - '757'
        - 75M
        - 75T
        - 75W
        - '762'
        - '763'
        - '764'
        - '767'
        - 76F
        - 76W
        - 76X
        - 76Y
        - '772'
        - '773'
        - '777'
        - 77F
        - 77L
        - 77W
        - 77X
        - '781'
        - '787'
        - '788'
        - '789'
        - 7M8
        - 7M9
        - A26
        - A28
        - A40
        - A4F
        - A81
        - AB3
        - AB4
        - AB6
        - ABF
        - ABX
        - ABY
        - ACD
        - AGH
        - AN4
        - AN6
        - AN7
        - ANF
        - AR1
        - AR7
        - AR8
        - ARJ
        - AT3
        - AT4
        - AT5
        - AT7
        - ATF
        - ATP
        - ATR
        - B11
        - B12
        - B13
        - B14
        - B15
        - BE1
        - BE2
        - BE4
        - BE9
        - BEC
        - BEH
        - BES
        - BET
        - BH2
        - BNI
        - BNT
        - C55
        - CCJ
        - CCX
        - CD2
        - CL4
        - CN1
        - CN2
        - CNA
        - CNC
        - CNF
        - CNJ
        - CNT
        - CR1
        - CR2
        - CR7
        - CR9
        - CRA
        - CRF
        - CRJ
        - CRK
        - CS2
        - CV5
        - CVF
        - CVR
        - CWC
        - D10
        - D11
        - D1C
        - D1F
        - D1Y
        - D20
        - D28
        - D38
        - D3F
        - D6F
        - D8F
        - D8X
        - D8Y
        - D91
        - D92
        - D93
        - D94
        - D95
        - D9F
        - D9S
        - DC3
        - DC6
        - DC8
        - DC9
        - DF2
        - DF7
        - DF8
        - DF9
        - DFL
        - DH1
        - DH2
        - DH3
        - DH4
        - DH7
        - DH8
        - DHB
        - DHC
        - DHL
        - DHO
        - DHP
        - DHS
        - DHT
        - E70
        - E75
        - E90
        - E95
        - EC3
        - EM2
        - EMB
        - EMJ
        - EP1
        - EP3
        - ER3
        - ER4
        - ERD
        - ERJ
        - F21
        - F22
        - F23
        - F24
        - F27
        - F28
        - F50
        - F70
        - FK7
        - FRJ
        - GJ4
        - GJ5
        - GJ6
        - GR3
        - GRG
        - GRJ
        - GRM
        - GRS
        - H25
        - HEC
        - HHJ
        - HS7
        - I14
        - IL6
        - IL7
        - IL8
        - IL9
        - ILW
        - J31
        - J41
        - JST
        - L10
        - L11
        - L12
        - L15
        - L1F
        - L2J
        - L49
        - L4T
        - LOE
        - LOF
        - LOH
        - LOM
        - LRJ
        - M11
        - M1F
        - M1M
        - M80
        - M81
        - M82
        - M83
        - M87
        - M88
        - M90
        - MA6
        - MBH
        - MD9
        - MIH
        - MU2
        - ND2
        - NDC
        - NDE
        - NDH
        - P18
        - PA1
        - PA2
        - PAG
        - PAT
        - PL2
        - PL4
        - PL6
        - PN6
        - S20
        - S58
        - S61
        - S76
        - SF3
        - SFB
        - SFF
        - SH3
        - SH6
        - SHB
        - SHS
        - SSC
        - SU9
        - SWM
        - T20
        - T2F
        - TU3
        - TU5
        - VCV
        - WWP
        - YK2
        - YK4
        - YN2
        - YN7
        - YS1
      title: IATA Aircraft Type Private Jet
      description: >-
        For example, the Airbus A321 has the IATA short code `321`. All ICAO
        codes that correspond to the published IATA codes are also supported.
      examples:
        - '321'
    Private-Jet:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Private Jet
          description: >-
            The full list of aircraft supported by SQUAKE could be found
            [here](https://squake.notion.site/Private-Jet-SQUAKE-11928ae8ff5f4aa6a71578681a9a9bf6).
            If your aircraft type is not supported, feel free to contact us.
          properties:
            type:
              const: private_jet
              examples:
                - private_jet
            methodology:
              const: SQUAKE
              default: SQUAKE
              examples:
                - SQUAKE
            external_reference:
              $ref: '#/components/schemas/external_reference'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            identifier:
              $ref: '#/components/schemas/IATA-Aircraft-Type-Private-Jet'
              description: '`IATA` or `ICAO` code of the aircraft.'
              example: P18
            identifier_kind:
              type: string
              enum:
                - ICAO
                - IATA
              default: ICAO
              examples:
                - IATA
          required:
            - type
            - methodology
            - origin
            - destination
            - identifier
            - identifier_kind
      IATA-Aircraft-Type-Private-Jet:
        type: string
        enum:
          - '100'
          - '141'
          - '142'
          - '143'
          - '146'
          - 14F
          - '221'
          - '223'
          - '290'
          - '295'
          - '310'
          - '312'
          - '313'
          - '318'
          - '319'
          - 31F
          - 31N
          - 31X
          - 31Y
          - '320'
          - '321'
          - 32A
          - 32B
          - 32F
          - 32N
          - 32Q
          - 32S
          - '330'
          - '332'
          - '333'
          - '338'
          - '339'
          - 33F
          - 33X
          - '340'
          - '342'
          - '343'
          - '345'
          - '346'
          - '350'
          - '351'
          - '359'
          - '380'
          - '388'
          - '703'
          - '707'
          - 70F
          - 70M
          - '717'
          - '721'
          - '722'
          - '725'
          - '727'
          - 72A
          - 72F
          - 72M
          - '731'
          - '732'
          - '733'
          - '734'
          - '735'
          - '736'
          - '737'
          - '738'
          - '739'
          - 73A
          - 73C
          - 73E
          - 73F
          - 73G
          - 73H
          - 73J
          - 73L
          - 73M
          - 73N
          - 73P
          - 73Q
          - 73R
          - 73S
          - 73W
          - 73X
          - 73Y
          - '741'
          - '742'
          - '743'
          - '744'
          - '747'
          - 74C
          - 74D
          - 74E
          - 74F
          - 74H
          - 74I
          - 74L
          - 74M
          - 74N
          - 74R
          - 74T
          - 74X
          - 74Y
          - '752'
          - '753'
          - '757'
          - 75M
          - 75T
          - 75W
          - '762'
          - '763'
          - '764'
          - '767'
          - 76F
          - 76W
          - 76X
          - 76Y
          - '772'
          - '773'
          - '777'
          - 77F
          - 77L
          - 77W
          - 77X
          - '781'
          - '787'
          - '788'
          - '789'
          - 7M8
          - 7M9
          - A26
          - A28
          - A40
          - A4F
          - A81
          - AB3
          - AB4
          - AB6
          - ABF
          - ABX
          - ABY
          - ACD
          - AGH
          - AN4
          - AN6
          - AN7
          - ANF
          - AR1
          - AR7
          - AR8
          - ARJ
          - AT3
          - AT4
          - AT5
          - AT7
          - ATF
          - ATP
          - ATR
          - B11
          - B12
          - B13
          - B14
          - B15
          - BE1
          - BE2
          - BE4
          - BE9
          - BEC
          - BEH
          - BES
          - BET
          - BH2
          - BNI
          - BNT
          - C55
          - CCJ
          - CCX
          - CD2
          - CL4
          - CN1
          - CN2
          - CNA
          - CNC
          - CNF
          - CNJ
          - CNT
          - CR1
          - CR2
          - CR7
          - CR9
          - CRA
          - CRF
          - CRJ
          - CRK
          - CS2
          - CV5
          - CVF
          - CVR
          - CWC
          - D10
          - D11
          - D1C
          - D1F
          - D1Y
          - D20
          - D28
          - D38
          - D3F
          - D6F
          - D8F
          - D8X
          - D8Y
          - D91
          - D92
          - D93
          - D94
          - D95
          - D9F
          - D9S
          - DC3
          - DC6
          - DC8
          - DC9
          - DF2
          - DF7
          - DF8
          - DF9
          - DFL
          - DH1
          - DH2
          - DH3
          - DH4
          - DH7
          - DH8
          - DHB
          - DHC
          - DHL
          - DHO
          - DHP
          - DHS
          - DHT
          - E70
          - E75
          - E90
          - E95
          - EC3
          - EM2
          - EMB
          - EMJ
          - EP1
          - EP3
          - ER3
          - ER4
          - ERD
          - ERJ
          - F21
          - F22
          - F23
          - F24
          - F27
          - F28
          - F50
          - F70
          - FK7
          - FRJ
          - GJ4
          - GJ5
          - GJ6
          - GR3
          - GRG
          - GRJ
          - GRM
          - GRS
          - H25
          - HEC
          - HHJ
          - HS7
          - I14
          - IL6
          - IL7
          - IL8
          - IL9
          - ILW
          - J31
          - J41
          - JST
          - L10
          - L11
          - L12
          - L15
          - L1F
          - L2J
          - L49
          - L4T
          - LOE
          - LOF
          - LOH
          - LOM
          - LRJ
          - M11
          - M1F
          - M1M
          - M80
          - M81
          - M82
          - M83
          - M87
          - M88
          - M90
          - MA6
          - MBH
          - MD9
          - MIH
          - MU2
          - ND2
          - NDC
          - NDE
          - NDH
          - P18
          - PA1
          - PA2
          - PAG
          - PAT
          - PL2
          - PL4
          - PL6
          - PN6
          - S20
          - S58
          - S61
          - S76
          - SF3
          - SFB
          - SFF
          - SH3
          - SH6
          - SHB
          - SHS
          - SSC
          - SU9
          - SWM
          - T20
          - T2F
          - TU3
          - TU5
          - VCV
          - WWP
          - YK2
          - YK4
          - YN2
          - YN7
          - YS1
        title: IATA Aircraft Type Private Jet
        description: >-
          For example, the Airbus A321 has the IATA short code `321`. All ICAO
          codes that correspond to the published IATA codes are also supported.
        examples:
          - '321'
    Rail-Freight-DIN-EN-16258:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Rail Freight DIN-EN-16258
          properties:
            type:
              const: rail_freight
              examples:
                - rail_freight
            methodology:
              type: string
              const: DIN-EN-16258
              description: 'Default: `"GLEC"`'
              examples:
                - DIN-EN-16258
            external_reference:
              $ref: '#/components/schemas/external_reference'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            weight_in_tonnes:
              type: number
              format: float
              examples:
                - 73
            train_type:
              type: string
              enum:
                - 500t
                - 1000t
                - 1500t
                - 2000t
              default: 1000t
              examples:
                - 1000t
            fuel_type:
              type: string
              enum:
                - electric
                - diesel
                - average
                - us_diesel
              default: diesel
              examples:
                - diesel
            energy_scope:
              $ref: '#/components/schemas/energy_scope'
              default: wtw
          required:
            - type
            - methodology
            - origin
            - destination
            - weight_in_tonnes
            - train_type
    Rail-Freight-ECTA:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Rail Freight ECTA
          properties:
            type:
              const: rail_freight
              examples:
                - rail_freight
            methodology:
              type: string
              const: ECTA
              description: 'Default: `"GLEC"`'
              examples:
                - ECTA
            external_reference:
              $ref: '#/components/schemas/external_reference'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            weight_in_tonnes:
              type: number
              format: float
              examples:
                - 73
            train_type:
              type: string
              enum:
                - average
                - container_train_intermodal
                - blocktrain_rtc
                - single_wagon_train_rtc
              examples:
                - 1000t
              default: average
            fuel_type:
              type: string
              enum:
                - electricity
                - diesel
                - average
              default: average
              examples:
                - diesel
          required:
            - type
            - methodology
            - origin
            - destination
            - weight_in_tonnes
    Rail-Freight-GLEC:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Rail Freight GLEC
          properties:
            type:
              const: rail_freight
              examples:
                - rail_freight
            methodology:
              type: string
              const: GLEC
              description: 'Default: `"GLEC"`'
              examples:
                - GLEC
            external_reference:
              $ref: '#/components/schemas/external_reference'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            weight_in_tonnes:
              type: number
              format: float
              examples:
                - 73
            fuel_type:
              type: string
              enum:
                - electricity
                - diesel
                - average
                - us_diesel
              default: diesel
              examples:
                - diesel
            energy_scope:
              $ref: '#/components/schemas/energy_scope'
              default: wtw
            load_characteristic:
              type: string
              enum:
                - average
                - container
                - cars
                - chemicals
                - coal_steel
                - building_materials
                - manufactured_products
                - cereals
                - truck_trailer_on_train
                - trailer_only_on_train
              default: average
              examples:
                - average
          required:
            - type
            - methodology
            - origin
            - destination
            - weight_in_tonnes
            - load_characteristic
    Rail-Freight:
      type: object
      title: Rail Freight
      description: |
        If you have freight and don't know the type, you can use `Logistics`.
        Additional information may be returned in the response.

        The format for `DIN-EN-16258` is:
        ```json
          "data": [
            {
              "energy_factor_ttw_in_MJ": int,
              "energy_factor_wtw_in_MJ": int,
              "ghg_emissions_ttw_in_g": int,
              "ghg_emissions_wtw_in_g": int
            }
          ]
        ```

        The format for `GLEC` is:
        ```json
          "data": [
            {
              "co2e_in_g": int,
              "co2e_emissions_wtw_in_g": int,
              "co2e_per_tonne_km_in_g": int,
              "tonne_km": int,
              "reporting_year": int,
              "transportation_mode": "string"
            }
          ]
        ```
      properties:
        type:
          const: rail_freight
          examples:
            - rail_freight
        methodology:
          type: string
      discriminator:
        propertyName: methodology
        mapping:
          DIN-EN-16258: '#/components/schemas/Rail-Freight-DIN-EN-16258'
          ECTA: '#/components/schemas/Rail-Freight-ECTA'
          GLEC: '#/components/schemas/Rail-Freight-GLEC'
      anyOf:
        - $ref: '#/components/schemas/Rail-Freight-DIN-EN-16258'
        - $ref: '#/components/schemas/Rail-Freight-ECTA'
        - $ref: '#/components/schemas/Rail-Freight-GLEC'
      Rail-Freight-DIN-EN-16258:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Rail Freight DIN-EN-16258
            properties:
              type:
                const: rail_freight
                examples:
                  - rail_freight
              methodology:
                type: string
                const: DIN-EN-16258
                description: 'Default: `"GLEC"`'
                examples:
                  - DIN-EN-16258
              external_reference:
                $ref: '#/components/schemas/external_reference'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              weight_in_tonnes:
                type: number
                format: float
                examples:
                  - 73
              train_type:
                type: string
                enum:
                  - 500t
                  - 1000t
                  - 1500t
                  - 2000t
                default: 1000t
                examples:
                  - 1000t
              fuel_type:
                type: string
                enum:
                  - electric
                  - diesel
                  - average
                  - us_diesel
                default: diesel
                examples:
                  - diesel
              energy_scope:
                $ref: '#/components/schemas/energy_scope'
                default: wtw
            required:
              - type
              - methodology
              - origin
              - destination
              - weight_in_tonnes
              - train_type
      Rail-Freight-ECTA:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Rail Freight ECTA
            properties:
              type:
                const: rail_freight
                examples:
                  - rail_freight
              methodology:
                type: string
                const: ECTA
                description: 'Default: `"GLEC"`'
                examples:
                  - ECTA
              external_reference:
                $ref: '#/components/schemas/external_reference'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              weight_in_tonnes:
                type: number
                format: float
                examples:
                  - 73
              train_type:
                type: string
                enum:
                  - average
                  - container_train_intermodal
                  - blocktrain_rtc
                  - single_wagon_train_rtc
                examples:
                  - 1000t
                default: average
              fuel_type:
                type: string
                enum:
                  - electricity
                  - diesel
                  - average
                default: average
                examples:
                  - diesel
            required:
              - type
              - methodology
              - origin
              - destination
              - weight_in_tonnes
      Rail-Freight-GLEC:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Rail Freight GLEC
            properties:
              type:
                const: rail_freight
                examples:
                  - rail_freight
              methodology:
                type: string
                const: GLEC
                description: 'Default: `"GLEC"`'
                examples:
                  - GLEC
              external_reference:
                $ref: '#/components/schemas/external_reference'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              weight_in_tonnes:
                type: number
                format: float
                examples:
                  - 73
              fuel_type:
                type: string
                enum:
                  - electricity
                  - diesel
                  - average
                  - us_diesel
                default: diesel
                examples:
                  - diesel
              energy_scope:
                $ref: '#/components/schemas/energy_scope'
                default: wtw
              load_characteristic:
                type: string
                enum:
                  - average
                  - container
                  - cars
                  - chemicals
                  - coal_steel
                  - building_materials
                  - manufactured_products
                  - cereals
                  - truck_trailer_on_train
                  - trailer_only_on_train
                default: average
                examples:
                  - average
            required:
              - type
              - methodology
              - origin
              - destination
              - weight_in_tonnes
              - load_characteristic
    Restaurant:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Restaurant
          properties:
            type:
              const: restaurant
              examples:
                - restaurant
            methodology:
              type: string
              const: BASE-EMPREINTE
              default: BASE-EMPREINTE
              examples:
                - BASE-EMPREINTE
            external_reference:
              $ref: '#/components/schemas/external_reference'
            number_of_travelers:
              type: number
            meal_type:
              type: string
              enum:
                - average
                - vegetarian
                - plant_based_with_chicken
                - plant_based_with_beef
                - classic_with_chicken
                - classic_with_beef
                - animal_dominated_with_chicken
                - animal_dominated_with_beef
              default: average
              examples:
                - average
          required:
            - type
            - methodology
    Road-Freight-DIN-EN-16258:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Road Freight DIN-EN-16258
          properties:
            type:
              const: road_freight
              examples:
                - road_freight
            methodology:
              type: string
              const: DIN-EN-16258
              description: 'Default: `"GLEC"`'
              examples:
                - DIN-EN-16258
            external_reference:
              $ref: '#/components/schemas/external_reference'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            weight_in_tonnes:
              type: number
            truck_type:
              type: string
              enum:
                - under_7.5_t
                - under_12_t
                - under_24_t
                - under_40_t
              examples:
                - under_7.5_t
              default: under_7.5_t
            energy_scope:
              $ref: '#/components/schemas/energy_scope'
              default: wtw
          required:
            - type
            - methodology
            - origin
            - destination
            - weight_in_tonnes
    Road-Freight-GLEC:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Road Freight GLEC
          properties:
            type:
              const: road_freight
              examples:
                - road_freight
            methodology:
              type: string
              const: GLEC
              description: 'Default: `"GLEC"`'
              examples:
                - GLEC
            external_reference:
              $ref: '#/components/schemas/external_reference'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            weight_in_tonnes:
              type: number
            truck_type:
              type: string
              enum:
                - artic_truck_40_gvw_lightweight_trailer
                - artic_truck_under_34_gvw
                - artic_truck_under_40_gvw
                - artic_truck_under_40_gvw_hpdi
                - artic_truck_under_40_gvw_si_engine
                - artic_truck_under_44_gvw
                - artic_truck_under_60_gvw
                - articulated_truck_hdv_above_49_t_gvw
                - articulated_truck_hdv_under_18_t_gvw
                - articulated_truck_hdv_under_27_t_gvw
                - articulated_truck_hdv_under_35_t_gvw
                - articulated_truck_hdv_under_40_t_gvw
                - articulated_truck_hdv_under_43_t_gvw
                - articulated_truck_hdv_under_46_t_gvw
                - articulated_truck_hdv_under_49_t_gvw
                - auto_carrier
                - dray
                - dump_truck_hdv_above_31_t_gvw
                - dump_truck_hdv_under_16_t_gvw
                - dump_truck_hdv_under_20_t_gvw
                - dump_truck_hdv_under_25_t_gvw
                - dump_truck_hdv_under_31_t_gvw
                - dump_truck_ldt_under_4.5_t_gvw
                - dump_truck_mdt_under_5.5_t_gvw
                - dump_truck_mdt_under_7_t_gvw
                - dump_truck_mdt_under_8.5_t_gvw
                - dump_truck_mdt_under_10.5_t_gvw
                - dump_truck_mdt_under_12.5_t_gvw
                - expedited
                - flatbed
                - general
                - heavy_bulk
                - ltl_dry_van
                - mixed
                - moving
                - package
                - refrigerated
                - rigid_truck_hdv_above_31_t_gvw
                - rigid_truck_ldt_under_4.5_t_gvw
                - rigid_truck_mdt_under_5.5_t_gvw
                - rigid_truck_mdt_under_7_t_gvw
                - rigid_truck_mdt_under_8.5_t_gvw
                - rigid_truck_mdt_under_10.5_t_gvw
                - rigid_truck_mdt_under_12.5_t_gvw
                - rigid_truck_mdt_under_16_t_gvw
                - rigid_truck_mdt_under_20_t_gvw
                - rigid_truck_mdt_under_25_t_gvw
                - rigid_truck_mdt_under_31_t_gvw
                - rigid_truck_under_12_gvw
                - rigid_truck_under_20_gvw
                - rigid_truck_under_26_gvw
                - rigid_truck_under_32_gvw
                - rigid_truck_under_7.5_gvw
                - specialized
                - tanker
                - tl_dry_van
                - van_under_3.5_t
              description: >
                North American truck types are `van_under_3.5_t`, `general`,
                `auto_carrier`, `dray`,

                `expedited`, `flatbed`, `heavy_bulk`, `ltl_dry_van`, `mixed`,
                `moving`,

                `package`, `refrigerated`, `specialized`, `tanker`,
                `tl_dry_van`.


                For more detailed mapping of load characteristics, fuel and
                truck types

                refer to [the GLEC
                database](https://squake.notion.site/Road-Freight-GLEC-dfad37dfe8c34d83aef1822357f39fa7).
              examples:
                - rigid_truck_under_7.5_gvw
              default: van_under_3.5_t
            energy_scope:
              $ref: '#/components/schemas/energy_scope'
            load_characteristic:
              type: string
              enum:
                - average
                - heavy
                - light
                - container
              default: average
              examples:
                - average
            fuel_type:
              type: string
              enum:
                - average
                - diesel
                - petrol
                - lng
                - lpg
                - bio-lng
                - cng
              description: Considered by `GLEC`.
              default: average
              examples:
                - diesel
            temperature_controlled_freight:
              type: boolean
              default: false
          required:
            - type
            - methodology
            - origin
            - destination
            - weight_in_tonnes
    Road-Freight:
      type: object
      title: Road Freight
      description: |
        If you have freight and don't know the type, you can use `Logistics`.
        Additional information may be returned in the response.

        The format for `DIN-EN-16258` is:
        ```json
          "data": [
            {
              "energy_factor_ttw_in_MJ": int,
              "energy_factor_wtw_in_MJ": int,
              "ghg_emissions_ttw_in_g": int,
              "ghg_emissions_wtw_in_g": int
            }
          ]
        ```

        The format for `GLEC` is:
        ```json
          "data": [
            {
              "co2e_in_g": int,
              "co2e_emissions_wtw_in_g": int,
              "co2e_per_tonne_km_in_g": int,
              "tonne_km": int,
              "reporting_year": int,
              "transportation_mode": "string"
            }
          ]
        ```
      properties:
        type:
          const: road_freight
          examples:
            - road_freight
        methodology:
          type: string
      discriminator:
        propertyName: methodology
        mapping:
          DIN-EN-16258: '#/components/schemas/Road-Freight-DIN-EN-16258'
          GLEC: '#/components/schemas/Road-Freight-GLEC'
      anyOf:
        - $ref: '#/components/schemas/Road-Freight-DIN-EN-16258'
        - $ref: '#/components/schemas/Road-Freight-GLEC'
      Road-Freight-DIN-EN-16258:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Road Freight DIN-EN-16258
            properties:
              type:
                const: road_freight
                examples:
                  - road_freight
              methodology:
                type: string
                const: DIN-EN-16258
                description: 'Default: `"GLEC"`'
                examples:
                  - DIN-EN-16258
              external_reference:
                $ref: '#/components/schemas/external_reference'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              weight_in_tonnes:
                type: number
              truck_type:
                type: string
                enum:
                  - under_7.5_t
                  - under_12_t
                  - under_24_t
                  - under_40_t
                examples:
                  - under_7.5_t
                default: under_7.5_t
              energy_scope:
                $ref: '#/components/schemas/energy_scope'
                default: wtw
            required:
              - type
              - methodology
              - origin
              - destination
              - weight_in_tonnes
      Road-Freight-GLEC:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Road Freight GLEC
            properties:
              type:
                const: road_freight
                examples:
                  - road_freight
              methodology:
                type: string
                const: GLEC
                description: 'Default: `"GLEC"`'
                examples:
                  - GLEC
              external_reference:
                $ref: '#/components/schemas/external_reference'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              weight_in_tonnes:
                type: number
              truck_type:
                type: string
                enum:
                  - artic_truck_40_gvw_lightweight_trailer
                  - artic_truck_under_34_gvw
                  - artic_truck_under_40_gvw
                  - artic_truck_under_40_gvw_hpdi
                  - artic_truck_under_40_gvw_si_engine
                  - artic_truck_under_44_gvw
                  - artic_truck_under_60_gvw
                  - articulated_truck_hdv_above_49_t_gvw
                  - articulated_truck_hdv_under_18_t_gvw
                  - articulated_truck_hdv_under_27_t_gvw
                  - articulated_truck_hdv_under_35_t_gvw
                  - articulated_truck_hdv_under_40_t_gvw
                  - articulated_truck_hdv_under_43_t_gvw
                  - articulated_truck_hdv_under_46_t_gvw
                  - articulated_truck_hdv_under_49_t_gvw
                  - auto_carrier
                  - dray
                  - dump_truck_hdv_above_31_t_gvw
                  - dump_truck_hdv_under_16_t_gvw
                  - dump_truck_hdv_under_20_t_gvw
                  - dump_truck_hdv_under_25_t_gvw
                  - dump_truck_hdv_under_31_t_gvw
                  - dump_truck_ldt_under_4.5_t_gvw
                  - dump_truck_mdt_under_5.5_t_gvw
                  - dump_truck_mdt_under_7_t_gvw
                  - dump_truck_mdt_under_8.5_t_gvw
                  - dump_truck_mdt_under_10.5_t_gvw
                  - dump_truck_mdt_under_12.5_t_gvw
                  - expedited
                  - flatbed
                  - general
                  - heavy_bulk
                  - ltl_dry_van
                  - mixed
                  - moving
                  - package
                  - refrigerated
                  - rigid_truck_hdv_above_31_t_gvw
                  - rigid_truck_ldt_under_4.5_t_gvw
                  - rigid_truck_mdt_under_5.5_t_gvw
                  - rigid_truck_mdt_under_7_t_gvw
                  - rigid_truck_mdt_under_8.5_t_gvw
                  - rigid_truck_mdt_under_10.5_t_gvw
                  - rigid_truck_mdt_under_12.5_t_gvw
                  - rigid_truck_mdt_under_16_t_gvw
                  - rigid_truck_mdt_under_20_t_gvw
                  - rigid_truck_mdt_under_25_t_gvw
                  - rigid_truck_mdt_under_31_t_gvw
                  - rigid_truck_under_12_gvw
                  - rigid_truck_under_20_gvw
                  - rigid_truck_under_26_gvw
                  - rigid_truck_under_32_gvw
                  - rigid_truck_under_7.5_gvw
                  - specialized
                  - tanker
                  - tl_dry_van
                  - van_under_3.5_t
                description: >
                  North American truck types are `van_under_3.5_t`, `general`,
                  `auto_carrier`, `dray`,

                  `expedited`, `flatbed`, `heavy_bulk`, `ltl_dry_van`, `mixed`,
                  `moving`,

                  `package`, `refrigerated`, `specialized`, `tanker`,
                  `tl_dry_van`.


                  For more detailed mapping of load characteristics, fuel and
                  truck types

                  refer to [the GLEC
                  database](https://squake.notion.site/Road-Freight-GLEC-dfad37dfe8c34d83aef1822357f39fa7).
                examples:
                  - rigid_truck_under_7.5_gvw
                default: van_under_3.5_t
              energy_scope:
                $ref: '#/components/schemas/energy_scope'
              load_characteristic:
                type: string
                enum:
                  - average
                  - heavy
                  - light
                  - container
                default: average
                examples:
                  - average
              fuel_type:
                type: string
                enum:
                  - average
                  - diesel
                  - petrol
                  - lng
                  - lpg
                  - bio-lng
                  - cng
                description: Considered by `GLEC`.
                default: average
                examples:
                  - diesel
              temperature_controlled_freight:
                type: boolean
                default: false
            required:
              - type
              - methodology
              - origin
              - destination
              - weight_in_tonnes
    Sea-Freight-CLEAN-CARGO:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Sea Freight
          properties:
            type:
              const: sea_freight
              examples:
                - sea_freight
            methodology:
              type: string
              const: CLEAN-CARGO
              description: 'Default: `"GLEC"`'
              examples:
                - CLEAN-CARGO
            external_reference:
              $ref: '#/components/schemas/external_reference'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            weight_in_tonnes:
              type: number
            cargo_type:
              type: string
              enum:
                - dry
                - reefer
              default: reefer
            energy_scope:
              $ref: '#/components/schemas/energy_scope'
              default: wtw
            trade_lane:
              type: string
              enum:
                - panama
                - trans_atlantic
                - trans_suez
                - trans_pacific
                - other
          required:
            - type
            - methodology
            - origin
            - destination
            - weight_in_tonnes
    Sea-Freight-DIN-EN-16258:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Sea Freight DIN-EN-16258
          properties:
            type:
              const: sea_freight
              examples:
                - sea_freight
            methodology:
              type: string
              const: DIN-EN-16258
              description: 'Default: `"GLEC"`'
              examples:
                - DIN-EN-16258
            external_reference:
              $ref: '#/components/schemas/external_reference'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            weight_in_tonnes:
              type: number
            vessel_type:
              type: string
              enum:
                - container
                - tanker
              examples:
                - tanker
              default: container
            energy_scope:
              $ref: '#/components/schemas/energy_scope'
              default: wtw
          required:
            - type
            - methodology
            - origin
            - destination
            - weight_in_tonnes
    Sea-Freight-EU-EMSA:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Sea Freight EU-EMSA
          properties:
            type:
              const: sea_freight
              examples:
                - sea_freight
            methodology:
              type: string
              const: EU-EMSA
              description: |
                `EU-EMSA` is the methodology from the "European Maritime
                Safety Agency".

                Default: `"GLEC"`
              examples:
                - EU-EMSA
            external_reference:
              $ref: '#/components/schemas/external_reference'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            weight_in_tonnes:
              type: number
            vessel_type:
              type: string
              enum:
                - bulk_carrier
                - chemical_tanker
                - combination_carrier
                - container_ro_ro_cargo_ship
                - container_ship
                - gas_carrier
                - general_cargo_ship
                - lng_carrier
                - oil_tanker
                - other_ship_types
                - passenger_ship
                - refrigerated_cargo_carrier
                - ro_pax_ship
                - ro_ro_ship
                - vehicle_carrier
              examples:
                - oil_tanker
            vessel_model:
              type: string
              description: >-
                For detailed mapping of vessel models refer to [EU-EMSA
                database](https://squake.notion.site/82f29988eecf41beb246719ecf0bc26f?v=6700188164c9431089b117b9e8f2babb).
              examples:
                - lita
            verifier_name:
              type: string
              description: >-
                Verifiers are environmental service providers, who claim to
                calculate and check actual carbon emissions from vessels.
            verifier_accreditation_number:
              type: string
              description: Mutually exclusive with `verifier_name`.
          required:
            - type
            - methodology
            - origin
            - destination
            - weight_in_tonnes
    Sea-Freight-GLEC:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Sea Freight GLEC
          properties:
            type:
              const: sea_freight
              examples:
                - sea_freight
            methodology:
              type: string
              const: GLEC
              description: 'Default: `"GLEC"`'
              examples:
                - GLEC
            external_reference:
              $ref: '#/components/schemas/external_reference'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            weight_in_tonnes:
              type: number
            container:
              type: boolean
              default: false
            vessel_type:
              type: string
              enum:
                - bulk_carrier_under_9999_dwt
                - bulk_carrier_under_34999_dwt
                - bulk_carrier_under_59999_dwt
                - bulk_carrier_under_99999_dwt
                - bulk_carrier_under_199999_dwt
                - bulk_carrier_above_200000_dwt
                - chemical_tanker_under_4999_dwt
                - chemical_tanker_under_9999_dwt
                - chemical_tanker_under_19999_dwt
                - chemical_tanker_under_39999_dwt
                - chemical_tanker_above_40000_dwt
                - general_cargo_under_4999_dwt
                - general_cargo_under_9999_dwt
                - general_cargo_under_19999_dwt
                - general_cargo_above_20000_dwt
                - liquefied_gas_tanker_under_49999_dwt
                - liquefied_gas_tanker_under_99999_dwt
                - liquefied_gas_tanker_under_199999_dwt
                - liquefied_gas_tanker_above_200000_dwt
                - oil_tanker_under_4999_dwt
                - oil_tanker_under_9999_dwt
                - oil_tanker_under_19999_dwt
                - oil_tanker_under_59999_dwt
                - oil_tanker_under_79999_dwt
                - oil_tanker_under_119999_dwt
                - oil_tanker_under_199999_dwt
                - oil_tanker_above_200000_dwt
                - other_liquids_tankers_under_999_dwt
                - other_liquids_tankers_above_1000_dwt
                - ferry_ropax_under_1999_gt
                - ferry_ropax_under_1999_dwt
                - ferry_ropax_under_4999_gt
                - ferry_ropax_under_9999_gt
                - ferry_ropax_under_19999_gt
                - ferry_ropax_above_20000_gt
                - refrigerated_bulk_under_1999_dwt
                - refrigerated_bulk_under_5999_dwt
                - refrigerated_bulk_under_9999_dwt
                - refrigerated_bulk_above_10000_dwt
                - roro_under_4999_dwt
                - roro_under_9999_dwt
                - roro_under_14999_dwt
                - roro_above_15000_dwt
                - vehicle_under_29999_gt
                - vehicle_under_49999_gt
                - vehicle_above_50000_gt
              description: >-
                For more detailed mapping of vessel and fuel types refer to [the
                GLEC
                database](https://squake.notion.site/Sea-Freight-GLEC-a0d79edb30bc4fbc9f79e7b55a5e3807).
              examples:
                - general_cargo_under_4999_dwt
              default: general_cargo_under_4999_dwt
            energy_scope:
              $ref: '#/components/schemas/energy_scope'
              default: wtw
            fuel_type:
              type: string
              enum:
                - hfo
                - vlsfo
                - mdo
              default: hfo
              examples:
                - hfo
          required:
            - type
            - methodology
            - origin
            - destination
            - weight_in_tonnes
    Sea-Freight:
      type: object
      title: Sea Freight
      description: |
        If you have freight and don't know the type, you can use `Logistics`.
        Additional information may be returned in the response.

        The format for `DIN-EN-16258` is:
        ```json
          "data": [
            {
              "energy_factor_ttw_in_MJ": int,
              "energy_factor_wtw_in_MJ": int,
              "ghg_emissions_ttw_in_g": int,
              "ghg_emissions_wtw_in_g": int
            }
          ]
        ```

        The format for `CLEAN-CARGO` and `GLEC` is:
        ```json
          "data": [
            {
              "co2e_in_g": int,
              "co2e_emissions_wtw_in_g": int,
              "co2e_per_tonne_km_in_g": int,
              "tonne_km": int,
              "reporting_year": int,
              "transportation_mode": "string"
            }
          ]
        ```
      properties:
        type:
          const: sea_freight
          examples:
            - sea_freight
        methodology:
          type: string
      discriminator:
        propertyName: methodology
        mapping:
          CLEAN-CARGO: '#/components/schemas/Sea-Freight-CLEAN-CARGO'
          DIN-EN-16258: '#/components/schemas/Sea-Freight-DIN-EN-16258'
          EU-EMSA: '#/components/schemas/Sea-Freight-EU-EMSA'
          GLEC: '#/components/schemas/Sea-Freight-GLEC'
      anyOf:
        - $ref: '#/components/schemas/Sea-Freight-CLEAN-CARGO'
        - $ref: '#/components/schemas/Sea-Freight-DIN-EN-16258'
        - $ref: '#/components/schemas/Sea-Freight-EU-EMSA'
        - $ref: '#/components/schemas/Sea-Freight-GLEC'
      Sea-Freight-CLEAN-CARGO:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Sea Freight
            properties:
              type:
                const: sea_freight
                examples:
                  - sea_freight
              methodology:
                type: string
                const: CLEAN-CARGO
                description: 'Default: `"GLEC"`'
                examples:
                  - CLEAN-CARGO
              external_reference:
                $ref: '#/components/schemas/external_reference'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              weight_in_tonnes:
                type: number
              cargo_type:
                type: string
                enum:
                  - dry
                  - reefer
                default: reefer
              energy_scope:
                $ref: '#/components/schemas/energy_scope'
                default: wtw
              trade_lane:
                type: string
                enum:
                  - panama
                  - trans_atlantic
                  - trans_suez
                  - trans_pacific
                  - other
            required:
              - type
              - methodology
              - origin
              - destination
              - weight_in_tonnes
      Sea-Freight-DIN-EN-16258:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Sea Freight DIN-EN-16258
            properties:
              type:
                const: sea_freight
                examples:
                  - sea_freight
              methodology:
                type: string
                const: DIN-EN-16258
                description: 'Default: `"GLEC"`'
                examples:
                  - DIN-EN-16258
              external_reference:
                $ref: '#/components/schemas/external_reference'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              weight_in_tonnes:
                type: number
              vessel_type:
                type: string
                enum:
                  - container
                  - tanker
                examples:
                  - tanker
                default: container
              energy_scope:
                $ref: '#/components/schemas/energy_scope'
                default: wtw
            required:
              - type
              - methodology
              - origin
              - destination
              - weight_in_tonnes
      Sea-Freight-EU-EMSA:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Sea Freight EU-EMSA
            properties:
              type:
                const: sea_freight
                examples:
                  - sea_freight
              methodology:
                type: string
                const: EU-EMSA
                description: |
                  `EU-EMSA` is the methodology from the "European Maritime
                  Safety Agency".

                  Default: `"GLEC"`
                examples:
                  - EU-EMSA
              external_reference:
                $ref: '#/components/schemas/external_reference'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              weight_in_tonnes:
                type: number
              vessel_type:
                type: string
                enum:
                  - bulk_carrier
                  - chemical_tanker
                  - combination_carrier
                  - container_ro_ro_cargo_ship
                  - container_ship
                  - gas_carrier
                  - general_cargo_ship
                  - lng_carrier
                  - oil_tanker
                  - other_ship_types
                  - passenger_ship
                  - refrigerated_cargo_carrier
                  - ro_pax_ship
                  - ro_ro_ship
                  - vehicle_carrier
                examples:
                  - oil_tanker
              vessel_model:
                type: string
                description: >-
                  For detailed mapping of vessel models refer to [EU-EMSA
                  database](https://squake.notion.site/82f29988eecf41beb246719ecf0bc26f?v=6700188164c9431089b117b9e8f2babb).
                examples:
                  - lita
              verifier_name:
                type: string
                description: >-
                  Verifiers are environmental service providers, who claim to
                  calculate and check actual carbon emissions from vessels.
              verifier_accreditation_number:
                type: string
                description: Mutually exclusive with `verifier_name`.
            required:
              - type
              - methodology
              - origin
              - destination
              - weight_in_tonnes
      Sea-Freight-GLEC:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Sea Freight GLEC
            properties:
              type:
                const: sea_freight
                examples:
                  - sea_freight
              methodology:
                type: string
                const: GLEC
                description: 'Default: `"GLEC"`'
                examples:
                  - GLEC
              external_reference:
                $ref: '#/components/schemas/external_reference'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              weight_in_tonnes:
                type: number
              container:
                type: boolean
                default: false
              vessel_type:
                type: string
                enum:
                  - bulk_carrier_under_9999_dwt
                  - bulk_carrier_under_34999_dwt
                  - bulk_carrier_under_59999_dwt
                  - bulk_carrier_under_99999_dwt
                  - bulk_carrier_under_199999_dwt
                  - bulk_carrier_above_200000_dwt
                  - chemical_tanker_under_4999_dwt
                  - chemical_tanker_under_9999_dwt
                  - chemical_tanker_under_19999_dwt
                  - chemical_tanker_under_39999_dwt
                  - chemical_tanker_above_40000_dwt
                  - general_cargo_under_4999_dwt
                  - general_cargo_under_9999_dwt
                  - general_cargo_under_19999_dwt
                  - general_cargo_above_20000_dwt
                  - liquefied_gas_tanker_under_49999_dwt
                  - liquefied_gas_tanker_under_99999_dwt
                  - liquefied_gas_tanker_under_199999_dwt
                  - liquefied_gas_tanker_above_200000_dwt
                  - oil_tanker_under_4999_dwt
                  - oil_tanker_under_9999_dwt
                  - oil_tanker_under_19999_dwt
                  - oil_tanker_under_59999_dwt
                  - oil_tanker_under_79999_dwt
                  - oil_tanker_under_119999_dwt
                  - oil_tanker_under_199999_dwt
                  - oil_tanker_above_200000_dwt
                  - other_liquids_tankers_under_999_dwt
                  - other_liquids_tankers_above_1000_dwt
                  - ferry_ropax_under_1999_gt
                  - ferry_ropax_under_1999_dwt
                  - ferry_ropax_under_4999_gt
                  - ferry_ropax_under_9999_gt
                  - ferry_ropax_under_19999_gt
                  - ferry_ropax_above_20000_gt
                  - refrigerated_bulk_under_1999_dwt
                  - refrigerated_bulk_under_5999_dwt
                  - refrigerated_bulk_under_9999_dwt
                  - refrigerated_bulk_above_10000_dwt
                  - roro_under_4999_dwt
                  - roro_under_9999_dwt
                  - roro_under_14999_dwt
                  - roro_above_15000_dwt
                  - vehicle_under_29999_gt
                  - vehicle_under_49999_gt
                  - vehicle_above_50000_gt
                description: >-
                  For more detailed mapping of vessel and fuel types refer to
                  [the GLEC
                  database](https://squake.notion.site/Sea-Freight-GLEC-a0d79edb30bc4fbc9f79e7b55a5e3807).
                examples:
                  - general_cargo_under_4999_dwt
                default: general_cargo_under_4999_dwt
              energy_scope:
                $ref: '#/components/schemas/energy_scope'
                default: wtw
              fuel_type:
                type: string
                enum:
                  - hfo
                  - vlsfo
                  - mdo
                default: hfo
                examples:
                  - hfo
            required:
              - type
              - methodology
              - origin
              - destination
              - weight_in_tonnes
    Train-ADEME:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Train ADEME
          description: >-
            The full list of operators supported by SQUAKE could be found
            [here](https://squake.notion.site/21a17389cc5c4e38946f97ecaf6435bb?v=6be41159e77247599fe9b3672782fd5e).
            If your operator is not supported, feel free to contact us.
          properties:
            type:
              const: train
              examples:
                - train
            methodology:
              type: string
              const: ADEME
              description: 'Default: `"SQUAKE"`'
              examples:
                - ADEME
            external_reference:
              $ref: '#/components/schemas/external_reference'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            train_type:
              type: string
              enum:
                - average
                - mainline
                - local_express
              examples:
                - mainline
              default: local_express
            fuel_type:
              type: string
              enum:
                - diesel
                - electricity
              examples:
                - diesel
              default: diesel
            number_of_travelers:
              type: integer
              minimum: 1
              default: 1
              examples:
                - 2
          required:
            - type
            - methodology
            - origin
            - destination
            - number_of_travelers
    Train-BASE-EMPREINTE:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Train BASE-EMPREINTE
          properties:
            type:
              const: train
              examples:
                - train
            methodology:
              type: string
              const: BASE-EMPREINTE
              description: 'Default: `"SQUAKE"`'
              examples:
                - BASE-EMPREINTE
            external_reference:
              $ref: '#/components/schemas/external_reference'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            train_type:
              type: string
              enum:
                - ter
                - tgv
                - intercity
                - mainline
                - metro
                - tram
                - rer
                - trolleybus
              examples:
                - metro
              default: mainline
            number_of_travelers:
              type: integer
              minimum: 1
              default: 1
              examples:
                - 2
            state:
              type: string
              enum:
                - Ile-de-France
                - Corsica
              examples:
                - Ile-de-France
            city_type:
              type: string
              enum:
                - population_under_250000
                - population_above_250000
              examples:
                - population_above_250000
              default: population_under_250000
            country:
              type: string
              enum:
                - AT
                - BE
                - CH
                - DE
                - DK
                - ES
                - FI
                - FR
                - GB
                - GR
                - IE
                - IT
                - LU
                - NL
                - 'NO'
                - PT
                - SE
              examples:
                - DE
              default: FR
            year:
              type: string
              examples:
                - '2022'
          required:
            - type
            - methodology
            - origin
            - destination
            - number_of_travelers
    Train-CO2-EMISSIEFACTOREN-NL:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Train CO2-EMISSIEFACTOREN-NL
          properties:
            type:
              const: train
              examples:
                - train
            methodology:
              type: string
              const: CO2-EMISSIEFACTOREN-NL
              description: 'Default: `"SQUAKE"`'
              examples:
                - CO2-EMISSIEFACTOREN-NL
            external_reference:
              $ref: '#/components/schemas/external_reference'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            train_type:
              type: string
              enum:
                - average
                - international
              examples:
                - average
              default: average
            fuel_type:
              type: string
              enum:
                - diesel
                - electricity
                - average
              examples:
                - diesel
              default: average
            number_of_travelers:
              type: integer
              minimum: 1
              default: 1
              examples:
                - 2
            energy_scope:
              $ref: '#/components/schemas/energy_scope'
          required:
            - type
            - methodology
            - origin
            - destination
            - number_of_travelers
    Train-DEFRA:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Train ADEME
          properties:
            type:
              const: train
              examples:
                - train
            methodology:
              type: string
              const: DEFRA
              description: 'Default: `"SQUAKE"`'
              examples:
                - DEFRA
            external_reference:
              $ref: '#/components/schemas/external_reference'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            train_type:
              type: string
              enum:
                - international
                - light
                - national
                - tram
                - underground
              examples:
                - tram
              default: national
            number_of_travelers:
              type: integer
              minimum: 1
              default: 1
              examples:
                - 2
            energy_scope:
              $ref: '#/components/schemas/energy_scope'
          required:
            - type
            - methodology
            - origin
            - destination
            - number_of_travelers
    Train-SQUAKE:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Train SQUAKE
          properties:
            type:
              const: train
              examples:
                - train
            methodology:
              type: string
              const: SQUAKE
              description: 'Default: `"SQUAKE"`'
              examples:
                - SQUAKE
            external_reference:
              $ref: '#/components/schemas/external_reference'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            train_type:
              type: string
              enum:
                - high_speed
                - regional
                - intercity
              description: >-
                `SQUAKE`'s methodology defaults to `high_speed` when
                `operator_name` is provided, otherwise the default value is
                `regional`.
              examples:
                - regional
              default: regional
            fuel_type:
              type: string
              enum:
                - diesel
                - electricity
                - hydrogen
                - hybrid
              description: If `operator_name` is passed, then `fuel_type` is ignored.
              examples:
                - diesel
              default: diesel
            number_of_travelers:
              type: integer
              minimum: 1
              default: 1
              examples:
                - 2
            operator_name:
              type: string
              description: >
                `SQUAKE`'s methodology allows passing the operator's name to get
                a more accurate result.

                `train_type` defaults to `high_speed` if `operator_name` is
                passed.


                Here is [the
                database](https://squake.notion.site/21a17389cc5c4e38946f97ecaf6435bb?v=6be41159e77247599fe9b3672782fd5e)
                with the supported operators.
              examples:
                - sncf
            seat_type:
              type: string
              enum:
                - first_class
                - second_class
              default: first_class
              examples:
                - second_class
          required:
            - type
            - methodology
            - origin
            - destination
            - number_of_travelers
    Train:
      type: object
      title: Train
      properties:
        type:
          type: string
          const: train
          examples:
            - train
        methodology:
          type: string
      discriminator:
        propertyName: methodology
        mapping:
          ADEME: '#/components/schemas/Train-ADEME'
          BASE-EMPREINTE: '#/components/schemas/Train-BASE-EMPREINTE'
          CO2-EMISSIEFACTOREN-NL: '#/components/schemas/Train-CO2-EMISSIEFACTOREN-NL'
          DEFRA: '#/components/schemas/Train-DEFRA'
          SQUAKE: '#/components/schemas/Train-SQUAKE'
      anyOf:
        - $ref: '#/components/schemas/Train-ADEME'
        - $ref: '#/components/schemas/Train-BASE-EMPREINTE'
        - $ref: '#/components/schemas/Train-CO2-EMISSIEFACTOREN-NL'
        - $ref: '#/components/schemas/Train-DEFRA'
        - $ref: '#/components/schemas/Train-SQUAKE'
      Train-ADEME:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Train ADEME
            description: >-
              The full list of operators supported by SQUAKE could be found
              [here](https://squake.notion.site/21a17389cc5c4e38946f97ecaf6435bb?v=6be41159e77247599fe9b3672782fd5e).
              If your operator is not supported, feel free to contact us.
            properties:
              type:
                const: train
                examples:
                  - train
              methodology:
                type: string
                const: ADEME
                description: 'Default: `"SQUAKE"`'
                examples:
                  - ADEME
              external_reference:
                $ref: '#/components/schemas/external_reference'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              train_type:
                type: string
                enum:
                  - average
                  - mainline
                  - local_express
                examples:
                  - mainline
                default: local_express
              fuel_type:
                type: string
                enum:
                  - diesel
                  - electricity
                examples:
                  - diesel
                default: diesel
              number_of_travelers:
                type: integer
                minimum: 1
                default: 1
                examples:
                  - 2
            required:
              - type
              - methodology
              - origin
              - destination
              - number_of_travelers
      Train-BASE-EMPREINTE:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Train BASE-EMPREINTE
            properties:
              type:
                const: train
                examples:
                  - train
              methodology:
                type: string
                const: BASE-EMPREINTE
                description: 'Default: `"SQUAKE"`'
                examples:
                  - BASE-EMPREINTE
              external_reference:
                $ref: '#/components/schemas/external_reference'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              train_type:
                type: string
                enum:
                  - ter
                  - tgv
                  - intercity
                  - mainline
                  - metro
                  - tram
                  - rer
                  - trolleybus
                examples:
                  - metro
                default: mainline
              number_of_travelers:
                type: integer
                minimum: 1
                default: 1
                examples:
                  - 2
              state:
                type: string
                enum:
                  - Ile-de-France
                  - Corsica
                examples:
                  - Ile-de-France
              city_type:
                type: string
                enum:
                  - population_under_250000
                  - population_above_250000
                examples:
                  - population_above_250000
                default: population_under_250000
              country:
                type: string
                enum:
                  - AT
                  - BE
                  - CH
                  - DE
                  - DK
                  - ES
                  - FI
                  - FR
                  - GB
                  - GR
                  - IE
                  - IT
                  - LU
                  - NL
                  - 'NO'
                  - PT
                  - SE
                examples:
                  - DE
                default: FR
              year:
                type: string
                examples:
                  - '2022'
            required:
              - type
              - methodology
              - origin
              - destination
              - number_of_travelers
      Train-CO2-EMISSIEFACTOREN-NL:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Train CO2-EMISSIEFACTOREN-NL
            properties:
              type:
                const: train
                examples:
                  - train
              methodology:
                type: string
                const: CO2-EMISSIEFACTOREN-NL
                description: 'Default: `"SQUAKE"`'
                examples:
                  - CO2-EMISSIEFACTOREN-NL
              external_reference:
                $ref: '#/components/schemas/external_reference'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              train_type:
                type: string
                enum:
                  - average
                  - international
                examples:
                  - average
                default: average
              fuel_type:
                type: string
                enum:
                  - diesel
                  - electricity
                  - average
                examples:
                  - diesel
                default: average
              number_of_travelers:
                type: integer
                minimum: 1
                default: 1
                examples:
                  - 2
              energy_scope:
                $ref: '#/components/schemas/energy_scope'
            required:
              - type
              - methodology
              - origin
              - destination
              - number_of_travelers
      Train-DEFRA:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Train ADEME
            properties:
              type:
                const: train
                examples:
                  - train
              methodology:
                type: string
                const: DEFRA
                description: 'Default: `"SQUAKE"`'
                examples:
                  - DEFRA
              external_reference:
                $ref: '#/components/schemas/external_reference'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              train_type:
                type: string
                enum:
                  - international
                  - light
                  - national
                  - tram
                  - underground
                examples:
                  - tram
                default: national
              number_of_travelers:
                type: integer
                minimum: 1
                default: 1
                examples:
                  - 2
              energy_scope:
                $ref: '#/components/schemas/energy_scope'
            required:
              - type
              - methodology
              - origin
              - destination
              - number_of_travelers
      Train-SQUAKE:
        allOf:
          - $ref: '#/components/schemas/Calculation-Base-Item'
          - type: object
            title: Train SQUAKE
            properties:
              type:
                const: train
                examples:
                  - train
              methodology:
                type: string
                const: SQUAKE
                description: 'Default: `"SQUAKE"`'
                examples:
                  - SQUAKE
              external_reference:
                $ref: '#/components/schemas/external_reference'
              distance_in_km:
                $ref: '#/components/schemas/distance_in_km'
              origin:
                $ref: '#/components/schemas/origin_destination'
              destination:
                $ref: '#/components/schemas/origin_destination'
              train_type:
                type: string
                enum:
                  - high_speed
                  - regional
                  - intercity
                description: >-
                  `SQUAKE`'s methodology defaults to `high_speed` when
                  `operator_name` is provided, otherwise the default value is
                  `regional`.
                examples:
                  - regional
                default: regional
              fuel_type:
                type: string
                enum:
                  - diesel
                  - electricity
                  - hydrogen
                  - hybrid
                description: If `operator_name` is passed, then `fuel_type` is ignored.
                examples:
                  - diesel
                default: diesel
              number_of_travelers:
                type: integer
                minimum: 1
                default: 1
                examples:
                  - 2
              operator_name:
                type: string
                description: >
                  `SQUAKE`'s methodology allows passing the operator's name to
                  get a more accurate result.

                  `train_type` defaults to `high_speed` if `operator_name` is
                  passed.


                  Here is [the
                  database](https://squake.notion.site/21a17389cc5c4e38946f97ecaf6435bb?v=6be41159e77247599fe9b3672782fd5e)
                  with the supported operators.
                examples:
                  - sncf
              seat_type:
                type: string
                enum:
                  - first_class
                  - second_class
                default: first_class
                examples:
                  - second_class
            required:
              - type
              - methodology
              - origin
              - destination
              - number_of_travelers
    Van:
      allOf:
        - $ref: '#/components/schemas/Calculation-Base-Item'
        - type: object
          title: Van
          description: >-
            If you have freight and don't know the type, you can use
            `Logistics`. If you have more details available, use the `EU-EEA`
            methodology for a more precise result.
          properties:
            type:
              const: van
              examples:
                - van
            methodology:
              const: EU-EEA
              description: >-
                `EU-EEA` is the methodology from the "European Environmental
                Agency".
              examples:
                - EU-EEA
              default: EU-EEA
            external_reference:
              $ref: '#/components/schemas/external_reference'
            weight_in_tonnes:
              type: number
              format: float
              exclusiveMinimum: 0
              examples:
                - 2.1
            origin:
              $ref: '#/components/schemas/origin_destination'
            destination:
              $ref: '#/components/schemas/origin_destination'
            distance_in_km:
              $ref: '#/components/schemas/distance_in_km'
            manufacturer:
              type: string
              examples:
                - ford
            model:
              type: string
              examples:
                - fiesta
            fuel_type:
              type: string
              enum:
                - diesel
                - electric
                - petrol
                - lpg
              examples:
                - diesel
            engine_size_in_cubic_cm:
              type: number
              examples:
                - 1499
          required:
            - type
            - methodology
            - weight_in_tonnes
            - origin
            - destination
    SQUAKE-Request-Id:
      id: 2620f69f89024
      key: SQUAKE-Request-Id
      name: SQUAKE-Request-Id
      style: simple
      description: >-
        Unique identifier linked to this API request. If you need to contact us
        regarding a specific request, providing the request identifier helps the
        resolution process.
      explicitProperties:
        - name
        - in
        - schema
        - description
      examples: []
      schema:
        type: string
        pattern: req_[a-zA-Z0-9-]+
        examples:
          - req_70394c00-728e-4d70-90bc-2b589c9ebdf8
    currency:
      type: string
      enum:
        - AED
        - AMD
        - ARS
        - AUD
        - AZN
        - BAM
        - BGN
        - BHD
        - BRL
        - CAD
        - CHF
        - CLP
        - CNY
        - COP
        - CRC
        - CZK
        - DKK
        - DZD
        - EGP
        - ETB
        - EUR
        - GBP
        - GEL
        - HKD
        - HUF
        - IDR
        - INR
        - ISK
        - JMD
        - JOD
        - JPY
        - KES
        - KRW
        - KWD
        - KZT
        - LKR
        - LYD
        - MAD
        - MUR
        - MXN
        - MYR
        - NOK
        - NZD
        - OMR
        - PHP
        - PKR
        - PLN
        - QAR
        - RSD
        - RUB
        - SAR
        - SEK
        - SGD
        - SYP
        - THB
        - TND
        - TRY
        - TTD
        - TWD
        - UAH
        - USD
        - VND
        - XAF
        - XOF
        - ZAR
      title: Currency
      description: 3-letter ISO 4217 alpha code of the currency.
      pattern: ^[A-Z]{3}$
      minLength: 3
      maxLength: 3
      default: EUR
      examples:
        - EUR
    payment_method:
      description: >
        Controls the way you want to process the purchase.


        If `stripe` is used then you''ll receive a `payment_link` in response.


        If `batch_settlement` is used, then you''ll have to use `/purchases`
        endpoint to finalise the purchase.
      type: string
      enum:
        - stripe
        - batch_settlement
      default: batch_settlement
    AuditCalculation:
      type: object
      description: >-
        More details information like the distance and the emission factors used
        during the calculation. To have this feature enabled, please contact
        SQUAKE support
      properties:
        distance:
          type: object
          description: The distance used for the calculation.
          properties:
            corrected:
              type: object
              properties:
                distance:
                  type: number
                distance_unit:
                  $ref: '#/components/schemas/distance_unit'
            original:
              type: object
              properties:
                distance:
                  type: number
                distance_unit:
                  $ref: '#/components/schemas/distance_unit'
        emission_factors:
          type: object
          description: >-
            The emission factors used during the calculation. This object can
            contain various factors, which will differ from methodology to
            methodology.
    AuditMethodology:
      type: object
      description: Information about the methodology used for the calculation.
      properties:
        name:
          type: string
          description: Name of the methodology used for the calculation.
        version:
          type: string
          description: Version of the methodology used for the calculation.
        source:
          type: string
          description: >-
            URL linking to the official documentation or source of the
            methodology used in the calculation.
    Audit:
      type: object
      description: >-
        When Audit mode is enabled for a client, SQUAKE will generate audit logs
        if it's requested within the calculations request body.
      examples:
        - id: 0194d6b4-8711-7873-899d-c8133cd742f8
          calculated_at: '2025-02-18T16:39:10Z'
          request:
            type: flight
            methodology: ICAO
            origin: SAF
            destination: ATL
          response:
            carbon_quantity: 302.75
            carbon_unit: kilogram
          calculation:
            distance:
              corrected:
                distance: 3438
                distance_unit: kilometer
              original:
                distance: 3437.83
                distance_unit: kilometer
            emission_factors:
              co2_per_passenger: 0.5
              flight_type: long_haul
          methodlogy:
            name: ICAO
            version: '1.0'
            source: >-
              https://applications.icao.int/icec/Methodology%20ICAO%20Carbon%20Emissions%20Calculator_v13_Final.pdf
      properties:
        id:
          type: string
          description: >-
            A unique identifier for the audit, represented as a universally
            unique identifier (UUID)
          format: uuid
        calculated_at:
          description: The date of the calculation requested.
          format: date-time
          type: string
          example: '2025-02-18T16:39:10Z'
        request:
          type: object
          description: >-
            The item from the request body used for the calculation. The
            stucture of this property may vary based on the parameters of the
            calculation request.
        response:
          type: object
          description: The calculation results provided in the response by SQUAKE.
        calculation:
          $ref: '#/components/schemas/AuditCalculation'
        methodology:
          $ref: '#/components/schemas/AuditMethodology'
        audit_for:
          $ref: '#/components/schemas/AuditFor'
      AuditCalculation:
        type: object
        description: >-
          More details information like the distance and the emission factors
          used during the calculation. To have this feature enabled, please
          contact SQUAKE support
        properties:
          distance:
            type: object
            description: The distance used for the calculation.
            properties:
              corrected:
                type: object
                properties:
                  distance:
                    type: number
                  distance_unit:
                    $ref: '#/components/schemas/distance_unit'
              original:
                type: object
                properties:
                  distance:
                    type: number
                  distance_unit:
                    $ref: '#/components/schemas/distance_unit'
          emission_factors:
            type: object
            description: >-
              The emission factors used during the calculation. This object can
              contain various factors, which will differ from methodology to
              methodology.
      AuditMethodology:
        type: object
        description: Information about the methodology used for the calculation.
        properties:
          name:
            type: string
            description: Name of the methodology used for the calculation.
          version:
            type: string
            description: Version of the methodology used for the calculation.
          source:
            type: string
            description: >-
              URL linking to the official documentation or source of the
              methodology used in the calculation.
