{"openapi":"3.0.1","info":{"title":"Road weather and view API","description":"REST api to retrieve information about road weather and cameras. \n  \n  \n**For internal use**. Changes may occur at any time.","version":"1.0.0"},"servers":[{"url":"/","description":"Default Server URL"}],"paths":{"/weather-information/measurement-sites/near":{"post":{"tags":["Weather information (v1)"],"summary":"Get measurement sites within 1 km of a geometry.","description":"Returns all measurement sites located within 1 km of the supplied GeoJSON geometry. Accepts any GeoJSON geometry type (Point, LineString, Polygon, etc.).","operationId":"getMeasurementSitesNear","parameters":[{"name":"X-System-ID","in":"header","description":"Short name of client system","required":true,"schema":{"type":"string"},"example":"SYSTEM-KORTNAVN"},{"name":"Accept","in":"header","schema":{"type":"string","enum":["application/vnd.svv.v1+json; charset"]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Geometry"}}},"required":true},"responses":{"200":{"description":"Successful operation","content":{"application/vnd.svv.v1+json; charset=utf-8":{"schema":{"$ref":"#/components/schemas/MeasurementSiteCollection"}}}},"400":{"description":"Bad request"},"503":{"description":"Not available"}}}},"/weather-information/measurement-sites":{"get":{"tags":["Weather information (v1)"],"summary":"Get measurement sites.","description":"Returns a list of measurement sites.","operationId":"getMeasurementSites","parameters":[{"name":"X-System-ID","in":"header","description":"Short name of client system","required":true,"schema":{"type":"string"},"example":"SYSTEM-KORTNAVN"},{"name":"countyNumber","in":"query","description":"Filter on county number. Comma-separated list. Filter measurement sites matching any of the supplied county numbers. Default no filtering is done.","required":false,"schema":{"type":"array","items":{"type":"integer","format":"int32"}},"example":50},{"name":"roadNumber","in":"query","description":"Filter on road number and/or road category. <br/>Possible values for road category: <ul><li>'E' (Europaveg)</li><li>'R' (Riksveg)</li><li>'F' (Fylkesveg)</li><li>'K' (Kommunal veg)</li></ul>Comma-separated list. <br/>Filter measurement sites matching any of the supplied road numbers and/or road categories. Default no filtering is done.","required":false,"schema":{"type":"array","items":{"type":"string"}},"example":"E6"},{"name":"sort","in":"query","description":"Sort measurement sites on last updated timestamp in either camera or weatherstation. Last updated element sorts highest. Default sorted on road type and number","required":false,"schema":{"type":"string","description":"Enum for sorting parameters.","enum":["lastUpdated"]}},{"name":"Accept","in":"header","schema":{"type":"string","enum":["application/vnd.svv.v1+json; charset","application/vnd.svv.v1+geo+json; charset"]}}],"responses":{"200":{"description":"Successful operation","content":{"application/vnd.svv.v1+json; charset=utf-8":{"schema":{"$ref":"#/components/schemas/MeasurementSiteCollection"}},"application/vnd.svv.v1+geo+json; charset=utf-8":{"schema":{"$ref":"#/components/schemas/FeatureCollection"}},"application/vnd.svv.v1+geo+json;charset=utf-8":{"schema":{"$ref":"#/components/schemas/FeatureCollection"}}}},"400":{"description":"Bad request"},"404":{"description":"Not found"},"503":{"description":"Not available"}}}},"/weather-information/measurement-sites/{measurementSiteIds}":{"get":{"tags":["Weather information (v1)"],"summary":"Get specific measurement sites for supplied measurement site ids.","description":"Returns a list of measurement sites.","operationId":"getMeasurementSiteFromIds","parameters":[{"name":"X-System-ID","in":"header","description":"Short name of client system","required":true,"schema":{"type":"string"},"example":"SYSTEM-KORTNAVN"},{"name":"measurementSiteIds","in":"path","required":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"Accept","in":"header","schema":{"type":"string","enum":["application/vnd.svv.v1+json; charset","application/vnd.svv.v1+geo+json; charset"]}}],"responses":{"200":{"description":"Successful operation","content":{"application/vnd.svv.v1+json; charset=utf-8":{"schema":{"$ref":"#/components/schemas/MeasurementSiteCollection"}},"application/vnd.svv.v1+geo+json; charset=utf-8":{"schema":{"$ref":"#/components/schemas/FeatureCollection"}},"application/vnd.svv.v1+geo+json;charset=utf-8":{"schema":{"$ref":"#/components/schemas/FeatureCollection"}}}},"400":{"description":"Bad request"},"404":{"description":"Not found"},"503":{"description":"Not available"}}}},"/roads":{"get":{"tags":["Road info (Prototype)"],"summary":"Get roads","description":"Returns a list of roads.","operationId":"getRoads","parameters":[{"name":"X-System-ID","in":"header","description":"Short name of client system","required":true,"schema":{"type":"string"},"example":"SYSTEM-KORTNAVN"},{"name":"Accept","in":"header","schema":{"type":"string","enum":["application/vnd.svv.v1+json; charset"]}}],"responses":{"200":{"description":"Successful operation","content":{"application/vnd.svv.v1+json; charset=utf-8":{"schema":{"$ref":"#/components/schemas/Road"}}}},"400":{"description":"Bad request"},"404":{"description":"Not found"},"503":{"description":"Not available"}}}},"/roads/{roadNumbers}":{"get":{"tags":["Road info (Prototype)"],"summary":"Get roads from road numbers","description":"Returns a list of roads.","operationId":"getRoadsFromRoadNumbers","parameters":[{"name":"X-System-ID","in":"header","description":"Short name of client system","required":true,"schema":{"type":"string"},"example":"SYSTEM-KORTNAVN"},{"name":"roadNumbers","in":"path","description":"List of road numbers","required":true,"schema":{"type":"array","items":{"type":"string"}},"example":"E6,E18"},{"name":"include","in":"query","description":"Comma separated list that specifies extra elements that should be to returned for each element (by default they are not returned).","required":false,"schema":{"type":"array","items":{"type":"string","enum":["geometry"]}},"example":"geometry"},{"name":"Accept","in":"header","schema":{"type":"string","enum":["application/vnd.svv.v1+json; charset"]}}],"responses":{"200":{"description":"Successful operation","content":{"application/vnd.svv.v1+json; charset=utf-8":{"schema":{"$ref":"#/components/schemas/Road"}}}},"400":{"description":"Bad request"},"404":{"description":"Not found"},"503":{"description":"Not available"}}}},"/roads/counties-and-municipalities":{"get":{"tags":["Road info (Prototype)"],"summary":"Get all road information","description":"Returns a list of roads with counties and municipalities.","operationId":"getRoadsWithCountiesAndMunicipalities","parameters":[{"name":"X-System-ID","in":"header","description":"Short name of client system","required":true,"schema":{"type":"string"},"example":"SYSTEM-KORTNAVN"},{"name":"Accept","in":"header","schema":{"type":"string","enum":["application/vnd.svv.v1+json; charset"]}}],"responses":{"200":{"description":"Successful operation","content":{"application/vnd.svv.v1+json; charset=utf-8":{"schema":{"$ref":"#/components/schemas/RoadInformation"}}}},"400":{"description":"Bad request"},"404":{"description":"Not found"},"503":{"description":"Not available"}}}},"/area-information/counties":{"get":{"tags":["Area information (v1)"],"summary":"Get counties. **DEPRECATED**. Use similar endpoint in ft-nvdb-objects.","description":"Returns a list of counties.","operationId":"getCounties","parameters":[{"name":"X-System-ID","in":"header","description":"Short name of client system","required":true,"schema":{"type":"string"},"example":"SYSTEM-KORTNAVN"},{"name":"Accept","in":"header","schema":{"type":"string","enum":["application/vnd.svv.v1+json; charset"]}}],"responses":{"200":{"description":"Successful operation","content":{"application/vnd.svv.v1+json; charset=utf-8":{"schema":{"$ref":"#/components/schemas/County"}}}},"400":{"description":"Bad request"},"404":{"description":"Not found"},"503":{"description":"Not available"}},"deprecated":true}}},"components":{"schemas":{"Geometry":{"required":["type"],"type":"object","properties":{"type":{"type":"string"}},"discriminator":{"propertyName":"type"},"oneOf":[{"$ref":"#/components/schemas/Point"},{"$ref":"#/components/schemas/LineString"},{"$ref":"#/components/schemas/Polygon"},{"$ref":"#/components/schemas/MultiPoint"},{"$ref":"#/components/schemas/MultiLineString"},{"$ref":"#/components/schemas/MultiPolygon"}]},"LineString":{"required":["coordinates","type"],"type":"object","allOf":[{"$ref":"#/components/schemas/Geometry"},{"type":"object","properties":{"type":{"type":"string","description":"LineString"},"coordinates":{"type":"array","description":"Coordinates in WGS 84 format","items":{"type":"array","description":"Coordinates in WGS 84 format","items":{"type":"number","description":"Coordinates in WGS 84 format","format":"double"}}}}}]},"MultiLineString":{"required":["coordinates","type"],"type":"object","allOf":[{"$ref":"#/components/schemas/Geometry"},{"type":"object","properties":{"type":{"type":"string","description":"MultiLineString"},"coordinates":{"type":"array","description":"Coordinates in WGS 84 format","items":{"type":"array","description":"Coordinates in WGS 84 format","items":{"type":"array","description":"Coordinates in WGS 84 format","items":{"type":"number","description":"Coordinates in WGS 84 format","format":"double"}}}}}}]},"MultiPoint":{"required":["coordinates","type"],"type":"object","allOf":[{"$ref":"#/components/schemas/Geometry"},{"type":"object","properties":{"type":{"type":"string","description":"MultiPoint"},"coordinates":{"type":"array","description":"Coordinates in WGS 84 format","items":{"type":"array","description":"Coordinates in WGS 84 format","items":{"type":"number","description":"Coordinates in WGS 84 format","format":"double"}}}}}]},"MultiPolygon":{"required":["coordinates","type"],"type":"object","allOf":[{"$ref":"#/components/schemas/Geometry"},{"type":"object","properties":{"type":{"type":"string","description":"MultiPolygon"},"coordinates":{"type":"array","description":"Coordinates in WGS 84 format","items":{"type":"array","description":"Coordinates in WGS 84 format","items":{"type":"array","description":"Coordinates in WGS 84 format","items":{"type":"array","description":"Coordinates in WGS 84 format","items":{"type":"number","description":"Coordinates in WGS 84 format","format":"double"}}}}}}}]},"Point":{"required":["coordinates","type"],"type":"object","allOf":[{"$ref":"#/components/schemas/Geometry"},{"type":"object","properties":{"type":{"type":"string","description":"Point"},"coordinates":{"type":"array","description":"Coordinates in WGS 84 format","items":{"type":"number","description":"Coordinates in WGS 84 format","format":"double"}}}}]},"Polygon":{"required":["coordinates","type"],"type":"object","allOf":[{"$ref":"#/components/schemas/Geometry"},{"type":"object","properties":{"type":{"type":"string","description":"Polygon"},"coordinates":{"type":"array","description":"Coordinates in WGS 84 format","items":{"type":"array","description":"Coordinates in WGS 84 format","items":{"type":"array","description":"Coordinates in WGS 84 format","items":{"type":"number","description":"Coordinates in WGS 84 format","format":"double"}}}}}}]},"Camera":{"required":["id"],"type":"object","properties":{"id":{"type":"string","description":"Unique ID identifying the camera"},"orientationDescription":{"type":"string","description":"Cctv camera orientation description"},"stillImageUrl":{"type":"string","description":"Url to still image"},"videoUrl":{"type":"string","description":"Url to video feed"},"yrUrl":{"type":"string","description":"Link to weather forecast of the measurement site"},"status":{"type":"string","description":"Camera status","enum":["OK","EXPIRED"]},"lastUpdated":{"type":"string","description":"The time when camera was last updated"}},"description":"Camera object for measurement site."},"County":{"required":["code","name"],"type":"object","properties":{"name":{"type":"string"},"code":{"type":"integer","format":"int32"},"bbox":{"type":"array","items":{"type":"number","format":"double"}}},"description":"County area with name, code and optional bounding box"},"Location":{"type":"object","properties":{"geometry":{"$ref":"#/components/schemas/Point"},"heightAboveSeaLevel":{"type":"number","description":"Height above sea level","format":"double"},"roadLinkReference":{"$ref":"#/components/schemas/RoadLinkPointOverviewReference"},"road":{"$ref":"#/components/schemas/Road"},"county":{"$ref":"#/components/schemas/County"}},"description":"Location information for measurement site."},"MeasurementSite":{"required":["cameras","id","location","name","siteType"],"type":"object","properties":{"id":{"type":"string","description":"Unique ID identifying the measurement site"},"name":{"type":"string","description":"Name of the measurement site"},"location":{"$ref":"#/components/schemas/Location"},"cameras":{"type":"array","description":"List of web cameras","items":{"$ref":"#/components/schemas/Camera"}},"weatherData":{"$ref":"#/components/schemas/WeatherData"},"weatherTrend":{"$ref":"#/components/schemas/WindStationTrend"},"siteType":{"type":"string","description":"Type of measurement site","enum":["WebCamera","WeatherStation","WeatherAndCamera"]}},"description":"Model for measurement site"},"MeasurementSiteCollection":{"required":["measurementSites","metadata"],"type":"object","properties":{"metadata":{"$ref":"#/components/schemas/MetaData"},"measurementSites":{"type":"array","items":{"$ref":"#/components/schemas/MeasurementSite"}}},"description":"Collection of measurement sites"},"MetaData":{"required":["pagination","weatherDataUnits"],"type":"object","properties":{"weatherDataUnits":{"$ref":"#/components/schemas/Units"},"pagination":{"$ref":"#/components/schemas/Pagination"}},"description":"Meta information describing the data collection"},"Pagination":{"required":["matchedElements","totalElements"],"type":"object","properties":{"totalElements":{"type":"integer","format":"int32"},"matchedElements":{"type":"integer","format":"int32"}},"description":"Pagination information for collections"},"Road":{"required":["name","number"],"type":"object","properties":{"name":{"type":"string","description":"Road name"},"number":{"type":"string","description":"Road number"},"category":{"type":"string","description":"Road category/road system reference name. Possible values: <ul><li>'E' (Europaveg)</li><li>'R' (Riksveg)</li><li>'F' (Fylkesveg)</li><li>'K' (Kommunal veg)</li><li>'P' (Privat veg)</li><li>'S' (Skogsveg)</li></ul>"},"bbox":{"type":"array","description":"GeoJSON bounding box containing road.","items":{"type":"number","description":"GeoJSON bounding box containing road.","format":"double"}},"geometry":{"$ref":"#/components/schemas/Geometry"}},"description":"Road with name, number, category, bounding box and geometry"},"RoadLinkPointMeasure":{"required":["direction","id","measure"],"type":"object","properties":{"id":{"type":"integer","description":"Road link reference id","format":"int64","example":249541},"measure":{"type":"number","description":"Road link point measure","format":"double","example":0.7961083650588989},"direction":{"type":"string","description":"Enum for road link directions.","example":"AGAINST","enum":["BOTH","WITH","AGAINST"]}},"description":"Road link point measure"},"RoadLinkPointOverviewReference":{"required":["category","measure","source","type"],"type":"object","properties":{"source":{"type":"string","description":"Enum for road link source.","example":"NVDB","enum":["NVDB"]},"type":{"type":"string","description":"Enum for road link types.","example":"POINT","enum":["POINT","LINE"]},"category":{"type":"string","description":"Enum for road link categories.","example":"ROADWAY","enum":["ROADWAY","OVERVIEW"]},"measure":{"$ref":"#/components/schemas/RoadLinkPointMeasure"}},"description":"Road link reference"},"Units":{"required":["airTemperature","maximumWindSpeed","precipitationIntensity","relativeHumidity","roadSurfaceTemperature","windDirectionBearing","windGustSpeed90","windSpeed"],"type":"object","properties":{"airTemperature":{"type":"string","example":"C"},"roadSurfaceTemperature":{"type":"string","example":"C"},"precipitationIntensity":{"type":"string","example":"mm/h"},"relativeHumidity":{"type":"string","example":"%"},"windSpeed":{"type":"string","example":"m/s"},"windDirectionBearing":{"type":"string","example":"degrees"},"maximumWindSpeed":{"type":"string","example":"m/s"},"windGustSpeed90":{"type":"string","example":"m/s"}},"description":"Measurement units"},"WeatherData":{"required":["lastUpdated","status"],"type":"object","properties":{"status":{"type":"string","description":"Weather data status","enum":["OK","EXPIRED","OUT_OF_SERVICE"]},"airTemperature":{"type":"number","description":"The air temperature measured in the shade between 1.5 and 2 metres above ground level. Unit of measurement: Degrees celsius","format":"double"},"roadSurfaceTemperature":{"type":"number","description":"The temperature measured on the road surface. Unit of measurement: Degrees celsius","format":"double"},"precipitationIntensity":{"type":"number","description":"A measured or calculated value of the accumulation rate of precipitation. Unit of measurement: Millimetres per hour","format":"double"},"relativeHumidity":{"type":"number","description":"The amount of water vapour in the air, as a percentage of the amount of water vapour in saturated air at the same temperature and at atmospheric pressure. The measurement is taken between 1.5 and 2 m above the ground and behind a meteorological screen.","format":"double"},"windSpeed":{"type":"number","description":"The wind speed averaged over at least 10 minutes. Unit of measurement: Meters per second","format":"double"},"windDirectionBearing":{"type":"number","description":"The average direction from which the wind blows, in terms of a bearing measured in degrees (0 - 359).","format":"double"},"maximumWindSpeed":{"type":"number","description":"The maximum wind speed in a measurement period of 10 minutes. Unit of measurement: Meters per second","format":"double"},"windGustSpeed90":{"type":"number","description":"The wind gust speed measured perpendicular (90 degrees) to the bridge. Unit of measurement: Meters per second","format":"double"},"warningThreshold":{"type":"integer","description":"First warning level for wind speed 90 degrees offset from bridge","format":"int64"},"errorThreshold":{"type":"integer","description":"Second warning level for wind speed 90 degrees offset from bridge","format":"int64"},"lastUpdated":{"pattern":"yyyy-MM-dd'T'HH:mm:ss.SSSXXX","type":"string","description":"The time of the measurements","format":"date-time","example":"2023-08-30T14:10:00+02:00"}},"description":"Measured weather data on a measurement site"},"WindDataPoint":{"required":["timestamp"],"type":"object","properties":{"timestamp":{"type":"string","format":"date-time"},"value":{"type":"number","format":"double"}}},"WindParameterTrend":{"required":["dataPoints","parameter"],"type":"object","properties":{"parameter":{"type":"string","enum":["WIND_VELOCITY","WIND_VELOCITY_GUST","WIND_VELOCITY_GUST_90","WIND_DIRECTION","WIND_DIRECTION_GUST"]},"unit":{"type":"string"},"dataPoints":{"type":"array","items":{"$ref":"#/components/schemas/WindDataPoint"}}}},"WindStationTrend":{"required":["plantId","trends"],"type":"object","properties":{"plantId":{"type":"integer","format":"int64"},"trends":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/WindParameterTrend"}}},"description":"Wind trend data"},"Feature":{"required":["type"],"type":"object","properties":{"type":{"type":"string"},"geometry":{"$ref":"#/components/schemas/Geometry"},"properties":{"$ref":"#/components/schemas/MeasurementSite"}},"description":"GeoJson 'Feature' object"},"FeatureCollection":{"required":["features","metadata","type"],"type":"object","properties":{"metadata":{"$ref":"#/components/schemas/MetaData"},"type":{"type":"string"},"features":{"type":"array","description":"List of features","items":{"$ref":"#/components/schemas/Feature"}}},"description":"GeoJson 'FeatureCollection' object"},"RoadInformation":{"required":["countyCodes","road"],"type":"object","properties":{"road":{"$ref":"#/components/schemas/Road"},"countyCodes":{"type":"array","items":{"type":"integer","format":"int32"}}}}}}}