{
  "openapi": "3.0.1",
  "info": {
    "title": "Kystdatahuset Open API",
    "description": "Web Service API for open and authorized access to data from the Norwegian Coastal Administration (Kystverket).",
    "termsOfService": "https://kystdatahuset.no/artikkel/api-tilgang",
    "contact": {
      "name": "The Norwegian Coastal Administration (Kystverket)",
      "url": "https://kystverket.no",
      "email": "support.kystdatahuset@kystverket.no"
    },
    "license": {
      "name": "Norwegian Licence for Open Government Data (NLOD) 1.0",
      "url": "https://data.norge.no/nlod/en/1.0"
    },
    "version": "v1"
  },
  "servers": [
    {
      "url": "/ws"
    }
  ],
  "paths": {
    "/api/ais_shipreg/statinfo/for-mmsis-time": {
      "post": {
        "tags": [
          "Ais"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.MmsiYearRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.MmsiYearRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.MmsiYearRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.GeoAisDBStatMsg, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.GeoAisDBStatMsg, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.GeoAisDBStatMsg, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/ais/positions/before-after": {
      "post": {
        "tags": [
          "Ais"
        ],
        "summary": "Get the preceding and following AIS position message for a ship on a given date",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.MmsiDateLonLatRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.MmsiDateLonLatRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.MmsiDateLonLatRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KDataAPI3.Models.PosMsgAboveBelow"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KDataAPI3.Models.PosMsgAboveBelow"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KDataAPI3.Models.PosMsgAboveBelow"
                }
              }
            }
          }
        }
      }
    },
    "/api/ais/positions/for-mmsi-date": {
      "post": {
        "tags": [
          "Ais"
        ],
        "summary": "Get all position for a ship identified by its MMSI on a given date",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.MmsiDateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.MmsiDateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.MmsiDateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/KDataAPI3.Models.GeoAisDB.PosMsg"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/KDataAPI3.Models.GeoAisDB.PosMsg"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/KDataAPI3.Models.GeoAisDB.PosMsg"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/ais/positions/for-mmsis-time": {
      "post": {
        "tags": [
          "Ais"
        ],
        "summary": "HttpPost web service to retrieve AIS positions by supplying a set of\r\nMMSI ids and a time span",
        "requestBody": {
          "description": "Request object",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.MmsiTimeStringMinSpeedRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.MmsiTimeStringMinSpeedRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.MmsiTimeStringMinSpeedRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.ResponseModels.GeoAisDbPositionArray"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.ResponseModels.GeoAisDbPositionArray"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.ResponseModels.GeoAisDbPositionArray"
                }
              }
            }
          }
        }
      }
    },
    "/api/ais/positions/within-bbox-time": {
      "post": {
        "tags": [
          "Ais"
        ],
        "summary": "HttpPost web service to retrieve AIS positions by supplying a BBox and a time span",
        "description": "This web service queries the original GeoAisDB PostgreSQL servers in sequence before\r\nreturning a response. Queries can be quite slow, particularly when involving several servers\r\nas many connections have to be made to many tables",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.BboxTimeMinSpeedRequest"
              },
              "example": {"bbox":"5.28682157,59.78800673,5.33535137,59.83483231","start":"201801011200","end":"201801031200","minSpeed":0.5}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.BboxTimeMinSpeedRequest"
              },
              "example": {"bbox":"5.28682157,59.78800673,5.33535137,59.83483231","start":"201801011200","end":"201801031200","minSpeed":0.5}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.BboxTimeMinSpeedRequest"
              },
              "example": {"bbox":"5.28682157,59.78800673,5.33535137,59.83483231","start":"201801011200","end":"201801031200","minSpeed":0.5}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.ResponseModels.GeoAisDbPositionArray"
                },
                "example": {"success":true,"msg":"","data":[["mmsi: integer","date time utc: date","longitude: double","latitude: double","course over ground: double","speed over ground: double","AIS message number: integer","calc_speed: kph","seconds to previous point: double","distance to previous point: double","true heading: double","rate of turn: double"]],"time":0}
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.ResponseModels.GeoAisDbPositionArray"
                },
                "example": {"success":true,"msg":"","data":[["mmsi: integer","date time utc: date","longitude: double","latitude: double","course over ground: double","speed over ground: double","AIS message number: integer","calc_speed: kph","seconds to previous point: double","distance to previous point: double","true heading: double","rate of turn: double"]],"time":0}
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.ResponseModels.GeoAisDbPositionArray"
                },
                "example": {"success":true,"msg":"","data":[["mmsi: integer","date time utc: date","longitude: double","latitude: double","course over ground: double","speed over ground: double","AIS message number: integer","calc_speed: kph","seconds to previous point: double","distance to previous point: double","true heading: double","rate of turn: double"]],"time":0}
              }
            }
          }
        }
      }
    },
    "/api/ais/positions/within-geom-time": {
      "post": {
        "tags": [
          "Ais"
        ],
        "summary": "HttpPost web service to retrieve AIS positions by supplying a BBox and a time span",
        "description": "This web service queries the original GeoAisDB PostgreSQL servers in sequence before\r\nreturning a response. Queries that spans several days can be quite slow, queries spanning\r\nseveral years are likely to fail",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.GeomTimeMinSpeedRequest"
              },
              "example": {"geom":"POLYGON((10.70989529773572 59.91924654302827,10.778388187140017 59.91924654302827,10.778388187140017 59.89376889064814,10.70989529773572 59.89376889064814,10.70989529773572 59.91924654302827))","start":"2018-01-01T12:00:00","end":"2018-01-01T13:00:00","minSpeed":0.5}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.GeomTimeMinSpeedRequest"
              },
              "example": {"geom":"POLYGON((10.70989529773572 59.91924654302827,10.778388187140017 59.91924654302827,10.778388187140017 59.89376889064814,10.70989529773572 59.89376889064814,10.70989529773572 59.91924654302827))","start":"2018-01-01T12:00:00","end":"2018-01-01T13:00:00","minSpeed":0.5}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.GeomTimeMinSpeedRequest"
              },
              "example": {"geom":"POLYGON((10.70989529773572 59.91924654302827,10.778388187140017 59.91924654302827,10.778388187140017 59.89376889064814,10.70989529773572 59.89376889064814,10.70989529773572 59.91924654302827))","start":"2018-01-01T12:00:00","end":"2018-01-01T13:00:00","minSpeed":0.5}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.ResponseModels.GeoAisDbPositionArray"
                },
                "example": {"success":true,"msg":"","data":[["mmsi: integer","date time utc: date","longitude: double","latitude: double","course over ground: double","speed over ground: double","AIS message number: integer","calc_speed: kph","seconds to previous point: double","distance to previous point: double","true heading: double","rate of turn: double"]],"time":0}
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.ResponseModels.GeoAisDbPositionArray"
                },
                "example": {"success":true,"msg":"","data":[["mmsi: integer","date time utc: date","longitude: double","latitude: double","course over ground: double","speed over ground: double","AIS message number: integer","calc_speed: kph","seconds to previous point: double","distance to previous point: double","true heading: double","rate of turn: double"]],"time":0}
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.ResponseModels.GeoAisDbPositionArray"
                },
                "example": {"success":true,"msg":"","data":[["mmsi: integer","date time utc: date","longitude: double","latitude: double","course over ground: double","speed over ground: double","AIS message number: integer","calc_speed: kph","seconds to previous point: double","distance to previous point: double","true heading: double","rate of turn: double"]],"time":0}
              }
            }
          }
        }
      }
    },
    "/api/ais/realtime/geojson": {
      "get": {
        "tags": [
          "AisRealTime"
        ],
        "summary": "Return GeoJSON for all ships in real time",
        "description": "If called without parameters, this service will return all ships that have reported positions within the last 10 minutes.\r\n\r\nIf called with filters for aisShipType or timeStamp, older data may be available - but positions are wiped after 20 minutes",
        "parameters": [
          {
            "name": "timeStamp",
            "in": "query",
            "description": "A time stamp formatted as an ISO string in UTC time zone",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2024-06-26T06:00"
          },
          {
            "name": "aisShipType",
            "in": "query",
            "description": "A number corresponding to this code list: [AIS ship types](https://api.vtexplorer.com/docs/ref-aistypes.html)",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": null
            },
            "example": 71
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KDataAPI3.Models.GeoJson.FeatureCollection`2[[KDataAPI3.Models.Realtime.LatestPositions, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[KDataAPI3.Models.GeoJson.LineStringGeometry, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KDataAPI3.Models.GeoJson.FeatureCollection`2[[KDataAPI3.Models.Realtime.LatestPositions, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[KDataAPI3.Models.GeoJson.LineStringGeometry, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KDataAPI3.Models.GeoJson.FeatureCollection`2[[KDataAPI3.Models.Realtime.LatestPositions, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[KDataAPI3.Models.GeoJson.LineStringGeometry, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/ais/realtime/vessels-by-type": {
      "get": {
        "tags": [
          "AisRealTime"
        ],
        "summary": "Return a dataset showing the number of active vessels during the last minute",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/ais/sailed-distance/admin/dates": {
      "post": {
        "tags": [
          "Ais"
        ],
        "summary": "Get aggregated sailed distance (nmi) grouped by ship type, ship length, gt and dwt group for country and time-period (whole months)",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToDateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToDateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToDateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.AggSailedDistanceResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.AggSailedDistanceResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.AggSailedDistanceResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/ais/sailed-distance/fvpomr": {
      "post": {
        "tags": [
          "Ais"
        ],
        "summary": "Get aggregated sailed distance (nmi) grouped by ship type, ship length, gt and dwt group for \"forvaltningsplanområder\"",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToDateAreaRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToDateAreaRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToDateAreaRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.AggSailedDistanceResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.AggSailedDistanceResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.AggSailedDistanceResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/ais/sailed-distance/grunnlinje": {
      "post": {
        "tags": [
          "Ais"
        ],
        "summary": "Get aggregated sailed distance (nmi) grouped by ship type, ship length, gt and dwt group for \"spesielt viktige områder\"",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToDateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToDateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToDateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.AggSailedDistanceResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.AggSailedDistanceResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.AggSailedDistanceResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/ais/sailed-distance/municipality": {
      "post": {
        "tags": [
          "Ais"
        ],
        "summary": "Get aggregated sailed distance (nmi) grouped by ship type, ship length, gt and dwt group for municipalities",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToDateAreaRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToDateAreaRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToDateAreaRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.AggSailedDistanceResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.AggSailedDistanceResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.AggSailedDistanceResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/ais/sailed-distance/municipality-fairway": {
      "post": {
        "tags": [
          "Ais"
        ],
        "summary": "Get aggregated sailed distance (nmi) grouped by ship type, ship length, gt and dwt group for municipalities grouped by major and minor fairways",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToDateAreaRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToDateAreaRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToDateAreaRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.AggSailedDistanceResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.AggSailedDistanceResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.AggSailedDistanceResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/ais/sailed-distance/svoomr": {
      "post": {
        "tags": [
          "Ais"
        ],
        "summary": "Get aggregated sailed distance (nmi) grouped by ship type, ship length, gt and dwt group for \"spesielt viktige områder\"",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToDateAreaRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToDateAreaRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToDateAreaRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.AggSailedDistanceResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.AggSailedDistanceResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.AggSailedDistanceResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/ais/static-messages": {
      "get": {
        "tags": [
          "AisStatic"
        ],
        "summary": "Download a set of unique static data records (approximating AIS messages 5 and 24) for ships in a time period",
        "description": "One record per ship (MMSI) and distinct set of values, with the period it was valid. Consecutive registry\r\nversions with identical values are merged.\r\nMapping: User ID = mmsi, IMO number = imo_ais (else imo_spglobal), Call sign = call_sign, Name = ship_name,\r\nType of ship = ais_ship_type, dimensions A/B/C/D = to_bow/to_stern/to_port/to_starboard, draught = draught.\r\nETA, destination, DTE, EPFS type and AIS version are not available in the registry.\r\nAnonymous and non-privileged users do not get non-public ships (e.g. small fishing vessels and pleasure craft).",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "description": "Start of period (UTC). Earliest 2016-01-01",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "end",
            "in": "query",
            "description": "End of period (UTC). At the latest the start of the current month (i.e. the previous month is the last complete month)",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "mmsi",
            "in": "query",
            "description": "Optional MMSI numbers, repeat the parameter for several: mmsi=1&mmsi=2",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of records (default 100000, max 500000)",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": null
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.AisStaticRecord, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.AisStaticRecord, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.AisStaticRecord, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/ais/statinfo/for-mmsis-time": {
      "post": {
        "tags": [
          "Ais"
        ],
        "summary": "Get AIS static information messages for specified MMSI ids\r\nwithin a period of time",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.MmsiTimeStringRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.MmsiTimeStringRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.MmsiTimeStringRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.GeoAisDBStatMsg, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.GeoAisDBStatMsg, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.GeoAisDBStatMsg, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/ais/statinfo/ships/free-text-time": {
      "post": {
        "tags": [
          "Ais"
        ],
        "summary": "Search for mmsis from AIS static information messages within a time span, limited to 5 days due to need to traverse multiple tables",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.RequestModels.FreeTextTimeRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.RequestModels.FreeTextTimeRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.RequestModels.FreeTextTimeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.ResponseModels.GeoAisDbFreeText"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.ResponseModels.GeoAisDbFreeText"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.ResponseModels.GeoAisDbFreeText"
                }
              }
            }
          }
        }
      }
    },
    "/api/ais/yearly-stats/{fromYear}/{toYear}": {
      "post": {
        "tags": [
          "Ais"
        ],
        "summary": "Load annual message statistics for Kystverkets AIS database",
        "parameters": [
          {
            "name": "fromYear",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "toYear",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/anchorage/anchorage/by-dokid-dokstatus": {
      "post": {
        "tags": [
          "Anchorage"
        ],
        "summary": "Return anchorage data for a single anchorage location identified by its dok_id and dok_status\r\nwithin a set time-period",
        "requestBody": {
          "description": "Dok_id and dok_status pairs as well as  and time from-to",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.DokIdStatusTimeRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.DokIdStatusTimeRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.DokIdStatusTimeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/anchorage/anchorage/for-sysid-time": {
      "post": {
        "tags": [
          "Anchorage"
        ],
        "summary": "Return anchorage data for a single anchorage location identified by its anchorage area id\r\nThat is used to resolve its dok_id and dok_status\r\nThe data is then returned by forwarding the call to GetAnchorageForLocationTime2",
        "requestBody": {
          "description": "Dok_id and dok_status pairs as well as  and time from-to",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.AnchorageSysIdTimeRequest"
              },
              "example": {"anchorageSysIds":[53],"startTime":"2020-01-01T00:00:00","endTime":"2020-03-01T00:00:00"}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.AnchorageSysIdTimeRequest"
              },
              "example": {"anchorageSysIds":[53],"startTime":"2020-01-01T00:00:00","endTime":"2020-03-01T00:00:00"}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.AnchorageSysIdTimeRequest"
              },
              "example": {"anchorageSysIds":[53],"startTime":"2020-01-01T00:00:00","endTime":"2020-03-01T00:00:00"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/anchorage/area/geojson": {
      "post": {
        "tags": [
          "Anchorage"
        ],
        "summary": "Return info about anchorage area",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.AnchorageSysIdRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.AnchorageSysIdRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.AnchorageSysIdRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/anchorage/area/geojson/by-dokid-dokstatus": {
      "post": {
        "tags": [
          "Anchorage"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.DokIdStatusRequest"
              },
              "example": {"dokId":5025,"dokStatus":"P"}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.DokIdStatusRequest"
              },
              "example": {"dokId":5025,"dokStatus":"P"}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.DokIdStatusRequest"
              },
              "example": {"dokId":5025,"dokStatus":"P"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/anchorage/areas": {
      "get": {
        "tags": [
          "Anchorage"
        ],
        "summary": "Return all anchorage areas as a list of ids and names (labels)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/anchorage/duration-by-year-and-id": {
      "post": {
        "tags": [
          "Anchorage"
        ],
        "summary": "Return summed anchorage duration for all anchorage locations by year",
        "requestBody": {
          "description": "from year and to years",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.AnchorageDurationRequest"
              },
              "example": {"startYear":2022,"endYear":2025}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.AnchorageDurationRequest"
              },
              "example": {"startYear":2022,"endYear":2025}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.AnchorageDurationRequest"
              },
              "example": {"startYear":2022,"endYear":2025}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/anchorage/for-location-time2": {
      "post": {
        "tags": [
          "Anchorage"
        ],
        "summary": "Return anchorage data for a specific anchorage location and time-period",
        "requestBody": {
          "description": "Anchorage locations specified as dok_id/dok_status pairs witihin time from-to periods",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.AnchorageDokIdStatusTimeRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.AnchorageDokIdStatusTimeRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.AnchorageDokIdStatusTimeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/auth/federated-login": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Login with a token issued by a federated identity provider for Kystverket-internal employees\r\nto retrieve a JWT-token for consequtive requests.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.FederatedLoginRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.FederatedLoginRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.FederatedLoginRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/auth/identities/link": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Associate a new identity (e.g. a different login provider) with the calling user's own\r\nexisting account. Self-service - the caller must already have an auth.users record, i.e.\r\nmust have logged in at least once before. (Auth)",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.LinkIdentityRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.LinkIdentityRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.LinkIdentityRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/auth/login": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Login with Kystinfo.no credentials to retrieve a JWT-token for consequtive requests",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.AuthRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.AuthRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.AuthRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/auth/roles": {
      "get": {
        "tags": [
          "Auth"
        ],
        "summary": "List all roles. Kystverket-internal only. (Auth)",
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Create a role, or update its description if it already exists. Kystverket-internal only. (Auth)",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.UpsertRoleRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.UpsertRoleRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.UpsertRoleRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/auth/roles/{roleName}": {
      "delete": {
        "tags": [
          "Auth"
        ],
        "summary": "Soft delete a role. Kystverket-internal only. (Auth)",
        "parameters": [
          {
            "name": "roleName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/auth/users": {
      "get": {
        "tags": [
          "Auth"
        ],
        "summary": "Search users by email or display name. Kystverket-internal only. (Auth)",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/auth/users/{id}": {
      "get": {
        "tags": [
          "Auth"
        ],
        "summary": "Get a single user along with their assigned roles. Kystverket-internal only. (Auth)",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/auth/users/{id}/roles": {
      "post": {
        "tags": [
          "Auth"
        ],
        "summary": "Assign a role (creating it if it doesn't already exist) to a user. Kystverket-internal only. (Auth)",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.AssignRoleRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.AssignRoleRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.AssignRoleRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/auth/users/{id}/roles/{roleName}": {
      "delete": {
        "tags": [
          "Auth"
        ],
        "summary": "Revoke a role from a user. Kystverket-internal only. (Auth)",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "roleName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/bunkers": {
      "post": {
        "tags": [
          "Bunkers"
        ],
        "summary": "Retrieve voyages carrying bunkers",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToDateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToDateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToDateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.Bunkers, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.Bunkers, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.Bunkers, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/kystinfo/norvts-incidents": {
      "post": {
        "tags": [
          "Incident"
        ],
        "summary": "Get all incident data from Nor VTS",
        "description": "",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToTimeRequest"
              },
              "example": {"startTime":"2018-01-01T00:00:00","endTime":"2018-01-31T23:59:59"}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToTimeRequest"
              },
              "example": {"startTime":"2018-01-01T00:00:00","endTime":"2018-01-31T23:59:59"}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToTimeRequest"
              },
              "example": {"startTime":"2018-01-01T00:00:00","endTime":"2018-01-31T23:59:59"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/kystinfo/norvts-incidents-public": {
      "post": {
        "tags": [
          "Incident"
        ],
        "summary": "Get public incident data from Nor VTS",
        "description": "",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToTimeRequest"
              },
              "example": {"startTime":"2018-01-01T00:00:00","endTime":"2018-01-31T23:59:59"}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToTimeRequest"
              },
              "example": {"startTime":"2018-01-01T00:00:00","endTime":"2018-01-31T23:59:59"}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToTimeRequest"
              },
              "example": {"startTime":"2018-01-01T00:00:00","endTime":"2018-01-31T23:59:59"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/location/all": {
      "get": {
        "tags": [
          "Location"
        ],
        "summary": "Get all locations with SafeSeaNet voyags from NewShipRep",
        "description": "Returns all locations that have associated voyages from NewShipRep as a JSON array of location objects",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.Location, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.Location, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.Location, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Location"
        ],
        "summary": "Get all locations with SafeSeaNet voyags from NewShipRep",
        "description": "Returns all locations that have associated voyages from NewShipRep as a JSON array of location objects",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.Location, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.Location, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.Location, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/location/connections/for-locations": {
      "post": {
        "tags": [
          "Location"
        ],
        "summary": "Get all locations that are connected to the specified locations through\r\neither arrivals or departures.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.LocationIdsRequest"
              },
              "example": {"locationIds":[2327949,2327923,2328099]}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.LocationIdsRequest"
              },
              "example": {"locationIds":[2327949,2327923,2328099]}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.LocationIdsRequest"
              },
              "example": {"locationIds":[2327949,2327923,2328099]}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                },
                "example": {"success":true,"msg":"That went well","data":{},"time":0}
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                },
                "example": {"success":true,"msg":"That went well","data":{},"time":0}
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                },
                "example": {"success":true,"msg":"That went well","data":{},"time":0}
              }
            }
          }
        }
      }
    },
    "/api/location/counties": {
      "get": {
        "tags": [
          "Location"
        ],
        "summary": "Get all counties from NewShipRep location table",
        "description": "Returns all counties from NewShipRep as a JSON array of county objects",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.County, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.County, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.County, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Location"
        ],
        "summary": "Get all counties from NewShipRep location table",
        "description": "Returns all counties from NewShipRep as a JSON array of county objects",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.County, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.County, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.County, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/location/for-locations": {
      "post": {
        "tags": [
          "Location"
        ],
        "summary": "Get information about locations with specified identifiers",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.LocationIdsRequest"
              },
              "example": {"locationIds":[2327949,2327923,2328099]}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.LocationIdsRequest"
              },
              "example": {"locationIds":[2327949,2327923,2328099]}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.LocationIdsRequest"
              },
              "example": {"locationIds":[2327949,2327923,2328099]}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/location/free-text": {
      "post": {
        "tags": [
          "Location"
        ],
        "summary": "Get all locations whose names matches the free text expression entered",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.RequestModels.FreeTextRequest"
              },
              "example": {"freeText":"Osl"}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.RequestModels.FreeTextRequest"
              },
              "example": {"freeText":"Osl"}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.RequestModels.FreeTextRequest"
              },
              "example": {"freeText":"Osl"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.Location, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.Location, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.Location, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/location/norway/all": {
      "get": {
        "tags": [
          "Location"
        ],
        "summary": "Return all locations from NewShipRep including locations that do not have associated voyages in SafeSeaNet",
        "description": "This web service returns more locations",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/KDataAPI3.Models.Kystdatahuset.NsrLocation"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/KDataAPI3.Models.Kystdatahuset.NsrLocation"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/KDataAPI3.Models.Kystdatahuset.NsrLocation"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/location/norway/all/geojson": {
      "get": {
        "tags": [
          "Location"
        ],
        "summary": "Return all locations from NewShipRep including locations that do not have associated voyages in SafeSeaNet",
        "description": "This web service returns more locations",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KDataAPI3.Models.GeoJson.FeatureCollection`2[[KDataAPI3.Models.Kystdatahuset.NsrLocation, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[KDataAPI3.Models.GeoJson.PointGeometry, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KDataAPI3.Models.GeoJson.FeatureCollection`2[[KDataAPI3.Models.Kystdatahuset.NsrLocation, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[KDataAPI3.Models.GeoJson.PointGeometry, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KDataAPI3.Models.GeoJson.FeatureCollection`2[[KDataAPI3.Models.Kystdatahuset.NsrLocation, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[KDataAPI3.Models.GeoJson.PointGeometry, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/location/time-in-port": {
      "post": {
        "tags": [
          "Location"
        ],
        "summary": "Get information about time in port for locations",
        "description": "...",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.LocationIdsTimespanRequest"
              },
              "example": {"locationIds":[2328048,2328078],"startDate":"2017-01-01T00:00:00","endDate":"2017-01-02T00:00:00"}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.LocationIdsTimespanRequest"
              },
              "example": {"locationIds":[2328048,2328078],"startDate":"2017-01-01T00:00:00","endDate":"2017-01-02T00:00:00"}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.LocationIdsTimespanRequest"
              },
              "example": {"locationIds":[2328048,2328078],"startDate":"2017-01-01T00:00:00","endDate":"2017-01-02T00:00:00"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.TimeInPort, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.TimeInPort, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.TimeInPort, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/location/time-in-port/all": {
      "post": {
        "tags": [
          "Location"
        ],
        "summary": "Get information about time in port for all locations",
        "description": "...",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToTimeRequest"
              },
              "example": {"startTime":"2018-01-01T00:00:00","endTime":"2018-01-31T23:59:59"}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToTimeRequest"
              },
              "example": {"startTime":"2018-01-01T00:00:00","endTime":"2018-01-31T23:59:59"}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToTimeRequest"
              },
              "example": {"startTime":"2018-01-01T00:00:00","endTime":"2018-01-31T23:59:59"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.TimeInPort, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.TimeInPort, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.TimeInPort, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/location/time-in-port/osps": {
      "post": {
        "tags": [
          "Location"
        ],
        "summary": "Get information about port calls made by ships with onshore power supply facilities",
        "description": "...",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.LocationIdsTimespanRequest"
              },
              "example": {"locationIds":[2328048,2328078],"startDate":"2017-01-01T00:00:00","endDate":"2017-01-02T00:00:00"}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.LocationIdsTimespanRequest"
              },
              "example": {"locationIds":[2328048,2328078],"startDate":"2017-01-01T00:00:00","endDate":"2017-01-02T00:00:00"}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.LocationIdsTimespanRequest"
              },
              "example": {"locationIds":[2328048,2328078],"startDate":"2017-01-01T00:00:00","endDate":"2017-01-02T00:00:00"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.TimeInPortOSPS, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.TimeInPortOSPS, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.TimeInPortOSPS, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/location/time-in-port/osps-yearly": {
      "post": {
        "tags": [
          "Location"
        ],
        "summary": "Get information about port calls made by ships with onshore power supply facilities filtered by year",
        "description": "...",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToYearRequest"
              },
              "example": {"fromYear":2018,"toYear":2019}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToYearRequest"
              },
              "example": {"fromYear":2018,"toYear":2019}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToYearRequest"
              },
              "example": {"fromYear":2018,"toYear":2019}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.TimeInPortOSPS, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.TimeInPortOSPS, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.TimeInPortOSPS, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/maps/fvpomr/list": {
      "get": {
        "tags": [
          "Map"
        ],
        "summary": "Get a \"forvaltningsplanområder\" as a JSON code list",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/maps/kommune/geojson": {
      "get": {
        "tags": [
          "Map"
        ],
        "summary": "Get a municipalities as GeoJson",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/maps/kommune/list": {
      "get": {
        "tags": [
          "Map"
        ],
        "summary": "Get a municipalities as a JSON code list",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/maps/kommune/wkt": {
      "get": {
        "tags": [
          "Map"
        ],
        "summary": "Get a municipalities with WKT geometry as JSON records",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/maps/svoomr/list": {
      "get": {
        "tags": [
          "Map"
        ],
        "summary": "Get a \"spesielt verdifulle områder\" as a JSON code list",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/martraf-tracks/coverage": {
      "get": {
        "tags": [
          "MarTraf"
        ],
        "summary": "Return the time period covered by the MarTraf tracks (UTC) (Auth)",
        "description": "lastTime is the latest track start time, i.e. MarTraf has no data after this time.\r\nUsed by clients to decide between MarTraf and the realtime tracks (api/realtime-tracks/within-geom-time).",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KDataAPI3.Common.Tracks.TrackCoverage"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KDataAPI3.Common.Tracks.TrackCoverage"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KDataAPI3.Common.Tracks.TrackCoverage"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/martraf-tracks/intersects-line": {
      "post": {
        "tags": [
          "MarTraf"
        ],
        "summary": "Return MarTraf tracks intersecting a user specified line (i.e. a passline) within a given time period.\r\nSame response format as api/tracks/intersects-line (Auth)",
        "requestBody": {
          "description": "Geometry and time period",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.GeomYearMonthFromToRequest"
              },
              "example": {"geom":"LINESTRING (5.26848087338607 59.3951425364058,5.27935544514709 59.4057736476051)","startTime":"2018-01-01T00:00:00","endTime":"2018-01-02T00:00:00"}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.GeomYearMonthFromToRequest"
              },
              "example": {"geom":"LINESTRING (5.26848087338607 59.3951425364058,5.27935544514709 59.4057736476051)","startTime":"2018-01-01T00:00:00","endTime":"2018-01-02T00:00:00"}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.GeomYearMonthFromToRequest"
              },
              "example": {"geom":"LINESTRING (5.26848087338607 59.3951425364058,5.27935544514709 59.4057736476051)","startTime":"2018-01-01T00:00:00","endTime":"2018-01-02T00:00:00"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.TrackCommon2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.TrackCommon2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.TrackCommon2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/martraf-tracks/passline-crossings": {
      "post": {
        "tags": [
          "MarTraf"
        ],
        "summary": "Return the crossings of a passline within a time period, one item per crossing (Auth)",
        "description": "The crossing time is interpolated from the M values (Unix epoch seconds) of the MarTraf LineStringM tracks,\r\nand crossings are selected by that time. Per crossing: time (epoch seconds), speed (knots) and cog (degrees)\r\nover +/- SpeedWindowSeconds, direction (1 = from the right to the left side of the passline seen from its\r\nstart towards its end, -1 = left to right, 0 = undetermined), gap (seconds between the AIS positions before\r\nand after the crossing), draught, and the part of the track given by ClipMode as GeoJSON.\r\nShip attributes are returned once per ship in \"ships\", keyed by MMSI.\r\nLong periods should be requested one month at a time.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.PasslineCrossingsRequest"
              },
              "example": {"geom":"LINESTRING (5.26848087338607 59.3951425364058,5.27935544514709 59.4057736476051)","startTime":"2026-07-01T00:00:00Z","endTime":"2026-08-01T00:00:00Z","clipMode":"distance","clipDistanceM":2000,"clipSeconds":600,"speedWindowSeconds":60}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.PasslineCrossingsRequest"
              },
              "example": {"geom":"LINESTRING (5.26848087338607 59.3951425364058,5.27935544514709 59.4057736476051)","startTime":"2026-07-01T00:00:00Z","endTime":"2026-08-01T00:00:00Z","clipMode":"distance","clipDistanceM":2000,"clipSeconds":600,"speedWindowSeconds":60}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.PasslineCrossingsRequest"
              },
              "example": {"geom":"LINESTRING (5.26848087338607 59.3951425364058,5.27935544514709 59.4057736476051)","startTime":"2026-07-01T00:00:00Z","endTime":"2026-08-01T00:00:00Z","clipMode":"distance","clipDistanceM":2000,"clipSeconds":600,"speedWindowSeconds":60}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/martraf-tracks/ships-within-area": {
      "post": {
        "tags": [
          "MarTraf"
        ],
        "summary": "Return the ships that have been within an area during a time period, one item per ship (MMSI) (Auth)",
        "description": "The tracks are cut to the period using their M values (Unix epoch seconds) and to the area.\r\nPer ship: the registry attributes valid at its latest track, the ship category (kyv_kategori)\r\nand the distance sailed inside the area within the period (nmi).\r\nLong periods should be requested one month at a time.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.ShipsWithinAreaRequest"
              },
              "example": {"geom":"POLYGON ((5.25 59.39, 5.30 59.39, 5.30 59.42, 5.25 59.42, 5.25 59.39))","startTime":"2026-07-01T00:00:00Z","endTime":"2026-08-01T00:00:00Z"}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.ShipsWithinAreaRequest"
              },
              "example": {"geom":"POLYGON ((5.25 59.39, 5.30 59.39, 5.30 59.42, 5.25 59.42, 5.25 59.39))","startTime":"2026-07-01T00:00:00Z","endTime":"2026-08-01T00:00:00Z"}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.ShipsWithinAreaRequest"
              },
              "example": {"geom":"POLYGON ((5.25 59.39, 5.30 59.39, 5.30 59.42, 5.25 59.42, 5.25 59.39))","startTime":"2026-07-01T00:00:00Z","endTime":"2026-08-01T00:00:00Z"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/martraf-tracks/within-geom-time": {
      "post": {
        "tags": [
          "MarTraf"
        ],
        "summary": "Return MarTraf tracks within an area and/or for ships during a time period, in a compact format (Auth)",
        "description": "Each returned item is one LineStringM (ISO WKB) where the M value is Unix epoch seconds.\r\nWith ClipToPeriod, only the parts of the lines inside the period are returned.\r\nThe geometry is transformed to Srid (default 4326, no transform); M values are retained.\r\nFormat \"json\" returns the WKB as base64, \"binary\" returns the KTRK container (see docs/TRACK-TRANSFER-FORMAT.md).\r\nThe destination field is not available in MarTraf and is always empty.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.TracksWithinGeomTimeRequest"
              },
              "example": {"geom":"POLYGON ((5.314438 59.834359, 5.291371 59.806615, 5.310186 59.788544, 5.334741 59.814056, 5.314438 59.834359))","clipToGeom":true,"startTime":"2026-07-01T00:00:00Z","endTime":"2026-07-01T06:00:00Z","clipToPeriod":true,"srid":4326,"format":"json"}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.TracksWithinGeomTimeRequest"
              },
              "example": {"geom":"POLYGON ((5.314438 59.834359, 5.291371 59.806615, 5.310186 59.788544, 5.334741 59.814056, 5.314438 59.834359))","clipToGeom":true,"startTime":"2026-07-01T00:00:00Z","endTime":"2026-07-01T06:00:00Z","clipToPeriod":true,"srid":4326,"format":"json"}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.TracksWithinGeomTimeRequest"
              },
              "example": {"geom":"POLYGON ((5.314438 59.834359, 5.291371 59.806615, 5.310186 59.788544, 5.334741 59.814056, 5.314438 59.834359))","clipToGeom":true,"startTime":"2026-07-01T00:00:00Z","endTime":"2026-07-01T06:00:00Z","clipToPeriod":true,"srid":4326,"format":"json"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/maru/sailed-distance/county-municipality/{fromYearMonth}/{toYearMonth}": {
      "get": {
        "tags": [
          "MarU"
        ],
        "summary": "Get sailed distance data for administrative division areas.\r\nThe data is aggregated by month and year,\r\ngt_group and vessel_type and can be filtered by date range.",
        "parameters": [
          {
            "name": "fromYearMonth",
            "in": "path",
            "description": "The from year-month",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2022-01"
          },
          {
            "name": "toYearMonth",
            "in": "path",
            "description": "The to year-month",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2022-01"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.AreaStatistics.SailedDistanceCountyMunicipality, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.AreaStatistics.SailedDistanceCountyMunicipality, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.AreaStatistics.SailedDistanceCountyMunicipality, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.AreaStatistics.SailedDistanceCountyMunicipality, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.AreaStatistics.SailedDistanceCountyMunicipality, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.AreaStatistics.SailedDistanceCountyMunicipality, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.AreaStatistics.SailedDistanceCountyMunicipality, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.AreaStatistics.SailedDistanceCountyMunicipality, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.AreaStatistics.SailedDistanceCountyMunicipality, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/maru/sailed-distance/management-area/{fromYearMonth}/{toYearMonth}": {
      "get": {
        "tags": [
          "MarU"
        ],
        "summary": "Get sailed distance data for marine management areas including or\r\nexcluding coastal traffic. The data is aggregated by month and year,\r\ngt_group and vessel_type and can be filtered by date range.",
        "parameters": [
          {
            "name": "fromYearMonth",
            "in": "path",
            "description": "The from year-month",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2022-01"
          },
          {
            "name": "toYearMonth",
            "in": "path",
            "description": "The to year-month",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2022-01"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.AreaStatistics.SailedDistanceManagementPlanArea, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.AreaStatistics.SailedDistanceManagementPlanArea, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.AreaStatistics.SailedDistanceManagementPlanArea, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.AreaStatistics.SailedDistanceManagementPlanArea, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.AreaStatistics.SailedDistanceManagementPlanArea, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.AreaStatistics.SailedDistanceManagementPlanArea, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.AreaStatistics.SailedDistanceManagementPlanArea, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.AreaStatistics.SailedDistanceManagementPlanArea, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.AreaStatistics.SailedDistanceManagementPlanArea, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/mydata": {
      "get": {
        "tags": [
          "MyData"
        ],
        "summary": "List the caller's entities, with optional type/subtype filter, free-text search, sorting and paging. (Auth)",
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "subtype",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sortBy",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "modified"
            }
          },
          {
            "name": "sortDir",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "desc"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "post": {
        "tags": [
          "MyData"
        ],
        "summary": "Create or update an entity. Updates apply to title/description/data only; type and subtype\r\nare immutable once created. (Auth)",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.UpsertMyDataRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.UpsertMyDataRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.UpsertMyDataRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/mydata/erase-all": {
      "delete": {
        "tags": [
          "MyData"
        ],
        "summary": "Erase all of the caller's data: soft-deletes every active row and removes their uploaded\r\nfiles from disk. The response Msg reports the number of rows erased. (Auth)",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/mydata/export-all": {
      "get": {
        "tags": [
          "MyData"
        ],
        "summary": "Download everything the caller has stored as a zip: one JSON document per entity\r\n(grouped by type), with uploaded geodata files alongside their JSON. (Auth)",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/mydata/files/folder": {
      "post": {
        "tags": [
          "MyData"
        ],
        "summary": "Create a folder in the caller's file browser. (Auth)",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.CreateMyDataFolderRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.CreateMyDataFolderRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.CreateMyDataFolderRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/mydata/files/upload": {
      "post": {
        "tags": [
          "MyData"
        ],
        "summary": "Upload a GeoJSON/KML file into the caller's file browser. (Auth)",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "file"
                ],
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  },
                  "title": {
                    "type": "string"
                  },
                  "folderId": {
                    "type": "string",
                    "description": "uuid of the parent folder entity, or null for the root.",
                    "format": "uuid"
                  },
                  "description": {
                    "type": "string"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                },
                "title": {
                  "style": "form"
                },
                "folderId": {
                  "style": "form"
                },
                "description": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/mydata/files/{uuid}/download": {
      "get": {
        "tags": [
          "MyData"
        ],
        "summary": "Download an uploaded geodata file. (Auth)",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/mydata/files/{uuid}/move": {
      "patch": {
        "tags": [
          "MyData"
        ],
        "summary": "Move a geodata file or folder into another folder, or to the root when folderId is null. (Auth)",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.MoveMyDataGeodataRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.MoveMyDataGeodataRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.MoveMyDataGeodataRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/mydata/{uuid}": {
      "delete": {
        "tags": [
          "MyData"
        ],
        "summary": "Soft-delete an entity. A geodata folder takes its whole content with it. (Auth)",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "get": {
        "tags": [
          "MyData"
        ],
        "summary": "Get a single entity owned by the caller. (Auth)",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/mydata/{uuid}/rename": {
      "patch": {
        "tags": [
          "MyData"
        ],
        "summary": "Rename an entity. (Auth)",
        "parameters": [
          {
            "name": "uuid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.RenameMyDataRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.RenameMyDataRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.RenameMyDataRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/pilotage/aggregated/for-years": {
      "post": {
        "tags": [
          "Pilotage"
        ],
        "summary": "Aggregated information on pilotage assignments for pilot offices\r\nand year span",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToYearRequest"
              },
              "example": {"fromYear":2018,"toYear":2019}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToYearRequest"
              },
              "example": {"fromYear":2018,"toYear":2019}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToYearRequest"
              },
              "example": {"fromYear":2018,"toYear":2019}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/pilotage/for-locations-years": {
      "post": {
        "tags": [
          "Pilotage"
        ],
        "summary": "Detailed information on pilotage assignments for specified locatoins\r\nand year span",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.LocationIdsFromToYearRequest"
              },
              "example": {"locationIds":[2327908,2327949],"fromYear":2018,"toYear":2019}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.LocationIdsFromToYearRequest"
              },
              "example": {"locationIds":[2327908,2327949],"fromYear":2018,"toYear":2019}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.LocationIdsFromToYearRequest"
              },
              "example": {"locationIds":[2327908,2327949],"fromYear":2018,"toYear":2019}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/raster-frequency/ext/mapserver": {
      "get": {
        "tags": [
          "RasterFrequency"
        ],
        "summary": "WMS end-point for traffic frequency maps.",
        "description": "See the getCapabilities request result for further details: [WMS Get Capabilities](https://kystdatahuset.no/ws/api/raster-frequency/ext/mapserver?request=GetCapabilities&service=WMS)",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/raster-frequency/ext/raster/statistics": {
      "post": {
        "tags": [
          "RasterFrequency"
        ],
        "summary": "End point for retrieving traffic frequency statistics within user defined polygon geometries.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RasterApi.Models.GridFrequency.RasterRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RasterApi.Models.GridFrequency.RasterRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RasterApi.Models.GridFrequency.RasterRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/raster-frequency/ext/sld": {
      "get": {
        "tags": [
          "RasterFrequency"
        ],
        "summary": "End point for dynamic generation of SLDs",
        "parameters": [
          {
            "name": "colorscale",
            "in": "query",
            "description": "A keyword for color scales",
            "schema": {
              "type": "string",
              "default": "YlGn"
            },
            "example": "YlGn"
          },
          {
            "name": "range",
            "in": "query",
            "description": "The different steps that the color scale will distribute colors along",
            "schema": {
              "type": "string",
              "default": "5;10;50;100;500;1000"
            },
            "example": "5;10;50;100;500;1000"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/raster-frequency/statistics/v2": {
      "post": {
        "tags": [
          "RasterFrequency"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.WktYearMonthRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.WktYearMonthRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.WktYearMonthRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ZonalStats, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ZonalStats, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ZonalStats, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/realtime-tracks/intersects-line": {
      "post": {
        "tags": [
          "RealtimeTrack"
        ],
        "summary": "Return realtime tracks intersecting a user specified line (i.e. a passline) within a given time period.\r\nSame response format as api/tracks/intersects-line, limited to the attributes stored in ais2.track_all\r\n(no shipid and no kyv_kategori) (Auth)",
        "requestBody": {
          "description": "Geometry and time period",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.GeomYearMonthFromToRequest"
              },
              "example": {"geom":"LINESTRING (5.26848087338607 59.3951425364058,5.27935544514709 59.4057736476051)","startTime":"2018-01-01T00:00:00","endTime":"2018-01-02T00:00:00"}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.GeomYearMonthFromToRequest"
              },
              "example": {"geom":"LINESTRING (5.26848087338607 59.3951425364058,5.27935544514709 59.4057736476051)","startTime":"2018-01-01T00:00:00","endTime":"2018-01-02T00:00:00"}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.GeomYearMonthFromToRequest"
              },
              "example": {"geom":"LINESTRING (5.26848087338607 59.3951425364058,5.27935544514709 59.4057736476051)","startTime":"2018-01-01T00:00:00","endTime":"2018-01-02T00:00:00"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.TrackCommon2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.TrackCommon2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.TrackCommon2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/realtime-tracks/within-geom-time": {
      "post": {
        "tags": [
          "RealtimeTrack"
        ],
        "summary": "Return realtime tracks within an area and/or for ships during a time period, in a compact format (Auth)",
        "description": "Each returned item is one LineStringM (ISO WKB) where the M value is Unix epoch seconds.\r\nWith ClipToPeriod, only the parts of the lines inside the period are returned.\r\nThe geometry is transformed to Srid (default 4326, no transform); M values are retained.\r\nFormat \"json\" returns the WKB as base64, \"binary\" returns the KTRK container (see docs/TRACK-TRANSFER-FORMAT.md).",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.TracksWithinGeomTimeRequest"
              },
              "example": {"geom":"POLYGON ((5.314438 59.834359, 5.291371 59.806615, 5.310186 59.788544, 5.334741 59.814056, 5.314438 59.834359))","clipToGeom":true,"startTime":"2026-07-01T00:00:00Z","endTime":"2026-07-01T06:00:00Z","clipToPeriod":true,"srid":4326,"format":"json"}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.TracksWithinGeomTimeRequest"
              },
              "example": {"geom":"POLYGON ((5.314438 59.834359, 5.291371 59.806615, 5.310186 59.788544, 5.334741 59.814056, 5.314438 59.834359))","clipToGeom":true,"startTime":"2026-07-01T00:00:00Z","endTime":"2026-07-01T06:00:00Z","clipToPeriod":true,"srid":4326,"format":"json"}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.TracksWithinGeomTimeRequest"
              },
              "example": {"geom":"POLYGON ((5.314438 59.834359, 5.291371 59.806615, 5.310186 59.788544, 5.334741 59.814056, 5.314438 59.834359))","clipToGeom":true,"startTime":"2026-07-01T00:00:00Z","endTime":"2026-07-01T06:00:00Z","clipToPeriod":true,"srid":4326,"format":"json"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/ship-dimensions": {
      "get": {
        "tags": [
          "ShipDimensions"
        ],
        "summary": "Select the best-matching record, keyed by imo (safest), then shipid, then mmsi+shipname\r\ntogether. At least one of these must be supplied. (Auth)",
        "parameters": [
          {
            "name": "imo",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": null
            }
          },
          {
            "name": "shipid",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "example": null
            }
          },
          {
            "name": "mmsi",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "shipname",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "ShipDimensions"
        ],
        "summary": "Insert a new record, or update the best-matching existing one, keyed by imo (safest),\r\nthen shipid, then mmsi+shipname together. At least one of these must be supplied. (Auth)",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.UpsertShipDimensionsRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.UpsertShipDimensionsRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KDataAPI3.Models.RequestModels.UpsertShipDimensionsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/ship-dimensions/{id}": {
      "delete": {
        "tags": [
          "ShipDimensions"
        ],
        "summary": "Delete a record by its uuid. (Auth)",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/ship-type/statcode5/download": {
      "get": {
        "tags": [
          "ShipType"
        ],
        "summary": "Retrieve all Statcode5 code list with all attributes (Auth)",
        "description": "Only available for Kystverket users",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ShipType.StatCode5Type, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ShipType.StatCode5Type, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ShipType.StatCode5Type, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/ship/builtbetween/{fromYear}/{toYear}": {
      "get": {
        "tags": [
          "Ship"
        ],
        "summary": "Get data about ships built in the years between fromYear and toYear (both inclusive)",
        "parameters": [
          {
            "name": "fromYear",
            "in": "path",
            "description": "Inclusive",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "toYear",
            "in": "path",
            "description": "Inclusive",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                },
                "example": {"success":true,"msg":"That went well","data":{},"time":0}
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                },
                "example": {"success":true,"msg":"That went well","data":{},"time":0}
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                },
                "example": {"success":true,"msg":"That went well","data":{},"time":0}
              }
            }
          }
        }
      }
    },
    "/api/ship/combined/callsign/{callsign}": {
      "get": {
        "tags": [
          "Ship"
        ],
        "summary": "Get information from combined ship table by callsign (Auth)",
        "parameters": [
          {
            "name": "callsign",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.CombinedShipData, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.CombinedShipData, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.CombinedShipData, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/ship/combined/callsign/{version}/{callsign}": {
      "get": {
        "tags": [
          "Ship"
        ],
        "summary": "Get information from combined ship table by callsign (Auth)",
        "parameters": [
          {
            "name": "callsign",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "version",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/KDataAPI3.Models.ResponseModels.CombinedShipDataVersions"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.CombinedShipData, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.CombinedShipData, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.CombinedShipData, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/ship/combined/free-text": {
      "get": {
        "tags": [
          "Ship"
        ],
        "summary": "Get information about ships from combined ship table by free-text search",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "Query term",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "version",
            "in": "query",
            "description": "",
            "schema": {
              "$ref": "#/components/schemas/KDataAPI3.Models.ResponseModels.CombinedShipDataVersions"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.CombinedShipData, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.CombinedShipData, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.CombinedShipData, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Ship"
        ],
        "summary": "Get information about ships from combined ship table by free-text search.",
        "description": "You can search for ship names, imo numbers, mmsi numbers and callsigns.\r\nCallsigns are still experimental as some callsigns are stemmed by the indexer\r\nif you cannot find your ship by callsign, try another element.\r\n\r\nThis",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/KDataAPI3.Models.ResponseModels.CombinedShipDataVersions"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.RequestModels.FreeTextRequest"
              },
              "example": {"freeText":"Osl"}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.RequestModels.FreeTextRequest"
              },
              "example": {"freeText":"Osl"}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.RequestModels.FreeTextRequest"
              },
              "example": {"freeText":"Osl"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.CombinedShipDataV2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.CombinedShipDataV2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.CombinedShipDataV2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/ship/combined/imo/{imo}": {
      "get": {
        "tags": [
          "Ship"
        ],
        "summary": "Get information from combined ship table by imo",
        "parameters": [
          {
            "name": "imo",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.CombinedShipData, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.CombinedShipData, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.CombinedShipData, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/ship/combined/imo/{version}/{imo}": {
      "get": {
        "tags": [
          "Ship"
        ],
        "summary": "Get information from combined ship table by imo",
        "parameters": [
          {
            "name": "imo",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "version",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/KDataAPI3.Models.ResponseModels.CombinedShipDataVersions"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.CombinedShipData, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.CombinedShipData, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.CombinedShipData, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/ship/combined/mmsi/{mmsi}": {
      "get": {
        "tags": [
          "Ship"
        ],
        "summary": "Get information from combined ship table by mmsi (Auth)",
        "parameters": [
          {
            "name": "mmsi",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.CombinedShipData, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.CombinedShipData, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.CombinedShipData, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/ship/combined/mmsi/{version}/{mmsi}": {
      "get": {
        "tags": [
          "Ship"
        ],
        "summary": "Get information from combined ship table by mmsi (Auth)",
        "parameters": [
          {
            "name": "mmsi",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "version",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/KDataAPI3.Models.ResponseModels.CombinedShipDataVersions"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.CombinedShipData, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.CombinedShipData, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.CombinedShipData, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/ship/combined/{version}/free-text": {
      "post": {
        "tags": [
          "Ship"
        ],
        "summary": "Get information about ships from combined ship table by free-text search.",
        "description": "You can search for ship names, imo numbers, mmsi numbers and callsigns.\r\nCallsigns are still experimental as some callsigns are stemmed by the indexer\r\nif you cannot find your ship by callsign, try another element.\r\n\r\nThis",
        "parameters": [
          {
            "name": "version",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/KDataAPI3.Models.ResponseModels.CombinedShipDataVersions"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.RequestModels.FreeTextRequest"
              },
              "example": {"freeText":"Osl"}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.RequestModels.FreeTextRequest"
              },
              "example": {"freeText":"Osl"}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.RequestModels.FreeTextRequest"
              },
              "example": {"freeText":"Osl"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.CombinedShipDataV2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.CombinedShipDataV2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.CombinedShipDataV2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/ship/data/ais/for-mmsis-imos": {
      "post": {
        "tags": [
          "Ship"
        ],
        "summary": "Get information about ships from AIS derived ship registry",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.ShipIdsRequest"
              },
              "example": {"mmsi":[477125300,538007349],"imo":[9303053],"callsign":[],"shipIds":[]}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.ShipIdsRequest"
              },
              "example": {"mmsi":[477125300,538007349],"imo":[9303053],"callsign":[],"shipIds":[]}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.ShipIdsRequest"
              },
              "example": {"mmsi":[477125300,538007349],"imo":[9303053],"callsign":[],"shipIds":[]}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KyvDvhAPI.Models.ResponseModels.ShipInfo, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KyvDvhAPI.Models.ResponseModels.ShipInfo, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KyvDvhAPI.Models.ResponseModels.ShipInfo, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/ship/data/ais/free-text": {
      "get": {
        "tags": [
          "Ship"
        ],
        "summary": "Get information about ships from AIS derived ship registry by free-text",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "",
            "schema": {
              "type": "string"
            },
            "example": "Hagland"
          },
          {
            "name": "y1",
            "in": "query",
            "description": "",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 2020
          },
          {
            "name": "y2",
            "in": "query",
            "description": "",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 2024
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ShipType.AIS.AISShipreg, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ShipType.AIS.AISShipreg, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ShipType.AIS.AISShipreg, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/ship/data/combined/for-mmsis-imos": {
      "post": {
        "tags": [
          "Ship"
        ],
        "summary": "Get information about ships from combined ship table by mmsi or imo numbers",
        "parameters": [
          {
            "name": "version",
            "in": "query",
            "description": "",
            "schema": {
              "$ref": "#/components/schemas/KDataAPI3.Models.ResponseModels.CombinedShipDataVersions"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.ShipIdsRequest"
              },
              "example": {"mmsi":[477125300,538007349],"imo":[9303053],"callsign":[],"shipIds":[]}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.ShipIdsRequest"
              },
              "example": {"mmsi":[477125300,538007349],"imo":[9303053],"callsign":[],"shipIds":[]}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.ShipIdsRequest"
              },
              "example": {"mmsi":[477125300,538007349],"imo":[9303053],"callsign":[],"shipIds":[]}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.CombinedShipData, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.CombinedShipData, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.CombinedShipData, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/ship/data/fairplay/for-mmsis-imos": {
      "post": {
        "tags": [
          "Ship"
        ],
        "summary": "Get information about ships from Fairplay (Auth)",
        "description": "Only available to Kystverket users due to licensing constraints.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.ShipIdsRequest"
              },
              "example": {"mmsi":[477125300,538007349],"imo":[9303053],"callsign":[],"shipIds":[]}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.ShipIdsRequest"
              },
              "example": {"mmsi":[477125300,538007349],"imo":[9303053],"callsign":[],"shipIds":[]}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.ShipIdsRequest"
              },
              "example": {"mmsi":[477125300,538007349],"imo":[9303053],"callsign":[],"shipIds":[]}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                },
                "example": {"success":true,"msg":"That went well","data":{},"time":0}
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                },
                "example": {"success":true,"msg":"That went well","data":{},"time":0}
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                },
                "example": {"success":true,"msg":"That went well","data":{},"time":0}
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/ship/data/nsr/for-mmsis-imos": {
      "post": {
        "tags": [
          "Ship"
        ],
        "summary": "Get information about ships from NSR Ship",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.ShipIdsRequest"
              },
              "example": {"mmsi":[477125300,538007349],"imo":[9303053],"callsign":[],"shipIds":[]}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.ShipIdsRequest"
              },
              "example": {"mmsi":[477125300,538007349],"imo":[9303053],"callsign":[],"shipIds":[]}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.ShipIdsRequest"
              },
              "example": {"mmsi":[477125300,538007349],"imo":[9303053],"callsign":[],"shipIds":[]}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KyvDvhAPI.Models.ResponseModels.ShipInfo, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KyvDvhAPI.Models.ResponseModels.ShipInfo, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KyvDvhAPI.Models.ResponseModels.ShipInfo, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/ship/data/shipinfo/for-mmsis-imos": {
      "post": {
        "tags": [
          "Ship"
        ],
        "summary": "Get information about ships from Shipinfo",
        "description": "Only available for Kystverket users",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.ShipIdsRequest"
              },
              "example": {"mmsi":[477125300,538007349],"imo":[9303053],"callsign":[],"shipIds":[]}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.ShipIdsRequest"
              },
              "example": {"mmsi":[477125300,538007349],"imo":[9303053],"callsign":[],"shipIds":[]}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.ShipIdsRequest"
              },
              "example": {"mmsi":[477125300,538007349],"imo":[9303053],"callsign":[],"shipIds":[]}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                },
                "example": {"success":true,"msg":"That went well","data":{},"time":0}
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                },
                "example": {"success":true,"msg":"That went well","data":{},"time":0}
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                },
                "example": {"success":true,"msg":"That went well","data":{},"time":0}
              }
            }
          }
        }
      }
    },
    "/api/ship/for-mmsis": {
      "post": {
        "tags": [
          "Ship"
        ],
        "summary": "Get information about ships from NewShipRep by one or more MMSI identifiers",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.MmsiIdsRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.MmsiIdsRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.MmsiIdsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KyvDvhAPI.Models.ResponseModels.InfoByMmsiIdsResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KyvDvhAPI.Models.ResponseModels.InfoByMmsiIdsResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KyvDvhAPI.Models.ResponseModels.InfoByMmsiIdsResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/ship/free-text": {
      "post": {
        "tags": [
          "Ship"
        ],
        "summary": "Get a key value representation of ships based on a free-text\r\nquery parameter",
        "description": "The free text query is matched against shipname, mmsi and imo number fields",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.RequestModels.FreeTextRequest"
              },
              "example": {"freeText":"Osl"}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.RequestModels.FreeTextRequest"
              },
              "example": {"freeText":"Osl"}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.RequestModels.FreeTextRequest"
              },
              "example": {"freeText":"Osl"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                },
                "example": {"success":true,"msg":"That went well","data":{},"time":0}
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                },
                "example": {"success":true,"msg":"That went well","data":{},"time":0}
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                },
                "example": {"success":true,"msg":"That went well","data":{},"time":0}
              }
            }
          }
        }
      }
    },
    "/api/ship/nsr/download": {
      "get": {
        "tags": [
          "Ship"
        ],
        "summary": "This *restricted* web service allows you to download the entire NewShipRep ship registry (Auth)",
        "description": "Only available for Kystverket users",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ShipType.Nsr.Ship, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ShipType.Nsr.Ship, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ShipType.Nsr.Ship, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/ship/shiptypes": {
      "get": {
        "tags": [
          "Ship"
        ],
        "summary": "Select all ship types that are used in NSR (Auth)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                },
                "example": {"success":true,"msg":"That went well","data":{},"time":0}
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                },
                "example": {"success":true,"msg":"That went well","data":{},"time":0}
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                },
                "example": {"success":true,"msg":"That went well","data":{},"time":0}
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/shorepower/geojson": {
      "get": {
        "tags": [
          "Shorepower"
        ],
        "summary": "Get shorepowerdata as GeoJSON from Kystinfo",
        "description": "",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/tracks/async/download/by-voyage-timespan": {
      "post": {
        "tags": [
          "Track"
        ],
        "summary": "Generate a downloadable ESRI Shapefile containing tracks of ships that have \r\nsailed the voyage between two locations within a specific time-period. (Auth)",
        "description": "Works by looking up the voyages between specified locations and generating \r\na list of time-periods and ship IDs\r\n\r\nThe service then uses this list to generate a SQL query selecting all tracks belonging\r\nto the specific ship ID and the time interval for the related voyage, exporting the results\r\nto an ESRI Shapefile asynchronously.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToLocationTimespanRequest"
              },
              "example": {"locationID1":2328048,"locationID2":2328078,"startTime":"2017-01-01T00:00:00","endTime":"2017-01-02T00:00:00"}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToLocationTimespanRequest"
              },
              "example": {"locationID1":2328048,"locationID2":2328078,"startTime":"2017-01-01T00:00:00","endTime":"2017-01-02T00:00:00"}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToLocationTimespanRequest"
              },
              "example": {"locationID1":2328048,"locationID2":2328078,"startTime":"2017-01-01T00:00:00","endTime":"2017-01-02T00:00:00"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KyvDvhAPI.Models.HangfireAsyncResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KyvDvhAPI.Models.HangfireAsyncResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KyvDvhAPI.Models.HangfireAsyncResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/tracks/for-ships/by-mmsi": {
      "post": {
        "tags": [
          "Track"
        ],
        "summary": "Return ship tracks for one or more ships identified by their MMSI ship identifiers within\r\na time period",
        "requestBody": {
          "description": "Ship ids and time period",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.MmsiTimeRequest"
              },
              "example": {"mmsiIds":[258092000,258092000],"startTime":"2018-01-01T00:00:00","endTime":"2018-02-01T00:00:00"}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.MmsiTimeRequest"
              },
              "example": {"mmsiIds":[258092000,258092000],"startTime":"2018-01-01T00:00:00","endTime":"2018-02-01T00:00:00"}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.MmsiTimeRequest"
              },
              "example": {"mmsiIds":[258092000,258092000],"startTime":"2018-01-01T00:00:00","endTime":"2018-02-01T00:00:00"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.TrackCommon2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.TrackCommon2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.TrackCommon2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/tracks/for-ships/by-mmsi-mid": {
      "post": {
        "tags": [
          "Track"
        ],
        "summary": "Return ship tracks for ships identified by their MID values within a\r\na time period",
        "requestBody": {
          "description": "MID and time",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.MmsiMidTimeRequest"
              },
              "example": {"startMid":412,"endMid":413,"startTime":"2016-01-01T00:00:00","endTime":"2016-02-01T00:00:00"}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.MmsiMidTimeRequest"
              },
              "example": {"startMid":412,"endMid":413,"startTime":"2016-01-01T00:00:00","endTime":"2016-02-01T00:00:00"}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.MmsiMidTimeRequest"
              },
              "example": {"startMid":412,"endMid":413,"startTime":"2016-01-01T00:00:00","endTime":"2016-02-01T00:00:00"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.TrackCommon2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.TrackCommon2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.TrackCommon2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/tracks/for-ships/by-shipid": {
      "post": {
        "tags": [
          "Track"
        ],
        "summary": "Return ship tracks for one or more ships identified by their NSR ship identifiers within\r\na time period (Auth)",
        "requestBody": {
          "description": "Ship ids and time period",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.ShipIdTimeRequest"
              },
              "example": {"shipIds":[136759,337483,337483],"startTime":"2018-01-01T00:00:00","endTime":"2018-02-01T00:00:00"}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.ShipIdTimeRequest"
              },
              "example": {"shipIds":[136759,337483,337483],"startTime":"2018-01-01T00:00:00","endTime":"2018-02-01T00:00:00"}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.ShipIdTimeRequest"
              },
              "example": {"shipIds":[136759,337483,337483],"startTime":"2018-01-01T00:00:00","endTime":"2018-02-01T00:00:00"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.TrackCommon2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.TrackCommon2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.TrackCommon2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/tracks/frequency-counts": {
      "post": {
        "tags": [
          "Track"
        ],
        "summary": "Return ship tracks for one or more ships identified by their ids within\r\na time period (Auth)",
        "requestBody": {
          "description": "Ship ids and time period",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToYearDateSpanRequest"
              },
              "example": {"fromYear":2019,"toYear":2020,"fromMonth":2,"fromDay":20,"toMonth":3,"toDay":24}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToYearDateSpanRequest"
              },
              "example": {"fromYear":2019,"toYear":2020,"fromMonth":2,"fromDay":20,"toMonth":3,"toDay":24}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToYearDateSpanRequest"
              },
              "example": {"fromYear":2019,"toYear":2020,"fromMonth":2,"fromDay":20,"toMonth":3,"toDay":24}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.WebServices.FrequencyCount, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.WebServices.FrequencyCount, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.WebServices.FrequencyCount, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/tracks/frequency-counts/weekly": {
      "post": {
        "tags": [
          "Track"
        ],
        "summary": "Return weekly frequency counts for selected passlines within a time period (Auth)",
        "requestBody": {
          "description": "Years and date ranges within years",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToYearWeekRequest"
              },
              "example": {"fromYear":2019,"toYear":2020,"fromWeek":8,"toWeek":16}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToYearWeekRequest"
              },
              "example": {"fromYear":2019,"toYear":2020,"fromWeek":8,"toWeek":16}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToYearWeekRequest"
              },
              "example": {"fromYear":2019,"toYear":2020,"fromWeek":8,"toWeek":16}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.WebServices.FrequencyCountWeekly, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.WebServices.FrequencyCountWeekly, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.WebServices.FrequencyCountWeekly, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/tracks/get-passlines": {
      "get": {
        "tags": [
          "Track"
        ],
        "summary": "Return passlines that are available for the passline frequency dashboard (Auth)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.WebServices.Passline, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.WebServices.Passline, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.WebServices.Passline, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "Track"
        ],
        "summary": "Return passlines that are available for the passline frequency dashboard (Auth)",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.WebServices.Passline, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.WebServices.Passline, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.WebServices.Passline, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/tracks/intersects-line": {
      "post": {
        "tags": [
          "Track"
        ],
        "summary": "Return ship tracks that data intersecting a user\r\nspecificed line (i.e. a passline) within a given time period (Auth)",
        "requestBody": {
          "description": "Geometry and time period",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.GeomYearMonthFromToRequest"
              },
              "example": {"geom":"LINESTRING (5.26848087338607 59.3951425364058,5.27935544514709 59.4057736476051)","startTime":"2018-01-01T00:00:00","endTime":"2018-01-02T00:00:00"}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.GeomYearMonthFromToRequest"
              },
              "example": {"geom":"LINESTRING (5.26848087338607 59.3951425364058,5.27935544514709 59.4057736476051)","startTime":"2018-01-01T00:00:00","endTime":"2018-01-02T00:00:00"}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.GeomYearMonthFromToRequest"
              },
              "example": {"geom":"LINESTRING (5.26848087338607 59.3951425364058,5.27935544514709 59.4057736476051)","startTime":"2018-01-01T00:00:00","endTime":"2018-01-02T00:00:00"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.TrackCommon2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.TrackCommon2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.TrackCommon2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/tracks/intersects-two-lines": {
      "post": {
        "tags": [
          "Track"
        ],
        "summary": "Return data on ships that intersecting two user\r\nspecificed lines (i.e. two passline) within the same day in a given time period (Auth)",
        "requestBody": {
          "description": "Geometries and time period",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.GeomsFromToRequest"
              },
              "example": {"geom1":"LINESTRING (5.26848087338607 59.3951425364058,5.27935544514709 59.4057736476051)","geom2":"LINESTRING (5.29737152672131 59.8017216746349,5.32090604769664 59.8203869843739)","startTime":"2018-01-01T00:00:00","endTime":"2018-01-15T00:00:00"}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.GeomsFromToRequest"
              },
              "example": {"geom1":"LINESTRING (5.26848087338607 59.3951425364058,5.27935544514709 59.4057736476051)","geom2":"LINESTRING (5.29737152672131 59.8017216746349,5.32090604769664 59.8203869843739)","startTime":"2018-01-01T00:00:00","endTime":"2018-01-15T00:00:00"}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.GeomsFromToRequest"
              },
              "example": {"geom1":"LINESTRING (5.26848087338607 59.3951425364058,5.27935544514709 59.4057736476051)","geom2":"LINESTRING (5.29737152672131 59.8017216746349,5.32090604769664 59.8203869843739)","startTime":"2018-01-01T00:00:00","endTime":"2018-01-15T00:00:00"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.Track, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.Track, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.Track, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/tracks/sailed-distance/for-ships/by-callsign": {
      "post": {
        "tags": [
          "Track"
        ],
        "summary": "Return sailed distance in kilometers per year, month and callsign for ships identified by\r\ntheir callsign within a time period. This method works on AIS data and return data for all\r\nships with AIS transponders. (Auth)",
        "requestBody": {
          "description": "Callsign(s) and time period",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.CallsignTimeRequest"
              },
              "example": {"callsigns":["LLTF"],"startTime":"2018-01-01T00:00:00","endTime":"2018-02-01T00:00:00"}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.CallsignTimeRequest"
              },
              "example": {"callsigns":["LLTF"],"startTime":"2018-01-01T00:00:00","endTime":"2018-02-01T00:00:00"}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.CallsignTimeRequest"
              },
              "example": {"callsigns":["LLTF"],"startTime":"2018-01-01T00:00:00","endTime":"2018-02-01T00:00:00"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.SailedDistance, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.SailedDistance, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.SailedDistance, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/tracks/sailed-distance/for-ships/by-imo": {
      "post": {
        "tags": [
          "Track"
        ],
        "summary": "Return sailed distance in kilometers per year, month and imo number for ships identified by their IMO ship identifiers within\r\na time period (Auth)",
        "requestBody": {
          "description": "IMO ids and time period",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.ImoTimeRequest"
              },
              "example": {"imoIds":[9592329,6608050,6602898],"startTime":"2019-01-01T00:00:00","endTime":"2019-01-31T00:00:00"}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.ImoTimeRequest"
              },
              "example": {"imoIds":[9592329,6608050,6602898],"startTime":"2019-01-01T00:00:00","endTime":"2019-01-31T00:00:00"}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.ImoTimeRequest"
              },
              "example": {"imoIds":[9592329,6608050,6602898],"startTime":"2019-01-01T00:00:00","endTime":"2019-01-31T00:00:00"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.SailedDistance, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.SailedDistance, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.SailedDistance, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/tracks/sailed-distance/for-ships/by-mmsi": {
      "post": {
        "tags": [
          "Track"
        ],
        "summary": "Return sailed distance in kilometers per year, month and MMSI number\r\nfor ships identified by their MMSI ship identifiers within a time period (Auth)",
        "requestBody": {
          "description": "MMSI ids and time period",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.MmsiTimeRequest"
              },
              "example": {"mmsiIds":[258092000,258092000],"startTime":"2018-01-01T00:00:00","endTime":"2018-02-01T00:00:00"}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.MmsiTimeRequest"
              },
              "example": {"mmsiIds":[258092000,258092000],"startTime":"2018-01-01T00:00:00","endTime":"2018-02-01T00:00:00"}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.MmsiTimeRequest"
              },
              "example": {"mmsiIds":[258092000,258092000],"startTime":"2018-01-01T00:00:00","endTime":"2018-02-01T00:00:00"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.SailedDistance, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.SailedDistance, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.SailedDistance, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/tracks/speed/for-ships/by-callsign": {
      "post": {
        "tags": [
          "Track"
        ],
        "summary": "Return average sailing speed in knots for one or more ships identified by callsigns\r\nwithin a date range. Speed is calculated and averaged across all track segments with\r\na speed >= 2 knots. This method works on AIS data and return data for all\r\nships with AIS transponders. (Auth)",
        "requestBody": {
          "description": "Callsign(s) and time period",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.CallsignTimeRequest"
              },
              "example": {"callsigns":["LLTF"],"startTime":"2018-01-01T00:00:00","endTime":"2018-02-01T00:00:00"}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.CallsignTimeRequest"
              },
              "example": {"callsigns":["LLTF"],"startTime":"2018-01-01T00:00:00","endTime":"2018-02-01T00:00:00"}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.CallsignTimeRequest"
              },
              "example": {"callsigns":["LLTF"],"startTime":"2018-01-01T00:00:00","endTime":"2018-02-01T00:00:00"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.TrackSpeed, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.TrackSpeed, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.TrackSpeed, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/tracks/within-area": {
      "post": {
        "tags": [
          "Track"
        ],
        "summary": "Return ship tracks that intersect a user specified polygon geometry within\r\na time period. Clips the tracks to the polygon. Returns a maximum of 200k\r\nline segments (Auth)",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.GeomYearMonthFromToRequest"
              },
              "example": {"geom":"POLYGON ((5.314438 59.834359, 5.291371 59.806615, 5.310186 59.788544, 5.334741 59.814056, 5.334741 59.814056, 5.314438 59.834359))","startTime":"2018-01-01T00:00:00","endTime":"2018-01-02T00:00:00"}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.GeomYearMonthFromToRequest"
              },
              "example": {"geom":"POLYGON ((5.314438 59.834359, 5.291371 59.806615, 5.310186 59.788544, 5.334741 59.814056, 5.334741 59.814056, 5.314438 59.834359))","startTime":"2018-01-01T00:00:00","endTime":"2018-01-02T00:00:00"}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.GeomYearMonthFromToRequest"
              },
              "example": {"geom":"POLYGON ((5.314438 59.834359, 5.291371 59.806615, 5.310186 59.788544, 5.334741 59.814056, 5.334741 59.814056, 5.314438 59.834359))","startTime":"2018-01-01T00:00:00","endTime":"2018-01-02T00:00:00"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.TrackCommon2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.TrackCommon2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.TrackCommon2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/tracks/within-area/by-mmsi": {
      "post": {
        "tags": [
          "Track"
        ],
        "summary": "Return ship tracks that intersect a user specified polygon geometry within\r\na time period and corresponding to mmsi. Clips the tracks to the polygon.\r\nReturns a maximum of 200k line segments (Auth)",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.GeomFromToByMmsiRequest"
              },
              "example": {"geom":"POLYGON((10.46687610953162206 59.37804318105883539, 10.6789484736354936 59.37804318105883539, 10.6789484736354936 59.46465766950007747, 10.46687610953162206 59.46465766950007747, 10.46687610953162206 59.37804318105883539))","startTime":"2022-07-05T00:00:00","endTime":"2022-07-06T00:00:00","mmsis":[259402000]}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.GeomFromToByMmsiRequest"
              },
              "example": {"geom":"POLYGON((10.46687610953162206 59.37804318105883539, 10.6789484736354936 59.37804318105883539, 10.6789484736354936 59.46465766950007747, 10.46687610953162206 59.46465766950007747, 10.46687610953162206 59.37804318105883539))","startTime":"2022-07-05T00:00:00","endTime":"2022-07-06T00:00:00","mmsis":[259402000]}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.GeomFromToByMmsiRequest"
              },
              "example": {"geom":"POLYGON((10.46687610953162206 59.37804318105883539, 10.6789484736354936 59.37804318105883539, 10.6789484736354936 59.46465766950007747, 10.46687610953162206 59.46465766950007747, 10.46687610953162206 59.37804318105883539))","startTime":"2022-07-05T00:00:00","endTime":"2022-07-06T00:00:00","mmsis":[259402000]}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.TrackCommon2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.TrackCommon2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.TrackCommon2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/tracks/within-municipality": {
      "post": {
        "tags": [
          "Track"
        ],
        "summary": "Return ship tracks clipped to municipality boundaries (Auth)",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToDateMunicipalityRequest"
              },
              "example": {"municipality":"4601","startDate":"2013-01-01T00:00:00","endDate":"2013-01-03T00:00:00"}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToDateMunicipalityRequest"
              },
              "example": {"municipality":"4601","startDate":"2013-01-01T00:00:00","endDate":"2013-01-03T00:00:00"}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToDateMunicipalityRequest"
              },
              "example": {"municipality":"4601","startDate":"2013-01-01T00:00:00","endDate":"2013-01-03T00:00:00"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.TrackCommon2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.TrackCommon2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.TrackCommon2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/vocabulary": {
      "get": {
        "tags": [
          "ShipType"
        ],
        "summary": "Retrieve all available vocabularies",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/KDataAPI3.Models.Vocabulary.Vocabulary"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/KDataAPI3.Models.Vocabulary.Vocabulary"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/KDataAPI3.Models.Vocabulary.Vocabulary"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/vocabulary/mapping": {
      "get": {
        "tags": [
          "ShipType"
        ],
        "summary": "Retrieve all ship type mappings between source and target vocabularies (Auth)",
        "description": "Only available for Kystverket users",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Vocabulary.TermMapping, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Vocabulary.TermMapping, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Vocabulary.TermMapping, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/vocabulary/mapping/{fromVocabularyCode}/{toVocabularyCode}": {
      "delete": {
        "tags": [
          "ShipType"
        ],
        "summary": "Delete all mappings between specified source and target vocabularies (Auth)",
        "description": "Only available for Kystverket users",
        "parameters": [
          {
            "name": "fromVocabularyCode",
            "in": "path",
            "description": "The code of the source vocabulary",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "test-vocabulary-1"
          },
          {
            "name": "toVocabularyCode",
            "in": "path",
            "description": "The code of the target vocabulary",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "test-vocabulary-2"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Vocabulary.TermMapping, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Vocabulary.TermMapping, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Vocabulary.TermMapping, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      },
      "get": {
        "tags": [
          "ShipType"
        ],
        "summary": "Retrieve all ship type mappings between source and target vocabularies (Auth)",
        "description": "Only available for Kystverket users",
        "parameters": [
          {
            "name": "fromVocabularyCode",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "toVocabularyCode",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Vocabulary.TermMapping, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Vocabulary.TermMapping, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Vocabulary.TermMapping, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "ShipType"
        ],
        "summary": "Upload one or more ship type mappings between two existing vocabularies\r\nIf the mapping already exists, it will be updated with the new information.\r\nI.e. if the source vocabulary and source id already exists, the\r\ntarget id will be updated to the new value. (Auth)",
        "parameters": [
          {
            "name": "fromVocabularyCode",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "test-vocabulary-1"
          },
          {
            "name": "toVocabularyCode",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "test-vocabulary-2"
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/KDataAPI3.Models.Vocabulary.TermMapping"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/KDataAPI3.Models.Vocabulary.TermMapping"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/KDataAPI3.Models.Vocabulary.TermMapping"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/KDataAPI3.Models.Vocabulary.TermMapping"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/KDataAPI3.Models.Vocabulary.TermMapping"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/KDataAPI3.Models.Vocabulary.TermMapping"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/vocabulary/mapping/{fromVocabularyCode}/{toVocabularyCode}/create": {
      "post": {
        "tags": [
          "ShipType"
        ],
        "summary": "Create (or re-create) the materialized view used to look up mappings\r\nbetween two vocabularies. (Auth)",
        "description": "Only available for Kystverket users",
        "parameters": [
          {
            "name": "fromVocabularyCode",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "test-vocabulary-1"
          },
          {
            "name": "toVocabularyCode",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "test-vocabulary-2"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/vocabulary/mapping/{fromVocabularyCode}/{toVocabularyCode}/refresh": {
      "post": {
        "tags": [
          "ShipType"
        ],
        "summary": "Refresh the materialized view used to look up mappings between two vocabularies. (Auth)",
        "description": "Only available for Kystverket users",
        "parameters": [
          {
            "name": "fromVocabularyCode",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "test-vocabulary-1"
          },
          {
            "name": "toVocabularyCode",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "test-vocabulary-2"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/vocabulary/terms/{vocabularyCode}": {
      "delete": {
        "tags": [
          "ShipType"
        ],
        "summary": "Delete a term(s) from an existing vocabulary.\r\nIf the term already exists, it will be updated with the new information. (Auth)",
        "parameters": [
          {
            "name": "vocabularyCode",
            "in": "path",
            "description": "The code of the vocabulary you wish to add or upsert terms for",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/KDataAPI3.Models.Vocabulary.Term"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/KDataAPI3.Models.Vocabulary.Term"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/KDataAPI3.Models.Vocabulary.Term"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Vocabulary.Term, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Vocabulary.Term, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Vocabulary.Term, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      },
      "get": {
        "tags": [
          "ShipType"
        ],
        "summary": "Get the terms from a vocabulary. (Auth)",
        "description": "Restricted to Kystverket internal users",
        "parameters": [
          {
            "name": "vocabularyCode",
            "in": "path",
            "description": "The code of the vocabulary you wish to add or upsert terms for",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Vocabulary.Term, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Vocabulary.Term, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Vocabulary.Term, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "ShipType"
        ],
        "summary": "Upsert one or more terms to an existing vocabulary.\r\nIf the term already exists, it will be updated with the new information. (Auth)",
        "parameters": [
          {
            "name": "vocabularyCode",
            "in": "path",
            "description": "The code of the vocabulary you wish to add or upsert terms for",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/KDataAPI3.Models.Vocabulary.Term"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/KDataAPI3.Models.Vocabulary.Term"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/KDataAPI3.Models.Vocabulary.Term"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Vocabulary.Term, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Vocabulary.Term, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Vocabulary.Term, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/vocabulary/terms/{vocabularyCode}/{term}": {
      "delete": {
        "tags": [
          "ShipType"
        ],
        "summary": "Delete a term(s) from an existing vocabulary.\r\nIf the term already exists, it will be updated with the new information. (Auth)",
        "parameters": [
          {
            "name": "vocabularyCode",
            "in": "path",
            "description": "The code of the vocabulary you wish to add or upsert terms for",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "term",
            "in": "path",
            "description": "The term you wish to delete",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/KDataAPI3.Models.Vocabulary.Term"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/KDataAPI3.Models.Vocabulary.Term"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/KDataAPI3.Models.Vocabulary.Term"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Vocabulary.Term, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Vocabulary.Term, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Vocabulary.Term, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/vocabulary/{vocabularyCode}": {
      "delete": {
        "tags": [
          "ShipType"
        ],
        "summary": "Delete a vocabulary (Auth)",
        "description": "Restricted to Kystverket users",
        "parameters": [
          {
            "name": "vocabularyCode",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/KDataAPI3.Models.Vocabulary.Vocabulary"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/KDataAPI3.Models.Vocabulary.Vocabulary"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/KDataAPI3.Models.Vocabulary.Vocabulary"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "JWT Bearer": [
              null
            ]
          }
        ]
      }
    },
    "/api/voyage/aggregated/arrivals": {
      "post": {
        "tags": [
          "Voyage"
        ],
        "summary": "Get arrivals for years",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToYearRequest"
              },
              "example": {"fromYear":2018,"toYear":2019}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToYearRequest"
              },
              "example": {"fromYear":2018,"toYear":2019}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToYearRequest"
              },
              "example": {"fromYear":2018,"toYear":2019}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/voyage/aggregated/arrivals-by-day": {
      "post": {
        "tags": [
          "Voyage"
        ],
        "summary": "Get aggregated voyage data for arrivals to location in Norway within specified period",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToYearDateSpanRequest"
              },
              "example": {"fromYear":2019,"toYear":2020,"fromMonth":2,"fromDay":20,"toMonth":3,"toDay":24}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToYearDateSpanRequest"
              },
              "example": {"fromYear":2019,"toYear":2020,"fromMonth":2,"fromDay":20,"toMonth":3,"toDay":24}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToYearDateSpanRequest"
              },
              "example": {"fromYear":2019,"toYear":2020,"fromMonth":2,"fromDay":20,"toMonth":3,"toDay":24}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.WebServices.VoyageAgg, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.WebServices.VoyageAgg, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.WebServices.VoyageAgg, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/voyage/aggregated/cruise/public": {
      "post": {
        "tags": [
          "Voyage"
        ],
        "summary": "Get summary of all cruise traffic (does not include passenger numbers (privileged information))",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.AggCruiseInfoPublicResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.AggCruiseInfoPublicResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.AggCruiseInfoPublicResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/voyage/aggregated/departures-by-day": {
      "post": {
        "tags": [
          "Voyage"
        ],
        "summary": "Get aggregated voyage data for departures from locations in Norway within specified period",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToYearDateSpanRequest"
              },
              "example": {"fromYear":2019,"toYear":2020,"fromMonth":2,"fromDay":20,"toMonth":3,"toDay":24}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToYearDateSpanRequest"
              },
              "example": {"fromYear":2019,"toYear":2020,"fromMonth":2,"fromDay":20,"toMonth":3,"toDay":24}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.FromToYearDateSpanRequest"
              },
              "example": {"fromYear":2019,"toYear":2020,"fromMonth":2,"fromDay":20,"toMonth":3,"toDay":24}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.WebServices.VoyageAgg, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.WebServices.VoyageAgg, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.WebServices.VoyageAgg, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/voyage/aggregated/{fromYear}/{toYear}": {
      "get": {
        "tags": [
          "Voyage"
        ],
        "summary": "Get aggregated voyage data for period",
        "parameters": [
          {
            "name": "fromYear",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "toYear",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.WebServices.VoyageAggCompact, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.WebServices.VoyageAggCompact, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.WebServices.VoyageAggCompact, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Voyage"
        ],
        "summary": "Get aggregated voyage data for period",
        "parameters": [
          {
            "name": "fromYear",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "toYear",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.WebServices.VoyageAggCompact, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.WebServices.VoyageAggCompact, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.WebServices.VoyageAggCompact, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/voyage/arrivals-current-month-by-departure-country": {
      "get": {
        "tags": [
          "Voyage"
        ],
        "summary": "Output statistics on yearly cruise arrivals to destinations in Norway",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Voyage.NumberOfVoyagesByDateAndDepartureCountry, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Voyage.NumberOfVoyagesByDateAndDepartureCountry, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Voyage.NumberOfVoyagesByDateAndDepartureCountry, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/voyage/arrivals-departures/for-location": {
      "post": {
        "tags": [
          "Voyage"
        ],
        "summary": "Get aggregated voyage data (arrivals and departures) for one or more locations and period",
        "requestBody": {
          "description": "Location identifiers and timespan in years",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.LocationIdsFromToYearRequest"
              },
              "example": {"locationIds":[2327908,2327949],"fromYear":2018,"toYear":2019}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.LocationIdsFromToYearRequest"
              },
              "example": {"locationIds":[2327908,2327949],"fromYear":2018,"toYear":2019}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.LocationIdsFromToYearRequest"
              },
              "example": {"locationIds":[2327908,2327949],"fromYear":2018,"toYear":2019}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.WebServices.VoyageAgg, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.WebServices.VoyageAgg, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.WebServices.VoyageAgg, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/voyage/arrivals-previous-month-by-departure-country": {
      "get": {
        "tags": [
          "Voyage"
        ],
        "summary": "Output statistics on yearly cruise arrivals to destinations in Norway by previous month",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Voyage.NumberOfVoyagesByDateAndDepartureCountry, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Voyage.NumberOfVoyagesByDateAndDepartureCountry, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Voyage.NumberOfVoyagesByDateAndDepartureCountry, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/voyage/arrivals/for-locations": {
      "post": {
        "tags": [
          "Voyage"
        ],
        "summary": "Find voyages to one or more destination locations in year(s)",
        "requestBody": {
          "description": "Voyage request parameters",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.LocationIdsFromToYearRequest"
              },
              "example": {"locationIds":[2327908,2327949],"fromYear":2018,"toYear":2019}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.LocationIdsFromToYearRequest"
              },
              "example": {"locationIds":[2327908,2327949],"fromYear":2018,"toYear":2019}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.LocationIdsFromToYearRequest"
              },
              "example": {"locationIds":[2327908,2327949],"fromYear":2018,"toYear":2019}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/KyvDvhAPI.Models.Voyage"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/KyvDvhAPI.Models.Voyage"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/KyvDvhAPI.Models.Voyage"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/voyage/between/{fromDate}/{toDate}": {
      "get": {
        "tags": [
          "Voyage"
        ],
        "summary": "Retrieve all voyages within the timespan between a fromDate (greater than or equal) and toDate (less than)",
        "parameters": [
          {
            "name": "fromDate",
            "in": "path",
            "description": "UTC date time string ending with Z",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2019-01-01 10:00:00Z"
          },
          {
            "name": "toDate",
            "in": "path",
            "description": "UTC date time string ending with Z",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2019-01-01 14:00:00Z"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Voyage.VoyageData, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Voyage.VoyageData, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Voyage.VoyageData, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Http.HttpResults.BadRequest`1[[KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Http.HttpResults.BadRequest`1[[KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Http.HttpResults.BadRequest`1[[KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/voyage/cruise/year-on-year-difference": {
      "get": {
        "tags": [
          "Voyage"
        ],
        "summary": "Output statistics on yearly cruise arrivals to destinations in Norway",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Cruise.YearOnYearCruiseArrivalsDifference, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Cruise.YearOnYearCruiseArrivalsDifference, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Cruise.YearOnYearCruiseArrivalsDifference, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/voyage/dangerous-goods/by-voyage-segments/{fromTime}/{toTime}": {
      "get": {
        "tags": [
          "Voyage"
        ],
        "summary": "Return GeoJSON for all ships in real time",
        "parameters": [
          {
            "name": "fromTime",
            "in": "path",
            "description": "From time",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2024-01-01T10:00"
          },
          {
            "name": "toTime",
            "in": "path",
            "description": "To time",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2024-01-15T10:00"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.DangerousGoodsByVoyageSegmentTime, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.DangerousGoodsByVoyageSegmentTime, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.DangerousGoodsByVoyageSegmentTime, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/voyage/departures/for-locations": {
      "post": {
        "tags": [
          "Voyage"
        ],
        "summary": "Find voyages from one or more origin locations in year(s)",
        "requestBody": {
          "description": "Voyage request parameters",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.LocationIdsFromToYearRequest"
              },
              "example": {"locationIds":[2327908,2327949],"fromYear":2018,"toYear":2019}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.LocationIdsFromToYearRequest"
              },
              "example": {"locationIds":[2327908,2327949],"fromYear":2018,"toYear":2019}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.LocationIdsFromToYearRequest"
              },
              "example": {"locationIds":[2327908,2327949],"fromYear":2018,"toYear":2019}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/voyage/for-ships/by-callsign": {
      "post": {
        "tags": [
          "Voyage"
        ],
        "summary": "Return all voyages for ships identified by their callsign within\r\na time period. Works on NSR data and will only return information for ships\r\nthat are required to report to SafeSeaNet, this excludes smaller vessels etc.",
        "requestBody": {
          "description": "Callsign(s) and time period",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.CallsignTimeRequest"
              },
              "example": {"callsigns":["LLTF"],"startTime":"2018-01-01T00:00:00","endTime":"2018-02-01T00:00:00"}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.CallsignTimeRequest"
              },
              "example": {"callsigns":["LLTF"],"startTime":"2018-01-01T00:00:00","endTime":"2018-02-01T00:00:00"}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.CallsignTimeRequest"
              },
              "example": {"callsigns":["LLTF"],"startTime":"2018-01-01T00:00:00","endTime":"2018-02-01T00:00:00"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.VoyageSimple, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.VoyageSimple, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.VoyageSimple, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/voyage/for-ships/by-mmsi": {
      "post": {
        "tags": [
          "Voyage"
        ],
        "summary": "Find voyages for one or more ships identified by their MMSI identifiers within a specific time period",
        "requestBody": {
          "description": "Voyage request parameters",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.MmsiTimeRequest"
              },
              "example": {"mmsiIds":[258092000,258092000],"startTime":"2018-01-01T00:00:00","endTime":"2018-02-01T00:00:00"}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.MmsiTimeRequest"
              },
              "example": {"mmsiIds":[258092000,258092000],"startTime":"2018-01-01T00:00:00","endTime":"2018-02-01T00:00:00"}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.MmsiTimeRequest"
              },
              "example": {"mmsiIds":[258092000,258092000],"startTime":"2018-01-01T00:00:00","endTime":"2018-02-01T00:00:00"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.Voyage, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.Voyage, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.Voyage, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/voyage/for-ships/by-shipid": {
      "post": {
        "tags": [
          "Voyage"
        ],
        "summary": "Find voyages for one or more ships identified by their NSR ship identifiers within a specific time period",
        "requestBody": {
          "description": "Voyage request parameters",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.ShipIdTimeRequest"
              },
              "example": {"shipIds":[136759,337483,337483],"startTime":"2018-01-01T00:00:00","endTime":"2018-02-01T00:00:00"}
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.ShipIdTimeRequest"
              },
              "example": {"shipIds":[136759,337483,337483],"startTime":"2018-01-01T00:00:00","endTime":"2018-02-01T00:00:00"}
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.ShipIdTimeRequest"
              },
              "example": {"shipIds":[136759,337483,337483],"startTime":"2018-01-01T00:00:00","endTime":"2018-02-01T00:00:00"}
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.Voyage, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.Voyage, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.Voyage, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/voyage/infographics/arrivals-per-day": {
      "get": {
        "tags": [
          "Indicators"
        ],
        "summary": "Returns all voyages for a specified time period compared to the same period in a previous year",
        "parameters": [
          {
            "name": "referenceDate",
            "in": "query",
            "description": "The reference date to calculate from, i.e. today",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "timeOffset",
            "in": "query",
            "description": "The number of time units preceding the reference date to include",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 30
            }
          },
          {
            "name": "comparisonYear",
            "in": "query",
            "description": "The year to include for comparison, -1 = previous year, -2 = two years ago etc.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": -1
            }
          },
          {
            "name": "nLargest",
            "in": "query",
            "description": "If specified will include data for the n most busy ports",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": -1
            }
          },
          {
            "name": "timeRes",
            "in": "query",
            "description": "Time resolution (year, month, week, day)",
            "schema": {
              "type": "string",
              "default": "day"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.IGArrivalsResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.IGArrivalsResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.IGArrivalsResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/voyage/infographics/cruises-per-day": {
      "get": {
        "tags": [
          "Indicators"
        ],
        "summary": "Returns all cruise voyages in the n days leading up to the reference date,\r\ncompared to the same period in a previous year",
        "parameters": [
          {
            "name": "referenceDate",
            "in": "query",
            "description": "The reference date to calculate from, i.e. today",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "numDays",
            "in": "query",
            "description": "The number of days preceding the reference date to include",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": -14
            }
          },
          {
            "name": "comparisonYear",
            "in": "query",
            "description": "The year to include for comparison, -1 = previous year, -2 = two years ago etc.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": -1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.IGCruiseVoyageResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.IGCruiseVoyageResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.IGCruiseVoyageResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/voyage/international-detail/{fromTime}/{toTime}": {
      "get": {
        "tags": [
          "Voyage"
        ],
        "summary": "Return international arrivals and departures within timespan",
        "parameters": [
          {
            "name": "fromTime",
            "in": "path",
            "description": "From time",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2023-07-01T00:00"
          },
          {
            "name": "toTime",
            "in": "path",
            "description": "To time",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2023-07-07T00:00"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.PassengersByVoyageSegmentNationalityTime, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.PassengersByVoyageSegmentNationalityTime, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.PassengersByVoyageSegmentNationalityTime, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/voyage/international/{from_date}/{to_date}": {
      "get": {
        "tags": [
          "Voyage"
        ],
        "summary": "Return all international voyages in time-period.",
        "parameters": [
          {
            "name": "fromDate",
            "in": "path",
            "description": "From date yyyy-mm-dd (inclusive)",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toDate",
            "in": "path",
            "description": "To date yyyy-mm-dd (exclusive)",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "from_date",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to_date",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.VoyageSimple, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.VoyageSimple, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.VoyageSimple, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/voyage/passengers/by-date-location": {
      "post": {
        "tags": [
          "Voyage"
        ],
        "summary": "Get number of passengers per location and date. The data is aggregated to the day level, and the first arrival to a destination each day is used. The data is based on the SafeSeaNet data, and is updated daily.",
        "requestBody": {
          "description": "A JSON array of years to include in the query",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "example": [
                2025
              ]
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "example": [
                2025
              ]
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "example": [
                2025
              ]
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.Cruise.PassengersPerLocationAndDate, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.Cruise.PassengersPerLocationAndDate, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.Cruise.PassengersPerLocationAndDate, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          }
        }
      }
    },
    "/api/voyage/passengers/by-voyage-segments/{fromTime}/{toTime}": {
      "get": {
        "tags": [
          "Voyage"
        ],
        "summary": "Return aggregated number of passengers for each voyage segment, shiptype, flag state and month\r\n\r\nVersion 1 returns all voyages from SafeSeaNet\r\nVersion 2 limits to the first arrival to a destination each day",
        "parameters": [
          {
            "name": "fromTime",
            "in": "path",
            "description": "From time",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2023-07-01T00:00"
          },
          {
            "name": "toTime",
            "in": "path",
            "description": "To time",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2023-07-07T00:00"
          },
          {
            "name": "version",
            "in": "query",
            "description": "Version of web service",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 2
            },
            "example": 2
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.PassengersByVoyageSegmentNationalityTime, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.PassengersByVoyageSegmentNationalityTime, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.PassengersByVoyageSegmentNationalityTime, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "KDataAPI3.Common.Tracks.TrackCoverage": {
        "type": "object",
        "properties": {
          "firstTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "lastTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Time period (UTC) covered by a track source"
      },
      "KDataAPI3.Models.AreaStatistics.SailedDistanceCountyMunicipality": {
        "type": "object",
        "properties": {
          "year": {
            "type": "integer",
            "format": "int32"
          },
          "month": {
            "type": "integer",
            "format": "int32"
          },
          "county": {
            "type": "string",
            "nullable": true
          },
          "municipality": {
            "type": "string",
            "nullable": true
          },
          "vessel_type": {
            "type": "string",
            "nullable": true
          },
          "gt_group": {
            "type": "string",
            "nullable": true
          },
          "dist_nmi": {
            "type": "number",
            "format": "float"
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.AreaStatistics.SailedDistanceManagementPlanArea": {
        "type": "object",
        "properties": {
          "year": {
            "type": "integer",
            "format": "int32"
          },
          "month": {
            "type": "integer",
            "format": "int32"
          },
          "vessel_type": {
            "type": "string",
            "nullable": true
          },
          "gt_group": {
            "type": "string",
            "nullable": true
          },
          "area": {
            "type": "string",
            "nullable": true
          },
          "dist_nmi": {
            "type": "number",
            "format": "float"
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.Cruise.PassengersPerLocationAndDate": {
        "type": "object",
        "properties": {
          "year": {
            "type": "integer",
            "description": "Year",
            "format": "int32"
          },
          "month": {
            "type": "integer",
            "description": "Month",
            "format": "int32"
          },
          "day": {
            "type": "integer",
            "description": "Day",
            "format": "int32"
          },
          "dct": {
            "type": "string",
            "description": "Destination country (land)",
            "nullable": true
          },
          "dcounty": {
            "type": "string",
            "description": "Destination county (fylke)",
            "nullable": true
          },
          "dcouncil": {
            "type": "string",
            "description": "Destination council (kommune)",
            "nullable": true
          },
          "destination": {
            "type": "string",
            "description": "Destination location (havn, ankomststed)",
            "nullable": true
          },
          "passengers": {
            "type": "integer",
            "description": "Number of passengers (samlet antall passasjerer)",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Response object for queries to get number of passengers per location and date. The data is aggregated to the day level, and the first arrival to a destination each day is used. The data is based on the SafeSeaNet data, and is updated daily."
      },
      "KDataAPI3.Models.Cruise.YearOnYearCruiseArrivalsDifference": {
        "type": "object",
        "properties": {
          "year": {
            "type": "integer",
            "format": "int32"
          },
          "cruise_arrivals": {
            "type": "integer",
            "format": "int32"
          },
          "cruise_arrivals_previous_year": {
            "type": "integer",
            "format": "int32"
          },
          "difference": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.GeoAisDB.PosMsg": {
        "type": "object",
        "properties": {
          "mmsi": {
            "type": "integer",
            "format": "int32"
          },
          "date_time_utc": {
            "type": "string",
            "format": "date-time"
          },
          "sog": {
            "type": "number",
            "format": "float"
          },
          "cog": {
            "type": "number",
            "format": "float"
          },
          "true_heading": {
            "type": "number",
            "format": "float"
          },
          "nav_status": {
            "type": "integer",
            "format": "int32"
          },
          "message_nr": {
            "type": "integer",
            "format": "int32"
          },
          "rot": {
            "type": "number",
            "format": "float"
          },
          "dist_prevpoint": {
            "type": "number",
            "format": "float"
          },
          "sec_prevpoint": {
            "type": "number",
            "format": "float"
          },
          "calc_speed": {
            "type": "number",
            "format": "float"
          },
          "source": {
            "type": "string",
            "nullable": true
          },
          "longitude": {
            "type": "number",
            "format": "float"
          },
          "latitude": {
            "type": "number",
            "format": "float"
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.GeoJson.FeatureCollection`2[[KDataAPI3.Models.Kystdatahuset.NsrLocation, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[KDataAPI3.Models.GeoJson.PointGeometry, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "features": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KDataAPI3.Models.GeoJson.Feature`2[[KDataAPI3.Models.Kystdatahuset.NsrLocation, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[KDataAPI3.Models.GeoJson.PointGeometry, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.GeoJson.FeatureCollection`2[[KDataAPI3.Models.Realtime.LatestPositions, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[KDataAPI3.Models.GeoJson.LineStringGeometry, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "features": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KDataAPI3.Models.GeoJson.Feature`2[[KDataAPI3.Models.Realtime.LatestPositions, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[KDataAPI3.Models.GeoJson.LineStringGeometry, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.GeoJson.Feature`2[[KDataAPI3.Models.Kystdatahuset.NsrLocation, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[KDataAPI3.Models.GeoJson.PointGeometry, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "properties": {
            "$ref": "#/components/schemas/KDataAPI3.Models.Kystdatahuset.NsrLocation"
          },
          "geometry": {
            "$ref": "#/components/schemas/KDataAPI3.Models.GeoJson.PointGeometry"
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.GeoJson.Feature`2[[KDataAPI3.Models.Realtime.LatestPositions, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[KDataAPI3.Models.GeoJson.LineStringGeometry, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "properties": {
            "$ref": "#/components/schemas/KDataAPI3.Models.Realtime.LatestPositions"
          },
          "geometry": {
            "$ref": "#/components/schemas/KDataAPI3.Models.GeoJson.LineStringGeometry"
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.GeoJson.LineStringGeometry": {
        "type": "object",
        "properties": {
          "coordinates": {
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "type": "number",
                "format": "float"
              }
            },
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.GeoJson.PointGeometry": {
        "type": "object",
        "properties": {
          "coordinates": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "float"
            },
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.Kystdatahuset.NsrLocation": {
        "type": "object",
        "properties": {
          "locationid": {
            "type": "integer",
            "format": "int32"
          },
          "locationcode": {
            "type": "string",
            "nullable": true
          },
          "locationnamenor": {
            "type": "string",
            "nullable": true
          },
          "locationnameeng": {
            "type": "string",
            "nullable": true
          },
          "isactive": {
            "type": "boolean"
          },
          "locationgeometry": {
            "type": "string",
            "nullable": true
          },
          "locationgeometrylatitude": {
            "type": "number",
            "format": "float"
          },
          "locationgeometrylongitude": {
            "type": "number",
            "format": "float"
          },
          "locationtypenor": {
            "type": "string",
            "nullable": true
          },
          "locationtypeeng": {
            "type": "string",
            "nullable": true
          },
          "systemname": {
            "type": "string",
            "nullable": true
          },
          "countrynamenor": {
            "type": "string",
            "nullable": true
          },
          "countrynameeng": {
            "type": "string",
            "nullable": true
          },
          "countrytwocharcode": {
            "type": "string",
            "nullable": true
          },
          "countrythreecharcode": {
            "type": "string",
            "nullable": true
          },
          "countyname": {
            "type": "string",
            "nullable": true
          },
          "countyno": {
            "type": "string",
            "nullable": true
          },
          "councilname": {
            "type": "string",
            "nullable": true
          },
          "councilno": {
            "type": "string",
            "nullable": true
          },
          "portfacilityno": {
            "nullable": true
          },
          "portfacilityownertypenor": {
            "nullable": true
          },
          "portfacilityownertypeeng": {
            "nullable": true
          },
          "quayportlocationid": {
            "nullable": true
          },
          "portfacilityportlocationid": {
            "nullable": true
          },
          "portfacilityid": {
            "nullable": true
          },
          "quayportfacilityid": {
            "nullable": true
          },
          "portfacilitystatusnor": {
            "nullable": true
          },
          "portfacilitystatuseng": {
            "nullable": true
          },
          "portfacilityapprovedoperationallevel": {
            "nullable": true
          },
          "portfacilitycurrentsecuritylevel": {
            "nullable": true
          },
          "portfacilityissafeloadingcompliant": {
            "nullable": true
          },
          "createddate": {
            "type": "string",
            "format": "date-time"
          },
          "modifieddate": {
            "type": "string",
            "format": "date-time"
          },
          "geomwm": {
            "nullable": true
          },
          "geomll": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.MmsiDateLonLatRequest": {
        "type": "object",
        "properties": {
          "mmsi": {
            "type": "integer",
            "description": "Mmsis",
            "format": "int32",
            "example": 209762000
          },
          "date": {
            "type": "string",
            "description": "Date",
            "format": "date-time",
            "example": "2017-07-01T13:23:29Z"
          },
          "longitude": {
            "type": "number",
            "description": "Longitude",
            "format": "float",
            "example": 4.90817
          },
          "latitude": {
            "type": "number",
            "description": "Latitude",
            "format": "float",
            "example": 61.9197
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.PosMsgAboveBelow": {
        "type": "object",
        "properties": {
          "mmsi": {
            "type": "integer",
            "description": "Maritime Mobile Service ID",
            "format": "int32"
          },
          "tstamp": {
            "type": "string",
            "description": "Timestamp of request",
            "format": "date-time"
          },
          "tstampPrev": {
            "type": "string",
            "description": "Timestamp of previous position message",
            "format": "date-time",
            "nullable": true
          },
          "tstampNext": {
            "type": "string",
            "description": "Timestamp of next posigion message",
            "format": "date-time",
            "nullable": true
          },
          "secPrev": {
            "type": "number",
            "description": "Seconds between timestamp of request and previous position message",
            "format": "float",
            "nullable": true
          },
          "secNext": {
            "type": "number",
            "description": "Seconds between timestamp of request and next position message",
            "format": "float",
            "nullable": true
          },
          "lng": {
            "type": "number",
            "description": "Longitude of request",
            "format": "float"
          },
          "lat": {
            "type": "number",
            "description": "Latitude of request",
            "format": "float"
          },
          "lngPrev": {
            "type": "number",
            "description": "Longitude of previous position message",
            "format": "float",
            "nullable": true
          },
          "latPrev": {
            "type": "number",
            "description": "Latitude of previous position message",
            "format": "float",
            "nullable": true
          },
          "lngNext": {
            "type": "number",
            "description": "Longtiude of next position message",
            "format": "float",
            "nullable": true
          },
          "latNext": {
            "type": "number",
            "description": "Latitude of next position message",
            "format": "float",
            "nullable": true
          },
          "distPrev": {
            "type": "number",
            "description": "Distance to previous position in meters",
            "format": "float",
            "nullable": true
          },
          "distNext": {
            "type": "number",
            "description": "Distance to enxt position in meters",
            "format": "float",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.Realtime.LatestPositions": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "cog": {
            "type": "number",
            "format": "float"
          },
          "imo": {
            "type": "integer",
            "format": "int32"
          },
          "mmsi": {
            "type": "integer",
            "format": "int32"
          },
          "speed": {
            "type": "number",
            "format": "float"
          },
          "length": {
            "type": "number",
            "format": "float"
          },
          "status": {
            "type": "integer",
            "format": "int32"
          },
          "breadth": {
            "type": "number",
            "format": "float"
          },
          "draught": {
            "type": "number",
            "format": "float"
          },
          "callsign": {
            "type": "string",
            "nullable": true
          },
          "maneuvre": {
            "type": "number",
            "format": "float"
          },
          "ais_class": {
            "type": "string",
            "nullable": true
          },
          "ship_name": {
            "type": "string",
            "nullable": true
          },
          "ship_type": {
            "type": "integer",
            "format": "int32"
          },
          "destination": {
            "type": "string",
            "nullable": true
          },
          "true_heading": {
            "type": "number",
            "format": "float"
          },
          "date_time_utc": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.RequestModels.AssignRoleRequest": {
        "type": "object",
        "properties": {
          "role_name": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.RequestModels.AuthRequest": {
        "type": "object",
        "properties": {
          "username": {
            "type": "string",
            "description": "Username",
            "nullable": true,
            "example": "user"
          },
          "password": {
            "type": "string",
            "description": "Password",
            "nullable": true,
            "example": "password"
          }
        },
        "additionalProperties": false,
        "description": "Request to login to API"
      },
      "KDataAPI3.Models.RequestModels.CreateMyDataFolderRequest": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "nullable": true
          },
          "parentFolderId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.RequestModels.FederatedLoginRequest": {
        "type": "object",
        "properties": {
          "provider": {
            "type": "string",
            "description": "The federated identity provider, e.g. \"entra\" or \"auth0\".",
            "nullable": true,
            "example": "entra"
          },
          "token": {
            "type": "string",
            "description": "The raw bearer token issued by the federated identity provider.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Request to login using a federated identity provider token (Entra ID or Auth0)."
      },
      "KDataAPI3.Models.RequestModels.LinkIdentityRequest": {
        "type": "object",
        "properties": {
          "provider": {
            "type": "string",
            "nullable": true
          },
          "provider_subject": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "display_name": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.RequestModels.MoveMyDataGeodataRequest": {
        "type": "object",
        "properties": {
          "folderId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.RequestModels.PasslineCrossingsRequest": {
        "required": [
          "endTime",
          "geom",
          "startTime"
        ],
        "type": "object",
        "properties": {
          "geom": {
            "minLength": 1,
            "type": "string",
            "description": "The passline as a WKT LINESTRING in latitude/longitude (EPSG:4326)"
          },
          "startTime": {
            "type": "string",
            "description": "Start of the period (UTC). Crossings are selected by the interpolated crossing time.",
            "format": "date-time"
          },
          "endTime": {
            "type": "string",
            "description": "End of the period (UTC), exclusive",
            "format": "date-time"
          },
          "clipMode": {
            "type": "string",
            "description": "Which part of the track to return with each crossing:\r\n\"distance\" (default): ClipDistanceM metres along the track on either side of the crossing.\r\n\"time\": ClipSeconds seconds on either side of the crossing (M based).\r\n\"full\": the whole track line (only on the first crossing of each track).\r\n\"none\": no geometry.",
            "nullable": true
          },
          "clipDistanceM": {
            "type": "number",
            "description": "Metres along the track on either side of the crossing when ClipMode is \"distance\" (default 2000, max 50000)",
            "format": "double"
          },
          "clipSeconds": {
            "type": "number",
            "description": "Seconds on either side of the crossing when ClipMode is \"time\" (default 600, max 21600)",
            "format": "double"
          },
          "speedWindowSeconds": {
            "type": "number",
            "description": "Seconds on either side of the crossing used to compute speed and course over ground (default 60, 5-900)",
            "format": "double"
          },
          "limit": {
            "type": "integer",
            "description": "Maximum number of crossings returned (default 100000, max 300000)",
            "format": "int32",
            "nullable": true,
            "example": null
          }
        },
        "additionalProperties": false,
        "description": "Query the crossings of a passline within a time period"
      },
      "KDataAPI3.Models.RequestModels.RenameMyDataRequest": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.RequestModels.ShipsWithinAreaRequest": {
        "required": [
          "endTime",
          "geom",
          "startTime"
        ],
        "type": "object",
        "properties": {
          "geom": {
            "minLength": 1,
            "type": "string",
            "description": "The area as a WKT POLYGON or MULTIPOLYGON in latitude/longitude (EPSG:4326)"
          },
          "startTime": {
            "type": "string",
            "description": "Start of the period (UTC). Only the parts of the tracks inside the period are used.",
            "format": "date-time"
          },
          "endTime": {
            "type": "string",
            "description": "End of the period (UTC), exclusive",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Query the ships that have been within an area during a time period"
      },
      "KDataAPI3.Models.RequestModels.TracksWithinGeomTimeRequest": {
        "required": [
          "endTime",
          "startTime"
        ],
        "type": "object",
        "properties": {
          "geom": {
            "type": "string",
            "description": "Optional area as WKT (line, polygon or multi-geometry) in latitude/longitude (EPSG:4326).\r\nTracks that intersect the area are returned. With ClipToGeom and a (multi)polygon, only the parts inside the area\r\nare returned, otherwise the tracks are returned in full (within the time period).\r\nAt least one of Geom and Mmsi must be given.",
            "nullable": true
          },
          "clipToGeom": {
            "type": "boolean",
            "description": "If true (default) and Geom is a polygon or multipolygon, the track lines are cut to the area. The cut is done on\r\nthe vertices, so each piece starts and ends at the first vertex outside the area and the M values are kept.\r\nHas no effect for other geometry types."
          },
          "mmsi": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "description": "Optional list of MMSI numbers. Returns everywhere these ships have been during the period.",
            "nullable": true
          },
          "startTime": {
            "type": "string",
            "description": "Start of the period (UTC)",
            "format": "date-time"
          },
          "endTime": {
            "type": "string",
            "description": "End of the period (UTC), exclusive",
            "format": "date-time"
          },
          "clipToPeriod": {
            "type": "boolean",
            "description": "If true (default), the parts of the track lines that fall outside the period are removed using the M values\r\n(interpreted as Unix epoch seconds). If false, whole tracks that overlap the period are returned."
          },
          "srid": {
            "type": "integer",
            "description": "EPSG code the geometry is transformed to before transfer. Default 4326 (no transform).\r\nM values are retained.",
            "format": "int32"
          },
          "format": {
            "type": "string",
            "description": "\"json\" (default): JSON with WKB LineStringM as base64.\r\n\"binary\": compact binary container (KTRK v1), see docs/TRACK-TRANSFER-FORMAT.md",
            "nullable": true
          },
          "limit": {
            "type": "integer",
            "description": "Maximum number of line pieces returned (default 50000, max 200000)",
            "format": "int32",
            "nullable": true,
            "example": null
          }
        },
        "additionalProperties": false,
        "description": "Query tracks by area and/or ship within a time period"
      },
      "KDataAPI3.Models.RequestModels.UpsertMyDataRequest": {
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string",
            "description": "Null/omitted => create.",
            "format": "uuid",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "subtype": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.RequestModels.UpsertRoleRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.RequestModels.UpsertShipDimensionsRequest": {
        "type": "object",
        "properties": {
          "shipid": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "example": null
          },
          "imo": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "example": null
          },
          "mmsi": {
            "type": "string",
            "nullable": true
          },
          "shipname": {
            "type": "string",
            "nullable": true
          },
          "length": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "breadth": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "air_draught": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "draught": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "keel_to_mast": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "length_derived_from": {
            "type": "string",
            "description": "One of: ai-predict, ai-vision, plans, reported, web, other",
            "nullable": true
          },
          "breadth_derived_from": {
            "type": "string",
            "nullable": true
          },
          "air_draught_derived_from": {
            "type": "string",
            "nullable": true
          },
          "draught_derived_from": {
            "type": "string",
            "nullable": true
          },
          "keel_to_mast_derived_from": {
            "type": "string",
            "nullable": true
          },
          "length_confidence": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "breadth_confidence": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "air_draught_confidence": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "draught_confidence": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "keel_to_mast_confidence": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "length_date": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "breadth_date": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "air_draught_date": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "draught_date": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "keel_to_mast_date": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "note": {
            "type": "string",
            "nullable": true
          },
          "length_clear": {
            "type": "boolean",
            "description": "When true, clears this measure's value, source, confidence and date together,\r\ninstead of leaving the stored value unchanged. Takes precedence over the\r\ncorresponding value/derived_from/confidence/date fields on this request."
          },
          "breadth_clear": {
            "type": "boolean"
          },
          "air_draught_clear": {
            "type": "boolean"
          },
          "draught_clear": {
            "type": "boolean"
          },
          "keel_to_mast_clear": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.RequestModels.WktYearMonthRequest": {
        "type": "object",
        "properties": {
          "wkt": {
            "type": "string",
            "description": "Well-known Text polygon geometry",
            "nullable": true,
            "example": "POLYGON ((38428.31383014185121283 6920056.65084539912641048, -132278.6584352976642549 7079670.75126687530428171, -179115.22844314388930798 6778930.67016386240720749, -164941.00330919041880406 6708059.54449409525841475, 37812.04317214386537671 6708059.54449409525841475, 169077.69332571292761713 6737640.53607799857854843, 141345.51371580397244543 6856580.77307160757482052, 141345.51371580397244543 6856580.77307160757482052, 38428.31383014185121283 6920056.65084539912641048))"
          },
          "year": {
            "type": "integer",
            "description": "Year, 4 digits",
            "format": "int32",
            "example": 2023
          },
          "month": {
            "type": "integer",
            "description": "Month from 1-12, if specified will use data for that month month in the specified year",
            "format": "int32",
            "nullable": true,
            "example": null
          },
          "yearCompare": {
            "type": "integer",
            "description": "An optional year to compare with, if specified will output difference between years",
            "format": "int32",
            "nullable": true,
            "example": null
          },
          "monthCompare": {
            "type": "integer",
            "description": "An optional month to compare with, is specified will output difference between this month in compare year and month in year",
            "format": "int32",
            "nullable": true,
            "example": null
          },
          "operation": {
            "type": "string",
            "description": "Operation",
            "nullable": true,
            "example": "difference_abs"
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.ResponseModels.AggCruiseInfoPublicResponse": {
        "type": "object",
        "properties": {
          "dct": {
            "type": "string",
            "description": "Destination country",
            "nullable": true
          },
          "dcounty": {
            "type": "string",
            "description": "Destination county",
            "nullable": true
          },
          "dcouncil": {
            "type": "string",
            "description": "Destination municipality/council",
            "nullable": true
          },
          "dlat": {
            "type": "number",
            "description": "Destination location latitude",
            "format": "float"
          },
          "dlon": {
            "type": "number",
            "description": "Destination location longitude",
            "format": "float"
          },
          "origin": {
            "type": "string",
            "description": "Origin location name",
            "nullable": true
          },
          "destination": {
            "type": "string",
            "description": "Destination location name",
            "nullable": true
          },
          "lgrp": {
            "type": "string",
            "description": "Length group",
            "nullable": true
          },
          "gtgrp": {
            "type": "string",
            "description": "Gross tonnage group",
            "nullable": true
          },
          "shipid": {
            "type": "integer",
            "description": "Ship ID as specified in NSR/SafeSeaNet",
            "format": "int32"
          },
          "mmsi": {
            "type": "integer",
            "description": "Mobile Maritime Service Identifier",
            "format": "int32"
          },
          "shipname": {
            "type": "string",
            "description": "Name of vessel (ship)",
            "nullable": true
          },
          "year": {
            "type": "integer",
            "description": "Year",
            "format": "int32"
          },
          "month": {
            "type": "integer",
            "description": "Month of year",
            "format": "int32"
          },
          "day": {
            "type": "integer",
            "description": "Day of month",
            "format": "int32"
          },
          "num_unique_ships": {
            "type": "integer",
            "description": "Number of unique ships",
            "format": "int32"
          },
          "num_arrivals": {
            "type": "integer",
            "description": "Number of arrivals",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.ResponseModels.AisStaticRecord": {
        "type": "object",
        "properties": {
          "mmsi": {
            "type": "integer",
            "description": "MMSI number (AIS \"User ID\")",
            "format": "int32"
          },
          "msgType": {
            "type": "integer",
            "description": "AIS message type the static data originates from: 5 (class A) or 24 (class B). Null if the row has no AIS static data",
            "format": "int32",
            "nullable": true,
            "example": null
          },
          "aisClass": {
            "type": "string",
            "description": "\"A\" for message 5, \"B\" for message 24, otherwise null",
            "nullable": true
          },
          "imoNumber": {
            "type": "integer",
            "description": "IMO number (AIS \"IMO number\"), from AIS if available, otherwise from S&P",
            "format": "int32",
            "nullable": true,
            "example": null
          },
          "callSign": {
            "type": "string",
            "description": "Call sign",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "Ship name",
            "nullable": true
          },
          "shipType": {
            "type": "integer",
            "description": "AIS type of ship and cargo type (0-99)",
            "format": "int32",
            "nullable": true,
            "example": null
          },
          "dimensionToBow": {
            "type": "integer",
            "description": "Reference point dimension A: distance from reference point to bow, metres",
            "format": "int32",
            "nullable": true,
            "example": null
          },
          "dimensionToStern": {
            "type": "integer",
            "description": "Reference point dimension B: distance to stern, metres",
            "format": "int32",
            "nullable": true,
            "example": null
          },
          "dimensionToPort": {
            "type": "integer",
            "description": "Reference point dimension C: distance to port, metres",
            "format": "int32",
            "nullable": true,
            "example": null
          },
          "dimensionToStarboard": {
            "type": "integer",
            "description": "Reference point dimension D: distance to starboard, metres",
            "format": "int32",
            "nullable": true,
            "example": null
          },
          "draught": {
            "type": "number",
            "description": "Maximum present static draught, metres (registry value, not necessarily as broadcast)",
            "format": "double",
            "nullable": true
          },
          "validFrom": {
            "type": "string",
            "description": "Start of the period this record was valid (UTC)",
            "format": "date-time",
            "nullable": true
          },
          "validTo": {
            "type": "string",
            "description": "End of the period this record was valid (UTC). Null if still valid",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Best approximation of an AIS static data record (message 5 for class A, message 24 for class B),\r\nreconstructed from the combined ship registry. Fields AIS carries that the registry does not hold\r\n(ETA, destination, DTE, EPFS type, AIS version) are not included."
      },
      "KDataAPI3.Models.ResponseModels.Bunkers": {
        "type": "object",
        "properties": {
          "etd": {
            "type": "string",
            "description": "Estimated time of departure",
            "format": "date-time"
          },
          "departure_location": {
            "type": "string",
            "description": "Departure location",
            "nullable": true
          },
          "eta": {
            "type": "string",
            "description": "Estimated time of arrival",
            "format": "date-time"
          },
          "arrival_location": {
            "description": "Arrival location",
            "nullable": true
          },
          "bunkerstypenor": {
            "type": "string",
            "description": "Bunkerstype",
            "nullable": true
          },
          "quantity": {
            "type": "number",
            "description": "Quantity",
            "format": "float"
          },
          "unitofmeasurementtypeshortnamenor": {
            "type": "string",
            "description": "Unit of measurement",
            "nullable": true
          },
          "remark": {
            "type": "string",
            "description": "Remarks, detailed substance",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.ResponseModels.CombinedShipData": {
        "type": "object",
        "properties": {
          "callsign": {
            "type": "string",
            "nullable": true
          },
          "breadth": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "cc3": {
            "type": "string",
            "nullable": true
          },
          "draught": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "dwt": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "fairplay_id": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "example": null
          },
          "fiskdir_id": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "example": null
          },
          "gt": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "height": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "imo": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "example": null
          },
          "loa": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "mmsi": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "example": null
          },
          "nornis_id": {
            "type": "string",
            "nullable": true
          },
          "nsr_id": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "example": null
          },
          "shipinfo_id": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "example": null
          },
          "shipname": {
            "type": "string",
            "nullable": true
          },
          "shiptype": {
            "type": "string",
            "nullable": true
          },
          "src": {
            "type": "string",
            "nullable": true
          },
          "yearofbuild": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "example": null
          },
          "combined_id": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.ResponseModels.CombinedShipDataV2": {
        "type": "object",
        "properties": {
          "mmsi": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Maritime mobile service identity",
            "nullable": true
          },
          "imo": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "callsign": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "shipname": {
            "type": "string",
            "nullable": true
          },
          "shiptype": {
            "type": "string",
            "nullable": true
          },
          "loa": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "breadthextreme": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "breadthmoulded": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "height": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "draught": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "gt": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "dwt": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "teu": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "cc3": {
            "type": "string",
            "nullable": true
          },
          "liquidcapacity": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "gascapacity": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "yearofbuild": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "example": null
          },
          "powerkwmax": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "speedservice": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "speedmax": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "mainenginerpm": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "bollardpull": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "statcode5": {
            "type": "string",
            "nullable": true
          },
          "shiptypelevel5": {
            "type": "string",
            "nullable": true
          },
          "src": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "fairplay_id": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "example": null
          },
          "fiskdir_id": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "example": null
          },
          "nornis_id": {
            "type": "string",
            "nullable": true
          },
          "nsr_id": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "example": null
          },
          "shipinfo_id": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "example": null
          },
          "combined_id": {
            "type": "string",
            "nullable": true
          },
          "csid": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "example": null
          },
          "maru_type": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.ResponseModels.CombinedShipDataVersions": {
        "enum": [
          1,
          2
        ],
        "type": "integer",
        "format": "int32"
      },
      "KDataAPI3.Models.ResponseModels.DangerousGoodsByVoyageSegmentTime": {
        "type": "object",
        "properties": {
          "tstamp": {
            "type": "string",
            "description": "Time truncated to first day of month",
            "format": "date-time"
          },
          "origin": {
            "type": "string",
            "description": "Origin location",
            "nullable": true
          },
          "type": {
            "type": "string",
            "description": "Ship type",
            "nullable": true
          },
          "flag": {
            "type": "string",
            "description": "Ship flag state",
            "nullable": true
          },
          "destination": {
            "type": "string",
            "description": "Destination location",
            "nullable": true
          },
          "year": {
            "type": "integer",
            "description": "Year as integer",
            "format": "int32"
          },
          "month": {
            "type": "integer",
            "description": "Month as integer",
            "format": "int32"
          },
          "dangerousandpollutionggoodstype": {
            "type": "string",
            "description": "Short name of dangerous goods type",
            "nullable": true
          },
          "textualreference": {
            "type": "string",
            "description": "Long name/description of dangerous goods type",
            "nullable": true
          },
          "imohazardclassname": {
            "type": "string",
            "description": "IMO hazard class",
            "nullable": true
          },
          "netunit": {
            "type": "string",
            "description": "Measurement unit",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "description": "Quantity",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.ResponseModels.GeoAisDBStatMsg": {
        "type": "object",
        "properties": {
          "mmsi": {
            "type": "integer",
            "format": "int32"
          },
          "imo_num": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "example": null
          },
          "callsign": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "gt": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "dwt": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "length": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "breadth": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "draught": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "depth": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "shiptypelevel5": {
            "type": "string",
            "nullable": true
          },
          "statcode5": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.ResponseModels.PassengersByVoyageSegmentNationalityTime": {
        "type": "object",
        "properties": {
          "tstamp": {
            "type": "string",
            "description": "Timestamp, truncated to month",
            "format": "date-time"
          },
          "origin": {
            "type": "string",
            "description": "Origin location",
            "nullable": true
          },
          "type": {
            "type": "string",
            "description": "Ship type NSR",
            "nullable": true
          },
          "flag": {
            "type": "string",
            "description": "Ship flag code",
            "nullable": true
          },
          "destination": {
            "type": "string",
            "description": "Destination location",
            "nullable": true
          },
          "year": {
            "type": "integer",
            "description": "Year as integer",
            "format": "int32"
          },
          "month": {
            "type": "integer",
            "description": "Month as integer",
            "format": "int32"
          },
          "countryofnationalitynamenor": {
            "type": "string",
            "description": "Nationality of passengers",
            "nullable": true
          },
          "passengers": {
            "type": "integer",
            "description": "Number of passengers",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.ResponseModels.TrackCommon2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "shipid": {
            "type": "integer",
            "format": "int32"
          },
          "mmsi": {
            "type": "integer",
            "format": "int32"
          },
          "imo": {
            "type": "integer",
            "format": "int32"
          },
          "callsign": {
            "type": "string",
            "nullable": true
          },
          "shipname": {
            "type": "string",
            "nullable": true
          },
          "shiptype_level5": {
            "type": "string",
            "nullable": true
          },
          "countrynamenor": {
            "type": "string",
            "nullable": true
          },
          "grosstonnage": {
            "type": "integer",
            "format": "int32"
          },
          "dwt": {
            "type": "integer",
            "format": "int32"
          },
          "length": {
            "type": "number",
            "format": "float"
          },
          "breadth": {
            "type": "number",
            "format": "float"
          },
          "height": {
            "type": "integer",
            "format": "int32"
          },
          "draught": {
            "type": "number",
            "format": "float"
          },
          "starttime": {
            "type": "string",
            "format": "date-time"
          },
          "endtime": {
            "type": "string",
            "format": "date-time"
          },
          "kyv_kategori": {
            "type": "string",
            "nullable": true
          },
          "geometry": {
            "nullable": true
          },
          "nmi": {
            "type": "number",
            "format": "float",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.ShipType.AIS.AISShipreg": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "year": {
            "type": "integer",
            "format": "int32"
          },
          "mmsi": {
            "type": "integer",
            "format": "int32"
          },
          "imo": {
            "type": "integer",
            "format": "int32"
          },
          "callsign": {
            "type": "string",
            "nullable": true
          },
          "ship_name": {
            "type": "string",
            "nullable": true
          },
          "ship_type": {
            "type": "integer",
            "format": "int32"
          },
          "ais_class": {
            "type": "string",
            "nullable": true
          },
          "length": {
            "type": "number",
            "format": "float"
          },
          "breadth": {
            "type": "number",
            "format": "float"
          },
          "is_public": {
            "type": "boolean"
          },
          "tsvector_ship_name": {
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.ShipType.Nsr.Ship": {
        "type": "object",
        "properties": {
          "shipid": {
            "type": "integer",
            "format": "int32"
          },
          "imono": {
            "type": "integer",
            "format": "int32"
          },
          "mmsino": {
            "type": "integer",
            "format": "int32"
          },
          "callsign": {
            "type": "string",
            "nullable": true
          },
          "shipname": {
            "type": "string",
            "nullable": true
          },
          "yearofbuild": {
            "type": "integer",
            "format": "int32"
          },
          "grosstonnage": {
            "type": "integer",
            "format": "int32"
          },
          "dwt": {
            "type": "integer",
            "format": "int32"
          },
          "length": {
            "type": "number",
            "format": "float"
          },
          "breadth": {
            "type": "number",
            "format": "float"
          },
          "speed": {
            "type": "number",
            "format": "float"
          },
          "power": {
            "type": "integer",
            "format": "int32"
          },
          "height": {
            "nullable": true
          },
          "draught": {
            "type": "number",
            "format": "float"
          },
          "shiptypenor": {
            "type": "string",
            "nullable": true
          },
          "shiptypeeng": {
            "type": "string",
            "nullable": true
          },
          "shiptypegroupnor": {
            "type": "string",
            "nullable": true
          },
          "shiptypegroupeng": {
            "type": "string",
            "nullable": true
          },
          "hasonshorepowersupply": {
            "nullable": true
          },
          "shipflagcode": {
            "type": "string",
            "nullable": true
          },
          "countrynamenor": {
            "type": "string",
            "nullable": true
          },
          "countrynameeng": {
            "type": "string",
            "nullable": true
          },
          "twocharcode": {
            "type": "string",
            "nullable": true
          },
          "threecharcode": {
            "type": "string",
            "nullable": true
          },
          "createddate": {
            "type": "string",
            "format": "date-time"
          },
          "modifieddate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.ShipType.StatCode5Type": {
        "type": "object",
        "properties": {
          "statcode5": {
            "type": "string",
            "nullable": true
          },
          "shiptypelevel5": {
            "type": "string",
            "nullable": true
          },
          "level4code": {
            "type": "string",
            "nullable": true
          },
          "shiptypelevel4": {
            "type": "string",
            "nullable": true
          },
          "level3code": {
            "type": "string",
            "nullable": true
          },
          "shiptypelevel3": {
            "type": "string",
            "nullable": true
          },
          "level2code": {
            "type": "string",
            "nullable": true
          },
          "shiptypelevel2": {
            "type": "string",
            "nullable": true
          },
          "shiptypelevel1code": {
            "type": "string",
            "nullable": true
          },
          "shiptypelevel1": {
            "type": "string",
            "nullable": true
          },
          "hulltype": {
            "type": "string",
            "nullable": true
          },
          "subgroup": {
            "type": "string",
            "nullable": true
          },
          "subtype": {
            "type": "string",
            "nullable": true
          },
          "hulltypecode": {
            "type": "integer",
            "format": "int32"
          },
          "subgroupcode": {
            "type": "string",
            "nullable": true
          },
          "subtypecode": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.Vocabulary.Term": {
        "type": "object",
        "properties": {
          "vocabulary": {
            "type": "string",
            "description": "Vocabulary term belongs to",
            "nullable": true,
            "example": "test-vocabulary"
          },
          "term_id": {
            "type": "string",
            "description": "Id of term",
            "nullable": true,
            "example": "term-identifier-123"
          },
          "term_label": {
            "type": "string",
            "description": "Label of term",
            "nullable": true,
            "example": "A meaningful label"
          },
          "occurrences": {
            "type": "integer",
            "description": "Number of times term occurs in source registry",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.Vocabulary.TermMapping": {
        "type": "object",
        "properties": {
          "source_vocabulary": {
            "type": "string",
            "description": "Code list of source term",
            "nullable": true
          },
          "source_id": {
            "type": "string",
            "description": "Id of source term",
            "nullable": true
          },
          "target_vocabulary": {
            "type": "string",
            "description": "Code list of target term",
            "nullable": true
          },
          "target_id": {
            "type": "string",
            "description": "Id of target term",
            "nullable": true
          },
          "remark": {
            "type": "string",
            "description": "Optional free-text remark about the mapping",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.Vocabulary.Vocabulary": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Code of the vocabulary (sort of a primary key, unique string)",
            "nullable": true,
            "example": "test-vocabulary"
          },
          "title": {
            "type": "string",
            "description": "Human readable nme of the vocabulary",
            "nullable": true,
            "example": "Test Vocabulary"
          },
          "description": {
            "type": "string",
            "description": "Description of the vocabulary",
            "nullable": true,
            "example": "This is a test vocabulary for demonstration purposes."
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.Voyage.NumberOfVoyagesByDateAndDepartureCountry": {
        "type": "object",
        "properties": {
          "arrival_month": {
            "type": "string",
            "format": "date-time"
          },
          "departure_country": {
            "type": "string",
            "nullable": true
          },
          "number_of_arrivals": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.Voyage.VoyageData": {
        "type": "object",
        "properties": {
          "voyageid": {
            "type": "integer",
            "format": "int32"
          },
          "arrivallocationid": {
            "type": "integer",
            "format": "int32"
          },
          "departurelocationid": {
            "type": "integer",
            "format": "int32"
          },
          "etd": {
            "type": "string",
            "format": "date-time"
          },
          "eta": {
            "type": "string",
            "format": "date-time"
          },
          "shipname": {
            "type": "string",
            "nullable": true
          },
          "mmsino": {
            "type": "integer",
            "format": "int32"
          },
          "imono": {
            "type": "integer",
            "format": "int32"
          },
          "callsign": {
            "type": "string",
            "nullable": true
          },
          "yearofbuild": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "example": null
          },
          "actualheight": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "actualdraft": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "cargogrossquantity": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "cargonetquantity": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "dwt": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "grosstonnage": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "length": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "breadth": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "height": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "draught": {
            "type": "number",
            "format": "float",
            "nullable": true
          },
          "hashazmat": {
            "type": "string",
            "nullable": true
          },
          "ship_type": {
            "type": "string",
            "nullable": true
          },
          "ship_group": {
            "type": "string",
            "nullable": true
          },
          "ship_country": {
            "type": "string",
            "nullable": true
          },
          "dep_locid": {
            "type": "integer",
            "format": "int32"
          },
          "dep_locname": {
            "type": "string",
            "nullable": true
          },
          "dep_locode": {
            "type": "string",
            "nullable": true
          },
          "dep_cc2": {
            "type": "string",
            "nullable": true
          },
          "dep_country": {
            "type": "string",
            "nullable": true
          },
          "arr_locid": {
            "type": "integer",
            "format": "int32"
          },
          "arr_locode": {
            "type": "string",
            "nullable": true
          },
          "arr_locname": {
            "type": "string",
            "nullable": true
          },
          "arr_cc2": {
            "type": "string",
            "nullable": true
          },
          "arr_country": {
            "type": "string",
            "nullable": true
          },
          "ship_category": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KDataAPI3.Models.ZonalStats": {
        "type": "object",
        "properties": {
          "year": {
            "type": "integer",
            "format": "int32"
          },
          "sum": {
            "type": "number",
            "format": "double"
          },
          "mean": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "KyvDvhAPI.Models.County": {
        "type": "object",
        "properties": {
          "countyname": {
            "type": "integer",
            "description": "NewShipRep primary location identifier",
            "format": "int32"
          },
          "countyno": {
            "type": "string",
            "description": "Location code",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Location data"
      },
      "KyvDvhAPI.Models.GeomsFromToRequest": {
        "type": "object",
        "properties": {
          "geom1": {
            "type": "string",
            "nullable": true
          },
          "geom2": {
            "type": "string",
            "nullable": true
          },
          "startTime": {
            "type": "string",
            "format": "date-time"
          },
          "endTime": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Request model with two WKT-geometries and a time span"
      },
      "KyvDvhAPI.Models.HangfireAsyncResponse": {
        "type": "object",
        "properties": {
          "jobId": {
            "type": "string",
            "description": "Job identifier",
            "nullable": true
          },
          "checkJobUrl": {
            "type": "string",
            "description": "URL where job can be cheked",
            "nullable": true,
            "readOnly": true
          },
          "userEmail": {
            "type": "string",
            "description": "E-mail that will be notified once job is complete",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Location data"
      },
      "KyvDvhAPI.Models.Location": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "NewShipRep primary location identifier",
            "format": "int32"
          },
          "code": {
            "type": "string",
            "description": "Location code",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "Name of location",
            "nullable": true
          },
          "type": {
            "type": "string",
            "description": "Type of location",
            "nullable": true
          },
          "council": {
            "type": "string",
            "description": "Council, \"kommunenummer\"",
            "nullable": true
          },
          "county": {
            "type": "string",
            "description": "County, \"fylkesnummer\"",
            "nullable": true
          },
          "country": {
            "type": "string",
            "description": "Country, two-letter ISO abbreviation, e.g. \"NO\"",
            "nullable": true
          },
          "lon": {
            "type": "number",
            "description": "Longitude of location (WGS84)",
            "format": "double"
          },
          "lat": {
            "type": "number",
            "description": "Latitude of location (WGS84)",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Location data"
      },
      "KyvDvhAPI.Models.RequestModels.FreeTextRequest": {
        "type": "object",
        "properties": {
          "freeText": {
            "type": "string",
            "description": "Free text expression",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A free text query request object"
      },
      "KyvDvhAPI.Models.RequestModels.FreeTextTimeRequest": {
        "type": "object",
        "properties": {
          "freeText": {
            "type": "string",
            "description": "Free text expression",
            "nullable": true
          },
          "startTime": {
            "type": "string",
            "description": "Start time",
            "format": "date-time"
          },
          "endTime": {
            "type": "string",
            "description": "End time",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "A free text and time period query request object"
      },
      "KyvDvhAPI.Models.ResponseModels.AggSailedDistanceResponse": {
        "type": "object",
        "properties": {
          "shipcategory": {
            "type": "string",
            "nullable": true
          },
          "aisclass": {
            "type": "string",
            "nullable": true
          },
          "month": {
            "type": "string",
            "nullable": true
          },
          "municipality_id": {
            "type": "string",
            "nullable": true
          },
          "municipality_name": {
            "type": "string",
            "nullable": true
          },
          "county_id": {
            "type": "string",
            "nullable": true
          },
          "county_name": {
            "type": "string",
            "nullable": true
          },
          "gt_grp": {
            "type": "string",
            "nullable": true
          },
          "dwt_grp": {
            "type": "string",
            "nullable": true
          },
          "length_grp": {
            "type": "string",
            "nullable": true
          },
          "nmi": {
            "type": "number",
            "format": "float"
          }
        },
        "additionalProperties": false
      },
      "KyvDvhAPI.Models.ResponseModels.GeoAisDbFreeText": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string",
            "nullable": true
          },
          "label": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KyvDvhAPI.Models.ResponseModels.GeoAisDbPositionArray": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "array",
              "items": { }
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KyvDvhAPI.Models.ResponseModels.IGArrivalsResponse": {
        "type": "object",
        "properties": {
          "shipgroup": {
            "type": "string",
            "description": "Ship group type",
            "nullable": true
          },
          "date": {
            "type": "string",
            "description": "Date",
            "nullable": true
          },
          "arrivals": {
            "type": "integer",
            "description": "Number of arrivals",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Response from InfoGraphic arrivals"
      },
      "KyvDvhAPI.Models.ResponseModels.IGCruiseVoyageResponse": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "description": "Date",
            "nullable": true
          },
          "arrivals": {
            "type": "integer",
            "description": "Number of arrivals",
            "format": "int32"
          },
          "passengers": {
            "type": "integer",
            "description": "Number of passengers",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Number of cruise arrivals and passengers per day"
      },
      "KyvDvhAPI.Models.ResponseModels.InfoByMmsiIdsResponse": {
        "type": "object",
        "properties": {
          "imono": {
            "type": "integer",
            "description": "IMO number",
            "format": "int32"
          },
          "mmsino": {
            "type": "integer",
            "description": "MMSI identifier",
            "format": "int32"
          },
          "callsign": {
            "type": "string",
            "description": "Callsign",
            "nullable": true
          },
          "shipname": {
            "type": "string",
            "description": "Ship name",
            "nullable": true
          },
          "grosstonnage": {
            "type": "number",
            "description": "Gross tonnage",
            "format": "float"
          },
          "shiptypegroupnor": {
            "type": "string",
            "description": "New Ship Rep grouping",
            "nullable": true
          },
          "length": {
            "type": "number",
            "description": "LOA",
            "format": "float"
          },
          "breadth": {
            "type": "number",
            "description": "Breadth",
            "format": "float"
          },
          "height": {
            "type": "number",
            "description": "Height",
            "format": "float"
          },
          "draught": {
            "type": "integer",
            "description": "Draught",
            "format": "int32"
          },
          "threecharcode": {
            "type": "string",
            "description": "New Ship Rep three char code, cc3",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KyvDvhAPI.Models.ResponseModels.SailedDistance": {
        "type": "object",
        "properties": {
          "imo": {
            "type": "integer",
            "description": "IMO number",
            "format": "int32"
          },
          "callsign": {
            "type": "string",
            "description": "Call sign",
            "nullable": true
          },
          "shipname": {
            "type": "string",
            "description": "Name of ship as per AIS",
            "nullable": true
          },
          "y": {
            "type": "integer",
            "description": "Year (four digits)",
            "format": "int32"
          },
          "m": {
            "type": "integer",
            "description": "Month (1-12)",
            "format": "int32"
          },
          "count": {
            "type": "integer",
            "description": "Number of line segments",
            "format": "int32"
          },
          "d_km": {
            "type": "number",
            "description": "Sailed distance in kilometres",
            "format": "float"
          }
        },
        "additionalProperties": false
      },
      "KyvDvhAPI.Models.ResponseModels.ShipInfo": {
        "type": "object",
        "properties": {
          "shipid": {
            "type": "integer",
            "format": "int32"
          },
          "imono": {
            "type": "integer",
            "format": "int32"
          },
          "mmsino": {
            "type": "integer",
            "format": "int32"
          },
          "callsign": {
            "type": "string",
            "nullable": true
          },
          "shipname": {
            "type": "string",
            "nullable": true
          },
          "yearofbuild": {
            "type": "integer",
            "format": "int32"
          },
          "grosstonnage": {
            "type": "integer",
            "format": "int32"
          },
          "dwt": {
            "type": "integer",
            "format": "int32"
          },
          "length": {
            "type": "number",
            "format": "float"
          },
          "breadth": {
            "type": "number",
            "format": "float"
          },
          "speed": {
            "type": "integer",
            "format": "int32"
          },
          "power": {
            "type": "integer",
            "format": "int32"
          },
          "height": {
            "type": "number",
            "format": "float"
          },
          "draught": {
            "type": "number",
            "format": "float"
          },
          "shiptypenor": {
            "type": "string",
            "nullable": true
          },
          "shiptypeeng": {
            "type": "string",
            "nullable": true
          },
          "shiptypegroupnor": {
            "type": "string",
            "nullable": true
          },
          "shiptypegroupeng": {
            "type": "string",
            "nullable": true
          },
          "hasonshorepowersupply": {
            "type": "boolean",
            "nullable": true
          },
          "shipflagcode": {
            "type": "string",
            "nullable": true
          },
          "countrynamenor": {
            "type": "string",
            "nullable": true
          },
          "countrynameeng": {
            "type": "string",
            "nullable": true
          },
          "twocharcode": {
            "type": "string",
            "nullable": true
          },
          "threecharcode": {
            "type": "string",
            "nullable": true
          },
          "createddate": {
            "type": "string",
            "format": "date-time"
          },
          "modifieddate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Comprehensive ship information from NSR"
      },
      "KyvDvhAPI.Models.ResponseModels.TimeInPort": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "NewShipRep primary location identifier",
            "format": "int32"
          },
          "shipid": {
            "type": "integer",
            "description": "Ship identifier as per NSR/Ship",
            "format": "int32"
          },
          "shipname": {
            "type": "string",
            "description": "Ship name as per NSR/Ship",
            "nullable": true
          },
          "shiptype": {
            "type": "string",
            "description": "Ship type (Statcode5)",
            "nullable": true
          },
          "shipcategory": {
            "type": "string",
            "description": "Ship category as per Kystdatahuset",
            "nullable": true
          },
          "locationid": {
            "type": "integer",
            "description": "Location identifier as per NSR/Location",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "description": "Location name as per NSR/Location",
            "nullable": true
          },
          "type": {
            "type": "string",
            "description": "Type of location",
            "nullable": true
          },
          "country": {
            "type": "string",
            "description": "Country of location",
            "nullable": true
          },
          "council": {
            "type": "string",
            "description": "Council (municipality) of location",
            "nullable": true
          },
          "eta": {
            "type": "string",
            "description": "Estimated time of arrival at location",
            "format": "date-time"
          },
          "etd": {
            "type": "string",
            "description": "Estimated time of departure from location",
            "format": "date-time"
          },
          "tinterval": {
            "type": "string",
            "description": "Time spent at location",
            "format": "date-span"
          },
          "hours": {
            "type": "integer",
            "description": "Hours spent at location",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Return data for queries to TimeInPort table of NSR in Kystdatahuset"
      },
      "KyvDvhAPI.Models.ResponseModels.TimeInPortOSPS": {
        "type": "object",
        "properties": {
          "mmsi": {
            "type": "integer",
            "description": "MMSI number",
            "format": "int32"
          },
          "imo": {
            "type": "integer",
            "description": "IMO number",
            "format": "int32"
          },
          "gt": {
            "type": "integer",
            "description": "Gross tonnage",
            "format": "int32"
          },
          "loa": {
            "type": "number",
            "description": "Length over all",
            "format": "float"
          },
          "id": {
            "type": "integer",
            "description": "Identifier (system number)",
            "format": "int32"
          },
          "shipid": {
            "type": "integer",
            "description": "Ship identifier as per nsr/ship",
            "format": "int32"
          },
          "shipname": {
            "type": "string",
            "description": "Ship name as per nsr/ship",
            "nullable": true
          },
          "shiptype": {
            "type": "string",
            "description": "Ship type as per nsr/ship (Statcode5)",
            "nullable": true
          },
          "shipcategory": {
            "type": "string",
            "description": "Ship category as per nsr/ship",
            "nullable": true
          },
          "locationid": {
            "type": "integer",
            "description": "Location identifier as per nsr/location",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "description": "Location name as per nsr/location",
            "nullable": true
          },
          "type": {
            "type": "string",
            "description": "Location type as per nsr/location",
            "nullable": true
          },
          "country": {
            "type": "string",
            "description": "Country of location",
            "nullable": true
          },
          "council": {
            "type": "string",
            "description": "Council (municipality) of location",
            "nullable": true
          },
          "eta": {
            "type": "string",
            "description": "Estimated time of arrival",
            "format": "date-time"
          },
          "etd": {
            "type": "string",
            "description": "Estimated time of departure",
            "format": "date-time"
          },
          "tinterval": {
            "type": "string",
            "description": "Time interval in port",
            "nullable": true
          },
          "hours": {
            "type": "number",
            "description": "Hours in port",
            "format": "float"
          },
          "lat": {
            "type": "number",
            "description": "Latitude of location",
            "format": "float"
          },
          "long": {
            "type": "number",
            "description": "Longitude of location",
            "format": "float"
          }
        },
        "additionalProperties": false,
        "description": "Response model for service that returns data on port calls for ships with onshore power supply"
      },
      "KyvDvhAPI.Models.ResponseModels.TrackSpeed": {
        "type": "object",
        "properties": {
          "mmsi": {
            "type": "integer",
            "description": "MMSI identifier",
            "format": "int32"
          },
          "imo": {
            "type": "integer",
            "description": "IMO number",
            "format": "int32"
          },
          "callsign": {
            "type": "string",
            "description": "Call sign",
            "nullable": true
          },
          "shipid": {
            "type": "integer",
            "description": "Ship identifier",
            "format": "int32"
          },
          "shipname": {
            "type": "string",
            "description": "Ship name",
            "nullable": true
          },
          "starttime": {
            "type": "string",
            "description": "Start time (start time of first track recorded within time period)",
            "format": "date-time"
          },
          "endtime": {
            "type": "string",
            "description": "End time (end time of last track recorded within time period)",
            "format": "date-time"
          },
          "numtracks": {
            "type": "integer",
            "description": "Number of track segments",
            "format": "int32"
          },
          "minspeed": {
            "type": "number",
            "description": "Minimum speed within time period (only when ship is moving)",
            "format": "float"
          },
          "maxspeed": {
            "type": "number",
            "description": "Maximum speed within time period (only when ship is moving)",
            "format": "float"
          },
          "avgspeed": {
            "type": "number",
            "description": "Average speed within time period (only when ship is moving)",
            "format": "float"
          }
        },
        "additionalProperties": false
      },
      "KyvDvhAPI.Models.ResponseModels.VoyageSimple": {
        "type": "object",
        "properties": {
          "voyageid": {
            "type": "integer",
            "description": "Voyage identifier",
            "format": "int32"
          },
          "arrivallocationid": {
            "type": "integer",
            "description": "Arrivallocation identifier",
            "format": "int32"
          },
          "departurelocationid": {
            "type": "integer",
            "description": "Departurelocation identifier",
            "format": "int32"
          },
          "etd": {
            "type": "string",
            "description": "Estimated time of arrival",
            "format": "date-time"
          },
          "eta": {
            "type": "string",
            "description": "Estimated time of departure",
            "format": "date-time"
          },
          "hashazmat": {
            "type": "string",
            "description": "Has hazardous materials onboard",
            "nullable": true
          },
          "actualheight": {
            "type": "integer",
            "description": "Actual height",
            "format": "int32"
          },
          "actualdraft": {
            "type": "number",
            "description": "Actual draft",
            "format": "float"
          },
          "cargogrossquantity": {
            "type": "integer",
            "description": "Gross quantity of cargo",
            "format": "int32"
          },
          "cargonetquantity": {
            "type": "integer",
            "description": "Net quantity of cargo",
            "format": "int32"
          },
          "shipname": {
            "type": "string",
            "description": "Ship name",
            "nullable": true
          },
          "mmsino": {
            "type": "integer",
            "description": "MMSI number",
            "format": "int32"
          },
          "imono": {
            "type": "integer",
            "description": "IMO number",
            "format": "int32"
          },
          "callsign": {
            "type": "string",
            "description": "Call sign",
            "nullable": true
          },
          "shiptypenor": {
            "type": "string",
            "description": "Ship type (as per Statcode 5)",
            "nullable": true
          },
          "sgroup2": {
            "type": "string",
            "description": "Ship category",
            "nullable": true
          },
          "deplocid": {
            "type": "integer",
            "description": "Departure location identifier",
            "format": "int32"
          },
          "deplocname": {
            "type": "string",
            "description": "Departure location name",
            "nullable": true
          },
          "deploccode": {
            "type": "string",
            "description": "Departure location LOCODE",
            "nullable": true
          },
          "deplocctry": {
            "type": "string",
            "description": "Departure location country",
            "nullable": true
          },
          "deploccc2": {
            "type": "string",
            "description": "Departure location two-char country code",
            "nullable": true
          },
          "arrlocid": {
            "type": "integer",
            "description": "Arrival location identifier",
            "format": "int32"
          },
          "arrlocname": {
            "type": "string",
            "description": "Arrival location name",
            "nullable": true
          },
          "arrloccode": {
            "type": "string",
            "description": "Arrival location LOCODE",
            "nullable": true
          },
          "arrlocctry": {
            "type": "string",
            "description": "Arrival location country",
            "nullable": true
          },
          "arrloccc2": {
            "type": "string",
            "description": "Arrival location two-char country code",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KyvDvhAPI.Models.Track": {
        "type": "object",
        "properties": {
          "mmsi": {
            "type": "integer",
            "description": "Maritime Mobile Service Identity (abbrev: MMSI) a nine-digit number",
            "format": "int32"
          },
          "shipid": {
            "type": "integer",
            "description": "Primary identifier for ships in NewShipRep Ship database",
            "format": "int32"
          },
          "imo": {
            "type": "integer",
            "description": "International Maritime Organization number",
            "format": "int32"
          },
          "callsign": {
            "type": "string",
            "description": "The callsign of the ship",
            "nullable": true
          },
          "shipname": {
            "type": "string",
            "description": "The name of the ship",
            "nullable": true
          },
          "shiptypenor": {
            "type": "string",
            "description": "The type of the ship",
            "nullable": true
          },
          "length": {
            "type": "number",
            "description": "The length of the ship if available",
            "format": "double"
          },
          "breadth": {
            "type": "number",
            "description": "The breadth of the ship if available",
            "format": "double"
          },
          "height": {
            "type": "number",
            "description": "The height of the ship if available",
            "format": "double"
          },
          "draugth": {
            "type": "number",
            "description": "The draught of the ship if available",
            "format": "double"
          },
          "starttime": {
            "type": "string",
            "description": "The start time of the current track. Tracks are split every hour and whenever\r\nthere are more than 100 points to a single line",
            "format": "date-time"
          },
          "endtime": {
            "type": "string",
            "description": "The end time of the current track",
            "format": "date-time"
          },
          "geometry": {
            "description": "The geometry of the track as a GeoJSON geometry object",
            "nullable": true
          },
          "id": {
            "type": "integer",
            "description": "The unique identifier of the track",
            "format": "int32"
          },
          "grosstonnage": {
            "type": "number",
            "description": "The gross tonnage of the ship",
            "format": "double"
          },
          "shiptypegroupnor": {
            "type": "string",
            "description": "The ship type group of the ship, grouping of ship type",
            "nullable": true
          },
          "countrynamenor": {
            "type": "string",
            "description": "The country the ship is registerred in",
            "nullable": true
          },
          "maxsog": {
            "type": "number",
            "description": "The maximum speed over ground for the current track",
            "format": "double"
          },
          "minsog": {
            "type": "number",
            "description": "The minimum speed over ground for the current track",
            "format": "double"
          },
          "avsog": {
            "type": "number",
            "description": "The average speed overground for the current track",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Retrieve information about ship tracks"
      },
      "KyvDvhAPI.Models.Voyage": {
        "type": "object",
        "properties": {
          "origin": {
            "type": "string",
            "description": "Where the voyage starts",
            "nullable": true
          },
          "destination": {
            "type": "string",
            "description": "Where the voyage ends",
            "nullable": true
          },
          "etd": {
            "type": "string",
            "description": "The estimated time of departure (not exact)",
            "format": "date-time",
            "nullable": true
          },
          "eta": {
            "type": "string",
            "description": "The estimated time of arrival (not exact)",
            "format": "date-time",
            "nullable": true
          },
          "actualdraft": {
            "type": "number",
            "description": "The draft",
            "format": "double",
            "nullable": true
          },
          "actualheight": {
            "type": "number",
            "description": "The height",
            "format": "double",
            "nullable": true
          },
          "cargonetquantity": {
            "type": "number",
            "description": "Net quantity of cargo",
            "format": "double",
            "nullable": true
          },
          "cargogrossquantity": {
            "type": "number",
            "description": "Gross quantity of cargo",
            "format": "double",
            "nullable": true
          },
          "hashazmat": {
            "type": "boolean",
            "description": "Has hazardous materials on board"
          },
          "mmsi": {
            "type": "integer",
            "description": "MMSI",
            "format": "int32",
            "nullable": true,
            "example": null
          },
          "shipname": {
            "type": "string",
            "description": "Name of ship",
            "nullable": true
          },
          "yearofbuild": {
            "type": "integer",
            "description": "Year of build",
            "format": "int32",
            "nullable": true,
            "example": null
          },
          "grosstonnage": {
            "type": "number",
            "description": "Gross tonnage",
            "format": "double",
            "nullable": true
          },
          "length": {
            "type": "number",
            "description": "Length",
            "format": "double",
            "nullable": true
          },
          "breadth": {
            "type": "number",
            "description": "Breadth",
            "format": "double",
            "nullable": true
          },
          "height": {
            "type": "number",
            "description": "Height",
            "format": "double",
            "nullable": true
          },
          "draft": {
            "type": "number",
            "description": "Draft",
            "format": "double",
            "nullable": true
          },
          "shiptypenor": {
            "type": "string",
            "description": "Ship type",
            "nullable": true
          },
          "shiptypegroupnor": {
            "type": "string",
            "description": "Ship type group",
            "nullable": true
          },
          "direction": {
            "type": "string",
            "description": "Direction",
            "nullable": true
          },
          "origindestinationpoint": {
            "type": "string",
            "description": "Origin or destination point",
            "nullable": true
          },
          "shipcountrynamenor": {
            "type": "string",
            "description": "Country where ship is registerred",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Information about voyages from New Ship Rep"
      },
      "KyvDvhAPI.Models.WebServiceRequests.AnchorageDokIdStatusTimeRequest": {
        "type": "object",
        "properties": {
          "dokIdStatusPairs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceRequests.DokPair"
            },
            "description": "List of dok_id/dok_status pairs",
            "nullable": true,
            "example": [
              {
                "dokId": "4013",
                "dokStatus": "NCA"
              },
              {
                "dokId": "4099",
                "dokStatus": "P"
              }
            ]
          },
          "startTime": {
            "type": "string",
            "description": "Start time",
            "format": "date-time",
            "example": "2024-01-02T00:00:00Z"
          },
          "endTime": {
            "type": "string",
            "description": "End time (inclusive)",
            "format": "date-time",
            "example": "2024-05-02T23:59:59Z"
          }
        },
        "additionalProperties": false,
        "description": "Request object for voyage data for ship within period of time"
      },
      "KyvDvhAPI.Models.WebServiceRequests.AnchorageDurationRequest": {
        "type": "object",
        "properties": {
          "startYear": {
            "type": "integer",
            "description": "Start year",
            "format": "int32"
          },
          "endYear": {
            "type": "integer",
            "description": "End year (inclusive)",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Request object anchorage duration data"
      },
      "KyvDvhAPI.Models.WebServiceRequests.AnchorageSysIdRequest": {
        "type": "object",
        "properties": {
          "anchorageSysIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "description": "List of anchorage area system IDs",
            "nullable": true,
            "example": 353
          }
        },
        "additionalProperties": false,
        "description": "Request object for voyage data for ship within period of time"
      },
      "KyvDvhAPI.Models.WebServiceRequests.AnchorageSysIdTimeRequest": {
        "type": "object",
        "properties": {
          "anchorageSysIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "description": "List of anchorage area system IDs",
            "nullable": true
          },
          "startTime": {
            "type": "string",
            "description": "Start time",
            "format": "date-time"
          },
          "endTime": {
            "type": "string",
            "description": "End time (inclusive)",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Request object for voyage data for ship within period of time"
      },
      "KyvDvhAPI.Models.WebServiceRequests.BboxTimeMinSpeedRequest": {
        "type": "object",
        "properties": {
          "bbox": {
            "type": "string",
            "description": "Bounding box minx, miny, maxxm maxy as a comma separated string",
            "nullable": true
          },
          "start": {
            "type": "string",
            "description": "Date time as a string in the format yyyymmddhhMM",
            "nullable": true
          },
          "end": {
            "type": "string",
            "description": "Date time as a string in the format yyyymmddhhMM",
            "nullable": true
          },
          "minSpeed": {
            "type": "number",
            "description": "Minimum speed to include in query",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "KyvDvhAPI.Models.WebServiceRequests.CallsignTimeRequest": {
        "type": "object",
        "properties": {
          "callsigns": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Callsign",
            "nullable": true
          },
          "startTime": {
            "type": "string",
            "description": "Start time",
            "format": "date-time"
          },
          "endTime": {
            "type": "string",
            "description": "End time (inclusive)",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Request object ship identified by callsign(s) within time period"
      },
      "KyvDvhAPI.Models.WebServiceRequests.DokIdStatusRequest": {
        "type": "object",
        "properties": {
          "dokId": {
            "type": "integer",
            "description": "Dok ID",
            "format": "int64"
          },
          "dokStatus": {
            "type": "string",
            "description": "Dok status",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Request object for anchorage supplying dokId and dokStatus to uniquely identify an anchorage area"
      },
      "KyvDvhAPI.Models.WebServiceRequests.DokIdStatusTimeRequest": {
        "type": "object",
        "properties": {
          "dokId": {
            "type": "integer",
            "description": "Dok ID",
            "format": "int64",
            "example": 3018
          },
          "dokStatus": {
            "type": "string",
            "description": "Dok status",
            "nullable": true,
            "example": "NCA"
          },
          "startTime": {
            "type": "string",
            "description": "Start time",
            "format": "date-time",
            "example": "2024-05-01T00:00:00Z"
          },
          "endTime": {
            "type": "string",
            "description": "End time (inclusive)",
            "format": "date-time",
            "example": "2024-06-01T23:59:59Z"
          }
        },
        "additionalProperties": false,
        "description": "Request object for voyage data for ship within period of time"
      },
      "KyvDvhAPI.Models.WebServiceRequests.DokPair": {
        "type": "object",
        "properties": {
          "dokId": {
            "type": "integer",
            "format": "int64"
          },
          "dokStatus": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KyvDvhAPI.Models.WebServiceRequests.FromToDateAreaRequest": {
        "type": "object",
        "properties": {
          "startDate": {
            "type": "string",
            "description": "Start time (date with or without time)",
            "format": "date-time",
            "example": "2018-01-01"
          },
          "endDate": {
            "type": "string",
            "description": "End time (date with or without time)",
            "format": "date-time",
            "example": "2018-02-01"
          },
          "areaIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Identifier of areas",
            "nullable": true,
            "example": [
              "1106",
              "4631"
            ]
          }
        },
        "additionalProperties": false,
        "description": "Request object with a start and end time and one or more area identifiers"
      },
      "KyvDvhAPI.Models.WebServiceRequests.FromToDateMunicipalityRequest": {
        "type": "object",
        "properties": {
          "municipality": {
            "type": "string",
            "description": "Four character municipality identifiers",
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "description": "Start time (date with or without time)",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "description": "End time (date with or without time)",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "KyvDvhAPI.Models.WebServiceRequests.FromToDateRequest": {
        "type": "object",
        "properties": {
          "startDate": {
            "type": "string",
            "description": "Start time (date with or without time)",
            "format": "date-time",
            "example": "2018-01-01"
          },
          "endDate": {
            "type": "string",
            "description": "End time (date with or without time)",
            "format": "date-time",
            "example": "2019-01-01"
          }
        },
        "additionalProperties": false,
        "description": "Request object with a start and end time and one or more area identifiers"
      },
      "KyvDvhAPI.Models.WebServiceRequests.FromToLocationTimespanRequest": {
        "type": "object",
        "properties": {
          "locationID1": {
            "type": "integer",
            "description": "First location ID",
            "format": "int32"
          },
          "locationID2": {
            "type": "integer",
            "description": "Second location ID",
            "format": "int32"
          },
          "startTime": {
            "type": "string",
            "description": "Date specified as a six-chatacter string in\r\nthe format \"yyyy-mm-dd\", e.g. \"2018-01-01\" for January 1st 2018",
            "format": "date-time"
          },
          "endTime": {
            "type": "string",
            "description": "Date specified as a six-chatacter string in\r\nthe format \"yyyy-mm-dd\", e.g. \"2018-01-01\" for January 1st 2018",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Request object for from-to location, from to time"
      },
      "KyvDvhAPI.Models.WebServiceRequests.FromToTimeRequest": {
        "type": "object",
        "properties": {
          "startTime": {
            "type": "string",
            "description": "Start time (date with or without time)",
            "format": "date-time"
          },
          "endTime": {
            "type": "string",
            "description": "End time (date with or without time)",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Request object with a start and end time"
      },
      "KyvDvhAPI.Models.WebServiceRequests.FromToYearDateSpanRequest": {
        "type": "object",
        "properties": {
          "fromYear": {
            "type": "integer",
            "description": "First year",
            "format": "int32"
          },
          "toYear": {
            "type": "integer",
            "description": "Last year (inclusive)",
            "format": "int32"
          },
          "fromMonth": {
            "type": "integer",
            "description": "First month to extract data for in each year",
            "format": "int32"
          },
          "fromDay": {
            "type": "integer",
            "description": "First day in first month to extract data for in each year",
            "format": "int32"
          },
          "toMonth": {
            "type": "integer",
            "description": "Last month to extract data for in each year (inclusive)",
            "format": "int32"
          },
          "toDay": {
            "type": "integer",
            "description": "Last day in last month to extract data for in each year (inclusive)",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "KyvDvhAPI.Models.WebServiceRequests.FromToYearRequest": {
        "type": "object",
        "properties": {
          "fromYear": {
            "type": "integer",
            "description": "First year in range (inclusive)",
            "format": "int32"
          },
          "toYear": {
            "type": "integer",
            "description": "Last year in rage (inclusive)",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "KyvDvhAPI.Models.WebServiceRequests.FromToYearWeekRequest": {
        "type": "object",
        "properties": {
          "fromYear": {
            "type": "integer",
            "description": "First year",
            "format": "int32"
          },
          "toYear": {
            "type": "integer",
            "description": "Last year (inclusive)",
            "format": "int32"
          },
          "fromWeek": {
            "type": "integer",
            "description": "First week to extract data for in each year",
            "format": "int32"
          },
          "toWeek": {
            "type": "integer",
            "description": "Last week to extract data for in each year (inclusive)",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "KyvDvhAPI.Models.WebServiceRequests.GeomFromToByMmsiRequest": {
        "type": "object",
        "properties": {
          "geom": {
            "type": "string",
            "description": "Geometry as a WKT line or polygon object in latitude longitude (EPSG:4326)",
            "nullable": true
          },
          "startTime": {
            "type": "string",
            "description": "Year and month specified as a six-chatacter string in\r\nthe format \"yyyy-mm-dd\", e.g. \"2018-01-01\" for January 1st 2018",
            "format": "date-time"
          },
          "endTime": {
            "type": "string",
            "description": "Year and month specified as a six-chatacter string in\r\nthe format \"yyyy-mm-dd\", e.g. \"2018-02-15\" for Feburary 15th 2018",
            "format": "date-time",
            "nullable": true
          },
          "mmsis": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "List of MMSI numbers",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Request object for passlines"
      },
      "KyvDvhAPI.Models.WebServiceRequests.GeomTimeMinSpeedRequest": {
        "type": "object",
        "properties": {
          "geom": {
            "type": "string",
            "description": "Bounding box minx, miny, maxxm maxy as a comma separated string",
            "nullable": true
          },
          "start": {
            "type": "string",
            "description": "Date time as a string in the format yyyy-mm-dd hh:MM",
            "format": "date-time"
          },
          "end": {
            "type": "string",
            "description": "Date time as a string in the format yyyy-mm-dd hh:MM",
            "format": "date-time"
          },
          "minSpeed": {
            "type": "number",
            "description": "Minimum speed to include in query",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "KyvDvhAPI.Models.WebServiceRequests.GeomYearMonthFromToRequest": {
        "type": "object",
        "properties": {
          "geom": {
            "type": "string",
            "description": "Geometry as a WKT line or polygon object in latitude longitude (EPSG:4326)",
            "nullable": true
          },
          "startTime": {
            "type": "string",
            "description": "Year and month specified as a six-chatacter string in\r\nthe format \"yyyy-mm-dd\", e.g. \"2018-01-01\" for January 1st 2018",
            "format": "date-time"
          },
          "endTime": {
            "type": "string",
            "description": "Year and month specified as a six-chatacter string in\r\nthe format \"yyyy-mm-dd\", e.g. \"2018-02-15\" for Feburary 15th 2018",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Request object for passlines"
      },
      "KyvDvhAPI.Models.WebServiceRequests.ImoTimeRequest": {
        "type": "object",
        "properties": {
          "imoIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "List of IMO IDs",
            "nullable": true
          },
          "startTime": {
            "type": "string",
            "description": "Start time",
            "format": "date-time"
          },
          "endTime": {
            "type": "string",
            "description": "End time (inclusive)",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Request object for ships identified by their IMO number within a time period"
      },
      "KyvDvhAPI.Models.WebServiceRequests.LocationIdsFromToYearRequest": {
        "type": "object",
        "properties": {
          "locationIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Array of location identifiers",
            "nullable": true
          },
          "fromYear": {
            "type": "integer",
            "description": "Start year",
            "format": "int32"
          },
          "toYear": {
            "type": "integer",
            "description": "End year",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Request model that contains a start year, an end year and one or more location identifiers"
      },
      "KyvDvhAPI.Models.WebServiceRequests.LocationIdsRequest": {
        "type": "object",
        "properties": {
          "locationIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Location identifiers as per the NSR location registry",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KyvDvhAPI.Models.WebServiceRequests.LocationIdsTimespanRequest": {
        "type": "object",
        "properties": {
          "locationIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "An array of location identifiers",
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "description": "A startdate",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "description": "An end date",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "A request object that includes an array of location identifiers and a time-span defined by a start and and end date"
      },
      "KyvDvhAPI.Models.WebServiceRequests.MmsiDateRequest": {
        "type": "object",
        "properties": {
          "mmsi": {
            "type": "integer",
            "description": "List of ship IDs",
            "format": "int32",
            "example": 209762000
          },
          "date": {
            "type": "string",
            "description": "Date",
            "format": "date-time",
            "example": "2017-07-01"
          }
        },
        "additionalProperties": false,
        "description": "Request object for voyage data for ship within period of time"
      },
      "KyvDvhAPI.Models.WebServiceRequests.MmsiIdsRequest": {
        "required": [
          "mmsiIds"
        ],
        "type": "object",
        "properties": {
          "mmsiIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Array of MMSI identifiers",
            "nullable": true,
            "example": [
              345070219
            ]
          }
        },
        "additionalProperties": false
      },
      "KyvDvhAPI.Models.WebServiceRequests.MmsiMidTimeRequest": {
        "type": "object",
        "properties": {
          "startMid": {
            "type": "integer",
            "description": "First MMSI MID in range",
            "format": "int32"
          },
          "endMid": {
            "type": "integer",
            "description": "Last MMSI MID in range",
            "format": "int32"
          },
          "startTime": {
            "type": "string",
            "description": "Start time",
            "format": "date-time"
          },
          "endTime": {
            "type": "string",
            "description": "End time (inclusive)",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Request object for voyage data for ship within period of time"
      },
      "KyvDvhAPI.Models.WebServiceRequests.MmsiTimeRequest": {
        "type": "object",
        "properties": {
          "mmsiIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "List of ship IDs",
            "nullable": true
          },
          "startTime": {
            "type": "string",
            "description": "Start time",
            "format": "date-time"
          },
          "endTime": {
            "type": "string",
            "description": "End time (inclusive)",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Request object for voyage data for ship within period of time"
      },
      "KyvDvhAPI.Models.WebServiceRequests.MmsiTimeStringMinSpeedRequest": {
        "type": "object",
        "properties": {
          "mmsiIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "One or more MMSI identifiers specified as an array of integers.\r\nEven if there is only one MMSI, it should be specified as an array",
            "nullable": true,
            "example": [
              258500000
            ]
          },
          "start": {
            "type": "string",
            "description": "Start of time interval as a string in the format yyyyMMddHHmm\r\ni.e. for January 1st, 2024 at 00:01: \"202401010001\"",
            "nullable": true,
            "example": "202401010001"
          },
          "end": {
            "type": "string",
            "description": "End of time interval as a string in the format yyyyMMddHHmm\r\ni.e. for January 1st, 2024 at 23:59: \"202401012359\"",
            "nullable": true,
            "example": "202401012359"
          },
          "minSpeed": {
            "type": "number",
            "description": "Minimum speed to include in query",
            "format": "double",
            "example": 0.5
          }
        },
        "additionalProperties": false
      },
      "KyvDvhAPI.Models.WebServiceRequests.MmsiTimeStringRequest": {
        "type": "object",
        "properties": {
          "mmsiIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "One or more MMSI identifiers specified as an array of integers.\r\nEven if there is only one MMSI, it should be specified as an array.",
            "nullable": true,
            "example": [
              258500000
            ]
          },
          "start": {
            "type": "string",
            "description": "Start of time interval as a string in the format yyyyMMddHHmm\r\ni.e. for January 1st, 2024 at 00:01: \"202401010001\"",
            "nullable": true,
            "example": "202401010001"
          },
          "end": {
            "type": "string",
            "description": "End of time interval as a string in the format yyyyMMddHHmm\r\ni.e. for January 7th, 2024 at 23:59: \"202401072359\"",
            "nullable": true,
            "example": "202401072359"
          }
        },
        "additionalProperties": false
      },
      "KyvDvhAPI.Models.WebServiceRequests.MmsiYearRequest": {
        "type": "object",
        "properties": {
          "mmsiIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "One or more MMSI identifiers specified as an array of integers.\r\nEven if there is only one MMSI, it should be specified as an array",
            "nullable": true,
            "example": [
              258500000
            ]
          },
          "start": {
            "type": "integer",
            "description": "First year to include data from",
            "format": "int32",
            "example": 2023
          },
          "end": {
            "type": "integer",
            "description": "Last year to include data from",
            "format": "int32",
            "example": 2023
          }
        },
        "additionalProperties": false
      },
      "KyvDvhAPI.Models.WebServiceRequests.ShipIdTimeRequest": {
        "type": "object",
        "properties": {
          "shipIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "List of ship IDs",
            "nullable": true
          },
          "startTime": {
            "type": "string",
            "description": "Start time",
            "format": "date-time"
          },
          "endTime": {
            "type": "string",
            "description": "End time (inclusive)",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Request object for voyage data for ship within period of time"
      },
      "KyvDvhAPI.Models.WebServiceRequests.ShipIdsRequest": {
        "type": "object",
        "properties": {
          "mmsi": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "imo": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "callsign": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "shipIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Flag indicating whether operation was successful"
          },
          "msg": {
            "type": "string",
            "description": "Messages associated with response",
            "nullable": true
          },
          "data": {
            "type": "string",
            "nullable": true
          },
          "metadata": {
            "type": "string",
            "nullable": true
          },
          "time": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.Cruise.PassengersPerLocationAndDate, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/KDataAPI3.Models.Cruise.PassengersPerLocationAndDate"
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.CombinedShipData, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/KDataAPI3.Models.ResponseModels.CombinedShipData"
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.CombinedShipDataV2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/KDataAPI3.Models.ResponseModels.CombinedShipDataV2"
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.DangerousGoodsByVoyageSegmentTime, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/KDataAPI3.Models.ResponseModels.DangerousGoodsByVoyageSegmentTime"
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ResponseModels.PassengersByVoyageSegmentNationalityTime, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/KDataAPI3.Models.ResponseModels.PassengersByVoyageSegmentNationalityTime"
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KDataAPI3.Models.ZonalStats, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/KDataAPI3.Models.ZonalStats"
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KyvDvhAPI.Models.HangfireAsyncResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/KyvDvhAPI.Models.HangfireAsyncResponse"
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KyvDvhAPI.Models.ResponseModels.InfoByMmsiIdsResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/KyvDvhAPI.Models.ResponseModels.InfoByMmsiIdsResponse"
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[KyvDvhAPI.Models.ResponseModels.ShipInfo, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "$ref": "#/components/schemas/KyvDvhAPI.Models.ResponseModels.ShipInfo"
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.AreaStatistics.SailedDistanceCountyMunicipality, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KDataAPI3.Models.AreaStatistics.SailedDistanceCountyMunicipality"
            },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.AreaStatistics.SailedDistanceManagementPlanArea, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KDataAPI3.Models.AreaStatistics.SailedDistanceManagementPlanArea"
            },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Cruise.YearOnYearCruiseArrivalsDifference, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KDataAPI3.Models.Cruise.YearOnYearCruiseArrivalsDifference"
            },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.AggCruiseInfoPublicResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KDataAPI3.Models.ResponseModels.AggCruiseInfoPublicResponse"
            },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.AisStaticRecord, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KDataAPI3.Models.ResponseModels.AisStaticRecord"
            },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.Bunkers, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KDataAPI3.Models.ResponseModels.Bunkers"
            },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.GeoAisDBStatMsg, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KDataAPI3.Models.ResponseModels.GeoAisDBStatMsg"
            },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ResponseModels.TrackCommon2, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KDataAPI3.Models.ResponseModels.TrackCommon2"
            },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ShipType.AIS.AISShipreg, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KDataAPI3.Models.ShipType.AIS.AISShipreg"
            },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ShipType.Nsr.Ship, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KDataAPI3.Models.ShipType.Nsr.Ship"
            },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.ShipType.StatCode5Type, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KDataAPI3.Models.ShipType.StatCode5Type"
            },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Vocabulary.Term, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KDataAPI3.Models.Vocabulary.Term"
            },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Vocabulary.TermMapping, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KDataAPI3.Models.Vocabulary.TermMapping"
            },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Voyage.NumberOfVoyagesByDateAndDepartureCountry, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KDataAPI3.Models.Voyage.NumberOfVoyagesByDateAndDepartureCountry"
            },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KDataAPI3.Models.Voyage.VoyageData, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KDataAPI3.Models.Voyage.VoyageData"
            },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.County, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KyvDvhAPI.Models.County"
            },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.Location, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KyvDvhAPI.Models.Location"
            },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.AggSailedDistanceResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KyvDvhAPI.Models.ResponseModels.AggSailedDistanceResponse"
            },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.IGArrivalsResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KyvDvhAPI.Models.ResponseModels.IGArrivalsResponse"
            },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.IGCruiseVoyageResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KyvDvhAPI.Models.ResponseModels.IGCruiseVoyageResponse"
            },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.SailedDistance, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KyvDvhAPI.Models.ResponseModels.SailedDistance"
            },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.TimeInPort, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KyvDvhAPI.Models.ResponseModels.TimeInPort"
            },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.TimeInPortOSPS, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KyvDvhAPI.Models.ResponseModels.TimeInPortOSPS"
            },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.TrackSpeed, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KyvDvhAPI.Models.ResponseModels.TrackSpeed"
            },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.ResponseModels.VoyageSimple, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KyvDvhAPI.Models.ResponseModels.VoyageSimple"
            },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.Track, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KyvDvhAPI.Models.Track"
            },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.Models.Voyage, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KyvDvhAPI.Models.Voyage"
            },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.WebServices.FrequencyCount, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KyvDvhAPI.WebServices.FrequencyCount"
            },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.WebServices.FrequencyCountWeekly, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KyvDvhAPI.WebServices.FrequencyCountWeekly"
            },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.WebServices.Passline, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KyvDvhAPI.WebServices.Passline"
            },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.WebServices.VoyageAgg, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KyvDvhAPI.WebServices.VoyageAgg"
            },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[KyvDvhAPI.WebServices.VoyageAggCompact, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KyvDvhAPI.WebServices.VoyageAggCompact"
            },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Collections.Generic.List`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "type": "array",
            "items": { },
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse`1[[System.Object, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Status of operation, true if successful, otherwise false"
          },
          "msg": {
            "type": "string",
            "description": "Any information or error messages associated with the response",
            "nullable": true
          },
          "data": {
            "description": "Data container object for response payload",
            "nullable": true
          },
          "time": {
            "type": "number",
            "description": "Execution time of operation in milliseconds",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Generic web service response"
      },
      "KyvDvhAPI.WebServices.FrequencyCount": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Unique system generated identifier for record",
            "format": "int32"
          },
          "passline_id": {
            "type": "integer",
            "description": "Passline identifier",
            "format": "int32"
          },
          "passline_name": {
            "type": "string",
            "description": "Passline name",
            "nullable": true
          },
          "passage_date": {
            "type": "integer",
            "description": "Passage date (truncated to first day of ISO weeks, day starting on Monday",
            "format": "int32"
          },
          "shipcategory": {
            "type": "string",
            "description": "Ship category as per Kystdatahuset",
            "nullable": true
          },
          "shiptype": {
            "type": "string",
            "description": "Ship type (Statcode5) as per NSR/Ship",
            "nullable": true
          },
          "dwtg": {
            "type": "string",
            "description": "Dead Weight Tonnage group",
            "nullable": true
          },
          "lgrp": {
            "type": "string",
            "description": "Length overall (LOA) group",
            "nullable": true
          },
          "passages": {
            "type": "integer",
            "description": "Number of passages",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Response model for daily passline frequency count responses"
      },
      "KyvDvhAPI.WebServices.FrequencyCountWeekly": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Unique system generated identifier for record",
            "format": "int32"
          },
          "passline_id": {
            "type": "integer",
            "description": "Passline identifier",
            "format": "int32"
          },
          "passline_name": {
            "type": "string",
            "description": "Passline name",
            "nullable": true
          },
          "passage_date": {
            "type": "integer",
            "description": "Passage date (truncated to first day of ISO weeks, day starting on Monday",
            "format": "int32"
          },
          "shipcategory": {
            "type": "string",
            "description": "Ship category as per Kystdatahuset",
            "nullable": true
          },
          "shiptype": {
            "type": "string",
            "description": "Ship type (Statcode5) as per NSR/Ship",
            "nullable": true
          },
          "dwtg": {
            "type": "string",
            "description": "Dead Weight Tonnage group",
            "nullable": true
          },
          "lgrp": {
            "type": "string",
            "description": "Length overall (LOA) group",
            "nullable": true
          },
          "passages": {
            "type": "integer",
            "description": "Number of passages",
            "format": "int32"
          },
          "year": {
            "type": "integer",
            "description": "Year of passage",
            "format": "int32"
          },
          "week": {
            "type": "integer",
            "description": "Week of passage",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Response model for weekly passline frequency count responses"
      },
      "KyvDvhAPI.WebServices.Passline": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "geom": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KyvDvhAPI.WebServices.VoyageAgg": {
        "type": "object",
        "properties": {
          "departureyear": {
            "type": "integer",
            "format": "int32"
          },
          "departuremonth": {
            "type": "integer",
            "format": "int32"
          },
          "arrivalyear": {
            "type": "integer",
            "format": "int32"
          },
          "arrivalmonth": {
            "type": "integer",
            "format": "int32"
          },
          "hashazmat": {
            "type": "boolean"
          },
          "shiptypenor": {
            "type": "string",
            "nullable": true
          },
          "shiptypegroupnor": {
            "type": "string",
            "nullable": true
          },
          "shipflagcode": {
            "type": "string",
            "nullable": true
          },
          "arrivalcountry": {
            "type": "string",
            "nullable": true
          },
          "arrivalcounty": {
            "type": "string",
            "nullable": true
          },
          "arrivalcouncil": {
            "type": "string",
            "nullable": true
          },
          "arrivallocation": {
            "type": "string",
            "nullable": true
          },
          "arrivallocationcode": {
            "type": "string",
            "nullable": true
          },
          "departurecountry": {
            "type": "string",
            "nullable": true
          },
          "departurecounty": {
            "type": "string",
            "nullable": true
          },
          "departurecouncil": {
            "type": "string",
            "nullable": true
          },
          "departurelocation": {
            "type": "string",
            "nullable": true
          },
          "departurelocationcode": {
            "type": "string",
            "nullable": true
          },
          "voyages": {
            "type": "integer",
            "format": "int32"
          },
          "ships": {
            "type": "integer",
            "format": "int32"
          },
          "maxlength": {
            "type": "number",
            "format": "double"
          },
          "maxbreadth": {
            "type": "number",
            "format": "double"
          },
          "maxgt": {
            "type": "number",
            "format": "double"
          },
          "maxheight": {
            "type": "number",
            "format": "double"
          },
          "maxdraught": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "KyvDvhAPI.WebServices.VoyageAggCompact": {
        "type": "object",
        "properties": {
          "dy": {
            "type": "integer",
            "description": "Departure year",
            "format": "int32"
          },
          "dm": {
            "type": "integer",
            "description": "Departure month",
            "format": "int32"
          },
          "dwd": {
            "type": "integer",
            "description": "Departure weekday",
            "format": "int32"
          },
          "ay": {
            "type": "integer",
            "description": "Arrival year",
            "format": "int32"
          },
          "am": {
            "type": "integer",
            "description": "Arrival month",
            "format": "int32"
          },
          "awd": {
            "type": "integer",
            "description": "Arrival weekday",
            "format": "int32"
          },
          "hm": {
            "type": "boolean",
            "description": "Has hazmat"
          },
          "ist": {
            "type": "boolean",
            "description": "In scheduled traffic"
          },
          "st": {
            "type": "string",
            "description": "Ship type (NSR)",
            "nullable": true
          },
          "sg": {
            "type": "string",
            "description": "Ship type group (NSR)",
            "nullable": true
          },
          "sf": {
            "type": "string",
            "description": "Ship flag country name",
            "nullable": true
          },
          "sc": {
            "type": "string",
            "description": "Ship category (kyvdvh)",
            "nullable": true
          },
          "sg2": {
            "type": "string",
            "description": "Ship group (kyvdvh)",
            "nullable": true
          },
          "tg": {
            "type": "string",
            "description": "Tonnage group",
            "nullable": true
          },
          "lg": {
            "type": "string",
            "description": "Length group",
            "nullable": true
          },
          "a0": {
            "type": "string",
            "description": "Arrival country",
            "nullable": true
          },
          "a1": {
            "type": "string",
            "description": "Arrival county",
            "nullable": true
          },
          "a2": {
            "type": "string",
            "description": "Arrival municipality",
            "nullable": true
          },
          "al": {
            "type": "string",
            "description": "Arrival location",
            "nullable": true
          },
          "alc": {
            "type": "string",
            "description": "Arrival location locode",
            "nullable": true
          },
          "alt": {
            "type": "string",
            "description": "Arrival location type",
            "nullable": true
          },
          "d0": {
            "type": "string",
            "description": "Departure country",
            "nullable": true
          },
          "d1": {
            "type": "string",
            "description": "Departure county",
            "nullable": true
          },
          "d2": {
            "type": "string",
            "description": "Departure municipality",
            "nullable": true
          },
          "dl": {
            "type": "string",
            "description": "Departure location",
            "nullable": true
          },
          "dlc": {
            "type": "string",
            "description": "Departure location locode",
            "nullable": true
          },
          "dlt": {
            "type": "string",
            "description": "Departure location type",
            "nullable": true
          },
          "vs": {
            "type": "integer",
            "description": "Number of voyages",
            "format": "int32"
          },
          "ss": {
            "type": "integer",
            "description": "Number of unique ships",
            "format": "int32"
          },
          "ml": {
            "type": "number",
            "description": "Max length",
            "format": "float"
          },
          "mb": {
            "type": "integer",
            "description": "Max breadth",
            "format": "int32"
          },
          "mt": {
            "type": "integer",
            "description": "Max tonnage",
            "format": "int32"
          },
          "mh": {
            "type": "integer",
            "description": "Max height",
            "format": "int32"
          },
          "md": {
            "type": "number",
            "description": "Max draught",
            "format": "float"
          }
        },
        "additionalProperties": false
      },
      "Microsoft.AspNetCore.Http.HttpResults.BadRequest`1[[KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse, KDataAPI3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]": {
        "type": "object",
        "properties": {
          "value": {
            "$ref": "#/components/schemas/KyvDvhAPI.Models.WebServiceResponses.WebServiceResponse"
          },
          "statusCode": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "RasterApi.Models.GridFrequency.RasterRequest": {
        "type": "object",
        "properties": {
          "pixelSize": {
            "type": "integer",
            "description": "Grid resolution, presently must be 1000",
            "format": "int32",
            "example": 1000
          },
          "srid": {
            "type": "integer",
            "description": "Spatial reference system ID, one of 3575 or 32633",
            "format": "int32",
            "example": 32633
          },
          "wkt": {
            "type": "string",
            "description": "A polygon that delineates the area of interest",
            "nullable": true,
            "example": "Polygon ((-115192.05722734332084656 6985152.64144293032586575, -174231.95502209139522165 6727079.06602284591645002, 187495.43608938413672149 6667542.99736449960619211, 198624.63147333107190207 6948379.86295017320662737, 198624.63147333107190207 6948379.86295017320662737, -115192.05722734332084656 6985152.64144293032586575))"
          },
          "baseYear": {
            "type": "integer",
            "description": "Base year",
            "format": "int32",
            "nullable": true,
            "example": null
          },
          "years": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "List of years to include",
            "nullable": true,
            "example": null
          },
          "tileSet": {
            "type": "string",
            "description": "Which tileset to load data for can be \"Full\" or \"SixMin\"",
            "nullable": true,
            "example": "SixMin"
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "JWT Bearer": {
        "type": "http",
        "description": "This is a JWT bearer authentication scheme. Obtain a valid token from the authentication service to access protected endpoints.",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "tags": [
    {
      "name": "Ais",
      "description": "Web services to extract AIS position and static message data\r\nIt is worth noting that these web services provides different responses depending\r\non whether an authentication token is supplied or not and whether the authenticated\r\nuser has been assigned specific roles.\r\n\r\nAnonymous or self-registerred users are by only permitted to see ships with a\r\nlength greater than or equal to 45 metres or ships that do not report length in\r\ntheir AIS messages and where we are therefore not able to ascertain that they should\r\nbe excluded.\r\n\r\nTo get unrestricted access to AIS-data from Kystverket you must be authorized/logged in\r\nwith a user that has been assigned the appropriate roles.\r\n\r\nIf you believe you are entitled to such accesss, please contact the administrators."
    },
    {
      "name": "AisRealTime",
      "description": "Web service method to access realtime AIS-data"
    },
    {
      "name": "AisStatic",
      "description": "Web services to download the best approximation of AIS static messages, reconstructed from the\r\ncombined ship registry (dp_shipdata.qsr_shipdata_combined_scd2_v3)"
    },
    {
      "name": "Anchorage",
      "description": "Web services for accessing ship track information"
    },
    {
      "name": "Auth",
      "description": "Methods to authenticate towards Kystdatahuset"
    },
    {
      "name": "Bunkers",
      "description": "Information about bunkers voyages from SafeSeaNet"
    },
    {
      "name": "Incident",
      "description": "Information about ships from NewShipRep"
    },
    {
      "name": "Indicators",
      "description": "Retrieve selected indicator data from Kystdatahuset"
    },
    {
      "name": "Location",
      "description": "NewShipRep locations including harbours, ports, quays etc."
    },
    {
      "name": "Map",
      "description": "Information about datasets in the datawarehouse"
    },
    {
      "name": "MarTraf",
      "description": "Web services for the MarTraf tracks (martraf.aistracks)"
    },
    {
      "name": "MarU",
      "description": "These end-points provide access to data derived from Kystverkets MarU model for marine traffic emissions. The data is ingested monthly with a 1-2 month lag.\r\n\r\nIn this model, distances are being calculated for each AIS position and then aggregated by month, vessel type, gt group and area. The areas are defined as either marine management plan areas or administrative division areas (county and municipality). The data can be filtered by date range.\r\n\r\nThe distance calculation is done for grid cells. The assumption is that all sailed distance that has occurred between the current grid cell and that of the previous grid cell is accounted as sailed distance in teh current grid cell. For small areas, this gives significant deviation, for larger areas this has little impact and merely causes data drift. Users should only be aware of this when interpreting the data.\r\n\r\n[Documentation about MarU (in Norwegian](https://www.kystverket.no/klima-og-barekraft/maru/)"
    },
    {
      "name": "MyData",
      "description": "\"Mine data\": personal objects (saved geometries, uploaded geodata files, settings, chat\r\nhistory/data) stored in mydata.entities against the caller's own auth.users.id.\r\nEvery query is scoped to the caller - there is no cross-user access in this controller."
    },
    {
      "name": "Pilotage",
      "description": "Web services to retrieve data on pilotage assignments as per NSR SafeSeaNet"
    },
    {
      "name": "RasterFrequency",
      "description": "Raster frequency data"
    },
    {
      "name": "RealtimeTrack",
      "description": "Web services for the realtime tracks (ais2.track_all on the Geomap1PostGIS server)"
    },
    {
      "name": "Ship",
      "description": "These web services provide information about ships from NewShipRep, Fairplay, Shipinfo, NorNis and Fiskeridirektoratet.\r\n\r\nPlease note that some data are available to Kystverket users only and such users as have been authorized by Kystverket.\r\nThis is the case for Fairplay and Shipinfo data that are licensed to Kystverket on the condition that they should not be\r\ndistributed to third parties.\r\n\r\nThese APIs are intended solely for looking up information about individual ships. For bulk workloads or situations where\r\nusers wish to maintain up-to-date ship information in their own systems, we kindly refer to Fairplay and Shipinfo as commercial\r\nvendors who provide such services."
    },
    {
      "name": "ShipDimensions",
      "description": "CRUD for shipdata.alternate_ship_dimensions - manually curated ship length/breadth/air draught/\r\ndraught/keel-to-mast overrides, keyed by imo, shipid, or mmsi+shipname."
    },
    {
      "name": "ShipType",
      "description": "Information about ships from NewShipRep"
    },
    {
      "name": "Shorepower",
      "description": "Information about ships from NewShipRep"
    },
    {
      "name": "Track",
      "description": "Web services for accessing ship track information"
    },
    {
      "name": "Voyage",
      "description": " Retrieve data about voyages to or from locations in Norway for ships that are subject to the SafeSeaNet reporting regulations\r\n \r\n SafeSeaNet (SSN) is the European Union’s centralized maritime information exchange system, operated by the European Maritime Safety Agency (EMSA).\r\n It facilitates real-time sharing of vessel-related data among EU Member States, Norway, and Iceland to enhance maritime safety, environmental protection, and traffic monitoring.\r\n Ships report various types of information to SafeSeaNet, including Automatic Identification System (AIS) data, port arrival and departure notifications,\r\n hazardous cargo declarations, waste and security reports, and incident alerts.\r\n \r\n**Vessels Required to Report to SafeSeaNet**\r\n\r\nUnder Directive 2002/59/EC, the following vessels are generally required to report to SafeSeaNet:\r\n- Cargo and Passenger Ships: All cargo and passenger ships of 300 gross tonnage(GT) or more.\r\n- Hazardous Cargo Carriers: Any vessel, regardless of size, carrying dangerous or polluting goods must report.\r\n- Vessels with Bunker Fuel: Ships over 1,000 GT carrying bunker fuel or lubricating oil for onboard use.\r\n- ISPS-Compliant Ships: Passenger ships (including high-speed craft), cargo ships of 500 GT or more, and mobile offshore drilling units with their own propulsion,especially when engaged in international voyages.\r\n\r\nExemptions typically apply to warships, naval auxiliaries, and certain non-commercial government vessels.Fishing vessels,\r\nrecreational craft, and traditional ships under 45 meters in length are often exempt unless they carry hazardous cargo or exceed specific size thresholds."
    }
  ]
}