components:
    schemas:
        ApiKey:
            properties:
                creation_date:
                    description: The date on which the API Key was generated.
                    example: '2022-08-02T09:21:24+00:00'
                    format: date-time
                    title: Creation date
                    type: string
                description:
                    example: My API key
                    maxLength: 128
                    title: A description of the key
                    type: string
                expiry_date:
                    anyOf:
                    -   format: date-time
                        type: string
                    -   type: 'null'
                    description: The date on which the API Key expires.
                    example: '2022-08-02T09:21:24+00:00'
                    title: Expiry date
                key:
                    example: tqk_6AZTuEkGDAuOoJX1mc09PShS7cRC4P2chZr0
                    format: password
                    title: Secret API key
                    type: string
                    writeOnly: true
                key_id:
                    example: 341bcb8e-2faf-4ce6-99f7-9f9e52b38d75
                    title: Unique key ID
                    type: string
            required:
            - key
            - description
            - key_id
            title: ApiKey
            type: object
        ApiKeyRequest:
            properties:
                description:
                    example: My API key
                    maxLength: 255
                    title: A description of the key
                    type: string
                duration:
                    example: 15
                    minimum: 0.0
                    title: How many days the key will remain valid. A value of 0 means
                        indefinitely.
                    type: integer
                owner:
                    example: toqua
                    maxLength: 255
                    title: Owner of the API key
                    type: string
            required:
            - description
            - duration
            - owner
            title: ApiKeyRequest
            type: object
        DataHealthGroup:
            description: Represents a grouping of related data health items such as
                visualizations or issues.
            properties:
                id:
                    title: Id
                    type: string
                items:
                    items:
                        discriminator:
                            mapping:
                                group: '#/components/schemas/DataHealthGroup'
                                issue: '#/components/schemas/DataHealthIssue'
                                visualization: '#/components/schemas/DataHealthVisualization'
                            propertyName: type
                        oneOf:
                        -   $ref: '#/components/schemas/DataHealthIssue'
                        -   $ref: '#/components/schemas/DataHealthGroup'
                        -   $ref: '#/components/schemas/DataHealthVisualization'
                    title: Items
                    type: array
                title:
                    description: The title of this group.
                    example:
                    - Availability
                    - Raw Data
                    title: Group title
                    type: string
                type:
                    const: group
                    default: group
                    enum:
                    - group
                    title: Type
                    type: string
            required:
            - id
            - title
            title: DataHealthGroup
            type: object
        DataHealthIssue:
            description: Reprents an issue that was detected in the data.
            properties:
                description:
                    description: The description of the issue.
                    example:
                    - ME_RPM is missing since 2024-01-01.
                    title: Description
                    type: string
                id:
                    title: Id
                    type: string
                level:
                    description: The impact level of the issue.
                    enum:
                    - warning
                    - error
                    example:
                    - warning
                    title: Issue level
                    type: string
                type:
                    const: issue
                    default: issue
                    enum:
                    - issue
                    title: Type
                    type: string
            required:
            - id
            - level
            - description
            title: DataHealthIssue
            type: object
        DataHealthSummary:
            description: Represents a summary of a ship's data health in the form
                of a hierarchy consisting of data health groups, visualizations and
                issues.
            properties:
                created_at:
                    format: date-time
                    title: Created At
                    type: string
                id:
                    default: root
                    title: Id
                    type: string
                items:
                    items:
                        discriminator:
                            mapping:
                                group: '#/components/schemas/DataHealthGroup'
                                issue: '#/components/schemas/DataHealthIssue'
                                visualization: '#/components/schemas/DataHealthVisualization'
                            propertyName: type
                        oneOf:
                        -   $ref: '#/components/schemas/DataHealthIssue'
                        -   $ref: '#/components/schemas/DataHealthGroup'
                        -   $ref: '#/components/schemas/DataHealthVisualization'
                    title: Items
                    type: array
                type:
                    const: root
                    default: root
                    enum:
                    - root
                    title: Type
                    type: string
            required:
            - created_at
            title: DataHealthSummary
            type: object
        DataHealthVisualization:
            description: Represents a visualization of the data in the form of an
                image.
            properties:
                description:
                    description: The description of the visualization.
                    example:
                    - Show the availability of the sensor data over time. Last updated
                        2024-01-01.
                    title: Description
                    type: string
                id:
                    title: Id
                    type: string
                title:
                    description: The title of the visualization.
                    example:
                    - Availability
                    - Trends
                    title: Title
                    type: string
                type:
                    const: visualization
                    default: visualization
                    enum:
                    - visualization
                    title: Type
                    type: string
                url:
                    description: The URL linking to the image.
                    example:
                    - https://toqua.io/data-health-visualization/pairplot
                    format: uri
                    minLength: 1
                    title: URL
                    type: string
            required:
            - id
            - title
            - description
            - url
            title: DataHealthVisualization
            type: object
        DataPeriod:
            properties:
                data_statistics:
                    default: []
                    description: Descriptive statistics of the data seen during this
                        period.
                    items:
                        $ref: '#/components/schemas/DataStatistics'
                    title: Data Statistics
                    type: array
                end_date:
                    description: The date on which this period end.
                    example: '2022-08-02T09:21:24+00:00'
                    format: date-time
                    title: End date
                    type: string
                metrics:
                    description: The accuracy metrics of the model evaluated on this
                        period.
                    items:
                        $ref: '#/components/schemas/RelationMetrics'
                    title: Metrics
                    type: array
                samples:
                    description: Amount of samples contained in this period.
                    minimum: 0.0
                    title: Samples
                    type: integer
                start_date:
                    description: The date on which this period starts.
                    example: '2022-08-02T09:21:24+00:00'
                    format: date-time
                    title: Start date
                    type: string
                type:
                    description: Type of the data period. `benchmark` designates a
                        period on which the model was intially trained. `dynamic`
                        designates a period on which the model was re-trained later.
                        `evaluation` designates a period on which the model has been
                        evaluated, but not (yet) trained.
                    enum:
                    - benchmark
                    - dynamic
                    - evaluation
                    example: benchmark
                    title: Type
                    type: string
            required:
            - type
            - samples
            - start_date
            - end_date
            - metrics
            title: DataPeriod
            type: object
        DataStatistics:
            properties:
                max:
                    description: The maximum value of the parameter.
                    example: 20.1
                    title: Maximum
                    type: number
                mean:
                    description: The mean value of the parameter.
                    example: 14.5
                    title: Mean
                    type: number
                median:
                    description: The median value of the parameter.
                    example: 14.3
                    title: Median
                    type: number
                min:
                    description: The minimum value of the parameter.
                    example: 10.1
                    title: Minimum
                    type: number
                parameter:
                    description: The parameter for which the statistics are calculated.
                    example: sog
                    title: Parameter
                    type: string
                percentiles:
                    additionalProperties:
                        type: number
                    description: The percentiles of the parameter.
                    example:
                        '0.05': 10.1
                        '0.25': 12.3
                        '0.5': 14.3
                        '0.75': 16.3
                        '0.95': 20.1
                    title: Percentiles
                    type: object
                std:
                    description: The standard deviation of the parameter.
                    example: 2.3
                    title: Standard Deviation
                    type: number
            required:
            - parameter
            - mean
            - median
            - std
            - min
            - max
            - percentiles
            title: DataStatistics
            type: object
        EventData:
            additionalProperties: false
            properties:
                datetime_end:
                    anyOf:
                    -   items:
                            anyOf:
                            -   format: date-time
                                type: string
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: List of datetimes on which the events end. Datetime
                        must be in ISO8601 format, and must specify a timezone.
                    example:
                    - '2022-08-02T09:21:24+00:00'
                    - '2022-08-02T09:26:24+00:00'
                    title: End datetime
                datetime_start:
                    anyOf:
                    -   items:
                            anyOf:
                            -   format: date-time
                                type: string
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: List of datetimes on which the events start. Datetime
                        must be in ISO8601 format, and must specify a timezone.
                    example:
                    - '2022-08-02T09:21:24+00:00'
                    - '2022-08-02T09:26:24+00:00'
                    title: Start datetime
                description:
                    anyOf:
                    -   items:
                            anyOf:
                            -   maxLength: 2048
                                type: string
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: List of event descriptions
                    example:
                    - At Port of Fujairah
                    - Only vertical sides
                    title: Event description
                expected_performance_change:
                    anyOf:
                    -   items:
                            anyOf:
                            -   maximum: 100.0
                                minimum: -100.0
                                type: number
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: List of expected increases or decreases in performance
                        after an event, in percent (%) between -100 and 100. A value
                        of -100 means 100% extra power is required to achieve the
                        same speed.
                    example:
                    - -20
                    - 5
                    title: Expected performance change
                paint_type:
                    anyOf:
                    -   items:
                            anyOf:
                            -   maxLength: 255
                                type: string
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: The type of paint that was applied
                    example:
                    - Hempaguard X7
                    - null
                    title: Paint type
                price:
                    anyOf:
                    -   items:
                            anyOf:
                            -   minimum: 0.0
                                type: number
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: Price of the cleaning in US$
                    example:
                    - 1000
                    - 2000
                    title: Price
                service_provider:
                    anyOf:
                    -   items:
                            anyOf:
                            -   maxLength: 255
                                type: string
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: Name of the company who did the cleaning
                    example:
                    - Company A
                    - Company B
                    title: Service provider
                type:
                    description: List of event types
                    example:
                    - dry_dock
                    - hull_cleaning
                    items:
                        enum:
                        - dry_dock
                        - hull_cleaning
                        - propeller_cleaning
                        - esd
                        - other
                        type: string
                    maxItems: 3000
                    title: Event type
                    type: array
                type_of_fouling:
                    anyOf:
                    -   items:
                            anyOf:
                            -   enum:
                                - macro-fouling
                                - micro-fouling
                                type: string
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: Qualitative measure of the type of fouling that was
                        present before the cleaning
                    example:
                    - null
                    - macro-fouling
                    title: Type of fouling
            required:
            - type
            title: EventData
            type: object
        GetNoonReportDataReponse:
            properties:
                data:
                    allOf:
                    -   $ref: '#/components/schemas/NoonReportData'
                    description: Raw data from the vessel's noon reports. Each given
                        array must have the same length.
                    title: Noon Report Data
            required:
            - data
            title: GetNoonReportDataReponse
            type: object
        GetSeaTrialDataResponse:
            properties:
                data:
                    allOf:
                    -   $ref: '#/components/schemas/SeaTrialData'
                    description: Raw data from the vessel's sea trial. Each given
                        array must have the same length.
                    title: Sea Trial Data
            required:
            - data
            title: GetSeaTrialDataResponse
            type: object
        GetSensorDataResponse:
            properties:
                data:
                    allOf:
                    -   $ref: '#/components/schemas/SensorData'
                    description: Raw data from the vessel's sensors. Each given array
                        must have the same length.
                    title: Sensor Data
            required:
            - data
            title: GetSensorDataResponse
            type: object
        HTTPValidationError:
            properties:
                detail:
                    items:
                        $ref: '#/components/schemas/ValidationError'
                    title: Detail
                    type: array
            title: HTTPValidationError
            type: object
        Idlings:
            properties:
                calibration:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: boolean
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: Whether the event was used for calibration.
                    example:
                    - true
                    - false
                    title: Calibration
                datetime_end:
                    anyOf:
                    -   items:
                            anyOf:
                            -   format: date-time
                                type: string
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: List of datetimes on which the events end. Datetime
                        must be in ISO8601 format, and must specify a timezone.
                    example:
                    - '2022-08-02T09:21:24+00:00'
                    - '2022-08-02T09:26:24+00:00'
                    title: End datetime
                datetime_start:
                    anyOf:
                    -   items:
                            anyOf:
                            -   format: date-time
                                type: string
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: List of datetimes on which the events start. Datetime
                        must be in ISO8601 format, and must specify a timezone.
                    example:
                    -   - '2022-08-02T09:21:24+00:00'
                        - '2022-08-02T09:26:24+00:00'
                    title: Start datetime
                description:
                    anyOf:
                    -   items:
                            anyOf:
                            -   maxLength: 2048
                                type: string
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: List of event descriptions
                    example:
                    -   - At Port of Fujairah
                        - Only vertical sides
                    title: Event description
                excess_fuel_percentage_after:
                    anyOf:
                    -   items:
                            anyOf:
                            -   maximum: 100.0
                                minimum: -100.0
                                type: number
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: The percentage of excess fuel after the idling.
                    example:
                    - 0.95
                    - 0.9
                    title: Excess fuel percentage after
                excess_fuel_percentage_before:
                    anyOf:
                    -   items:
                            anyOf:
                            -   maximum: 100.0
                                minimum: -100.0
                                type: number
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: The percentage of excess fuel before the idling.
                    example:
                    - 0.95
                    - 0.9
                    title: Excess fuel percentage before
                lat:
                    anyOf:
                    -   items:
                            anyOf:
                            -   maximum: 90.0
                                minimum: -90.0
                                type: number
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: The latitude of the event.
                    example:
                    - 25.0
                    - 51.0
                    title: Latitude
                lng:
                    anyOf:
                    -   items:
                            anyOf:
                            -   maximum: 180.0
                                minimum: -180.0
                                type: number
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: The longitude of the event.
                    example:
                    - 55.0
                    - 4.0
                    title: Longitude
                location:
                    anyOf:
                    -   items:
                            anyOf:
                            -   maxLength: 255
                                type: string
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: The location of the event.
                    example:
                    - Port of Fujairah
                    - Port of Rotterdam
                    title: Location
                normalized_fuel_consumption_after:
                    anyOf:
                    -   items:
                            anyOf:
                            -   minimum: 0.0
                                type: number
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: The fuel consumption normalized to standard conditions
                        after the idling.
                    example:
                    - 0.85
                    - 0.8
                    title: Normalized fuel consumption after
                normalized_fuel_consumption_before:
                    anyOf:
                    -   items:
                            anyOf:
                            -   minimum: 0.0
                                type: number
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: The fuel consumption normalized to standard conditions
                        before the idling.
                    example:
                    - 0.85
                    - 0.8
                    title: Normalized fuel consumption before
                water_temperature:
                    anyOf:
                    -   items:
                            anyOf:
                            -   maximum: 50.0
                                minimum: -10.0
                                type: number
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: Water temperatures during the idlings.
                    example:
                    - 20
                    - 25
                    title: Water temperature
            title: Idlings
            type: object
        InputData:
            properties:
                current_direction:
                    description: "List of directions from which the currents are coming,\
                        \ in degrees true (\xB0T): north is at 0\xB0 and increases\
                        \ clockwise."
                    example:
                    - 222.3
                    - 50.6
                    items:
                        maximum: 360.0
                        minimum: 0.0
                        type: number
                    maxItems: 25000
                    maximum: 360.0
                    minimum: 0.0
                    title: Current Direction
                    type: array
                current_speed:
                    description: List of current speed values in meter/second (m/s).
                    example:
                    - 1.3
                    - 2.0
                    items:
                        minimum: 0.0
                        type: number
                    maxItems: 25000
                    title: Current Speed
                    type: array
                draft_avg:
                    description: List of average draft values in meter (m).
                    example:
                    - 21.1
                    - 21.0
                    items:
                        minimum: 0.0
                        type: number
                    maxItems: 25000
                    title: Average Draft
                    type: array
                fuel_specific_energy:
                    description: List of Fuel Specific Energy values in megajoule/kilogram
                        (MJ/kg). Defaults to 40.5.
                    example:
                    - 42.7
                    - 40.0
                    items:
                        minimum: 0.0
                        type: number
                    maxItems: 25000
                    title: Fuel Specific Energy
                    type: array
                me_fo_consumption:
                    description: List of main engine fuel oil consumption values in
                        metric tons/day (mt/day).
                    example: 'null'
                    items:
                        minimum: 0.0
                        type: number
                    maxItems: 25000
                    title: Main Engine Fuel Oil Consumption
                    type: array
                me_power:
                    description: List of main engine shaft power values in kilowatt
                        (kW).
                    example: 'null'
                    items:
                        minimum: 0.0
                        type: number
                    maxItems: 25000
                    title: Main Engine Shaft Power
                    type: array
                me_rpm:
                    description: List of main engine shaft RPM values in Rotations
                        Per Minute (RPM).
                    example: 'null'
                    items:
                        minimum: 0.0
                        type: number
                    maxItems: 25000
                    title: Main Engine Shaft RPM
                    type: array
                sea_surface_salinity:
                    description: List of sea surface salinities in Practical Salinity
                        Units (PSU).
                    example:
                    - 35.5
                    - 33.0
                    items:
                        minimum: 0.0
                        type: number
                    maxItems: 25000
                    title: Sea Surface Salinity
                    type: array
                sea_surface_temperature:
                    description: "List of sea surface temperatures in degrees Celcius\
                        \ (\xB0C)."
                    example:
                    - 16.5
                    - 24.3
                    items:
                        type: number
                    maxItems: 25000
                    title: Sea Surface Temperature
                    type: array
                ship_heading:
                    description: "List of ship heading directions in degrees true\
                        \ (\xB0T): north is at 0\xB0 and increases clockwise. Will\
                        \ default to 0 if not provided."
                    example:
                    - 222.3
                    - 30.6
                    items:
                        maximum: 360.0
                        minimum: 0.0
                        type: number
                    maxItems: 25000
                    title: Ship Heading
                    type: array
                sog:
                    description: List of Speed Over Ground values in knots (kn).
                    example:
                    - 14.1
                    - 15.0
                    items:
                        minimum: 0.0
                        type: number
                    maxItems: 25000
                    title: Speed Over Ground
                    type: array
                stw:
                    description: List of Speed Through Water values in knots (kn).
                    example: 'null'
                    items:
                        minimum: 0.0
                        type: number
                    maxItems: 25000
                    title: Speed Through Water
                    type: array
                trim:
                    description: List of trim values in meter (m). Calculated as draft
                        fore - draft aft.
                    example:
                    - -0.15
                    - -0.1
                    items:
                        type: number
                    maxItems: 25000
                    title: Trim
                    type: array
                wave_direction:
                    description: "List of directions from which the waves are coming,\
                        \ in degrees true (\xB0T): north is at 0\xB0 and increases\
                        \ clockwise."
                    example:
                    - 10.1
                    - 30.2
                    items:
                        maximum: 360.0
                        minimum: 0.0
                        type: number
                    maxItems: 25000
                    maximum: 360.0
                    minimum: 0.0
                    title: Wave Direction
                    type: array
                wave_height:
                    description: List of significant wave heights in meter (m).
                    example:
                    - 2.3
                    - 3.6
                    items:
                        minimum: 0.0
                        type: number
                    maxItems: 25000
                    title: Significant Wave Height
                    type: array
                wave_period:
                    description: List of wave periods, in seconds (s).
                    example:
                    - 10.1
                    - 30.2
                    items:
                        minimum: 0.0
                        type: number
                    maxItems: 25000
                    title: Wave Period
                    type: array
                wind_direction:
                    description: "List of directions from which the wind is coming,\
                        \ in degrees true (\xB0T): north is at 0\xB0 and increases\
                        \ clockwise."
                    example:
                    - 222.3
                    - 30.6
                    items:
                        maximum: 360.0
                        minimum: 0.0
                        type: number
                    maxItems: 25000
                    title: Wind Direction
                    type: array
                wind_speed:
                    description: List of wind speed values in meter/seconds (m/s).
                    example:
                    - 2.3
                    - 3.6
                    items:
                        minimum: 0.0
                        type: number
                    maxItems: 25000
                    title: Wind Speed
                    type: array
            required:
            - wave_direction
            - wave_height
            - current_speed
            - current_direction
            - wind_direction
            - wind_speed
            title: InputData
            type: object
        Location:
            properties:
                lat:
                    title: Lat
                    type: number
                lng:
                    title: Lng
                    type: number
            required:
            - lat
            - lng
            title: Location
            type: object
        Metrics:
            properties:
                bpe:
                    anyOf:
                    -   type: number
                    -   type: 'null'
                    description: The bias percentage error, calculated over all test
                        data.
                    title: Bias Percentage Error
                dpe:
                    anyOf:
                    -   type: number
                    -   type: 'null'
                    description: The bias percentage error, averaged per window of
                        1 sailing day.
                    title: Daily Percentage Error
                madpe:
                    anyOf:
                    -   type: number
                    -   type: 'null'
                    description: The mean absolute value of the bias percentage errors
                        averaged per window of 1 sail day.
                    title: Mean Absolute Daily Percentage Error
                mae:
                    anyOf:
                    -   type: number
                    -   type: 'null'
                    description: The mean absolute error, calculated over all test
                        data.
                    title: Mean Absolute Error
                mampe:
                    anyOf:
                    -   type: number
                    -   type: 'null'
                    description: The mean absolute value of the bias percentage errors
                        averaged per window of 1 sail month.
                    title: Mean Absolute Monthly Percentage Error
                mape:
                    anyOf:
                    -   type: number
                    -   type: 'null'
                    description: The mean absolute percentage error, calculated over
                        all test data.
                    title: Mean Absolute Percentage Error
                mawpe:
                    anyOf:
                    -   type: number
                    -   type: 'null'
                    description: The mean absolute value of the bias percentage errors
                        averaged per window of 1 sail week.
                    title: Mean Absolute Weekly Percentage Error
                mbpe:
                    anyOf:
                    -   type: number
                    -   type: 'null'
                    description: The mean bias percentage error, calculated over all
                        test data.
                    title: Mean Bias Percentage Error
                mpe:
                    anyOf:
                    -   type: number
                    -   type: 'null'
                    description: The mean bias percentage error, averaged per window
                        of 1 sailing month.
                    title: Monthly Percentage Error
                wpe:
                    anyOf:
                    -   type: number
                    -   type: 'null'
                    description: The bias percentage error, averaged per window of
                        1 sailing week.
                    title: Weekly Percentage Error
            title: Metrics
            type: object
        ModelCorrection:
            properties:
                correction_date:
                    description: The date on which the correction will be applied.
                        A correction will only be applied for predictions for the
                        latest date, if the latest date is after the correction date.
                    example: '2022-08-02T09:21:24+00:00'
                    format: date-time
                    title: Correction date
                    type: string
                correction_factor:
                    description: The correction factor that was applied to the model.
                        Corrected model prediction = original model prediction * correction_factor
                    example: 1.2
                    title: Correction Factor
                    type: number
                creation_date:
                    description: The date on which the correction was created.
                    example: '2022-08-02T09:21:24+00:00'
                    format: date-time
                    title: Creation date
                    type: string
            required:
            - correction_date
            - correction_factor
            - creation_date
            title: ModelCorrection
            type: object
        ModelError:
            properties:
                description:
                    anyOf:
                    -   type: string
                    -   type: 'null'
                    description: A human-readable description of the error that occurred
                    title: Error Description
                error_code:
                    description: The code of the error that occurred
                    enum:
                    - max_mcr_limit_exceeded
                    - max_rpm_limit_exceeded
                    - min_mcr_limit_exceeded
                    - min_rpm_limit_exceeded
                    - min_speed_limit_exceeded
                    - min_power_limit_exceeded
                    title: Error code
                    type: string
                indices:
                    description: Indices of the values where the error occurred
                    items:
                        type: integer
                    title: Indices
                    type: array
            required:
            - error_code
            title: ModelError
            type: object
        ModelGridFileDescription:
            properties:
                entrypoint:
                    description: The entrypoint used to predict the targets.
                    enum:
                    - sog
                    - stw
                    - me_rpm
                    - me_power
                    - me_fo_consumption
                    example: sog
                    title: Entrypoint
                    type: string
                filename:
                    description: The filename of the predicted grid
                    title: Filename
                    type: string
                grid_type:
                    description: The type of this grid.
                    enum:
                    - end-to-end
                    - sog-stw
                    - stw-me_rpm-me_power
                    - me_power-me_fo_consumption
                    title: Grid Type
                    type: string
                inputs:
                    description: Additional input parameters used for the prediction
                    example:
                    - wind_speed
                    - wind_direction
                    items:
                        type: string
                    title: Inputs
                    type: array
                targets:
                    description: The predicted parameters.
                    example: me_fo_consumption
                    items:
                        enum:
                        - sog
                        - stw
                        - me_rpm
                        - me_power
                        - me_fo_consumption
                        type: string
                    title: Targets
                    type: array
            required:
            - entrypoint
            - targets
            - inputs
            - filename
            - grid_type
            title: ModelGridFileDescription
            type: object
        ModelGridFilesDescription:
            properties:
                grids:
                    items:
                        $ref: '#/components/schemas/ModelGridFileDescription'
                    title: Grids
                    type: array
                job:
                    $ref: '#/components/schemas/ModelGridJobMetadata'
            required:
            - grids
            - job
            title: ModelGridFilesDescription
            type: object
        ModelGridJobMetadata:
            properties:
                creation_date:
                    description: The date and time on which the job was created.
                    example: '2022-08-02T09:21:24+00:00'
                    format: date-time
                    title: Creation date
                    type: string
                grid_size:
                    example: 184000
                    title: Total grid size
                    type: integer
                job_id:
                    description: Unique ID of the job.
                    title: Job ID
                    type: string
                specification:
                    anyOf:
                    -   $ref: '#/components/schemas/ModelGridSpecification'
                    -   type: 'null'
                    description: The grid specification provided to this grid creation
                        job.
                    title: Grid specification
            required:
            - job_id
            - creation_date
            - grid_size
            title: ModelGridJobMetadata
            type: object
        ModelGridJobStatus:
            properties:
                completion_date:
                    anyOf:
                    -   format: date-time
                        type: string
                    -   type: 'null'
                    description: The date and time on which the job was completed.
                    example: '2022-08-02T09:31:24+00:00'
                    title: Completion date
                creation_date:
                    description: The date and time on which the job was created.
                    example: '2022-08-02T09:21:24+00:00'
                    format: date-time
                    title: Creation date
                    type: string
                estimated_completion_date:
                    anyOf:
                    -   format: date-time
                        type: string
                    -   type: 'null'
                    description: An estimation of the date and time on which the job
                        will be completed.
                    example: '2022-08-02T09:35:24+00:00'
                    title: Estimated date of completion
                grid_size:
                    example: 184000
                    title: Total grid size
                    type: integer
                job_id:
                    description: Unique ID of the job.
                    title: Job ID
                    type: string
                specification:
                    anyOf:
                    -   $ref: '#/components/schemas/ModelGridSpecification'
                    -   type: 'null'
                    description: The grid specification provided to this grid creation
                        job.
                    title: Grid specification
                status:
                    description: Current status of the job.
                    enum:
                    - queued
                    - in_progress
                    - error
                    - completed
                    title: Status
                    type: string
            required:
            - job_id
            - creation_date
            - grid_size
            - status
            title: ModelGridJobStatus
            type: object
        ModelGridParameters:
            properties:
                current_direction:
                    description: "List of directions from which the currents are coming,\
                        \ in degrees true (\xB0T): north is at 0\xB0 and increases\
                        \ clockwise."
                    example:
                    - 0
                    - 90
                    - 180
                    items:
                        maximum: 360.0
                        minimum: 0.0
                        type: number
                    maximum: 360.0
                    minItems: 1
                    minimum: 0.0
                    title: Current Direction
                    type: array
                current_speed:
                    description: List of current speed values in meter/second (m/s).
                    example:
                    - 0
                    - 0.5
                    - 1
                    items:
                        minimum: 0.0
                        type: number
                    minItems: 1
                    title: Current Speed
                    type: array
                draft_avg:
                    description: List of average draft values in meter (m).
                    example:
                    - 8
                    items:
                        minimum: 0.0
                        type: number
                    minItems: 1
                    title: Average Draft
                    type: array
                fuel_specific_energy:
                    description: List of Fuel Specific Energy values in megajoule/kilogram
                        (MJ/kg).
                    example:
                    - 40.1
                    items:
                        minimum: 0.0
                        type: number
                    minItems: 1
                    title: Fuel Specific Energy
                    type: array
                me_fo_consumption:
                    anyOf:
                    -   items:
                            minimum: 0.0
                            type: number
                        minItems: 1
                        type: array
                    -   type: 'null'
                    description: List of main engine fuel oil consumption values in
                        metric tons/day (mt/day).
                    example:
                    - 25.3
                    - 26
                    title: Main Engine Fuel Oil Consumption
                me_power:
                    anyOf:
                    -   items:
                            minimum: 0.0
                            type: number
                        minItems: 1
                        type: array
                    -   type: 'null'
                    description: List of Main Engine Power values in kilowatt (kW).
                    example:
                    - 1000
                    - 3000
                    - 6000
                    - 9000
                    title: Main Engine Power
                me_rpm:
                    anyOf:
                    -   items:
                            minimum: 0.0
                            type: number
                        minItems: 1
                        type: array
                    -   type: 'null'
                    description: List of main engine shaft RPM values in Rotations
                        Per Minute (RPM).
                    example:
                    - 60
                    - 61
                    title: Main Engine Shaft RPM
                sea_surface_salinity:
                    anyOf:
                    -   items:
                            minimum: 0.0
                            type: number
                        minItems: 1
                        type: array
                    -   type: 'null'
                    description: List of sea surface salinities in Practical Salinity
                        Units (PSU).
                    example:
                    - 35
                    title: Sea Surface Salinity
                sea_surface_temperature:
                    anyOf:
                    -   items:
                            type: number
                        minItems: 1
                        type: array
                    -   type: 'null'
                    description: "List of sea surface temperatures in degrees Celcius\
                        \ (\xB0C)."
                    example:
                    - 20
                    title: Sea Surface Temperature
                sog:
                    anyOf:
                    -   items:
                            minimum: 0.0
                            type: number
                        minItems: 1
                        type: array
                    -   type: 'null'
                    description: List of Speed Over Ground values in knots (kn).
                    example:
                    - 10
                    - 11
                    - 12
                    - 13
                    - 14
                    - 15
                    - 16
                    title: Speed Over Ground
                stw:
                    anyOf:
                    -   items:
                            minimum: 0.0
                            type: number
                        minItems: 1
                        type: array
                    -   type: 'null'
                    description: List of Speed Through Water values in knots (kn).
                    example:
                    - 14.1
                    - 15.0
                    title: Speed Through Water
                trim:
                    anyOf:
                    -   items:
                            type: number
                        minItems: 1
                        type: array
                    -   type: 'null'
                    description: List of trim values in meter (m). Calculated as draft
                        fore - draft aft.
                    example:
                    - -1
                    title: Trim
                wave_direction:
                    description: "List of directions from which the waves are coming,\
                        \ in degrees true (\xB0T): north is at 0\xB0 and increases\
                        \ clockwise."
                    example:
                    - 0
                    - 90
                    - 180
                    items:
                        maximum: 360.0
                        minimum: 0.0
                        type: number
                    maximum: 360.0
                    minItems: 1
                    minimum: 0.0
                    title: Wave Direction
                    type: array
                wave_height:
                    description: List of significant wave heights in meter (m).
                    example:
                    - 0
                    - 1
                    - 2
                    - 3
                    - 4
                    - 5
                    - 6
                    items:
                        minimum: 0.0
                        type: number
                    minItems: 1
                    title: Significant Wave Height
                    type: array
                wave_period:
                    anyOf:
                    -   items:
                            minimum: 0.0
                            type: number
                        minItems: 1
                        type: array
                    -   type: 'null'
                    description: List of wave periods, in seconds (s).
                    example:
                    - 10
                    title: Wave Period
                wind_direction:
                    description: "List of directions from which the wind is coming,\
                        \ in degrees true (\xB0T): north is at 0\xB0 and increases\
                        \ clockwise."
                    example:
                    - 0
                    - 90
                    - 180
                    items:
                        maximum: 360.0
                        minimum: 0.0
                        type: number
                    minItems: 1
                    title: Wind Direction
                    type: array
                wind_speed:
                    description: List of wind speed values in meter/seconds (m/s).
                    example:
                    - 0
                    - 5
                    - 10
                    - 15
                    - 20
                    - 25
                    items:
                        minimum: 0.0
                        type: number
                    minItems: 1
                    title: Wind Speed
                    type: array
            required:
            - draft_avg
            - wave_direction
            - wave_height
            - current_speed
            - current_direction
            - wind_direction
            - wind_speed
            - fuel_specific_energy
            title: ModelGridParameters
            type: object
        ModelGridSpecification:
            properties:
                date:
                    anyOf:
                    -   format: date-time
                        type: string
                    -   type: 'null'
                    description: Specifies on which date the vessel's performance
                        should be modelled. If left out, the most recent available
                        date is used. If the date falls outside of the modelled range,
                        a 400 error is returned.
                    example: '2022-08-02T09:21:24+00:00'
                    title: Date
                description:
                    anyOf:
                    -   type: string
                    -   type: 'null'
                    description: Optional text that describes the characteristics
                        of this grid.
                    example: High resolution table modelling performance on 14/05/2022.
                    title: Description
                grid:
                    allOf:
                    -   $ref: '#/components/schemas/ModelGridParameters'
                    description: 'Description of the values to be used for creating
                        the grid. The resulting N-dimensional grid will be constructed
                        as the combination between all provided ranges. Example: if
                        the range of wind direction should be [0:180:45] (using [min:max:step]
                        notation), then the value given to `wind_direction` should
                        be [0, 45, 90, 135, 180]. If multi_grid is False, only ''sog''
                        may be provided, else (''sog'', ''stw'' and ''me_power'')
                        must be provided.'
                    title: Grid description
                multi_grid:
                    anyOf:
                    -   type: boolean
                    -   type: 'null'
                    default: true
                    description: Specifies whether to split the work of creating the
                        grid into a separate grid for each subrelation. This decreases
                        the processing time and table data size, at the expense of
                        accuracy.
                    title: Multi grid
            required:
            - grid
            title: ModelGridSpecification
            type: object
        ModelMetaData:
            properties:
                corrections:
                    anyOf:
                    -   items:
                            $ref: '#/components/schemas/ModelCorrection'
                        type: array
                    -   type: 'null'
                    description: When the model has seen no or too little data to
                        be accurate, such as right after a cleaning event, it may
                        be manually corrected. This field contains the corrections
                        that are currently added to the model.
                    title: Corrections applied to the model
                parameters:
                    anyOf:
                    -   $ref: '#/components/schemas/ModelParameters'
                    -   type: 'null'
                    description: Specification of which parameters this model accepts
                        as input, produces as output and their typical operational
                        range.
                    title: Model Parameters
                periods:
                    description: List of periods on which this model was evaluated
                        and/or trained.
                    items:
                        $ref: '#/components/schemas/DataPeriod'
                    title: Data Periods
                    type: array
                updated_at:
                    description: The date on which the model was last updated.
                    example: '2022-08-02T09:21:24+00:00'
                    format: date-time
                    title: Update date
                    type: string
            title: ModelMetaData
            type: object
        ModelParameters:
            properties:
                current_direction:
                    anyOf:
                    -   $ref: '#/components/schemas/ParameterDescription'
                    -   type: 'null'
                current_speed:
                    anyOf:
                    -   $ref: '#/components/schemas/ParameterDescription'
                    -   type: 'null'
                draft_avg:
                    anyOf:
                    -   $ref: '#/components/schemas/ParameterDescription'
                    -   type: 'null'
                fuel_specific_energy:
                    anyOf:
                    -   $ref: '#/components/schemas/ParameterDescription'
                    -   type: 'null'
                me_fo_consumption:
                    anyOf:
                    -   $ref: '#/components/schemas/ParameterDescription'
                    -   type: 'null'
                me_fo_emission:
                    anyOf:
                    -   $ref: '#/components/schemas/ParameterDescription'
                    -   type: 'null'
                me_power:
                    anyOf:
                    -   $ref: '#/components/schemas/ParameterDescription'
                    -   type: 'null'
                me_rpm:
                    anyOf:
                    -   $ref: '#/components/schemas/ParameterDescription'
                    -   type: 'null'
                sea_surface_salinity:
                    anyOf:
                    -   $ref: '#/components/schemas/ParameterDescription'
                    -   type: 'null'
                sea_surface_temperature:
                    anyOf:
                    -   $ref: '#/components/schemas/ParameterDescription'
                    -   type: 'null'
                ship_heading:
                    anyOf:
                    -   $ref: '#/components/schemas/ParameterDescription'
                    -   type: 'null'
                sog:
                    anyOf:
                    -   $ref: '#/components/schemas/ParameterDescription'
                    -   type: 'null'
                stw:
                    anyOf:
                    -   $ref: '#/components/schemas/ParameterDescription'
                    -   type: 'null'
                trim:
                    anyOf:
                    -   $ref: '#/components/schemas/ParameterDescription'
                    -   type: 'null'
                wave_direction:
                    anyOf:
                    -   $ref: '#/components/schemas/ParameterDescription'
                    -   type: 'null'
                wave_height:
                    anyOf:
                    -   $ref: '#/components/schemas/ParameterDescription'
                    -   type: 'null'
                wind_direction:
                    anyOf:
                    -   $ref: '#/components/schemas/ParameterDescription'
                    -   type: 'null'
                wind_speed:
                    anyOf:
                    -   $ref: '#/components/schemas/ParameterDescription'
                    -   type: 'null'
            title: ModelParameters
            type: object
        NoonReportData:
            additionalProperties: false
            properties:
                ae_fo_consumption:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of auxiliary engine fuel oil consumption values
                        in metric tons/day (mt/day), summed over all auxiliary engines.
                    example:
                    - 3.0
                    - 1.5
                    title: Auxiliary Engine Fuel Oil Consumption
                ae_lcv:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of auxiliary engine lower calorific values in
                        megajoule/kilogram (MJ/kg).
                    example:
                    - 42.7
                    - 40
                    title: Auxiliary Engine Lower Calorific Value
                ae_power:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of auxiliary engine power values in kilowatt
                        (kW).
                    example:
                    - 1000
                    - 1050.2
                    title: Auxiliary Engine Power
                boiler_fo_consumption:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of boiler fuel oil consumption values in metric
                        tons/day (mt/day), summed over all boilers.
                    example:
                    - 3.0
                    - 1.5
                    title: Boiler Oil Consumption
                boiler_lcv:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of boiler lower calorific values in megajoule/kilogram
                        (MJ/kg).
                    example:
                    - 42.7
                    - 40
                    title: Boiler Lower Calorific Value
                boiler_power:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of boiler power values in kilowatt (kW).
                    example:
                    - 1000
                    - 1050.2
                    title: Boiler Power
                datetime_end:
                    description: List of datetimes on which the noon report ends.
                        Datetime must be in ISO8601 format, and must specify a timezone.
                    example:
                    - '2022-08-02T09:21:24+00:00'
                    - '2022-08-02T09:26:24+00:00'
                    items:
                        format: date-time
                        type: string
                    maxItems: 200000
                    title: End datetime
                    type: array
                datetime_start:
                    anyOf:
                    -   items:
                            anyOf:
                            -   format: date-time
                                type: string
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of datetimes on which the noon report starts.
                        Datetime must be in ISO8601 format, and must specify a timezone.
                    example:
                    - '2022-08-02T09:21:24+00:00'
                    - '2022-08-02T09:26:24+00:00'
                    title: Start datetime
                draft_avg:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of average draft values in meter (m).
                    example:
                    - 21.1
                    - 21.0
                    title: Average Draft
                fuel_specific_energy:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of Fuel Specific Energy values in megajoule/kilogram
                        (MJ/kg).
                    example:
                    - 42.7
                    - 40.0
                    title: Fuel Specific Energy
                lat:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: "List of latitudes in decimal degrees format (DDD.DDDDD\xB0\
                        ). Positive values are north of the equator."
                    example:
                    - 24.69452
                    - 24.60452
                    title: Latitude
                lng:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: "List of longitudes in decimal degrees format (DDD.DDDDD\xB0\
                        ). Positive values are east of the prime meridian."
                    example:
                    - 128.10483
                    - 128.20483
                    title: Latitude
                me_fo_consumption:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of main engine fuel oil consumption values in
                        metric tons/day (mt/day).
                    example:
                    - 25.3
                    - 26
                    title: Main Engine Fuel Oil Consumption
                me_power:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of main engine shaft power values in kilowatt
                        (kW).
                    example:
                    - 20000
                    - 20010.5
                    title: Main Engine Shaft Power
                me_rpm:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of main engine shaft RPM values in Rotations
                        Per Minute (RPM).
                    example:
                    - 60
                    - 61
                    title: Main Engine Shaft RPM
                ship_heading:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: "Ship heading direction values in degrees true (\xB0\
                        T): north is at 0\xB0 and increases clockwise."
                    example:
                    - 222.3
                    - 30.6
                    title: Ship Heading
                sog:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of Speed Over Ground values in knots (kn).
                    example:
                    - 14.1
                    - 15.0
                    title: Speed Over Ground
                stw:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of Speed Through Water values in knots (kn).
                    example:
                    - 14.1
                    - 15.0
                    title: Speed Through Water
                trim:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of trim values in meter (m). Calculated as draft
                        fore - draft aft.
                    example:
                    - -0.15
                    - -0.1
                    title: Trim
                voyage_id:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: string
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of voyage identifiers. A voyage identifier is
                        a string that uniquely identifies a voyage.
                    example:
                    - VOY1
                    - VOY2
                    title: Voyage Identifier
            required:
            - datetime_end
            title: NoonReportData
            type: object
        ParameterDescription:
            properties:
                default:
                    description: The default value of this parameter.
                    title: Default
                    type: number
                input:
                    description: Whether the model can use this parameter as input
                        parameter.
                    example: true
                    title: Input
                    type: boolean
                max:
                    anyOf:
                    -   type: number
                    -   type: 'null'
                    description: The typical maximum value of this parameter.
                    title: Maximum
                min:
                    anyOf:
                    -   type: number
                    -   type: 'null'
                    description: The typical minimum value of this parameter.
                    title: Minimum
                output:
                    description: Whether the model can use this parameter as output
                        parameter.
                    example: false
                    title: Output
                    type: boolean
            required:
            - input
            - output
            - default
            title: ParameterDescription
            type: object
        PerformanceDataset:
            description: Represents a potentially large dataset of the performance
                of the vessel over time.
            properties:
                data_points:
                    allOf:
                    -   $ref: '#/components/schemas/PerformanceDatasetDatapoints'
                    description: The data points of the performance dataset.
                    title: Data Points
                properties:
                    allOf:
                    -   $ref: '#/components/schemas/PerformanceDatasetProperties'
                    description: The properties of the performance dataset.
                    title: Properties
            required:
            - properties
            - data_points
            title: PerformanceDataset
            type: object
        PerformanceDatasetDatapoints:
            properties:
                datetime:
                    description: List of datetimes. Datetime must be in ISO8601 format,
                        and must specify a timezone.
                    example:
                    - '2022-08-02T09:21:24+00:00'
                    - '2022-08-02T09:26:24+00:00'
                    items:
                        format: date-time
                        type: string
                    title: Datetime
                    type: array
                excess_fuel_percentage:
                    description: List of excess fuel percentage values.
                    example:
                    - 0.95
                    - 0.9
                    items:
                        type: number
                    title: Excess Fuel Percentage
                    type: array
            required:
            - datetime
            - excess_fuel_percentage
            title: PerformanceDatasetDatapoints
            type: object
        PerformanceDatasetProperties:
            properties:
                averaging_window_in_days:
                    description: The averaging window in days.
                    example: 1.0
                    title: Averaging Window In Days
                    type: number
                data_source:
                    description: The source of the performance data.
                    example: noon_reports
                    title: Data Source
                    type: string
            required:
            - averaging_window_in_days
            - data_source
            title: PerformanceDatasetProperties
            type: object
        PerformanceEventData:
            additionalProperties: false
            properties:
                calibration:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: boolean
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: Whether the event was used for calibration.
                    example:
                    - true
                    - false
                    title: Calibration
                datetime_end:
                    anyOf:
                    -   items:
                            anyOf:
                            -   format: date-time
                                type: string
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: List of datetimes on which the events end. Datetime
                        must be in ISO8601 format, and must specify a timezone.
                    example:
                    - '2022-08-02T09:21:24+00:00'
                    - '2022-08-02T09:26:24+00:00'
                    title: End datetime
                datetime_start:
                    anyOf:
                    -   items:
                            anyOf:
                            -   format: date-time
                                type: string
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: List of datetimes on which the events start. Datetime
                        must be in ISO8601 format, and must specify a timezone.
                    example:
                    - '2022-08-02T09:21:24+00:00'
                    - '2022-08-02T09:26:24+00:00'
                    title: Start datetime
                description:
                    anyOf:
                    -   items:
                            anyOf:
                            -   maxLength: 2048
                                type: string
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: List of event descriptions
                    example:
                    - At Port of Fujairah
                    - Only vertical sides
                    title: Event description
                excess_fuel_percentage_after:
                    anyOf:
                    -   items:
                            anyOf:
                            -   maximum: 100.0
                                minimum: -100.0
                                type: number
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: The percentage of excess fuel after the event.
                    example:
                    - 0.95
                    - 0.9
                    title: Excess fuel percentage after
                excess_fuel_percentage_before:
                    anyOf:
                    -   items:
                            anyOf:
                            -   maximum: 100.0
                                minimum: -100.0
                                type: number
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: The percentage of excess fuel before the event.
                    example:
                    - 0.95
                    - 0.9
                    title: Excess fuel percentage before
                expected_performance_change:
                    anyOf:
                    -   items:
                            anyOf:
                            -   maximum: 100.0
                                minimum: -100.0
                                type: number
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: List of expected increases or decreases in performance
                        after an event, in percent (%) between -100 and 100. A value
                        of -100 means 100% extra power is required to achieve the
                        same speed.
                    example:
                    - -20
                    - 5
                    title: Expected performance change
                lat:
                    anyOf:
                    -   items:
                            anyOf:
                            -   maximum: 90.0
                                minimum: -90.0
                                type: number
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: The latitude of the event.
                    example:
                    - 25.0
                    - 51.0
                    title: Latitude
                lng:
                    anyOf:
                    -   items:
                            anyOf:
                            -   maximum: 180.0
                                minimum: -180.0
                                type: number
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: The longitude of the event.
                    example:
                    - 55.0
                    - 4.0
                    title: Longitude
                location:
                    anyOf:
                    -   items:
                            anyOf:
                            -   maxLength: 255
                                type: string
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: The location of the event.
                    example:
                    - Port of Fujairah
                    - Port of Rotterdam
                    title: Location
                normalized_fuel_consumption_after:
                    anyOf:
                    -   items:
                            anyOf:
                            -   minimum: 0.0
                                type: number
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: The fuel consumption normalized to standard conditions
                        after the event.
                    example:
                    - 0.85
                    - 0.8
                    title: Normalized fuel consumption after
                normalized_fuel_consumption_before:
                    anyOf:
                    -   items:
                            anyOf:
                            -   minimum: 0.0
                                type: number
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: The fuel consumption normalized to standard conditions
                        before the event.
                    example:
                    - 0.85
                    - 0.8
                    title: Normalized fuel consumption before
                paint_type:
                    anyOf:
                    -   items:
                            anyOf:
                            -   maxLength: 255
                                type: string
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: The type of paint that was applied
                    example:
                    - Hempaguard X7
                    - null
                    title: Paint type
                price:
                    anyOf:
                    -   items:
                            anyOf:
                            -   minimum: 0.0
                                type: number
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: Price of the cleaning in US$
                    example:
                    - 1000
                    - 2000
                    title: Price
                service_provider:
                    anyOf:
                    -   items:
                            anyOf:
                            -   maxLength: 255
                                type: string
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: Name of the company who did the cleaning
                    example:
                    - Company A
                    - Company B
                    title: Service provider
                type:
                    description: List of event types
                    example:
                    - dry_dock
                    - hull_cleaning
                    items:
                        enum:
                        - dry_dock
                        - hull_cleaning
                        - propeller_cleaning
                        - esd
                        - other
                        type: string
                    maxItems: 3000
                    title: Event type
                    type: array
                type_of_fouling:
                    anyOf:
                    -   items:
                            anyOf:
                            -   enum:
                                - macro-fouling
                                - micro-fouling
                                type: string
                            -   type: 'null'
                        maxItems: 3000
                        type: array
                    -   type: 'null'
                    description: Qualitative measure of the type of fouling that was
                        present before the cleaning
                    example:
                    - null
                    - macro-fouling
                    title: Type of fouling
            required:
            - type
            title: PerformanceEventData
            type: object
        PerformanceObject:
            description: Represents the performance of the vessel
            properties:
                events:
                    allOf:
                    -   $ref: '#/components/schemas/PerformanceEventData'
                    description: List of events that have occurred over the vessel's
                        lifetime.
                    title: Events
                idlings:
                    allOf:
                    -   $ref: '#/components/schemas/Idlings'
                    description: List of idling events that have occurred over the
                        vessel's lifetime.
                performance_over_time:
                    allOf:
                    -   $ref: '#/components/schemas/PerformanceOverTime'
                    description: The performance of the vessel over time.
                    title: Performance Over Time
            required:
            - events
            - idlings
            - performance_over_time
            title: PerformanceObject
            type: object
        PerformanceOverTime:
            properties:
                calibrated_excess_fuel_consumption:
                    description: The calibrated excess fuel consumption of the vessel.
                    example:
                    - 21
                    - -12
                    items:
                        type: number
                    maxItems: 3000
                    title: Calibrated Excess Fuel Consumption
                    type: array
                calibrated_excess_fuel_consumption_percentage:
                    description: The performance of the vessel after calibration by
                        the model. Calibration happens after the model is sufficiently
                        confident the observed performance samples present a true
                        shift in performance.
                    example:
                    - 0.95
                    - 0.9
                    items:
                        type: number
                    maxItems: 3000
                    title: Calibrated Excess Fuel Consumption Percentage
                    type: array
                datetime_end:
                    description: Datetime at which the performance period ends. Datetime
                        must be in ISO8601 format, and must specify a timezone.
                    example:
                    - '2022-08-02T09:21:24+00:00'
                    - '2022-08-02T09:26:24+00:00'
                    items:
                        format: date-time
                        type: string
                    maxItems: 3000
                    title: End datetime
                    type: array
                datetime_start:
                    description: Datetime at which the performance period starts.
                        Datetime must be in ISO8601 format, and must specify a timezone.
                    example:
                    - '2022-08-02T09:21:24+00:00'
                    - '2022-08-02T09:26:24+00:00'
                    items:
                        format: date-time
                        type: string
                    maxItems: 3000
                    title: Start datetime
                    type: array
                normalized_fuel_consumption:
                    description: The normalized consumption of the vessel.
                    example:
                    - 0.85
                    - 0.8
                    items:
                        type: number
                    maxItems: 3000
                    title: Normalized Fuel Consumption
                    type: array
                observed_excess_fuel_consumption:
                    description: The observed excess fuel consumption of the vessel.
                    example:
                    - 21
                    - -12
                    items:
                        type: number
                    maxItems: 3000
                    title: Observed Excess Fuel Consumption
                    type: array
                observed_excess_fuel_consumption_percentage:
                    description: The observed performance of the vessel before calibration.
                        May be potentially volatile and not represent a true shift
                        in vessel performance.
                    example:
                    - 0.9
                    - 0.85
                    items:
                        type: number
                    maxItems: 3000
                    title: Observed Excess Fuel Consumption Percentage
                    type: array
            required:
            - datetime_end
            - calibrated_excess_fuel_consumption_percentage
            - observed_excess_fuel_consumption_percentage
            - normalized_fuel_consumption
            - calibrated_excess_fuel_consumption
            - observed_excess_fuel_consumption
            title: PerformanceOverTime
            type: object
        PredictionInput:
            example:
                data:
                    current_direction:
                    - 222.3
                    - 50.6
                    current_speed:
                    - 0.9
                    - 0.5
                    draft_avg:
                    - 10
                    - 16.5
                    fuel_specific_energy:
                    - 42.7
                    - 40
                    sea_surface_salinity:
                    - 35.5
                    - 33
                    sea_surface_temperature:
                    - 16.5
                    - 24.3
                    ship_heading:
                    - 222.3
                    - 305.6
                    sog:
                    - 10.1
                    - 12.5
                    trim:
                    - -0.15
                    - -0.1
                    wave_direction:
                    - 10.1
                    - 30.2
                    wave_height:
                    - 1.9
                    - 3.1
                    wave_period:
                    - 10.1
                    - 30.2
                    wind_direction:
                    - 222.3
                    - 30.6
                    wind_speed:
                    - 2.3
                    - 3.6
            properties:
                data:
                    allOf:
                    -   $ref: '#/components/schemas/InputData'
                    description: Specifies the operational and conditional parameters
                        for which the model should make predictions. Each given array
                        must have the same length. Exactly one of the entrypoints
                        ['sog', 'stw', 'me_rpm', 'me_power', 'me_fo_consumption']
                        should be provided, the rest may be set to null or left out.
                    title: Input Data
                date:
                    anyOf:
                    -   format: date-time
                        type: string
                    -   type: 'null'
                    description: Specifies on which date the vessel's performance
                        should be modelled. If left out, the most recent available
                        date is used. If the date falls outside of the modelled range,
                        a 400 error is returned.
                    example: '2022-08-02T09:21:24+00:00'
                    title: Date
            required:
            - data
            title: PredictionInput
            type: object
        PredictionOutput:
            properties:
                errors:
                    description: Errors that occurred during the prediction process.
                    example:
                    -   description: Maximum limit of 15000 kW (90% MCR) exceeded.
                        error_code: max_mcr_limit_exceeded
                        indices:
                        - 1
                        - 3
                    -   description: Minimum limit of 1500 kW (10% MCR) exceeded.
                        error_code: min_mcr_limit_exceeded
                        indices: []
                    -   description: Maximum limit of 80 RPM exceeded.
                        error_code: max_rpm_limit_exceeded
                        indices:
                        - 1
                        - 3
                    -   description: Minimum limit of 0 RPM exceeded.
                        error_code: min_rpm_limit_exceeded
                        indices: []
                    items:
                        $ref: '#/components/schemas/ModelError'
                    title: Prediction Errors
                    type: array
                me_fo_consumption:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        type: array
                    -   type: 'null'
                    description: List of main engine fuel oil consumption values in
                        metric tons of fuel/day (mt/day). Contains null values where
                        errors have occurred.
                    example:
                    - 20.4
                    - null
                    - 34.9
                    - null
                    title: Main Engine Fuel Oil Consumption
                me_fo_emission:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        type: array
                    -   type: 'null'
                    description: List of main engine fuel oil emission values in metric
                        tons of CO2/day (mt/day). Contains null values where errors
                        have occurred.
                    example:
                    - 64.7
                    - null
                    - 110.63
                    - null
                    title: Main Engine Fuel Oil Emission
                me_power:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        type: array
                    -   type: 'null'
                    description: List of main engine shaft power values in kilowatt
                        (kW). Contains null values where errors have occurred.
                    example:
                    - 4500
                    - null
                    - 10300.7
                    - null
                    title: Main Engine Shaft Power
                me_rpm:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        type: array
                    -   type: 'null'
                    description: List of main engine shaft RPM values in Rotations
                        Per Minute (RPM). Contains null values where errors have occurred.
                    example:
                    - 55
                    - null
                    - 70.0
                    - null
                    title: Main Engine Shaft RPM
                sog:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        type: array
                    -   type: 'null'
                    description: List of Speed Over Ground values in knots (kn). Contains
                        null values where errors have occurred.
                    example:
                    - 14.1
                    - null
                    - 10.0
                    - null
                    title: Speed Over Ground
                stw:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        type: array
                    -   type: 'null'
                    description: List of Speed Through Water values in knots (kn).
                        Contains null values where errors have occurred.
                    example:
                    - 14.1
                    - null
                    - 10.0
                    - null
                    title: Speed Through Water
            title: PredictionOutput
            type: object
        RelationMetrics:
            properties:
                entrypoint:
                    description: The entrypoint used to predict the target.
                    enum:
                    - sog
                    - stw
                    - me_rpm
                    - me_power
                    - me_fo_consumption
                    example: sog
                    title: Entrypoint
                    type: string
                metrics:
                    $ref: '#/components/schemas/Metrics'
                target:
                    description: The predicted parameter. The metrics are calculated
                        by comparing the predicted value of the target to the true
                        value of the target.
                    enum:
                    - sog
                    - stw
                    - me_rpm
                    - me_power
                    - me_fo_consumption
                    example: me_fo_consumption
                    title: Target
                    type: string
            required:
            - entrypoint
            - target
            - metrics
            title: RelationMetrics
            type: object
        SeaTrialData:
            properties:
                me_fo_consumption:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of main engine fuel oil consumption values in
                        metric tons/day (mt/day).
                    example:
                    - 25.3
                    - 26
                    title: Main Engine Fuel Oil Consumption
                sog:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of Speed Over Ground values in knots (kn).
                    example:
                    - 14.1
                    - 15.0
                    title: Speed Over Ground
                stw:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of Speed Through Water values in knots (kn).
                    example:
                    - 14.1
                    - 15.0
                    title: Speed Through Water
            title: SeaTrialData
            type: object
        SensorData:
            additionalProperties: false
            properties:
                ae_fo_consumption:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of auxiliary engine fuel oil consumption values
                        in metric tons/day (mt/day), summed over all auxiliary engines.
                    example:
                    - 3.0
                    - 1.5
                    title: Auxiliary Engine Fuel Oil Consumption
                ae_lcv:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of auxiliary engine lower calorific values in
                        megajoule/kilogram (MJ/kg).
                    example:
                    - 42.7
                    - 40
                    title: Auxiliary Engine Lower Calorific Value
                ae_power:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of auxiliary engine power values in kilowatt
                        (kW).
                    example:
                    - 1000
                    - 1050.2
                    title: Auxiliary Engine Power
                boiler_fo_consumption:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of boiler fuel oil consumption values in metric
                        tons/day (mt/day), summed over all boilers.
                    example:
                    - 3.0
                    - 1.5
                    title: Boiler Oil Consumption
                boiler_lcv:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of boiler lower calorific values in megajoule/kilogram
                        (MJ/kg).
                    example:
                    - 42.7
                    - 40
                    title: Boiler Lower Calorific Value
                boiler_power:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of boiler power values in kilowatt (kW).
                    example:
                    - 1000
                    - 1050.2
                    title: Boiler Power
                datetime_end:
                    description: List of datetimes on which the sensor averaging period
                        ends. Datetime must be in ISO8601 format, and must specify
                        a timezone.
                    example:
                    - '2022-08-02T09:21:24+00:00'
                    - '2022-08-02T09:26:24+00:00'
                    items:
                        format: date-time
                        type: string
                    maxItems: 200000
                    title: End datetime
                    type: array
                datetime_start:
                    anyOf:
                    -   items:
                            anyOf:
                            -   format: date-time
                                type: string
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of datetimes on which the sensor averaging period
                        starts. Datetime must be in ISO8601 format, and must specify
                        a timezone.
                    example:
                    - '2022-08-02T09:21:24+00:00'
                    - '2022-08-02T09:26:24+00:00'
                    title: Start datetime
                draft_avg:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of average draft values in meter (m).
                    example:
                    - 21.1
                    - 21.0
                    title: Average Draft
                lat:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: "List of latitudes in decimal degrees format (DDD.DDDDD\xB0\
                        ). Positive values are north of the equator."
                    example:
                    - 24.69452
                    - 24.60452
                    title: Latitude
                lng:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: "List of longitudes in decimal degrees format (DDD.DDDDD\xB0\
                        ). Positive values are east of the prime meridian."
                    example:
                    - 128.10483
                    - 128.20483
                    title: Latitude
                me_fo_consumption:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of main engine fuel oil consumption values in
                        metric tons/day (mt/day).
                    example:
                    - 25.3
                    - 26
                    title: Main Engine Fuel Oil Consumption
                me_power:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of main engine shaft power values in kilowatt
                        (kW).
                    example:
                    - 20000
                    - 20010.5
                    title: Main Engine Shaft Power
                me_rpm:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of main engine shaft RPM values in Rotations
                        Per Minute (RPM).
                    example:
                    - 60
                    - 61
                    title: Main Engine Shaft RPM
                rudder_angle:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: "Rudder angle in degrees (\xB0)."
                    example:
                    - 10.1
                    - 0.2
                    title: Rudder Angle
                sea_depth:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: Sea Depth in meters (m).
                    example:
                    - 200.5
                    - 30.1
                    title: Sea Depth
                ship_heading:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: "Ship heading direction values in degrees true (\xB0\
                        T): north is at 0\xB0 and increases clockwise."
                    example:
                    - 222.3
                    - 30.6
                    title: Ship Heading
                sog:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of Speed Over Ground values in knots (kn).
                    example:
                    - 14.1
                    - 15.0
                    title: Speed Over Ground
                stw:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of Speed Through Water values in knots (kn).
                    example:
                    - 14.1
                    - 15.0
                    title: Speed Through Water
                trim:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of trim values in meter (m). Calculated as draft
                        fore - draft aft.
                    example:
                    - -0.15
                    - -0.1
                    title: Trim
            required:
            - datetime_end
            title: SensorData
            type: object
        Ship:
            properties:
                ballast_draft:
                    anyOf:
                    -   maximum: 50.0
                        minimum: 0.0
                        type: number
                    -   type: 'null'
                    description: Draft in meters when the ship is only carrying ballast
                        water.
                    example: 12.1
                    title: Ballast Draft
                beam:
                    anyOf:
                    -   maximum: 200.0
                        minimum: 0.0
                        type: number
                    -   type: 'null'
                    description: Beam in meters.
                    example: 40.1
                    title: Beam
                build_year:
                    anyOf:
                    -   maximum: 2024.0
                        minimum: 1900.0
                        type: integer
                    -   type: 'null'
                    description: Build year of the ship.
                    example: 2010
                    title: Build Year
                class:
                    anyOf:
                    -   type: string
                    -   type: 'null'
                    description: Ship design class.
                    example: GHE-1002K
                    title: Class
                country:
                    anyOf:
                    -   maxLength: 2
                        minLength: 2
                        type: string
                    -   type: 'null'
                    description: Country of registration, in 2-letter ISO 3166-1 alpha-2
                        format.
                    example: FR
                    title: Country
                dwt:
                    anyOf:
                    -   maximum: 1000000.0
                        minimum: 0.0
                        type: number
                    -   type: 'null'
                    description: Deadweight tonnage in metric tons.
                    example: 148000
                    title: Deadweight Tonnage
                imo_number:
                    description: International Maritime Organization (IMO) number.
                        Must be unique.
                    example: 9598738
                    maximum: 9999999.0
                    minimum: 1.0
                    title: Imo Number
                    type: integer
                laden_draft:
                    anyOf:
                    -   maximum: 50.0
                        minimum: 0.0
                        type: number
                    -   type: 'null'
                    description: Draft in meters when the ship is fully loaded with
                        cargo.
                    example: 16.1
                    title: Laden Draft
                loa:
                    anyOf:
                    -   maximum: 500.0
                        minimum: 0.0
                        type: number
                    -   type: 'null'
                    description: Length overall in meters.
                    example: 330.1
                    title: Length Overall
                max_rpm:
                    anyOf:
                    -   maximum: 1000.0
                        minimum: 0.0
                        type: number
                    -   type: 'null'
                    description: Maximum speed of the propeller in RPM.
                    example: 78
                    title: Maximum RPM
                mcr:
                    anyOf:
                    -   maximum: 200000.0
                        minimum: 0.0
                        type: number
                    -   type: 'null'
                    description: Maximum continuous rating in kW.
                    example: 26000
                    title: Maximum Continuous Rating
                min_rpm:
                    anyOf:
                    -   maximum: 1000.0
                        minimum: 0.0
                        type: number
                    -   type: 'null'
                    description: Minimum speed of the propeller in RPM.
                    example: 10
                    title: Minimum RPM
                name:
                    description: Name of the ship.
                    example: HMS Beagle
                    maxLength: 300
                    title: Name
                    type: string
                shipyard:
                    anyOf:
                    -   maxLength: 256
                        type: string
                    -   type: 'null'
                    description: Shipyard where the ship was built.
                    example: Toqua Heavy Industries Ltd.
                    title: Shipyard
                type:
                    description: Size class of the ship.
                    enum:
                    - Aframax
                    - Bulk Carrier
                    - Chemical Tanker
                    - Container
                    - Cruise
                    - Handymax
                    - Livestock Carrier
                    - LNG Tanker
                    - LPG Tanker
                    - Panamax
                    - Product Tanker
                    - RORO
                    - Suezmax
                    - Tanker
                    - VLCC
                    - Yacht
                    - Other
                    example: VLCC
                    title: Ship type
                    type: string
                uuid:
                    example: 73WakrfVbNJBaAmhQtEeDv
                    maxLength: 22
                    minLength: 22
                    pattern: ^[0-9a-zA-Z]{22}$
                    title: A unique, random, identifier
                    type: string
            required:
            - name
            - imo_number
            - type
            - uuid
            title: Ship
            type: object
        ShipCreationModel:
            properties:
                ballast_draft:
                    anyOf:
                    -   maximum: 50.0
                        minimum: 0.0
                        type: number
                    -   type: 'null'
                    description: Draft in meters when the ship is only carrying ballast
                        water.
                    example: 12.1
                    title: Ballast Draft
                beam:
                    anyOf:
                    -   maximum: 200.0
                        minimum: 0.0
                        type: number
                    -   type: 'null'
                    description: Beam in meters.
                    example: 40.1
                    title: Beam
                build_year:
                    anyOf:
                    -   maximum: 2024.0
                        minimum: 1900.0
                        type: integer
                    -   type: 'null'
                    description: Build year of the ship.
                    example: 2010
                    title: Build Year
                class:
                    anyOf:
                    -   type: string
                    -   type: 'null'
                    description: Ship design class.
                    example: GHE-1002K
                    title: Class
                country:
                    anyOf:
                    -   maxLength: 2
                        minLength: 2
                        type: string
                    -   type: 'null'
                    description: Country of registration, in 2-letter ISO 3166-1 alpha-2
                        format.
                    example: FR
                    title: Country
                dwt:
                    anyOf:
                    -   maximum: 1000000.0
                        minimum: 0.0
                        type: number
                    -   type: 'null'
                    description: Deadweight tonnage in metric tons.
                    example: 148000
                    title: Deadweight Tonnage
                imo_number:
                    description: International Maritime Organization (IMO) number.
                        Must be unique.
                    example: 9598738
                    maximum: 9999999.0
                    minimum: 1.0
                    title: Imo Number
                    type: integer
                laden_draft:
                    anyOf:
                    -   maximum: 50.0
                        minimum: 0.0
                        type: number
                    -   type: 'null'
                    description: Draft in meters when the ship is fully loaded with
                        cargo.
                    example: 16.1
                    title: Laden Draft
                loa:
                    anyOf:
                    -   maximum: 500.0
                        minimum: 0.0
                        type: number
                    -   type: 'null'
                    description: Length overall in meters.
                    example: 330.1
                    title: Length Overall
                max_rpm:
                    anyOf:
                    -   maximum: 1000.0
                        minimum: 0.0
                        type: number
                    -   type: 'null'
                    description: Maximum speed of the propeller in RPM.
                    example: 78
                    title: Maximum RPM
                mcr:
                    anyOf:
                    -   maximum: 200000.0
                        minimum: 0.0
                        type: number
                    -   type: 'null'
                    description: Maximum continuous rating in kW.
                    example: 26000
                    title: Maximum Continuous Rating
                min_rpm:
                    anyOf:
                    -   maximum: 1000.0
                        minimum: 0.0
                        type: number
                    -   type: 'null'
                    description: Minimum speed of the propeller in RPM.
                    example: 10
                    title: Minimum RPM
                name:
                    description: Name of the ship.
                    example: HMS Beagle
                    maxLength: 300
                    title: Name
                    type: string
                shipyard:
                    anyOf:
                    -   maxLength: 256
                        type: string
                    -   type: 'null'
                    description: Shipyard where the ship was built.
                    example: Toqua Heavy Industries Ltd.
                    title: Shipyard
                type:
                    description: Size class of the ship.
                    enum:
                    - Aframax
                    - Bulk Carrier
                    - Chemical Tanker
                    - Container
                    - Cruise
                    - Handymax
                    - Livestock Carrier
                    - LNG Tanker
                    - LPG Tanker
                    - Panamax
                    - Product Tanker
                    - RORO
                    - Suezmax
                    - Tanker
                    - VLCC
                    - Yacht
                    - Other
                    example: VLCC
                    title: Ship type
                    type: string
            required:
            - name
            - imo_number
            - type
            title: ShipCreationModel
            type: object
        ValidationError:
            properties:
                loc:
                    items:
                        anyOf:
                        -   type: string
                        -   type: integer
                    title: Location
                    type: array
                msg:
                    title: Message
                    type: string
                type:
                    title: Error Type
                    type: string
            required:
            - loc
            - msg
            - type
            title: ValidationError
            type: object
        VoyageCollection:
            properties:
                calculated_at:
                    format: date-time
                    title: Calculated At
                    type: string
                voyages:
                    items:
                        $ref: '#/components/schemas/VoyageInfo'
                    title: Voyages
                    type: array
            required:
            - voyages
            - calculated_at
            title: VoyageCollection
            type: object
        VoyageInfo:
            properties:
                arrival:
                    $ref: '#/components/schemas/Waypoint'
                departure:
                    $ref: '#/components/schemas/Waypoint'
                samples:
                    title: Samples
                    type: integer
                statistics:
                    items:
                        $ref: '#/components/schemas/VoyageStats'
                    title: Statistics
                    type: array
                voyage_id:
                    title: Voyage Id
                    type: string
            required:
            - voyage_id
            - departure
            - arrival
            - statistics
            - samples
            title: VoyageInfo
            type: object
        VoyageStats:
            properties:
                data_source:
                    enum:
                    - sensors
                    - noon_reports
                    title: Data Source
                    type: string
                entrypoint:
                    title: Entrypoint
                    type: string
                metrics:
                    anyOf:
                    -   additionalProperties:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        type: object
                    -   type: 'null'
                    title: Metrics
                target:
                    title: Target
                    type: string
                total_predicted:
                    anyOf:
                    -   type: number
                    -   type: 'null'
                    title: Total Predicted
                total_reported:
                    title: Total Reported
                    type: number
            required:
            - data_source
            - entrypoint
            - target
            - total_reported
            title: VoyageStats
            type: object
        Waypoint:
            properties:
                datetime:
                    format: date-time
                    title: Datetime
                    type: string
                location:
                    $ref: '#/components/schemas/Location'
                port:
                    anyOf:
                    -   type: string
                    -   type: 'null'
                    title: Port
                sea_depth:
                    anyOf:
                    -   type: number
                    -   type: 'null'
                    title: Sea Depth
            required:
            - datetime
            - location
            title: Waypoint
            type: object
        WeatherData:
            additionalProperties: false
            properties:
                current_direction:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: "List of directions from which the currents are coming,\
                        \ in degrees true (\xB0T): north is at 0\xB0 and increases\
                        \ clockwise."
                    example:
                    - 222.3
                    - 50.6
                    title: Current Direction
                current_speed:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of current speed values in meter/second (m/s).
                    example:
                    - 1.3
                    - 2.0
                    title: Current Speed
                datetime:
                    description: List of datetimes. Datetime must be in ISO8601 format,
                        and must specify a timezone.
                    example:
                    - '2022-08-02T09:21:24+00:00'
                    - '2022-08-02T09:26:24+00:00'
                    items:
                        format: date-time
                        type: string
                    maxItems: 200000
                    title: Datetime
                    type: array
                lat:
                    description: "List of latitudes in decimal degrees format (DDD.DDDDD\xB0\
                        ). Positive values are north of the equator."
                    example:
                    - 24.69452
                    - 24.60452
                    items:
                        type: number
                    maxItems: 200000
                    title: Latitude
                    type: array
                lng:
                    description: "List of longitudes in decimal degrees format (DDD.DDDDD\xB0\
                        ). Positive values are east of the prime meridian."
                    example:
                    - 128.10483
                    - 128.20483
                    items:
                        type: number
                    maxItems: 200000
                    title: Latitude
                    type: array
                sea_depth:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: Sea Depth in meters (m).
                    example:
                    - 200.5
                    - 30.1
                    title: Sea Depth
                sea_surface_salinity:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of sea surface salinities in Practical Salinity
                        Units (PSU).
                    example:
                    - 35.5
                    - 33.0
                    title: Sea Surface Salinity
                sea_surface_temperature:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: "List of sea surface temperatures in degrees Celcius\
                        \ (\xB0C)."
                    example:
                    - 16.5
                    - 24.3
                    title: Sea Surface Temperature
                wave_direction:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: "List of directions from which the waves are coming,\
                        \ in degrees true (\xB0T): north is at 0\xB0 and increases\
                        \ clockwise."
                    example:
                    - 10.1
                    - 30.2
                    title: Wave Direction
                wave_height:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of significant wave heights in meter (m).
                    example:
                    - 2.3
                    - 3.6
                    title: Significant Wave Height
                wave_period:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of wave periods, in seconds (s).
                    example:
                    - 10.1
                    - 30.2
                    title: Wave Period
                wind_direction:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: "List of directions from which the wind is coming,\
                        \ in degrees true (\xB0T): north is at 0\xB0 and increases\
                        \ clockwise."
                    example:
                    - 222.3
                    - 30.6
                    title: Wind Direction
                wind_speed:
                    anyOf:
                    -   items:
                            anyOf:
                            -   type: number
                            -   type: 'null'
                        maxItems: 200000
                        type: array
                    -   type: 'null'
                    description: List of wind speed values in meter/seconds (m/s).
                    example:
                    - 2.3
                    - 3.6
                    title: Wind Speed
            required:
            - datetime
            - lat
            - lng
            title: WeatherData
            type: object
    securitySchemes:
        APIKeyHeader:
            in: header
            name: X-API-Key
            type: apiKey
        HTTPBearer:
            scheme: bearer
            type: http
externalDocs:
    description: API Documentation
    url: https://docs.toqua.ai
info:
    contact:
        email: info@toqua.ai
        name: Toqua
        url: https://toqua.ai/
    description: "# Introduction\nToqua's dynamic vessel performance models are data-driven\
        \ models capable of modelling a ship's main operational parameters in any\
        \ given condition, at any time during a vessel's lifetime.\nThese models allow\
        \ for great flexibility during simulation and analysis of a vessel's performance.\
        \ \n\nThe goal of this API is to allow users to manage, monitor and query\
        \ our models in an automated manner.\n\nIn order to be able to query the API,\
        \ some familiarity with Web APIs and OpenAPI specifications is required.\n\
        \n# Models\nA vessel performance model is always associated with a ship. The\
        \ reverse is not necessarily true, a ship may not yet have an associated model.\n\
        \nThe models require as input a single **main operational parameter** (the\
        \ \"entrypoint\") and a set of **conditioning parameters**.\nIt will output\
        \ the set of remaining main operational parameters.\n\n### Main operational\
        \ parameters\nThe main operational parameters are the drivers behind a ship's\
        \ performance. We can model the relationship between any of the following\
        \ parameters:\n* Speed Over Ground (SOG)\n* Speed Through Water (STW)\n* Main\
        \ Engine RPM (RPM)\n* Main Engine Shaft Power (ME Power)\n* Main Engine Fuel\
        \ Consumption (ME FO Consumption).\n\n### Conditioning parameters\nThe conditioning\
        \ parameters are parameters that influence the relation between the ship's\
        \ main operational parameters.\nThese consist of weather conditions and secondary\
        \ operational conditions. Some parameters are optional, when these are not\
        \ provided they will be filled in with sensible defaults.\n\n#### Weather\
        \ conditions\n* Wind speed and direction\n* Wave height and direction\n* Current\
        \ speed and direction\n* Sea surface salinity (optional)\n* Sea surface temperature\
        \ (optional)\n\n#### Operational conditions\n* Average draft\n* Trim (optional)\n\
        * Ship heading (optional)\n* Fuel specific energy (optional)\n* Date (optional)\n\
        \n# Using the API\nThe easiest way to start exploring our API endpoints is\
        \ by making use of the interactive OpenAPI UI, which let's you play with the\
        \ API in your browser. This UI can be found at [https://api.toqua.ai/docs](https://api.toqua.ai/docs).\n\
        \nTo demonstrate how to use the API, we'll handle a simple use case.\nThe\
        \ use case will be demonstrated using Python 3 with the [requests library](https://docs.python-requests.org/en/latest/).\
        \ It's also completely possible to follow along through the OpenAPI UI.\n\n\
        ### Use case\nWe have a VLCC vessel, Sofie. We want to know the effect of\
        \ the direction of the wind and waves on the required ME Power when the ship\
        \ is sailing at a STW of 12 knots. To do so, we setup a small experiment:\
        \ we create two conditions that are exactly same, except that in one condition\
        \ the wind and waves are coming from the rear, while in the other conditions\
        \ they are coming from ahead. \n\nThe conditions we use are as follows:\n\
        * draft of 21m\n* wind speed of 5m/s\n* wave height of 2m\n* currents of 0m/s\n\
        \nThe entrypoint parameter is:\n* STW of 12kn\n\nTo know the required power\
        \ usage we must feed these parameters into the model and see which predictions\
        \ come out.\n\n#### Step 0: Setup\nCreate a new script `predict.py` and enter\
        \ the following. `<your_api_key>` should be replaced by the API key provided\
        \ to you.\n\n```python\nimport requests\nimport json\n\nAPI_URL = \"https://api.toqua.ai\"\
        \nAPI_KEY = \"<your_api_key>\"\n```\n#### Step 1: Authentication\nIn order\
        \ to authenticate, we use the `X-API-Key` header (See the section on Authentication).\
        \ \n\nGET Requests using the requests library are executed using the `requests.get()`\
        \ function. Headers can be provided as a dictionary.\n\nAppend the following:\n\
        ```python\nheaders = {\"X-API-Key\": API_KEY}\nresponse = requests.get(API_URL\
        \ + \"/ships\", headers=headers)\nprint(response)\n```\nNow run `python prediction.py`.\
        \ \n\nYou should see `<Response [200]>`. Indeed, if you are authenticated\
        \ you should have access to the `/ships` endpoint, and an HTTP 200 status\
        \ code should be returned.\n\n#### Step 2: Get the ship's UUID\nIn order to\
        \ know which model to query, we must first know the ship's UUID. \nTo do so,\
        \ we can use the response we just got from the `/ships/` endpoint.\n\nAppend\
        \ the following to the script:\n```python\nresponse_dict = response.json()\n\
        print(json.dumps(response_dict, indent=4))\n```\n`json.dumps()` ensures that\
        \ our dictionary is pretty printed.\n\nYou should see a list of dictionaries.\
        \ Within it, one of the dictionaries should contain the vessel Sofie and its\
        \ UUID.\n```\n[{\n    \"uuid\": \"zYKFS8BGCQAricPjaPvoiu\",\n    \"name\"\
        : \"Sofie\",\n    \"imo_number\": 9501191,\n    \"type\": \"VLCC\"\n}]\n```\n\
        Sofie's UUID is `zYKFS8BGCQAricPjaPvoiu`.\n\n#### Step 3: Query the model\n\
        We have almost everything to query the model prediction endpoint, which is\
        \ located at `/ships/{ship_uuid}/models/latest/predict`.\n\nFirst, we form\
        \ the input data to the model:\n```python\ndata_json = {\n    \"stw\" : [12,\
        \ 12],\n    \"ship_heading\": [0, 0],\n    \"draft_avg\": [21, 21],\n    \"\
        wind_speed\": [5, 5],\n    \"wind_direction\": [0, 180],\n    \"wave_height\"\
        : [2, 2],\n    \"wave_direction\": [0, 180],\n    \"current_speed\": [0, 0],\n\
        \    \"current_direction\": [0, 0],\n}\n```\nAs we want to simulate two different\
        \ conditions, each array has a length of two, one index for each condition.\
        \ In the first condition, we set the wind and wave direction to 0 (wind is\
        \ coming from ahead). In the second condition we set it to 180 (wind is coming\
        \ from behind).\n\nAs our entrypoint is STW, we provide the `\"stw\"` key.\
        \ If we wanted to start from the ME Power, we would replace this with `\"\
        me_power\"`. The other possible parameters are `\"sog\"`, `\"me_rpm\"` and\
        \ `\"me_fo_consumption\"`.\nOnly one of these parameters should be provided.\
        \ In case more are provided, only the first will be used.\n\nNext, we can\
        \ execute our query, using a POST request to the model prediction endpoint.\
        \ \n```python\ninput_json = { \"data\": data_json }\nship_uuid = \"zYKFS8BGCQAricPjaPvoiu\"\
        \n\nresponse = requests.post(\n    API_URL + \"/ships/\" + ship_uuid + \"\
        /models/latest/predict\",\n    json=input_json,\n    headers=headers,\n)\n\
        response_dict = response.json()\nprint(json.dumps(response_dict, indent=4))\n\
        ```\nNote how the data should be wrapped in another dictionary with a `data`\
        \ key. We've also specified the ship UUID in the url.\n\nThe output should\
        \ now contain what we were looking for, the remaining main operational parameters:\n\
        \n```python\n{\n    \"sog\": [\n        12.0,\n        12.0\n    ],\n    \"\
        stw\": [\n        12.0,\n        12.0\n    ],\n    \"me_rpm\": [\n       \
        \ 58.32122926420918,\n        54.96103304157204\n    ],\n    \"me_power\"\
        : [\n        11636.4765625,\n        9319.2509765625\n    ],\n    \"me_fo_consumption\"\
        : [\n        51.36907837353128,\n        41.25132439418565\n    ]\n}\n```\n\
        \nFrom this output, we can see that when the wind and waves are coming from\
        \ ahead, the ship requires a shaft power of 11636. When it is coming from\
        \ behind, the ship requires a power of only 9319.\n\n# Authentication\nWe\
        \ allow two methods of authenticating users: API keys and HTTP Bearer tokens.\n\
        \n## API Keys\nAPI Key authorization is the mechanism to be used by external\
        \ applications. API keys will typically be long-lived, as such they should\
        \ be kept secret and treated like any other password. API keys cannot use\
        \ the `auth` endpoints. \n\nAuthorization is performed by providing the API\
        \ key in an `X-API-Key` header.\n\n## HTTP Bearer tokens\n\nHTTP Bearer token\
        \ authorization is the mechanism to be used for other types of clients. Depending\
        \ on the token scope, these tokens may provide access to all endpoints.\n\n\
        Bearer tokens must be obtained and refreshed through our identity provider.\n\
        \nAuthorization is performed by providing the bearer token in an `Authorization`\
        \ header, for example: `Authorization: Bearer <token>`.\n\n# Limitations\n\
        * Not all endpoints are operational yet. Non-operational endpoints will return\
        \ `501 Not Implemented`.\n* Predictions are limited to 9000 samples per request.\n\
        * No validation on the input data with regards to the operational range of\
        \ models is present yet. As such, predictions may be done outside of the range\
        \ on which models were trained."
    title: Toqua Vessel Model API
    version: '0.24'
openapi: 3.1.0
paths:
    /:
        get:
            operationId: docs_redirect__get
            responses:
                '200':
                    content:
                        application/json:
                            schema: {}
                    description: Successful Response
                '403':
                    description: Forbidden
                '404':
                    description: Not Found
                '501':
                    description: Not Implemented
            summary: Docs Redirect
            tags:
            - Docs
    /auth/keys:
        get:
            operationId: get_api_keys_auth_keys_get
            responses:
                '200':
                    content:
                        application/json:
                            schema:
                                items:
                                    $ref: '#/components/schemas/ApiKey'
                                title: Response Get Api Keys Auth Keys Get
                                type: array
                    description: Successful Response
                '404':
                    description: Not Found
            security:
            -   APIKeyHeader: []
            -   HTTPBearer: []
            summary: Get Api Keys
            tags:
            - Auth
        post:
            operationId: generate_api_key_auth_keys_post
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ApiKeyRequest'
                required: true
            responses:
                '201':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ApiKey'
                    description: Successful Response
                '404':
                    description: Not Found
                '422':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/HTTPValidationError'
                    description: Validation Error
            security:
            -   APIKeyHeader: []
            -   HTTPBearer: []
            summary: Generate Api Key
            tags:
            - Auth
    /auth/keys/{key_uuid}:
        delete:
            operationId: delete_api_key_auth_keys__key_uuid__delete
            parameters:
            -   in: path
                name: key_uuid
                required: true
                schema:
                    title: Key Uuid
                    type: string
            responses:
                '204':
                    description: Successful Response
                '404':
                    description: Not Found
                '422':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/HTTPValidationError'
                    description: Validation Error
            security:
            -   APIKeyHeader: []
            -   HTTPBearer: []
            summary: Delete Api Key
            tags:
            - Auth
    /data_health/summary:
        get:
            operationId: get_summary_data_health_summary_get
            parameters:
            -   in: query
                name: imo_number
                required: true
                schema:
                    title: Imo Number
                    type: string
            responses:
                '200':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/DataHealthSummary'
                    description: Successful Response
                '403':
                    description: Forbidden
                '404':
                    description: Not found
                '422':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/HTTPValidationError'
                    description: Validation Error
                '501':
                    description: Not Implemented
            security:
            -   APIKeyHeader: []
            -   HTTPBearer: []
            summary: Data Health Summary
            tags:
            - Data Health
    /openapi.yaml:
        get:
            operationId: openapi_yaml_openapi_yaml_get
            responses:
                '200':
                    content:
                        application/json:
                            schema: {}
                    description: Successful Response
                '403':
                    description: Forbidden
                '404':
                    description: Not Found
                '501':
                    description: Not Implemented
            summary: Openapi Yaml
            tags:
            - Docs
    /performance/:
        get:
            operationId: get_ship_performance_for_all_ships_performance__get
            responses:
                '200':
                    content:
                        application/json:
                            schema:
                                items:
                                    $ref: '#/components/schemas/PerformanceObject'
                                title: Response Get Ship Performance For All Ships
                                    Performance  Get
                                type: array
                    description: Successful Response
                '404':
                    description: Not Found
                '501':
                    description: Not Implemented
            security:
            -   APIKeyHeader: []
            -   HTTPBearer: []
            summary: Retrieve all ship performance data
            tags:
            - Performance
    /performance/{ship_uuid_or_imo}:
        get:
            operationId: get_ship_performance_performance__ship_uuid_or_imo__get
            parameters:
            -   in: path
                name: ship_uuid_or_imo
                required: true
                schema:
                    title: Ship Uuid Or Imo
                    type: string
            responses:
                '200':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PerformanceObject'
                    description: Successful Response
                '404':
                    description: Not Found
                '422':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/HTTPValidationError'
                    description: Validation Error
                '501':
                    description: Not Implemented
            security:
            -   APIKeyHeader: []
            -   HTTPBearer: []
            summary: Retrieve ship performance data
            tags:
            - Performance
    /performance/{ship_uuid_or_imo}/data:
        get:
            operationId: get_ship_performance_data_performance__ship_uuid_or_imo__data_get
            parameters:
            -   in: path
                name: ship_uuid_or_imo
                required: true
                schema:
                    title: Ship Uuid Or Imo
                    type: string
            -   in: query
                name: rolling_average
                required: false
                schema:
                    default: false
                    title: Rolling Average
                    type: boolean
            responses:
                '200':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PerformanceDataset'
                    description: Successful Response
                '404':
                    description: Not Found
                '422':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/HTTPValidationError'
                    description: Validation Error
                '501':
                    description: Not Implemented
            security:
            -   APIKeyHeader: []
            -   HTTPBearer: []
            summary: Retrieve ship performance dataset data
            tags:
            - Performance
    /ships/:
        get:
            operationId: get_ships_ships__get
            responses:
                '200':
                    content:
                        application/json:
                            schema:
                                items:
                                    $ref: '#/components/schemas/Ship'
                                title: Response Get Ships Ships  Get
                                type: array
                    description: Successful Response
                '403':
                    description: Forbidden
                '404':
                    description: Not Found
                '501':
                    description: Not Implemented
            security:
            -   APIKeyHeader: []
            -   HTTPBearer: []
            summary: Retrieve a list of all ships
            tags:
            - Ships
        post:
            operationId: create_ship_ships__post
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ShipCreationModel'
                required: true
            responses:
                '201':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Ship'
                    description: Successful Response
                '403':
                    description: Forbidden
                '404':
                    description: Not Found
                '422':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/HTTPValidationError'
                    description: Validation Error
                '501':
                    description: Not Implemented
            security:
            -   APIKeyHeader: []
            -   HTTPBearer: []
            summary: Add a new ship
            tags:
            - Ships
    /ships/{ship_uuid_or_imo}:
        get:
            operationId: get_ship_ships__ship_uuid_or_imo__get
            parameters:
            -   in: path
                name: ship_uuid_or_imo
                required: true
                schema:
                    title: Ship Uuid Or Imo
                    type: string
            responses:
                '200':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Ship'
                    description: Successful Response
                '403':
                    description: Forbidden
                '404':
                    description: Not Found
                '422':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/HTTPValidationError'
                    description: Validation Error
                '501':
                    description: Not Implemented
            security:
            -   APIKeyHeader: []
            -   HTTPBearer: []
            summary: Retrieve a single ship
            tags:
            - Ships
    /ships/{ship_uuid_or_imo}/data/events:
        post:
            operationId: ingest_events_data_ships__ship_uuid_or_imo__data_events_post
            parameters:
            -   in: path
                name: ship_uuid_or_imo
                required: true
                schema:
                    title: Ship Uuid Or Imo
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/EventData'
                required: true
            responses:
                '201':
                    content:
                        application/json:
                            schema: {}
                    description: OK
                '422':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/HTTPValidationError'
                    description: Validation Error
                '501':
                    description: Not Implemented
            security:
            -   APIKeyHeader: []
            -   HTTPBearer: []
            summary: Ingest event data
            tags:
            - Data
    /ships/{ship_uuid_or_imo}/data/noonreports:
        get:
            operationId: get_noon_report_data_ships__ship_uuid_or_imo__data_noonreports_get
            parameters:
            -   in: path
                name: ship_uuid_or_imo
                required: true
                schema:
                    title: Ship Uuid Or Imo
                    type: string
            responses:
                '200':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetNoonReportDataReponse'
                    description: Successful Response
                '201':
                    description: OK
                '422':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/HTTPValidationError'
                    description: Validation Error
                '501':
                    description: Not Implemented
            security:
            -   APIKeyHeader: []
            -   HTTPBearer: []
            summary: Get noon report data
            tags:
            - Data
        post:
            operationId: ingest_noon_reports_ships__ship_uuid_or_imo__data_noonreports_post
            parameters:
            -   in: path
                name: ship_uuid_or_imo
                required: true
                schema:
                    title: Ship Uuid Or Imo
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/NoonReportData'
                required: true
            responses:
                '201':
                    content:
                        application/json:
                            schema: {}
                    description: OK
                '422':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/HTTPValidationError'
                    description: Validation Error
                '501':
                    description: Not Implemented
            security:
            -   APIKeyHeader: []
            -   HTTPBearer: []
            summary: Ingest noon report data
            tags:
            - Data
    /ships/{ship_uuid_or_imo}/data/seatrials:
        get:
            operationId: get_sea_trial_data_ships__ship_uuid_or_imo__data_seatrials_get
            parameters:
            -   in: path
                name: ship_uuid_or_imo
                required: true
                schema:
                    title: Ship Uuid Or Imo
                    type: string
            responses:
                '200':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetSeaTrialDataResponse'
                    description: Successful Response
                '201':
                    description: OK
                '422':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/HTTPValidationError'
                    description: Validation Error
                '501':
                    description: Not Implemented
            security:
            -   APIKeyHeader: []
            -   HTTPBearer: []
            summary: Get sea trial data
            tags:
            - Data
    /ships/{ship_uuid_or_imo}/data/sensors:
        get:
            operationId: get_sensor_data_ships__ship_uuid_or_imo__data_sensors_get
            parameters:
            -   in: path
                name: ship_uuid_or_imo
                required: true
                schema:
                    title: Ship Uuid Or Imo
                    type: string
            responses:
                '200':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetSensorDataResponse'
                    description: Successful Response
                '201':
                    description: OK
                '422':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/HTTPValidationError'
                    description: Validation Error
                '501':
                    description: Not Implemented
            security:
            -   APIKeyHeader: []
            -   HTTPBearer: []
            summary: Get sensor data
            tags:
            - Data
        post:
            operationId: ingest_sensor_data_ships__ship_uuid_or_imo__data_sensors_post
            parameters:
            -   in: path
                name: ship_uuid_or_imo
                required: true
                schema:
                    title: Ship Uuid Or Imo
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SensorData'
                required: true
            responses:
                '201':
                    content:
                        application/json:
                            schema: {}
                    description: OK
                '422':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/HTTPValidationError'
                    description: Validation Error
                '501':
                    description: Not Implemented
            security:
            -   APIKeyHeader: []
            -   HTTPBearer: []
            summary: Ingest sensor data
            tags:
            - Data
    /ships/{ship_uuid_or_imo}/data/weather:
        post:
            operationId: ingest_weather_data_ships__ship_uuid_or_imo__data_weather_post
            parameters:
            -   in: path
                name: ship_uuid_or_imo
                required: true
                schema:
                    title: Ship Uuid Or Imo
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/WeatherData'
                required: true
            responses:
                '201':
                    content:
                        application/json:
                            schema: {}
                    description: OK
                '422':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/HTTPValidationError'
                    description: Validation Error
                '501':
                    description: Not Implemented
            security:
            -   APIKeyHeader: []
            -   HTTPBearer: []
            summary: Ingest weather data
            tags:
            - Data
    /ships/{ship_uuid_or_imo}/models/latest/grid:
        post:
            description: 'Used for routing.


                Start an asynchronous job to create either a single end-to-end grid,
                or three grids: one per subrelation. Each grid dimension  is specified
                by a set of parameter values. Once the job is finished, a file containing
                the grids can be retrieved from the file endpoint. The maximum grid
                size is 5000000 rows.'
            operationId: create_grid_ships__ship_uuid_or_imo__models_latest_grid_post
            parameters:
            -   in: path
                name: ship_uuid_or_imo
                required: true
                schema:
                    title: Ship Uuid Or Imo
                    type: string
            -   in: query
                name: model_type
                required: false
                schema:
                    default: ''
                    title: Model Type
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ModelGridSpecification'
                required: true
            responses:
                '201':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ModelGridJobStatus'
                    description: Successful Response
                '404':
                    description: Not Found
                '422':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/HTTPValidationError'
                    description: Validation Error
                '501':
                    description: Not Implemented
            security:
            -   APIKeyHeader: []
            -   HTTPBearer: []
            summary: Start a grid creation job
            tags:
            - Models
    /ships/{ship_uuid_or_imo}/models/latest/grid/{job_id}:
        get:
            description: 'Used for routing.


                When the grid creation job is finished, this endpoint will return
                a .zip file containing the requested grids as .csv files, together
                with a `metadata.json` file. The `metadata.json` file will contain
                the filenames of each grid, together with the type of grid. It adheres
                to the schema of [ModelGridFilesDescription](https://api.toqua.ai/openapi.json#/components/schemas/ModelGridFilesDescription).
                It can be used to automate the process of fetching the correct grid
                file.'
            operationId: fetch_grid_ships__ship_uuid_or_imo__models_latest_grid__job_id__get
            parameters:
            -   in: path
                name: ship_uuid_or_imo
                required: true
                schema:
                    title: Ship Uuid Or Imo
                    type: string
            -   in: path
                name: job_id
                required: true
                schema:
                    title: Job Id
                    type: string
            responses:
                '200':
                    content:
                        application/x-zip-compressed:
                            schema:
                                type: string
                    description: Successful Response
                '404':
                    description: Not Found
                '422':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/HTTPValidationError'
                    description: Validation Error
                '501':
                    description: Not Implemented
            security:
            -   APIKeyHeader: []
            -   HTTPBearer: []
            summary: Retrieve the output of the grid creation job.
            tags:
            - Models
    /ships/{ship_uuid_or_imo}/models/latest/grid/{job_id}/status:
        get:
            operationId: poll_grid_creation_status
            parameters:
            -   in: path
                name: ship_uuid_or_imo
                required: true
                schema:
                    title: Ship Uuid Or Imo
                    type: string
            -   in: path
                name: job_id
                required: true
                schema:
                    title: Job Id
                    type: string
            responses:
                '200':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ModelGridJobStatus'
                    description: Successful Response
                '404':
                    description: Not Found
                '422':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/HTTPValidationError'
                    description: Validation Error
                '501':
                    description: Not Implemented
            security:
            -   APIKeyHeader: []
            -   HTTPBearer: []
            summary: Poll a grid creation job's status
            tags:
            - Models
    /ships/{ship_uuid_or_imo}/models/latest/metadata:
        get:
            operationId: get_model_metadata_ships__ship_uuid_or_imo__models_latest_metadata_get
            parameters:
            -   in: path
                name: ship_uuid_or_imo
                required: true
                schema:
                    title: Ship Uuid Or Imo
                    type: string
            -   in: query
                name: model_type
                required: false
                schema:
                    default: ''
                    title: Model Type
                    type: string
            responses:
                '200':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ModelMetaData'
                    description: Successful Response
                '404':
                    description: Not Found
                '422':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/HTTPValidationError'
                    description: Validation Error
                '501':
                    description: Not Implemented
            security:
            -   APIKeyHeader: []
            -   HTTPBearer: []
            summary: Retrieve a model's metadata
            tags:
            - Models
    /ships/{ship_uuid_or_imo}/models/latest/predict:
        post:
            operationId: execute_model_prediction
            parameters:
            -   in: path
                name: ship_uuid_or_imo
                required: true
                schema:
                    title: Ship Uuid Or Imo
                    type: string
            -   in: query
                name: model_type
                required: false
                schema:
                    default: ''
                    title: Model Type
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/PredictionInput'
                required: true
            responses:
                '200':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PredictionOutput'
                    description: Successful Response
                '404':
                    description: Not Found
                '422':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/HTTPValidationError'
                    description: Validation Error
                '501':
                    description: Not Implemented
            security:
            -   APIKeyHeader: []
            -   HTTPBearer: []
            summary: Execute a model prediction
            tags:
            - Models
    /ships/{ship_uuid_or_imo}/voyages:
        get:
            operationId: get_voyage_metrics_ships__ship_uuid_or_imo__voyages_get
            parameters:
            -   in: path
                name: ship_uuid_or_imo
                required: true
                schema:
                    title: Ship Uuid Or Imo
                    type: string
            responses:
                '200':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/VoyageCollection'
                    description: Successful Response
                '403':
                    description: Forbidden
                '404':
                    description: Not Found
                '422':
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/HTTPValidationError'
                    description: Validation Error
                '501':
                    description: Not Implemented
            security:
            -   APIKeyHeader: []
            -   HTTPBearer: []
            summary: Get Voyage Metrics
            tags:
            - Voyages
servers:
-   description: Toqua API
    url: https://api.toqua.ai
tags:
-   description: Operations regarding ships.
    name: ships
-   description: Operations regarding ship models.
    name: models
-   description: Operations regarding data ingestion and retrieval.
    name: data
-   description: Operations regarding authentication and authorization.
    name: auth
