{
  "openapi" : "3.0.3",
  "info" : {
    "title" : "Delft-FEWS Web Services REST API v1",
    "description" : "Delft-FEWS Web Services REST API v1. For more information see: https://publicwiki.deltares.nl/x/fwNdBw",
    "version" : "v1-2026-04-21T17:10:23Z"
  },
  "servers" : [ {
    "url" : "/FewsWebServices/rest/fewspiservice/v1",
    "description" : "API server"
  } ],
  "paths" : {
    "/filters" : {
      "get" : {
        "tags" : [ "filters" ],
        "summary" : "Get filters that are a subfilter of the default filter",
        "description" : "Get filters that are a subfilter of the default filter. An existing subfilter of the default filter id can be specified as well.",
        "operationId" : "filters",
        "parameters" : [ {
          "name" : "filterId",
          "description" : "An existing subfilter of the default filter id",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_XML, PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_XML", "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_filters.json"
                }
              },
              "application/xml" : {
                "schema" : {
                  "title" : "PI_XML",
                  "description" : "https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_filters.xsd",
                  "type" : "object",
                  "xml" : {
                    "name" : "filters"
                  },
                  "example" : "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<filters xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://www.wldelft.nl/fews/PI\" xsi:schemaLocation=\"http://www.wldelft.nl/fews/PI https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_filter.xsd\" version=\"1.23\">\n    <filter id=\"Countries\">\n        <name>Countries</name>\n        <description></description>\n        <child id=\"All\">\n            <name>All</name>\n            <description></description>\n        </child>\n        <child id=\"Netherlands\">\n            <name>Netherlands</name>\n            <description></description>\n        </child>\n    </filter>\n</filters>"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/locations/label" : {
      "get" : {
        "tags" : [ "locations" ],
        "summary" : "Get the label for a set of locations",
        "description" : "Get the label for a set of locations",
        "operationId" : "locations/label",
        "parameters" : [ {
          "name" : "filterId",
          "description" : "An existing sub filter of the default filter id",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "parameterId",
          "description" : "the parameter id",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_locations_labels.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/locations" : {
      "get" : {
        "tags" : [ "locations" ],
        "summary" : "Get locations that are available for the 'filterId' argument",
        "description" : "Get locations that are available for the 'filterId' argument. Locations are also returned if no time series are available for a location in the filter. If not filterId is passed then all locations configured in the pre-defined filter will be returned.",
        "operationId" : "locations",
        "parameters" : [ {
          "name" : "filterId",
          "description" : "An existing subfilter of the default filter id",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "parameterIds",
          "description" : "One or more parameters which will be used to filter the time series sets in the filter",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "locationIds",
          "description" : "Get selected locations.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "parameterGroupId",
          "description" : "The parameter group id which will be used to filter the time series sets in the filter",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "attributeIds",
          "description" : "One or more attribute ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "layerId",
          "description" : "The layer id for which the locations are determined. This maps to a gridPlotId in the GridDisplay. Cannot be used with other filter options like filterId, parameterIds, locationIds, parameterGroupId and attributeIds.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "example" : "Temp_forecast"
          }
        }, {
          "name" : "showTimeSeriesInfo",
          "description" : "If enabled timeseries infos will be shown if available: hasDataInViewPeriod, hasDataOutsideViewPeriod, lastValue and lastValueTime.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "showAttributes",
          "description" : "Show location attributes",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "showParentLocations",
          "description" : "Show parent locations",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "showThresholds",
          "description" : "include the threshold crossings in the response",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "includeIconNames",
          "description" : "Include the name of the icon configured for a location. Can be used in combination with the resources/icons/{iconName} endpoint to retrieve the icon.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "includeLocationRelations",
          "description" : "Include location relations",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "includeTimeDependency",
          "description" : "Include time depency",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_XML, PI_JSON, GEO_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_XML", "PI_JSON", "GEO_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_locations.json"
                }
              },
              "application/geojson" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_locations.geo.json"
                }
              },
              "application/xml" : {
                "schema" : {
                  "title" : "PI_XML",
                  "description" : "https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_locations.xsd",
                  "type" : "object",
                  "xml" : {
                    "name" : "Locations"
                  },
                  "example" : "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Locations xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://www.wldelft.nl/fews/PI\" xsi:schemaLocation=\"http://www.wldelft.nl/fews/PI https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_locations.xsd\" version=\"1.27\">\n    <geoDatum>Ordnance Survey Great Britain 1936</geoDatum>\n    <location locationId=\"000008\">\n        <shortName>Harley Logger</shortName>\n        <lat>53.48101390524398</lat>\n        <lon>-1.440921590684395</lon>\n        <x>437200.0</x>\n        <y>398400.0</y>\n    </location>\n</Locations>"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/locations/tooltip" : {
      "get" : {
        "tags" : [ "locations" ],
        "summary" : "Get the tooltip for a location",
        "description" : "Get the tooltip for a location. The response can either be in plain text or in html.",
        "operationId" : "locations/tooltip",
        "parameters" : [ {
          "name" : "filterId",
          "description" : "An existing subfilter of the default filter id",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "locationId",
          "description" : "The location for which to get the tooltip",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "text/plain" : {
                "schema" : {
                  "title" : "text/plain",
                  "type" : "string"
                }
              },
              "text/html" : {
                "schema" : {
                  "title" : "text/html",
                  "type" : "string"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/parameters" : {
      "get" : {
        "tags" : [ "parameters" ],
        "summary" : "Get parameters that are available for the 'filterId' argument",
        "description" : "Get parameters that are available for the 'filterId' argument. Parameters are also returned if no time series are available for a parameter in the filter. If no filterId is passed then all parameters configured in the pre-defined filter will be returned.",
        "operationId" : "parameters",
        "parameters" : [ {
          "name" : "filterId",
          "description" : "An existing subfilter of the default filter id",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "locationIds",
          "description" : "One or more location ids.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "showAttributes",
          "description" : "Show parameter attributes",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_XML, PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_XML", "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_parameters.json"
                }
              },
              "application/xml" : {
                "schema" : {
                  "title" : "PI_XML",
                  "description" : "https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_parameter.xsd",
                  "type" : "object",
                  "xml" : {
                    "name" : "timeseriesparameters"
                  },
                  "example" : "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<timeseriesparameters xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://www.wldelft.nl/fews/PI\" xsi:schemaLocation=\"http://www.wldelft.nl/fews/PI https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_timeseriesparameters.xsd\" version=\"1.27\">\n    <parameter id=\"P.obs\" parameterGroup=\"Precipitation\">\n        <name>Observed Precipitation</name>\n        <parameterType>accumulative</parameterType>\n        <unit>mm</unit>\n        <displayUnit>mm</displayUnit>\n        <usesDatum>false</usesDatum>\n    </parameter>\n</timeseriesparameters>    "
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/parameters/nodes" : {
      "get" : {
        "tags" : [ "parameters" ],
        "summary" : "Get all parameter nodes and its parameters that are available in the region config",
        "description" : "Get all parameter nodes and its parameters that are available in the region config. For each parameterNode the parent node, children nodes and all parameter ids are provided.",
        "operationId" : "parameters/nodes",
        "parameters" : [ {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_XML, PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_XML", "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_parameters_nodes.json"
                }
              },
              "application/xml" : {
                "schema" : {
                  "title" : "PI_XML",
                  "description" : "https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_parameter_nodes.xsd",
                  "type" : "object",
                  "xml" : {
                    "name" : "parameterNodes"
                  },
                  "example" : "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<parameterNodes xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://www.wldelft.nl/fews/PI\" xsi:schemaLocation=\"http://www.wldelft.nl/fews/PI https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_parameter_nodes.xsd\">\n    <parameterNode id=\"All parameters\">\n        <name>All parameters</name>\n        <description></description>\n        <parameters>\n            <parameter>Ntot_mass_sum_day</parameter>\n            <parameter>Ntot</parameter>\n            <parameter>Q_sum</parameter>\n            <parameter>VSA_n</parameter>\n            <parameter>Q</parameter>\n            <parameter>Ntot_mass_sum_year</parameter>\n            <parameter>Ntot_mass</parameter>\n            <parameter>PTB_TansleyS</parameter>\n            <parameter>VSM_g</parameter>\n            <parameter>Ptot</parameter>\n            <parameter>Q_period</parameter>\n        </parameters>\n        <parent>Parameters</parent>\n    </parameterNode>\n    <parameterNode id=\"Hydrobiological\">\n        <name>Hydrobiological</name>\n        <description></description>\n        <parameters>\n            <parameter>VSA_n</parameter>\n            <parameter>PTB_TansleyS</parameter>\n            <parameter>VSM_g</parameter>\n        </parameters>\n        <parent>Parameters</parent>\n    </parameterNode>\n    <parameterNode id=\"Quantity\">\n        <name>Quantity</name>\n        <description></description>\n        <parameters>\n            <parameter>Q_sum</parameter>\n            <parameter>Q</parameter>\n            <parameter>Q_period</parameter>\n        </parameters>\n        <parent>Parameters</parent>\n    </parameterNode>\n    <parameterNode id=\"Quality\">\n        <name>Quality</name>\n        <description></description>\n        <parameters>\n            <parameter>Ntot_mass_sum_day</parameter>\n            <parameter>Ntot</parameter>\n            <parameter>Ntot_mass_sum_year</parameter>\n            <parameter>Ntot_mass</parameter>\n            <parameter>Ptot</parameter>\n        </parameters>\n        <parent>Parameters</parent>\n    </parameterNode>\n    <parameterNode id=\"Parameters\">\n        <name>Parameters</name>\n        <description></description>\n        <parameters>\n            <parameter>Amount</parameter>\n            <parameter>Amount_period</parameter>\n            <parameter>Amount_sum</parameter>\n        </parameters>\n        <children>\n            <child>All parameters</child>\n            <child>Hydrobiological</child>\n            <child>Quantity</child>\n            <child>Quality</child>\n        </children>\n    </parameterNode>\n</parameterNodes>"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/timeseries" : {
      "get" : {
        "tags" : [ "timeseries" ],
        "summary" : "Get timeseries that are part of the default filter",
        "description" : "Get timeseries that are part of the default filter. The HEAD request is also supported. It is recommended to use the HEAD request when using the taskRunIds parameter to check if the timeseries are available before using the GET request<p><h2>parameters</h2>\nNot all parameters can be combined. The following combinations are commonly used valid combinations of parameters. The main way to filter timeseries is by using filter ids or taskrun ids.<p>\n<table border='1'>\n    <tr>\n        <th>Use cases</th>\n        <th>filterId</th>\n        <th>taskRunIds</th>\n        <th>startTime, endTime</th>\n        <th>startCreationTime, endCreationTime</th>\n        <th>startForecastTime, endForecastTime</th>\n    </tr>\n    <tr>\n        <td>Apply a filter to the time series. The requested period will be set to the current time minus one day and one hour ago until the current time plus one day and one hour</td>\n        <td style=\"background-color: LightGray; text-align: center;\">&nbsp;X</td>\n        <td></td>\n        <td></td>\n        <td></td>\n        <td></td>\n    </tr>\n    <tr>\n        <td>Get all time series created by one or more taskRuns. All time steps of the matching time series are returned.</td>\n        <td></td>\n        <td style=\"background-color: LightGray; text-align: center;\">&nbsp;X</td>\n        <td></td>\n        <td></td>\n        <td></td>\n    </tr>\n    <tr>\n        <td>Get the time series created by a taskrun and apply a filter from the Filters configuration. startTime and endTime cannot be specified. The complete time series will be returned. Since\n            2020.01.\n        </td>\n        <td style=\"background-color: LightGray; text-align: center;\">&nbsp;X</td>\n        <td style=\"background-color: LightGray; text-align: center;\">&nbsp;X</td>\n        <td></td>\n        <td></td>\n        <td></td>\n    </tr>\n    <tr>\n        <td>Apply a filter to the time series and return time steps that are in the startTime and endTime range. If the startTime or endTime doesn't match a timestamp of the time series, the closest time step before startTime and/or after endTime is returned as well.</td>\n        <td style=\"background-color: LightGray; text-align: center;\">&nbsp;X</td>\n        <td></td>\n        <td style=\"background-color: LightGray; text-align: center;\">&nbsp;X</td>\n        <td></td>\n        <td></td>\n    </tr>\n    <tr>\n        <td>Apply a filter to the time series. Only time series created during the startCreationTime and endCreationTime period will be returned. All time steps of the matching time series are\n            returned.\n        </td>\n        <td style=\"background-color: LightGray; text-align: center;\">&nbsp;X</td>\n        <td></td>\n        <td></td>\n        <td style=\"background-color: LightGray; text-align: center;\">&nbsp;X</td>\n        <td></td>\n    </tr>\n    <tr>\n        <td>Apply a filter to the time series. Return only time series created during the creation time period. Only return timesteps in the startTime and endTime range.</td>\n        <td style=\"background-color: LightGray; text-align: center;\">&nbsp;X</td>\n        <td></td>\n        <td style=\"background-color: LightGray; text-align: center;\">&nbsp;X</td>\n        <td style=\"background-color: LightGray; text-align: center;\">&nbsp;X</td>\n        <td></td>\n    </tr>\n    <tr>\n        <td>Apply a filter to the time series. Return only time series with external forecast times in the startForecastTime and endForecastTime period. Only return timesteps in the startTime and\n            endTime range.\n        </td>\n        <td  style=\"background-color: LightGray; text-align: center;\">&nbsp;X</td>\n        <td></td>\n        <td  style=\"background-color: LightGray; text-align: center;\">&nbsp;X</td>\n        <td></td>\n        <td  style=\"background-color: LightGray; text-align: center;\">&nbsp;X</td>\n    </tr>\n    <tr>\n        <td>Apply a filter to the time series. Return only time series with external forecast times in the startForecastTime and endForecastTime period that were created in the creation time period.\n            Only return time steps in the startTime and endTime range.\n        </td>\n        <td  style=\"background-color: LightGray; text-align: center;\">&nbsp;X</td>\n        <td></td>\n        <td  style=\"background-color: LightGray; text-align: center;\">&nbsp;X</td>\n        <td  style=\"background-color: LightGray; text-align: center;\">&nbsp;X</td>\n        <td  style=\"background-color: LightGray; text-align: center;\">&nbsp;X</td>\n    </tr>\n    <tr>\n        <td>Apply a filter to the time series. Return only time series created during the creation time period. All time steps of the matching time series are returned. (before 2020.01 startTime and\n            endTime had to be specified).\n        </td>\n        <td  style=\"background-color: LightGray; text-align: center;\">&nbsp;X</td>\n        <td></td>\n        <td></td>\n        <td  style=\"background-color: LightGray; text-align: center;\">&nbsp;X</td>\n        <td></td>\n    </tr>\n    <tr>\n        <td>Apply a filter to the time series. Return only time series with external forecast times in the startForecastTime and endForecastTime period. All time steps of the matching time series are\n            returned.\n        </td>\n        <td  style=\"background-color: LightGray; text-align: center;\">&nbsp;X</td>\n        <td></td>\n        <td></td>\n        <td></td>\n        <td  style=\"background-color: LightGray; text-align: center;\">&nbsp;X</td>\n    </tr>\n    <tr>\n        <td>Apply a filter to the time series. Return only time series created during the creation time period and with external forecast times in the startForecastTime and endForecastTime period. All\n            time steps of the matching time series are returned..\n        </td>\n        <td  style=\"background-color: LightGray; text-align: center;\">&nbsp;X</td>\n        <td></td>\n        <td></td>\n        <td  style=\"background-color: LightGray; text-align: center;\">&nbsp;X</td>\n        <td  style=\"background-color: LightGray; text-align: center;\">&nbsp;X</td>\n    </tr>\n</table>\n\n<h2>no data vs no time series</h2>\nIf a timeseries query has matching timeseries sets a http 200 code will be returned and the headers of all matching time series sets will be returned.\nIf there is any data for the requested period, the headers will be followed by the actual events that contain the data. So even if no data is available at all the headers are always returned.\n\nIt is also possible that a timeseries query doesn't match any time series sets at all. This is seen as in invalid request and will result in a HTTP 400 response code.\nThe following are examples of use cases where this might occur:\n<ul>\n    <li>query parameters don't occur in filter. For example: the default filter has subfilters: filterA and filterB. filterA contains timeseries sets with module instance id moduleInstanceA and filterB contains timeseries sets with module instance id moduleInstanceB.\n        If a timeseries query is done with parameters: filterId=filterA and moduleInstanceId=moduleInstanceB, this will return in a HTTP 400 response</li>\n    <li>no timeseries for creation period. For example: if a query is using startCreationTime and endCreationTime and no time series have been produced during that period, this is seen as an invalid request and a HTTP 400 response is returned.</li>\n</ul>\n\n<h2>availability of new timeseries</h2>\nWhen new timeseries have been created, it can take some time before they can be found by the WebServices. The web services updates its indexes every second (every five seconds before 2023.01). Once the indexes have been updated, newly created time series can be found. So it typically can take a few seconds before newly created time series can be found. <h3>array of string</h3> For an array of strings the query parameter can be repeated, or added once with values in a comma separated fashion",
        "operationId" : "timeseries",
        "parameters" : [ {
          "name" : "filterId",
          "description" : "An existing subfilter of the default filter id",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "locationIds",
          "description" : "One or more location ids.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "layerId",
          "description" : "The layer id will be used to get timeseries for locationIds that are configured in the matching gridPlotId of the GridDisplay.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "example" : "Temp_forecast"
          }
        }, {
          "name" : "parameterIds",
          "description" : "One or more parameter ids.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "moduleInstanceIds",
          "description" : "One or more module instance ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "qualifierIds",
          "description" : "One or more qualifier ids. Subset of qualifiers for which to retrieve time series. All time series that have any of the specified qualifierIds will be returned. To indicate that no qualifier is available, use qualifierIds: \"none\"",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "taskRunIds",
          "description" : "One or more taskRunIds. Since 2024.01 a response code 206 may be returned if one of the task runs is not completely available to the webservice (either not completed yet, or not available due to index files not up to date). In that case a client should retry the request. It is advised to use the HEAD method to check if the time series are available before using the GET method.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "statisticalFunction",
          "description" : "Statistical function to applied to the retrieved time series. The function will only be applied when the all of the retrieved time series belong to the same ensemble",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "aggregation",
          "description" : "",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "percentileExceedance",
          "description" : "value of the percentileExceedance to be applied when the statistical function percentileExceedance is used",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "number"
          }
        }, {
          "name" : "percentilNonExceedance",
          "description" : "value of the percentilNonExceedance to be applied when the statistical function percentilNonExceedance is used",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "number"
          }
        }, {
          "name" : "startTime",
          "description" : "Start time of search period that looks for timeseries values that are within this period. If the startTime doesn't match a timestamp of the time series, the closest timestamp before the startTime, will also be returned. Format: yyyy-MM-ddTHH:mm:ssZ. Take note that if no startTime and endTime are specified, the requested period will be set to the current time minus one day and one hour ago until the current time plus one day and one hour. If only the startTime is specified, the requested period will be set to the startTime until the startTime time plus one day and one hour. If only the endTime is specified, the requested period will be set to the endTime minus one day and one hour until the endTime.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "endTime",
          "description" : "End time of search period that looks for timeseries values that are within this period. If the endTime doesn't match a timestamp of the time series, the closest timestamp after the endTime, will also be returned. Format: yyyy-MM-ddTHH:mm:ssZ. Take note that if no startTime and endTime are specified, the requested period will be set to the current time minus one day and one hour ago until the current time plus one day and one hour. If only the startTime is specified, the requested period will be set to the startTime until the startTime time plus one day and one hour. If only the endTime is specified, the requested period will be set to the endTime minus one day and one hour until the endTime.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "beforeStartTimeCount",
          "description" : "Extra time steps that are returned before the specified start time",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "number",
            "example" : "5"
          }
        }, {
          "name" : "afterEndTimeCount",
          "description" : "Extra time steps that are returned after the specified end time",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "number",
            "example" : "5"
          }
        }, {
          "name" : "startCreationTime",
          "description" : "Creation start time. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "endCreationTime",
          "description" : "Creation end time. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "forecastCount",
          "description" : "Number of forecasts that will be searched for when startForecastTime and endForecastTime have been specified. Default 1",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "number",
            "example" : "1"
          }
        }, {
          "name" : "startForecastTime",
          "description" : "Start time of search period that looks for time series produced by forecasts that have their forecast time within this period. Format: yyyy-MM-ddTHH:mm:ssZ. If left empty all forecasts up to the endForecastTime will be used as search period.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "endForecastTime",
          "description" : "End time of search period that looks for time series produced by forecasts that have their forecast time within this period. Format: yyyy-MM-ddTHH:mm:ssZ. If left empty all forecasts starting from the startForecastTime will be used as search period.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "leadTime",
          "description" : "Available since 2025.01. Optional field. The lead time of the forecast. The lead time is the time difference between the forecast time and the time of the forecasted event. The lead time is expressed in milliseconds. Can be used in combination of startTime and endtime, or startForecastTime and endForecastTime, but not both. Has to be a valid time step for the requested time series.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "number",
            "example" : "3600000"
          }
        }, {
          "name" : "externalForecastTimes",
          "description" : "One or more external forecast times. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "ensembleId",
          "description" : "Ensemble Id. Ensemble identifier of time series",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "ensembleMemberId",
          "description" : "Ensemble MemberId. Ensemble member identifier of time series. Only allowed in combination with ensembleId <i>Since: 2022.02</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "timeStepId",
          "description" : "Time Step Id. Filter time series by the time step that has been configured in the TimeSteps.xml. N.B.: It is not required to use the timeStepId's in the filter configurations to be able to use them as long as they have been configured in the TimeSteps.xml. <i>Since: 2018.02</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "thinning",
          "description" : "Thinning is used to retrieve the visually interesting time steps of timeSeries. It tries to keep the peaks and gaps and minimizes the number of time steps that have to be retrieved. It is typically used for visualizations. The value to be specified should be equal to the view period in milliseconds of the timeSeries that is visualized divided by the number of pixels that are available for display. For example: visualizing a view period of 5 years (157784760000 milliseconds) on a display of 1024 pixels, the thinning parameter should be set to 157784760000/1024 = 15408668. unit ms/pixel.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "number",
            "example" : "15408668"
          }
        }, {
          "name" : "exportIdMap",
          "description" : "Name of the id map that should be used as exportIdMap. This parameter will overrule a configured exportIdMap. <i>Since: 2022.02</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "exportUnitConversionId",
          "description" : "Export Unit Conversion Id. Overrules any configured exportUnitConversionId in the WebServices.xml. <i>Since: 2022.02</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "number"
          }
        }, {
          "name" : "timeZoneName",
          "description" : "Name of the timezone. Overrules any configured timeZone configuration in the WebServices.xml. Should comply to timeZoneStringType as defined in: https://fewsdocs.deltares.nl/schemas/version1.0/sharedTypes.xsd <i>Since: 2022.02</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "timeSeriesIds",
          "description" : "One or more time series ids. Optional, don't specify locationIds, parmeterIds, qualfierIds, filterId, moduleInstanceIds <i>Since: 2023.01</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "defaultRequestParametersId",
          "description" : "Since 2022.02. If this parameter is set, a defaultRequestParameters element is expected to be configured with the specified id in the piRestService element of the WebServices.xml. All request parameters configured will be used as the default request parameters for the timeseries endpoint. If a parameter is explicitly added to the timeseries endpoint, it will overrule the entry that was set in the defaultRequestParameters configuration. <i>Since: 2022.02</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "resamplingMethod",
          "description" : "Since 2023.02. If this parameter is set, resampling is applied using the passed method. It is required to also specify a resamplingTimeStepId. For information about the different methods, see: https://publicwiki.deltares.nl/x/xJUYBw <i>Since: 20232.02</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "minimum", "maximum", "mean", "mean_over_time", "sum", "instantaneous", "percentile" ],
            "type" : "string"
          }
        }, {
          "name" : "resamplingTimeStepId",
          "description" : "Since 2023.02. The target sampling time step id. The time step id must be configured in the TimeSeriesDisplay in the resampling element that refer to time steps that are configured in the TimeSteps.xml. It is required to also specify a resamplingMethod. <i>Since: 20232.02</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "resamplingOmitMissing",
          "description" : "Since 2023.02. When resampling omit missing values. Default is true. <i>Since: 20232.02</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "downloadAsFile",
          "description" : "Since 2024.01. Set the name of the file without extension to download as an attachment. Can be used in the testpage to avoid the response being rendered in the browser.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "matchAsQualifierSet",
          "description" : "Since 2023.01. If this option is to true the qualifier from time series selected from the filter must contain all of the given qualifiers ids and only consist only of the given qualifiers ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "importFromExternalDataSource",
          "description" : "import data from external data source, defaults to true.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "convertDatum",
          "description" : "Convert values from relative location height to absolute height values",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "convertValuesToEnumerationLabels",
          "description" : "Convert values to enumeration labels. This is only relevant for parameters that are configured as enumeration in the parameter group.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "showEnsembleMemberIds",
          "description" : "Show ensemble member ids instead of ensemble member indices.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "useDisplayUnits",
          "description" : "Export values using display units.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "showThresholds",
          "description" : "Option to toggle the returning of threshold information in the headers.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "omitMissing",
          "description" : "Toggle omitting or returning of missing values in response.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "omitEmptyTimeSeries",
          "description" : "Toggle omitting or returning headers of empty timeSeries. Default is false. <i>Since: 2020.02</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "omitOriginalReliable",
          "description" : "Toggle omitting or returning of original reliable values in response. <i>Since: 2023.02</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "omitOriginalDoubtful",
          "description" : "Toggle omitting or returning of original doubtful values in response. <i>Since: 2023.02</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "omitOriginalUnreliable",
          "description" : "Toggle omitting or returning of original unreliable values in response. <i>Since: 2023.02</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "omitCompletedReliable",
          "description" : "Toggle omitting or returning of completed reliable values in response. <i>Since: 2023.02</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "omitCompletedDoubtful",
          "description" : "Toggle omitting or returning of completed doubtful values in response. <i>Since: 2023.02</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "omitCompletedUnreliable",
          "description" : "Toggle omitting or returning of completed unreliable values in response. <i>Since: 2023.02</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "omitCorrectedReliable",
          "description" : "Toggle omitting or returning of corrected reliable values in response. <i>Since: 2023.02</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "omitCorrectedDoubtful",
          "description" : "Toggle omitting or returning of corrected doubtful values in response. <i>Since: 2023.02</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "omitCorrectedUnreliable",
          "description" : "Toggle omitting or returning of corrected unreliable values in response. <i>Since: 2023.02</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "onlyManualEdits",
          "description" : "Toggle to return only manual edits.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "onlyHeaders",
          "description" : "Toggle to return only header information or also data.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "onlyForecasts",
          "description" : "Toggle to return only forecast timeSeries (Since 2017.02).",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "showStatistics",
          "description" : "Toggle to return statistics information about timeseries. Typically used in combination with onlyHeaders. Returns additional information about data availability of timeseries:<ul><li>firstValueTime: First time with a value in the timeSeries</li><li>maxValue: Maximum value in the timeSeries</li><li>minValue: Minimum value in the timeSeries</li><li>valueCount: Number of values in the timeSeries</li></ul>. These statistics are only provided if there is any data, otherwise they are left out.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "useMilliseconds",
          "description" : "Toggle to return milliseconds in time step.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "showProducts",
          "description" : "Toggle to display product information that is assigned to a forecast. (Since 2019.02).",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "timeSeriesType",
          "description" : "Explicitly filter on a specific time series type. <i>Since: 2020.01</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "EXTERNAL_HISTORICAL", "EXTERNAL_FORECASTING", "SIMULATED_HISTORICAL", "SIMULATED_FORECASTING" ],
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_XML, PI_JSON, PI_CSV, PI_NETCDF, DD_JSON, NOOS_TEXT, BINARY, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_XML", "PI_JSON", "PI_CSV", "PI_NETCDF", "NOOS_TEXT", "DD_JSON", "BINARY" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "oneOf" : [ {
                    "$ref" : "schemas/pirest/pi_rest_timeseries.json"
                  }, {
                    "type" : "object",
                    "title" : "DD_JSON",
                    "description" : "Digitale Delta DD_JSON: DocumentFormat=DD_JSON",
                    "example" : "{\n  \"provider\" : {\n    \"name\" : \"Deltares\",\n    \"supportUrl\" : \"https://www.delft-fews.nl/\",\n    \"apiVersion\" : \"2.0\",\n    \"responseTimestamp\" : \"2021-07-20T10:47:26.750Z\"\n  },\n  \"results\" : [ {\n    \"node\" : {\n      \"name\" : \"Deltares Digitale Delta\"\n    },\n    \"location\" : {\n      \"type\" : \"Feature\",\n      \"geometry\" : {\n        \"type\" : \"Point\",\n        \"coordinates\" : [ 5.4, 51.98, 0.0 ]\n      },\n      \"properties\" : {\n        \"node\" : {\n          \"name\" : \"Deltares Digitale Delta\"\n        },\n        \"locationId\" : \"amerongen_beneden\",\n        \"locationName\" : \"amerongen beneden\",\n        \"referenceLevel\" : \"m\",\n        \"crs\" : {\n          \"type\" : \"name\",\n          \"properties\" : {\n            \"name\" : \"EPSG:4326\"\n          }\n        }\n      }\n    },\n    \"observationType\" : {\n      \"node\" : {\n        \"name\" : \"Deltares Digitale Delta\"\n      },\n      \"unit\" : \"m\",\n      \"parameterCode\" : \"H.voorspeld.daily\",\n      \"description\" : \"\"\n    },\n    \"source\" : {\n      \"process\" : \"forecast\",\n      \"name\" : \"Forecast\",\n      \"institution\" : {\n        \"name\" : \"Deltares Digitale Delta\",\n        \"description\" : \"Delft-FEWS Web Services (1.0) - version: 2017.01, build: 68155 Sep11, type: development-2017.01, jre: 11.0.10, os:Windows 10, mx: 8558m\"\n      }\n    },\n    \"intervalLength\" : 86400,\n    \"startTime\" : \"2012-12-31T00:00:00Z\",\n    \"endTime\" : \"2013-01-06T00:00:00Z\",\n    \"analysisTime\" : \"2013-01-01T00:00:00Z\",\n    \"events\" : [ {\n      \"timeStamp\" : \"2012-12-31T00:00:00Z\",\n      \"value\" : -999.0,\n      \"quality\" : 8\n    }, {\n      \"timeStamp\" : \"2013-01-01T00:00:00Z\",\n      \"value\" : 3.0,\n      \"quality\" : 0\n    }, {\n      \"timeStamp\" : \"2013-01-02T00:00:00Z\",\n      \"value\" : 1.0,\n      \"quality\" : 0\n    }, {\n      \"timeStamp\" : \"2013-01-03T00:00:00Z\",\n      \"value\" : 4.0,\n      \"quality\" : 0\n    }, {\n      \"timeStamp\" : \"2013-01-04T00:00:00Z\",\n      \"value\" : 1.0,\n      \"quality\" : 0\n    }, {\n      \"timeStamp\" : \"2013-01-05T00:00:00Z\",\n      \"value\" : -999.0,\n      \"quality\" : 8\n    }, {\n      \"timeStamp\" : \"2013-01-06T00:00:00Z\",\n      \"value\" : -999.0,\n      \"quality\" : 8\n    } ]\n  } ]\n}"
                  } ]
                }
              },
              "application/xml" : {
                "schema" : {
                  "title" : "PI_XML",
                  "description" : "https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_timeseries.xsd",
                  "type" : "object",
                  "xml" : {
                    "name" : "TimeSeries"
                  },
                  "example" : "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<TimeSeries xmlns=\"http://www.wldelft.nl/fews/PI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.wldelft.nl/fews/PI https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_timeseries.xsd\" version=\"1.27\" xmlns:fs=\"http://www.wldelft.nl/fews/fs\">\n    <timeZone>0.0</timeZone>\n    <series>\n        <header>\n            <type>instantaneous</type>\n            <moduleInstanceId>Coastal_Process_Astro</moduleInstanceId>\n            <locationId>5028N331W</locationId>\n            <parameterId>H.astronomical</parameterId>\n            <qualifierId>HighTide</qualifierId>\n            <timeStep unit=\"nonequidistant\"/>\n            <startDate date=\"2021-06-24\" time=\"08:00:00\"/>\n            <endDate date=\"2021-06-25\" time=\"09:00:00\"/>\n            <missVal>-999.0</missVal>\n            <stationName>Torquay Astro</stationName>\n            <lat>50.46667804024676</lat>\n            <lon>-3.533324439637471</lon>\n            <x>291274.0</x>\n            <y>64107.0</y>\n            <units>m</units>\n        </header>\n    </series>\n</TimeSeries>    "
                }
              },
              "text/csv" : {
                "schema" : {
                  "oneOf" : [ {
                    "title" : "PI_CSV",
                    "description" : "CSV with location and parameter headers. The number of timesteps is maximized to 100000 divided by the number of columns. For example: in case 1000 time series are requested, the maximum number of timesteps that will be returned is 100.",
                    "type" : "object"
                  }, {
                    "title" : "PI_CSV_ID_AND_NAME",
                    "description" : "CSV with location and parameter headers including id and names. The number of timesteps is maximized to 100000 divided by the number of columns. For example: in case 1000 time series are requested, the maximum number of timesteps that will be returned is 100.",
                    "type" : "object"
                  } ]
                }
              }
            }
          },
          "206" : {
            "description" : "Since 2024.01. In case timeseries are requested using one or more taskRunIds and the taskrun is not completely available to the webservice (either not completed yet, or not available due to index files not up to date).",
            "content" : {
              "application/json" : {
                "schema" : {
                  "oneOf" : [ {
                    "$ref" : "schemas/pirest/pi_rest_timeseries.json"
                  }, {
                    "type" : "object",
                    "title" : "DD_JSON",
                    "description" : "Digitale Delta DD_JSON: DocumentFormat=DD_JSON",
                    "example" : "{\n  \"provider\" : {\n    \"name\" : \"Deltares\",\n    \"supportUrl\" : \"https://www.delft-fews.nl/\",\n    \"apiVersion\" : \"2.0\",\n    \"responseTimestamp\" : \"2021-07-20T10:47:26.750Z\"\n  },\n  \"results\" : [ {\n    \"node\" : {\n      \"name\" : \"Deltares Digitale Delta\"\n    },\n    \"location\" : {\n      \"type\" : \"Feature\",\n      \"geometry\" : {\n        \"type\" : \"Point\",\n        \"coordinates\" : [ 5.4, 51.98, 0.0 ]\n      },\n      \"properties\" : {\n        \"node\" : {\n          \"name\" : \"Deltares Digitale Delta\"\n        },\n        \"locationId\" : \"amerongen_beneden\",\n        \"locationName\" : \"amerongen beneden\",\n        \"referenceLevel\" : \"m\",\n        \"crs\" : {\n          \"type\" : \"name\",\n          \"properties\" : {\n            \"name\" : \"EPSG:4326\"\n          }\n        }\n      }\n    },\n    \"observationType\" : {\n      \"node\" : {\n        \"name\" : \"Deltares Digitale Delta\"\n      },\n      \"unit\" : \"m\",\n      \"parameterCode\" : \"H.voorspeld.daily\",\n      \"description\" : \"\"\n    },\n    \"source\" : {\n      \"process\" : \"forecast\",\n      \"name\" : \"Forecast\",\n      \"institution\" : {\n        \"name\" : \"Deltares Digitale Delta\",\n        \"description\" : \"Delft-FEWS Web Services (1.0) - version: 2017.01, build: 68155 Sep11, type: development-2017.01, jre: 11.0.10, os:Windows 10, mx: 8558m\"\n      }\n    },\n    \"intervalLength\" : 86400,\n    \"startTime\" : \"2012-12-31T00:00:00Z\",\n    \"endTime\" : \"2013-01-06T00:00:00Z\",\n    \"analysisTime\" : \"2013-01-01T00:00:00Z\",\n    \"events\" : [ {\n      \"timeStamp\" : \"2012-12-31T00:00:00Z\",\n      \"value\" : -999.0,\n      \"quality\" : 8\n    }, {\n      \"timeStamp\" : \"2013-01-01T00:00:00Z\",\n      \"value\" : 3.0,\n      \"quality\" : 0\n    }, {\n      \"timeStamp\" : \"2013-01-02T00:00:00Z\",\n      \"value\" : 1.0,\n      \"quality\" : 0\n    }, {\n      \"timeStamp\" : \"2013-01-03T00:00:00Z\",\n      \"value\" : 4.0,\n      \"quality\" : 0\n    }, {\n      \"timeStamp\" : \"2013-01-04T00:00:00Z\",\n      \"value\" : 1.0,\n      \"quality\" : 0\n    }, {\n      \"timeStamp\" : \"2013-01-05T00:00:00Z\",\n      \"value\" : -999.0,\n      \"quality\" : 8\n    }, {\n      \"timeStamp\" : \"2013-01-06T00:00:00Z\",\n      \"value\" : -999.0,\n      \"quality\" : 8\n    } ]\n  } ]\n}"
                  } ]
                }
              },
              "application/xml" : {
                "schema" : {
                  "title" : "PI_XML",
                  "description" : "https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_timeseries.xsd",
                  "type" : "object",
                  "xml" : {
                    "name" : "TimeSeries"
                  },
                  "example" : "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<TimeSeries xmlns=\"http://www.wldelft.nl/fews/PI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.wldelft.nl/fews/PI https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_timeseries.xsd\" version=\"1.27\" xmlns:fs=\"http://www.wldelft.nl/fews/fs\">\n    <timeZone>0.0</timeZone>\n    <series>\n        <header>\n            <type>instantaneous</type>\n            <moduleInstanceId>Coastal_Process_Astro</moduleInstanceId>\n            <locationId>5028N331W</locationId>\n            <parameterId>H.astronomical</parameterId>\n            <qualifierId>HighTide</qualifierId>\n            <timeStep unit=\"nonequidistant\"/>\n            <startDate date=\"2021-06-24\" time=\"08:00:00\"/>\n            <endDate date=\"2021-06-25\" time=\"09:00:00\"/>\n            <missVal>-999.0</missVal>\n            <stationName>Torquay Astro</stationName>\n            <lat>50.46667804024676</lat>\n            <lon>-3.533324439637471</lon>\n            <x>291274.0</x>\n            <y>64107.0</y>\n            <units>m</units>\n        </header>\n    </series>\n</TimeSeries>    "
                }
              }
            }
          },
          "400" : {
            "description" : "",
            "content" : {
              "plain/text" : {
                "schema" : {
                  "oneOf" : [ {
                    "title" : "No timeSeries Found for creation Period",
                    "description" : "No timeSeries found can occur if no timeseries are available for a requested creation period.",
                    "type" : "string",
                    "example" : "No timeSeries Found"
                  }, {
                    "title" : "Invalid request",
                    "description" : "Invalid request for query parameters can occur when an unexpected parameter is used or a parameter is used twice",
                    "type" : "string",
                    "example" : "Invalid request. An unexpected parameter was used in the request."
                  } ]
                }
              }
            }
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      },
      "post" : {
        "tags" : [ "timeseries" ],
        "summary" : "Timeseries will be written that are part of the timeseries sets defined by the filters",
        "description" : "Timeseries will be written that are part of the timeseries sets defined by the filters. The application/json or application/x-www-form-urlencoded encoding has to be used. Readonly mode has to be disable in the FewsPiService.properties to allow this functionality.<p>The timeseries you post to the rest service should match one of the time series sets in the default filter or one of its sub filters. To make sure you only write time series for a specific filter, you can pass a filterId with the POST request. Only timeseries that have timeseries sets that are configured in that filter (or one of its sub filters) will be accepted. If no filterId is used, all time series will be accepted that are configured in the default filter. Writing the time series works similar to importing time series using the pi.xml format using the \"PI\" import type. See also: <a target='_new' href='https://publicwiki.deltares.nl/x/uIGE'>Delft-Fews Published Interface timeseries Format (PI) Import</a>\n\nThe 'convertDatum' argument is to allow timeseries that support a datum to have their values converted to a value relative to the location height. If values are already relative to location then enter FALSE or omit.\n\nIn case a time series already exists in the database, the time series will be overwritten by the ones that are posted. For forecast time series with different forecastDates a new time series will be added. The latter can be achieved by providing a forecastDate element in the POST request, e.g. <forecastDate date=\"2013-01-01\" time=\"00:00:00\"/>.",
        "operationId" : "posttimeseries",
        "parameters" : [ {
          "name" : "filterId",
          "description" : "An existing subfilter of the default filter id",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "convertDatum",
          "description" : "Convert Datum",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "object"
              }
            },
            "application/x-www-form-urlencoded" : {
              "schema" : {
                "properties" : {
                  "piTimeSeriesXmlContent" : {
                    "type" : "string",
                    "description" : "Time Series sent in timeseries pi XML using content-type  application/x-www-form-urlencoded in the body of the post request. https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_timeseries.xsd"
                  },
                  "piTimeSeriesJsonContent" : {
                    "type" : "string",
                    "description" : "Since 2023.02.  Time Series sent in timeseries pi json using content-type  application/x-www-form-urlencoded in the body of the post request. Json format is: https://fewsdocs.deltares.nl/webservices/rest-api/v1/schemas/pirest/pi_rest_timeseries.json"
                  }
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/xml" : {
                "schema" : {
                  "title" : "PI_XML",
                  "description" : "https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_diag.xsd",
                  "type" : "object",
                  "xml" : {
                    "name" : "Diag"
                  },
                  "example" : "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Diag xmlns=\"http://www.wldelft.nl/fews/PI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.wldelft.nl/fews/PI http://fews.\nwldelft.nl/schemas/version1.0/pi-schemas/pi_diag.xsd\" version=\"1.2\">\n    <line level=\"2\" description=\"Multiple time series sets found for parameter=T.obs.mean location=63306260000\"/>\n    <line level=\"3\" description=\"Import.Info: External time series successfully mapped to FEWS time series 63306260000 T.obs.mean   (m) nonequidistant Tue Jan 0\n1 01:40:00 CET 2013 z=0.0\"/>\n    <line level=\"3\" description=\"Import.info: 1 time series imported, 0 time series rejected\"/>\n    <line level=\"3\" description=\"Import.info: The following locations-parameter combination imported  63306260000:T.obs.mean\"/\n</Diag>\n"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/timeseries/edit" : {
      "post" : {
        "tags" : [ "timeseries" ],
        "summary" : "Update a time series that have been edited in timeseries pi json format",
        "description" : "Update a time series that have been edited in timeseries pi json format.<p>Only one timeseries can be updated at a time. The sent timeseries should be in pi json format without header information. The header is determine by the timeSeriesIndex in combination with a locationId and optionally a ensembleId and ensemlbleMemberId..",
        "operationId" : "posttimeseries/edit",
        "parameters" : [ {
          "name" : "timeSeriesId",
          "description" : "Time series id that uniquely defines a time series in combination",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "number"
          }
        }, {
          "name" : "locationId",
          "description" : "Location",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "ensembleId",
          "description" : "Ensemble Id. When used, ensembleMemberId has to be set as well",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "ensembleMemberId",
          "description" : "EnsembleMember Id. When used, ensembleId has to be set as well",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "convertDatum",
          "description" : "Convert Datum",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "useDisplayUnits",
          "description" : "Use display units",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "properties" : {
                  "timeSeries" : {
                    "type" : "string",
                    "description" : "Time Series sent in timeseries pi json format sent in the body of the post request. Json format is: https://fewsdocs.deltares.nl/webservices/rest-api/v1/schemas/pirest/pi_rest_timeseries.json"
                  }
                },
                "required" : [ "timeSeries" ]
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "text/plain" : {
                "schema" : {
                  "title" : "text/plain",
                  "type" : "string",
                  "example" : ""
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/timeseries/history" : {
      "get" : {
        "tags" : [ "timeseries" ],
        "summary" : "Get the history of edits for one or more times for a certain time series",
        "description" : "Get the history of edits for one or more times for a certain time series<p>Get the history of edits for one or more times for a certain time series",
        "operationId" : "timeseries/history",
        "parameters" : [ {
          "name" : "times",
          "description" : "one ore times for which the edit history will be returned",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "locationId",
          "description" : "Id of the location for which the edits will be returned",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "example" : "myLocationId"
          }
        }, {
          "name" : "ensembleId",
          "description" : "Id of the ensemble for which the edits will be returned",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "example" : "myEnsembleId"
          }
        }, {
          "name" : "ensembleMemberId",
          "description" : "Id of the ensemble member for which the edits will be returned",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "example" : "myEnsembleId"
          }
        }, {
          "name" : "timeSeriesId",
          "description" : "id that will identify a unique time series <i>Since: 2023.01</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "number"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_weboc_configuration.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/timeseries/intervalstatistics" : {
      "get" : {
        "tags" : [ "timeseries" ],
        "summary" : "Get interval statistics",
        "description" : "Get interval statistics<p>Max. of 500 columns of data.",
        "operationId" : "timeseries/intervalstatistics",
        "parameters" : [ {
          "name" : "interval",
          "description" : "Timestep of dataresponse(week day, calendar day, month, calendar month, year)",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "WEEK_DAY", "CALENDAR_DAY", "MONTH", "CALENDAR_MONTH", "YEAR" ],
            "type" : "string"
          }
        }, {
          "name" : "statistics",
          "description" : "Use `count_numberOfValues`, `percentage_reliable`, `count_seriesComparison`, `percentage_flagsComparison`, `<type>_<flagSourceColumn>_<statistic>` in the statistics field.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "filterId",
          "description" : "An existing subfilter of the default filter id",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "locationIds",
          "description" : "One or more location ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "parameterIds",
          "description" : "One or more parameter ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "moduleInstanceIds",
          "description" : "One or more module instance ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "qualifierIds",
          "description" : "One or more qualifier ids. Subset of qualifiers for which to retrieve time series. All time series that have any of the specified qualifierIds will be returned. To indicate that no qualifier is available, use qualifierIds: \"none\"",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "startTime",
          "description" : "Start time of search period that looks for timeseries values that are within this period. If the startTime doesn't match a timestamp of the time series, the closest timestamp before the startTime, will also be returned. Format: yyyy-MM-ddTHH:mm:ssZ. Take note that if no startTime and endTime are specified, the requested period will be set to the current time minus one day and one hour ago until the current time plus one day and one hour. If only the startTime is specified, the requested period will be set to the startTime until the startTime time plus one day and one hour. If only the endTime is specified, the requested period will be set to the endTime minus one day and one hour until the endTime.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "endTime",
          "description" : "End time of search period that looks for timeseries values that are within this period. If the endTime doesn't match a timestamp of the time series, the closest timestamp after the endTime, will also be returned. Format: yyyy-MM-ddTHH:mm:ssZ. Take note that if no startTime and endTime are specified, the requested period will be set to the current time minus one day and one hour ago until the current time plus one day and one hour. If only the startTime is specified, the requested period will be set to the startTime until the startTime time plus one day and one hour. If only the endTime is specified, the requested period will be set to the endTime minus one day and one hour until the endTime.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "ensembleId",
          "description" : "Ensemble Id. Ensemble identifier of time series",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "ensembleMemberId",
          "description" : "Ensemble MemberId. Ensemble member identifier of time series. Only allowed in combination with ensembleId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "timeStepId",
          "description" : "Time Step Id. Filter time series by the time step that has been configured in the TimeSteps.xml. N.B.: It is not required to use the timeStepId's in the filter configurations to be able to use them as long as they have been configured in the TimeSteps.xml.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "exportIdMap",
          "description" : "Name of the id map that should be used as exportIdMap. This parameter will overrule a configured exportIdMap.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "thresholdValue",
          "description" : "Threshold value. Threshold for above/below statistic.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "timeSeriesType",
          "description" : "Explicitly filter on a specific time series type.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "EXTERNAL_HISTORICAL", "EXTERNAL_FORECASTING", "SIMULATED_HISTORICAL", "SIMULATED_FORECASTING" ],
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_interval_statistics.json"
                }
              }
            }
          },
          "400" : {
            "description" : "",
            "content" : {
              "plain/text" : {
                "schema" : {
                  "oneOf" : [ {
                    "title" : "No interval statistics found for interval period",
                    "description" : "No interval statistics found can occur if no timeseries are available for a requested interval period.",
                    "type" : "string",
                    "example" : "No interval statistics found"
                  }, {
                    "title" : "Invalid request",
                    "description" : "Invalid request for query parameters can occur when an unexpected parameter is used or a parameter is used twice",
                    "type" : "string",
                    "example" : "Invalid request. An unexpected parameter was used in the request."
                  } ]
                }
              }
            }
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/timeseries/displaygroups" : {
      "get" : {
        "tags" : [ "timeseries" ],
        "summary" : "Timeseries are filtered by the plotId from the DisplayGroups",
        "description" : "Timeseries are filtered by the plotId from the DisplayGroups.xml configuration in the SystemConfigFiles folder.<p>The TimeSeriesSets configured for the plotId will be used to filter the timeSeries. The line, area and clusteredBars elements are used when determining the relevant TimeSeriesSets. In case of forecasts, this means only the current forecast will be retrieved. It is not possible to request older forecasts. If no line, area or clusteredBars elements are used in the displayGroups.xml configuration, the TimeSeriesSets will not be applied.",
        "operationId" : "timeseries/displaygroups",
        "parameters" : [ {
          "name" : "plotId",
          "description" : "Plot Id",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "locationIds",
          "description" : "One or more location ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "startTime",
          "description" : "Start time of search period that looks for timeseries values that are within this period. If the startTime doesn't match a timestamp of the time series, the closest timestamp before the startTime, will also be returned. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "endTime",
          "description" : "End time of search period that looks for timeseries values that are within this period. If the endTime doesn't match a timestamp of the time series, the closest timestamp after the endTime, will also be returned. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "thinning",
          "description" : "Thinning is used to retrieve the visually interesting time steps of timeSeries. It tries to keep the peaks and gaps and minimizes the number of time steps that have to be retrieved. It is typically used for visualizations. The value to be specified should be equal to the view period in milliseconds of the timeSeries that is visualized divided by the number of pixels that are available for display. For example: visualizing a view period of 5 years (157784760000 milliseconds) on a display of 1024 pixels, the thinning parameter should be set to 157784760000/1024 = 15408668. unit ms/pixel.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "number",
            "example" : "15408668"
          }
        }, {
          "name" : "convertDatum",
          "description" : "Convert Datum",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "showEnsembleMemberIds",
          "description" : "Show ensemble member ids instead of ensemble member indices.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "useDisplayUnits",
          "description" : "Export values using display units",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "showThresholds",
          "description" : "Option to toggle the returning of threshold information in the headers.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "omitMissing",
          "description" : "Toggle omitting or returning of missing values in response.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "omitEmptyTimeSeries",
          "description" : "Toggle omitting or returning headers of empty timeSeries. Default is false. <i>Since: 2020.02</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "onlyHeaders",
          "description" : "Toggle to return only header information or also data.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "onlyManualEdits",
          "description" : "Toggle to return only manual edits.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "onlyForecasts",
          "description" : "Toggle to return only forecast timeSeries (Since 2017.02).",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "showStatistics",
          "description" : "Toggle to return statistics information about timeseries. Typically used in combination with onlyHeaders. Returns additional information about data availability of timeseries:<ul><li>firstValueTime: First time with a value in the timeSeries</li><li>maxValue: Maximum value in the timeSeries</li><li>minValue: Minimum value in the timeSeries</li><li>valueCount: Number of values in the timeSeries</li></ul>. These statistics are only provided if there is any data, otherwise they are left out.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "useMilliseconds",
          "description" : "Toggle to return milliseconds in time step.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "showProducts",
          "description" : "Toggle to display product information that is assigned to a forecast. (Since 2019.02).",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "timeSeriesType",
          "description" : "Explicitly filter on a specific time series type. <i>Since: 2020.01</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "EXTERNAL_HISTORICAL", "EXTERNAL_FORECASTING", "SIMULATED_HISTORICAL", "SIMULATED_FORECASTING" ],
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_XML, PI_JSON, DD_JSON, NOOS_TEXT, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_XML", "PI_JSON", "NOOS_TEXT", "DD_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "oneOf" : [ {
                    "$ref" : "schemas/pirest/pi_rest_timeseries.json"
                  }, {
                    "type" : "object",
                    "title" : "DD_JSON",
                    "description" : "Digitale Delta DD_JSON: DocumentFormat=DD_JSON",
                    "example" : "{\n  \"provider\" : {\n    \"name\" : \"Deltares\",\n    \"supportUrl\" : \"https://www.delft-fews.nl/\",\n    \"apiVersion\" : \"2.0\",\n    \"responseTimestamp\" : \"2021-07-20T10:47:26.750Z\"\n  },\n  \"results\" : [ {\n    \"node\" : {\n      \"name\" : \"Deltares Digitale Delta\"\n    },\n    \"location\" : {\n      \"type\" : \"Feature\",\n      \"geometry\" : {\n        \"type\" : \"Point\",\n        \"coordinates\" : [ 5.4, 51.98, 0.0 ]\n      },\n      \"properties\" : {\n        \"node\" : {\n          \"name\" : \"Deltares Digitale Delta\"\n        },\n        \"locationId\" : \"amerongen_beneden\",\n        \"locationName\" : \"amerongen beneden\",\n        \"referenceLevel\" : \"m\",\n        \"crs\" : {\n          \"type\" : \"name\",\n          \"properties\" : {\n            \"name\" : \"EPSG:4326\"\n          }\n        }\n      }\n    },\n    \"observationType\" : {\n      \"node\" : {\n        \"name\" : \"Deltares Digitale Delta\"\n      },\n      \"unit\" : \"m\",\n      \"parameterCode\" : \"H.voorspeld.daily\",\n      \"description\" : \"\"\n    },\n    \"source\" : {\n      \"process\" : \"forecast\",\n      \"name\" : \"Forecast\",\n      \"institution\" : {\n        \"name\" : \"Deltares Digitale Delta\",\n        \"description\" : \"Delft-FEWS Web Services (1.0) - version: 2017.01, build: 68155 Sep11, type: development-2017.01, jre: 11.0.10, os:Windows 10, mx: 8558m\"\n      }\n    },\n    \"intervalLength\" : 86400,\n    \"startTime\" : \"2012-12-31T00:00:00Z\",\n    \"endTime\" : \"2013-01-06T00:00:00Z\",\n    \"analysisTime\" : \"2013-01-01T00:00:00Z\",\n    \"events\" : [ {\n      \"timeStamp\" : \"2012-12-31T00:00:00Z\",\n      \"value\" : -999.0,\n      \"quality\" : 8\n    }, {\n      \"timeStamp\" : \"2013-01-01T00:00:00Z\",\n      \"value\" : 3.0,\n      \"quality\" : 0\n    }, {\n      \"timeStamp\" : \"2013-01-02T00:00:00Z\",\n      \"value\" : 1.0,\n      \"quality\" : 0\n    }, {\n      \"timeStamp\" : \"2013-01-03T00:00:00Z\",\n      \"value\" : 4.0,\n      \"quality\" : 0\n    }, {\n      \"timeStamp\" : \"2013-01-04T00:00:00Z\",\n      \"value\" : 1.0,\n      \"quality\" : 0\n    }, {\n      \"timeStamp\" : \"2013-01-05T00:00:00Z\",\n      \"value\" : -999.0,\n      \"quality\" : 8\n    }, {\n      \"timeStamp\" : \"2013-01-06T00:00:00Z\",\n      \"value\" : -999.0,\n      \"quality\" : 8\n    } ]\n  } ]\n}"
                  } ]
                }
              },
              "application/xml" : {
                "schema" : {
                  "title" : "PI_XML",
                  "description" : "https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_timeseries.xsd",
                  "type" : "object",
                  "xml" : {
                    "name" : "TimeSeries"
                  },
                  "example" : "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<TimeSeries xmlns=\"http://www.wldelft.nl/fews/PI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.wldelft.nl/fews/PI https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_timeseries.xsd\" version=\"1.27\" xmlns:fs=\"http://www.wldelft.nl/fews/fs\">\n    <timeZone>0.0</timeZone>\n    <series>\n        <header>\n            <type>instantaneous</type>\n            <moduleInstanceId>Coastal_Process_Astro</moduleInstanceId>\n            <locationId>5028N331W</locationId>\n            <parameterId>H.astronomical</parameterId>\n            <qualifierId>HighTide</qualifierId>\n            <timeStep unit=\"nonequidistant\"/>\n            <startDate date=\"2021-06-24\" time=\"08:00:00\"/>\n            <endDate date=\"2021-06-25\" time=\"09:00:00\"/>\n            <missVal>-999.0</missVal>\n            <stationName>Torquay Astro</stationName>\n            <lat>50.46667804024676</lat>\n            <lon>-3.533324439637471</lon>\n            <x>291274.0</x>\n            <y>64107.0</y>\n            <units>m</units>\n        </header>\n    </series>\n</TimeSeries>    "
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/ensembles/members" : {
      "get" : {
        "tags" : [ "timeseries" ],
        "summary" : "Get all ensemble member ids for one or more ensemble Ids",
        "description" : "Get all ensemble member ids for one or more ensemble Ids. The available member ids depend on an up-to-date index. This is run once a day on a forecasting shell server.",
        "operationId" : "ensembles/members",
        "parameters" : [ {
          "name" : "ensembleIds",
          "description" : "One or more ensemble ids",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_timeseries_ensembles_members.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/flags" : {
      "get" : {
        "tags" : [ "flags" ],
        "summary" : "Get the possible flags that can be set to a timeseries value",
        "description" : "Get the possible flags that can be set to a timeseries value",
        "operationId" : "flags",
        "parameters" : [ {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_flags.json"
                }
              }
            }
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/flagsources" : {
      "get" : {
        "tags" : [ "flags" ],
        "summary" : "Get the possible flagsources that can be set to a timeseries value",
        "description" : "Get the possible flagsources that can be set to a timeseries value",
        "operationId" : "flagsources",
        "parameters" : [ {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_flag_sources.json"
                }
              }
            }
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/export/status" : {
      "get" : {
        "tags" : [ "exportstatus" ],
        "summary" : "Get the status of the exports",
        "description" : "Get the status of the exports",
        "operationId" : "export/status",
        "parameters" : [ {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_XML, PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_XML", "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_export_status.json"
                }
              }
            }
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/import/status" : {
      "get" : {
        "tags" : [ "importstatus" ],
        "summary" : "Get the status of the imports",
        "description" : "Get the status of the imports",
        "operationId" : "import/status",
        "parameters" : [ {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_XML, PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_XML", "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_importstatus.json"
                }
              },
              "application/xml" : {
                "schema" : {
                  "title" : "PI_XML",
                  "description" : "https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_importstatus.xsd",
                  "type" : "object",
                  "xml" : {
                    "name" : "ImportStatus"
                  },
                  "example" : "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<importStatus xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://www.wldelft.nl/fews/PI\" xsi:schemaLocation=\"http://www.wldelft.nl/fews/PI https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_importstatus.xsd\">\n    <statusTask>\n        <mcId>mc1</mcId>\n        <dataFeed>dataFeed</dataFeed>\n        <directory>/data/input</directory>\n        <lastImportTime date=\"2010-01-01\" time=\"00:00:00\"/>\n        <lastFileImported>import.xml</lastFileImported>\n        <filesRead>10</filesRead>\n        <filesFailed>1</filesFailed>\n        <lastImportTimeBackgroundColor>red</lastImportTimeBackgroundColor>\n    </statusTask>\n</importStatus>"
                }
              }
            }
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/taskruns" : {
      "get" : {
        "tags" : [ "tasks" ],
        "summary" : "Get all taskruns for a workflowId filtered by parameters like forecast time or taskrun status",
        "description" : "Get all taskruns for a workflowId filtered by parameters like forecast time or taskrun status. Default only taskruns of forecasts are returned.",
        "operationId" : "taskruns",
        "parameters" : [ {
          "name" : "workflowId",
          "description" : "Workflow Id",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "topologyNodeId",
          "description" : "Topology node id. All data for the specified topology node id will be returned.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "forecastCount",
          "description" : "Maximum number of forecasts which will be returned for each workflow. The most recent forecasts are returned first",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "number"
          }
        }, {
          "name" : "taskRunIds",
          "description" : "One or more taskrun ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "scenarioId",
          "description" : "WhatIf scenario Id",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "mcId",
          "description" : "Filter by mcId. <i>Since: 2021.01</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "startForecastTime",
          "description" : "Forecast Start time task run",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "endForecastTime",
          "description" : "Forecast end time task run",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "startDispatchTime",
          "description" : "Dispatch Start time task run",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "endDispatchTime",
          "description" : "Dispatch end time task run",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "taskRunStatusIds",
          "description" : "Task run status ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "onlyForecasts",
          "description" : "Toggle to return only forecast timeSeries (Since 2017.02). Default is 'true'",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "taskRunCount",
          "description" : "task run count, sorted by completion time",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "number"
          }
        }, {
          "name" : "onlyCurrent",
          "description" : "Only Current Forecast",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_XML, PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_XML", "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_taskruns.json"
                }
              },
              "application/xml" : {
                "schema" : {
                  "title" : "PI_XML",
                  "description" : "https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_taskruns.xsd",
                  "type" : "object",
                  "xml" : {
                    "name" : "TaskRuns"
                  },
                  "example" : "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<TaskRuns xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://www.wldelft.nl/fews/PI\" xsi:schemaLocation=\"http://www.wldelft.nl/fews/PI https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_taskruns.xsd\" version=\"1.27\">\n    <timeZone>0.0</timeZone>\n    <taskRun taskRunId=\"ukeafffsmc00:001022122\">\n        <forecast>false</forecast>\n        <status>running</status>\n        <workflowId>Import_G2G_Nowcast_Ensemble</workflowId>\n        <dispatchTime date=\"2021-06-25\" time=\"08:08:00\"/>\n        <time0 date=\"2021-06-25\" time=\"08:08:00\"/>\n        <fssId>23</fssId>\n        <description>Import G2G Nowcast Ensemble</description>\n    </taskRun>\n</TaskRuns>"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/moduleruntimes" : {
      "get" : {
        "tags" : [ "tasks" ],
        "summary" : "Get all expected and pending runtimes for workflows per module instance id",
        "description" : "Get all expected and pending runtimes for workflows per module instance id. The list can optionally be filtered by workflowId.\n\nOnly workflows of scheduled tasks that contain module instance descriptors that have been configured with updateModuleRunTimesOnCompletion enabled, will be available in this end point.\nThe expected start time of a module is calculated based on the scheduled next due time and the expected pending duration time.\nThe expected end time of a module is calculated based on the scheduled next due time, the expected pending duration time and the expected running time.\nFor triggered tasks, the expected start time en end time won't be available until the task is actually started.\n",
        "operationId" : "moduleruntimes",
        "parameters" : [ {
          "name" : "workflowId",
          "description" : "Filter module run time with the specified workflowId",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "includeManualTasks",
          "description" : "include manual tasks",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_XML, PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_XML", "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_module_run_times.json"
                }
              },
              "application/xml" : {
                "schema" : {
                  "title" : "PI_XML",
                  "description" : "https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_moduleruntimes.xsd",
                  "type" : "object",
                  "xml" : {
                    "name" : "moduleRunTimes"
                  },
                  "example" : "\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ModuleRunTimes xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://www.wldelft.nl/fews/PI\" xsi:schemaLocation=\"http://www.wldelft.nl/fews/PI https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_moduleruntimes.xsd\">\n    <moduleRunTime>\n        <mcId>nldefedmc00</mcId>\n        <workflowId>Meuse_DWD_COSMO_LEPS</workflowId>\n        <moduleInstanceId>Dummy</moduleInstanceId>\n        <expectedStartTime date=\"2021-10-13\" time=\"13:15:01\"/>\n        <expectedCompletionTime date=\"2021-10-13\" time=\"13:16:54\"/>\n        <expectedPendingDuration>1465</expectedPendingDuration>\n        <expectedRunningDuration>112634</expectedRunningDuration>\n    </moduleRunTime>\n</ModuleRunTimes>"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/timeseries/grid/actions" : {
      "get" : {
        "tags" : [ "timeseries" ],
        "summary" : "Get the details about how to display time series from a grid cell",
        "description" : "Get the details about how to display time series from a grid cell. The grid is specified by passing a layerId.<p>The grid cell is determined by specifying a x and y coordinate and a bounding box. Currenly only EPSG:3857 is supported for the x,y, and bounding box coordinates. At least a layer, startTime, endTime, x,y and bounding box are required. The timeseries/grid endpoint is intended to be used together with the Delf-FEWS WMS service. Every layer that is provided by the WMS service, can be used with this endpoint.",
        "operationId" : "timeseriesgridactions",
        "parameters" : [ {
          "name" : "bbox",
          "description" : "bounding box of map that is viewed in , separated EPSG:3857 format. The order of the coordinates is as follows: bottom left X, bottom left Y, top right X, top right Y.",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "-1558755.612890017,4979850.04379049,1623657.8112034467,6709422.556884765"
          }
        }, {
          "name" : "startTime",
          "description" : "Start time of search period that looks for timeseries values that are within this period. If the start time doesn't match a timestamp of the time series, the closest timestamp before the startTime, will also be returned.  Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "endTime",
          "description" : "End time of search period that looks for timeseries values that are within this period. If the endTime doesn't match a timestamp of the time series, the closest timestamp after the endTime, will also be returned. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "layers",
          "description" : " layerd id (only one layer is supported and required) that matches the gridPlot id as configured in the gridDisplay. Every gridPlot that has been configured in the grid display configuration represents a WMS layer.",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "Temp_forecast"
          }
        }, {
          "name" : "x",
          "description" : "x position on the map in EPSG:3857 format.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "double",
            "example" : "458757.12883912364"
          }
        }, {
          "name" : "y",
          "description" : "y position on the map in EPSG:3857 format.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "double",
            "example" : "5811252.569955047"
          }
        }, {
          "name" : "externalForecastTime",
          "description" : "Time value of external forecast time. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "taskRunId",
          "description" : "Task run id of the task run to retrieve",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "ensembleId",
          "description" : "Used in combination with ensembleMemberId to identify a unique ensemble.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "ensembleMemberId",
          "description" : "Used in combination with ensembleId to identify a unique ensemble",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "elevation",
          "description" : "Used for 3d data, like for example water depth, to get the timeseries of a grid point at a specific elevation.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "double"
          }
        }, {
          "name" : "importFromExternalDataSource",
          "description" : "import data from external data source, defaults to true.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "showVerticalProfile",
          "description" : "Show vertical profile in case of 3D data.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "useDisplayUnits",
          "description" : "Export values using display units.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "convertDatum",
          "description" : "Set to true to convert datum",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, PI_CSV, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON", "PI_CSV" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_actions.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/timeseries/grid" : {
      "get" : {
        "tags" : [ "timeseries" ],
        "summary" : "Get the timeseries containing the data from a grid cell for a request period",
        "description" : "Get the timeseries containing the data from a grid cell for a request period. The grid is specified by passing a layerId. For the PI_NETCDF format the complete grid can be downloaded for external forecasts.<p>When requesting the timeseries in PI_JSON The grid cell is determined by specifying a x and y coordinate and a bounding box. Currently only EPSG:3857 is supported for the x,y, and bounding box coordinates. At least a layer, startTime, endTime, x,y and bounding box are required. The timeseries/grid endpoint is intended to be used together with the Delf-FEWS WMS service. Every layer that is provided by the WMS service, can be used with this endpoint. The visibleInTimeSeriesDisplay configuration is respected. If set to false (default is true), the timeseries will not be returned.\nIt is also possible to get the grid data in Netcdf format using the PI_NETCDF documentFormat. In this case no bbox or x,y coordinates should be specified. Timeseries configured in a datalayer will be stored in the the same Netcdf file. If the externalForecastTime is specified or a layer only contains external forecasts and the startDate and endDate are not specified, the complete forecast will be downloaded. There is no support for 3D data or track layers.",
        "operationId" : "timeseriesgrid",
        "parameters" : [ {
          "name" : "bbox",
          "description" : "bounding box of map that is viewed in , separated EPSG:3857 format. The order of the coordinates is as follows: bottom left X, bottom left Y, top right X, top right Y. Required for all formats except PI_NETCDF.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "example" : "-1558755.612890017,4979850.04379049,1623657.8112034467,6709422.556884765"
          }
        }, {
          "name" : "beforeStartTimeCount",
          "description" : "Extra time steps that are returned before the specified start time <i>Since: 2024.02</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "number",
            "example" : "5"
          }
        }, {
          "name" : "afterEndTimeCount",
          "description" : "Extra time steps that are returned after the specified end time <i>Since: 2024.02</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "number",
            "example" : "5"
          }
        }, {
          "name" : "startTime",
          "description" : "Start time of search period that looks for timeseries values that are within this period. If the start time doesn't match a timestamp of the time series, the closest timestamp before the startTime, will also be returned.  Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "endTime",
          "description" : "End time of search period that looks for timeseries values that are within this period. If the endTime doesn't match a timestamp of the time series, the closest timestamp after the endTime, will also be returned. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "layers",
          "description" : " layerd id (only one layer is supported and required) that matches the gridPlot id as configured in the gridDisplay. Every gridPlot that has been configured in the grid display configuration represents a WMS layer.",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "Temp_forecast"
          }
        }, {
          "name" : "x",
          "description" : "x position on the map in EPSG:3857 format. Required for all formats except PI_NETCDF.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "double",
            "example" : "458757.12883912364"
          }
        }, {
          "name" : "y",
          "description" : "y position on the map in EPSG:3857 format. Required for PI_JSON format. Required for all formats except PI_NETCDF.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "double",
            "example" : "5811252.569955047"
          }
        }, {
          "name" : "externalForecastTime",
          "description" : "Time value of external forecast time. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "taskRunId",
          "description" : "Task run id of the task run to retrieve",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "ensembleId",
          "description" : "Used in combination with ensembleMemberId to identify a unique ensemble. <i>Since: 2020.01</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "ensembleMemberId",
          "description" : "Used in combination with ensembleId to identify a unique ensemble <i>Since: 2020.01</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "elevation",
          "description" : "Used for 3d data, like for example water depth, to get the timeseries of a grid point at a specific elevation. <i>Since:  2020.01</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "double"
          }
        }, {
          "name" : "netcdfFormat",
          "description" : "format of the netcdf file",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "netcdf3", "netcdf4" ],
            "type" : "string"
          }
        }, {
          "name" : "pointCloud",
          "description" : "merge all layers to single point cloud grid",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "importFromExternalDataSource",
          "description" : "import data from external data source, defaults to true.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "convertDatum",
          "description" : "Convert values from relative location height to absolute height values.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "showEnsembleMemberIds",
          "description" : "Show ensemble member ids instead of ensemble member indices.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "useDisplayUnits",
          "description" : "Export values using display units.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "showVerticalProfile",
          "description" : "Show vertical profile in case of 3D data. <i>Since: 2020.01</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "showThresholds",
          "description" : "Option to toggle the returning of threshold information in the headers.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "omitMissing",
          "description" : "Toggle omitting or returning of missing values in response.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "omitEmptyTimeSeries",
          "description" : "Toggle omitting or returning headers of empty timeSeries. Default is false. <i>Since: 2020.02</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "onlyManualEdits",
          "description" : "Toggle to return only manual edits.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "onlyHeaders",
          "description" : "Toggle to return only header information or also data.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "onlyForecasts",
          "description" : "Toggle to return only forecast timeSeries (Since 2017.02).",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "showStatistics",
          "description" : "Toggle to return statistics information about timeseries. Typically used in combination with onlyHeaders. Returns additional information about data availability of timeseries:<ul><li>firstValueTime: First time with a value in the timeSeries</li><li>maxValue: Maximum value in the timeSeries</li><li>minValue: Minimum value in the timeSeries</li><li>valueCount: Number of values in the timeSeries</li></ul>. These statistics are only provided if there is any data, otherwise they are left out.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "useMilliseconds",
          "description" : "Toggle to return milliseconds in time step.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "showProducts",
          "description" : "Toggle to display product information that is assigned to a forecast. <i>Since: 2019.02</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "downloadAsFile",
          "description" : "Since 2024.01. Set the name of the file without extension to download as an attachment. Can be used in the test page to avoid the response being rendered in the browser.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_XML, PI_JSON, PI_CSV, PI_NETCDF, DD_JSON, NOOS_TEXT, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_XML", "PI_JSON", "PI_CSV", "PI_NETCDF", "NOOS_TEXT", "DD_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "oneOf" : [ {
                    "$ref" : "schemas/pirest/pi_rest_timeseries.json"
                  }, {
                    "type" : "object",
                    "title" : "DD_JSON",
                    "description" : "Digitale Delta DD_JSON: DocumentFormat=DD_JSON",
                    "example" : "{\n  \"provider\" : {\n    \"name\" : \"Deltares\",\n    \"supportUrl\" : \"https://www.delft-fews.nl/\",\n    \"apiVersion\" : \"2.0\",\n    \"responseTimestamp\" : \"2021-07-20T10:47:26.750Z\"\n  },\n  \"results\" : [ {\n    \"node\" : {\n      \"name\" : \"Deltares Digitale Delta\"\n    },\n    \"location\" : {\n      \"type\" : \"Feature\",\n      \"geometry\" : {\n        \"type\" : \"Point\",\n        \"coordinates\" : [ 5.4, 51.98, 0.0 ]\n      },\n      \"properties\" : {\n        \"node\" : {\n          \"name\" : \"Deltares Digitale Delta\"\n        },\n        \"locationId\" : \"amerongen_beneden\",\n        \"locationName\" : \"amerongen beneden\",\n        \"referenceLevel\" : \"m\",\n        \"crs\" : {\n          \"type\" : \"name\",\n          \"properties\" : {\n            \"name\" : \"EPSG:4326\"\n          }\n        }\n      }\n    },\n    \"observationType\" : {\n      \"node\" : {\n        \"name\" : \"Deltares Digitale Delta\"\n      },\n      \"unit\" : \"m\",\n      \"parameterCode\" : \"H.voorspeld.daily\",\n      \"description\" : \"\"\n    },\n    \"source\" : {\n      \"process\" : \"forecast\",\n      \"name\" : \"Forecast\",\n      \"institution\" : {\n        \"name\" : \"Deltares Digitale Delta\",\n        \"description\" : \"Delft-FEWS Web Services (1.0) - version: 2017.01, build: 68155 Sep11, type: development-2017.01, jre: 11.0.10, os:Windows 10, mx: 8558m\"\n      }\n    },\n    \"intervalLength\" : 86400,\n    \"startTime\" : \"2012-12-31T00:00:00Z\",\n    \"endTime\" : \"2013-01-06T00:00:00Z\",\n    \"analysisTime\" : \"2013-01-01T00:00:00Z\",\n    \"events\" : [ {\n      \"timeStamp\" : \"2012-12-31T00:00:00Z\",\n      \"value\" : -999.0,\n      \"quality\" : 8\n    }, {\n      \"timeStamp\" : \"2013-01-01T00:00:00Z\",\n      \"value\" : 3.0,\n      \"quality\" : 0\n    }, {\n      \"timeStamp\" : \"2013-01-02T00:00:00Z\",\n      \"value\" : 1.0,\n      \"quality\" : 0\n    }, {\n      \"timeStamp\" : \"2013-01-03T00:00:00Z\",\n      \"value\" : 4.0,\n      \"quality\" : 0\n    }, {\n      \"timeStamp\" : \"2013-01-04T00:00:00Z\",\n      \"value\" : 1.0,\n      \"quality\" : 0\n    }, {\n      \"timeStamp\" : \"2013-01-05T00:00:00Z\",\n      \"value\" : -999.0,\n      \"quality\" : 8\n    }, {\n      \"timeStamp\" : \"2013-01-06T00:00:00Z\",\n      \"value\" : -999.0,\n      \"quality\" : 8\n    } ]\n  } ]\n}"
                  } ]
                }
              },
              "application/xml" : {
                "schema" : {
                  "title" : "PI_XML",
                  "description" : "https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_timeseries.xsd",
                  "type" : "object",
                  "xml" : {
                    "name" : "TimeSeries"
                  },
                  "example" : "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<TimeSeries xmlns=\"http://www.wldelft.nl/fews/PI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.wldelft.nl/fews/PI https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_timeseries.xsd\" version=\"1.27\" xmlns:fs=\"http://www.wldelft.nl/fews/fs\">\n    <timeZone>0.0</timeZone>\n    <series>\n        <header>\n            <type>instantaneous</type>\n            <moduleInstanceId>Coastal_Process_Astro</moduleInstanceId>\n            <locationId>5028N331W</locationId>\n            <parameterId>H.astronomical</parameterId>\n            <qualifierId>HighTide</qualifierId>\n            <timeStep unit=\"nonequidistant\"/>\n            <startDate date=\"2021-06-24\" time=\"08:00:00\"/>\n            <endDate date=\"2021-06-25\" time=\"09:00:00\"/>\n            <missVal>-999.0</missVal>\n            <stationName>Torquay Astro</stationName>\n            <lat>50.46667804024676</lat>\n            <lon>-3.533324439637471</lon>\n            <x>291274.0</x>\n            <y>64107.0</y>\n            <units>m</units>\n        </header>\n    </series>\n</TimeSeries>    "
                }
              },
              "application/octet-stream" : {
                "schema" : {
                  "title" : "PI_NETCDF",
                  "description" : "Zip file containing Netcdf4 file(s) with the requested timeseries data.",
                  "type" : "object",
                  "example" : "Netcdf.zip"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/timeseries/grid/statistics" : {
      "get" : {
        "tags" : [ "timeseries" ],
        "summary" : "apply a spatial transformation (min/max/sum/average) to each time step of a grid (defined by the layerId",
        "description" : "apply a spatial transformation (min/max/sum/average) to each time step of a grid (defined by the layerId. The output is defined by a location with a polygon<p>apply a spatial transformation (min/max/sum/average) to each time step of a grid (defined by the layerId. The output is defined by a location with a polygon",
        "operationId" : "timeseriesgridstatistics",
        "parameters" : [ {
          "name" : "startTime",
          "description" : "Start time of search period that looks for timeseries values that are within this period. If the start time doesn't match a timestamp of the time series, the closest timestamp before the startTime, will also be returned.  Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "endTime",
          "description" : "End time of search period that looks for timeseries values that are within this period. If the endTime doesn't match a timestamp of the time series, the closest timestamp after the endTime, will also be returned. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "taskRunId",
          "description" : "Task run id of the task run to retrieve",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "layerId",
          "description" : "The layer id that defines the input time series",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "Temp_forecast"
          }
        }, {
          "name" : "locationId",
          "description" : "The location id that defines the output time series. The location must have a polygon geometry defined.",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "aggregation",
          "description" : "define the aggregation which should be applied on the scalar generated time series.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "function",
          "description" : "define the spatial transformation which should be applied to the input time series",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "oneOf" : [ {
                    "$ref" : "schemas/pirest/pi_rest_timeseries.json"
                  } ]
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/timeseries/grid/maxvalues" : {
      "get" : {
        "tags" : [ "timeseries" ],
        "summary" : "Get the maximum values for each time for a grid for a request period",
        "description" : "Get the maximum values for each time for a grid for a request period. The grid is specified by passing a layerId. At least a layer, startTime and endTime are required. The timeseries/grid/maxvalues endpoint is intended to be used together with the Delf-FEWS WMS service. Every layer that is provided by the WMS service, can be used with this endpoint.<p>Every layer that is provided by the WMS service, can be used with this endpoint. startTime and endTime are required if no externalForecastTime is passed.",
        "operationId" : "timeseriesgridmaxvalues",
        "parameters" : [ {
          "name" : "startTime",
          "description" : "Start time of search period that looks for timeseries values that are within this period. If the start time doesn't match a timestamp of the time series, the closest timestamp before the startTime, will also be returned.  Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "endTime",
          "description" : "End time of search period that looks for timeseries values that are within this period. If the endTime doesn't match a timestamp of the time series, the closest timestamp after the endTime, will also be returned. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "layers",
          "description" : "Layer id (only one layer is supported and required) that matches the gridPlot id as configured in the gridDisplay. Every gridPlot that has been configured in the grid display configuration represents a WMS layer. For the PI_NETCDF format the complete grid will be downloaded as a zip file with a Netcdf4 file per datalayer.",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "example" : "Temp_forecast"
          }
        }, {
          "name" : "aggregation",
          "description" : "aggregation label returned by the getCapabilities",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "example" : "day"
          }
        }, {
          "name" : "externalForecastTime",
          "description" : "Time value of external forecast time. If startTime and endTime are not set, the complete forecast will be read. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "taskRunId",
          "description" : "Task run id of the task run to retrieve",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "convertDatum",
          "description" : "Convert values from relative location height to absolute height values.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "useDisplayUnits",
          "description" : "Export values using display units.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "downloadAsFile",
          "description" : "Since 2024.01. Set the name of the file without extension to download as an attachment. Can be used in the testpage to avoid the response being rendered in the browser.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "oneOf" : [ {
                    "$ref" : "schemas/pirest/pi_rest_timeseries.json"
                  } ]
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/qualifiers" : {
      "get" : {
        "tags" : [ "qualifiers" ],
        "summary" : "Get all configured qualifiers from the region config and optionally show all its attributes",
        "description" : "Get all configured qualifiers from the region config and optionally show all its attributes.",
        "operationId" : "qualifiers",
        "parameters" : [ {
          "name" : "showAttributes",
          "description" : "Show attributes",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_XML, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_XML" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/xml" : {
                "schema" : {
                  "title" : "PI_XML",
                  "description" : "http://www.wldelft.nl/fews/PI https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_qualifiers.xsd",
                  "type" : "object",
                  "xml" : {
                    "name" : "qualifiers"
                  },
                  "example" : "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<qualifiers xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://www.wldelft.nl/fews/PI\" xsi:schemaLocation=\"http://www.wldelft.nl/fews/PI https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_qualifiers.xsd\" version=\"1.24\">\n    <qualifier id=\"1\">\n        <name>Alisma plantago-aquatica</name>\n        <attribute id=\"ExternalQualifierId\" name=\"ExternalQualifierId\">\n            <text>PAR_REF_Alisma plantago-aquatica</text>\n        </attribute>\n        <attribute id=\"Qualifier_TAXA\" name=\"Qualifier_TAXA\">\n            <description>Taxon naam</description>\n            <text>Alisma plantago-aquatica</text>\n        </attribute>\n        <attribute id=\"Type\" name=\"Type\">\n            <description>type</description>\n            <text>aquaticaType</text>\n        </attribute>\n        <attribute id=\"Groep\" name=\"Groep\">\n            <description>Familie</description>\n            <text>aquaticaGroup</text>\n        </attribute>\n    </qualifier>\n    <qualifier id=\"2\">\n        <name>Butomus umbellatus</name>\n        <attribute id=\"ExternalQualifierId\" name=\"ExternalQualifierId\">\n            <text>PAR_REF_Butomus umbellatus</text>\n        </attribute>\n        <attribute id=\"Qualifier_TAXA\" name=\"Qualifier_TAXA\">\n            <description>Taxon naam</description>\n            <text>Butomus umbellatus</text>\n        </attribute>\n        <attribute id=\"Type\" name=\"Type\">\n            <description>type</description>\n            <text>umbellatusype</text>\n        </attribute>\n        <attribute id=\"Groep\" name=\"Groep\">\n            <description>Familie</description>\n            <text>umbellatusGroup</text>\n        </attribute>\n    </qualifier>\n</qualifiers>"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/taskrunstatus" : {
      "get" : {
        "tags" : [ "tasks" ],
        "summary" : "Track the status of a workflow using the taskId, typically used to determine if a taskrun is completed",
        "description" : "Track the status of a workflow using the taskId, typically used to determine if a taskrun is completed.<p>Possible response codes are:<ul><li>I = Invalid<li>P = Pending</li><li>T = Terminated<li>R = running</li><li>F = Failed</li><li>C = Completed fully successful</li><li>D = Completed partly successful</li><li>A = Approved</li><li>B = Approved partly successful</li><li>null = No status available (produces when method call times-out)</li></ul>",
        "operationId" : "taskrunstatus",
        "parameters" : [ {
          "name" : "taskId",
          "description" : "Task Id",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "maxWaitMillis",
          "description" : "Max waiting time in milliseconds",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "number"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_taskrunstatus.json"
                }
              },
              "text/plain" : {
                "schema" : {
                  "title" : "TEXT/PLAIN",
                  "description" : "Taskrun status codes: I : invalid\nP : pending\nT : terminated\nR : running\nF : failed\nC : completed fully successful\nD : completed partly successful\nA : approved\nB : approved partly successful",
                  "type" : "string",
                  "example" : "P"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/runtask" : {
      "post" : {
        "tags" : [ "tasks" ],
        "summary" : "Runs a one-off task for a given workflowId",
        "description" : "Runs a one-off task for a given workflowId. The application/x-www-form-urlencoded encoding has to be used. Returns a handle to the task in the form of a taskId. This taskId can be used to track the status of the workflow using the taskrunstatus method. Since 2018.02 it is possible to use a workflow descriptor attribute: waitWhenAlreadyRunning. This will allow running a task that hasn't been scheduled to wait when another task of that workflow is already running.\nSince 2022.02 properties can be included in the url. These will be used as taskRunProperties, and override global or workflow properties. Each property has to be added to the URL separately.\nExample: &property(fileName)=exportFile&property(outputValue)=9.0 , where the name of the property is fileName, the value is exportFile. The name of the second property is outputValue, the value is 9.0",
        "operationId" : "postruntask",
        "parameters" : [ {
          "name" : "workflowId",
          "description" : "Workflow Identifier of the task to run",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "startTime",
          "description" : "Start of run period. Used for state selection period. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "endTime",
          "description" : "End of run period. Used to define forecast length. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "timeZero",
          "description" : "Forecast time zero. If missing System time is used. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "coldStateId",
          "description" : "Cold state id",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "scenarioId",
          "description" : "Id of a predefined WhatIf scenario. Can be used to alter run parameters ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "userId",
          "description" : "User id of the user that runs the task",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "description",
          "description" : "Descriptive text to identify run",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "runOption",
          "description" : "Run option can be any of: all, alloneatatime or allmostrecentonly. If not set, the default is used: all.\\nall: Multiple instances of this workflow can run simultaneously.\nalloneatatime: Running (and queued) instances of this workflow prevail.\nallmostrecentonly: A running instance of this workflow prevails. Queued instances of this workflow will be replaced by a recent one. <i>Since: 2022.02</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "all", "alloneatatime", "allmostrecentonly" ],
            "type" : "string"
          }
        }, {
          "name" : "runLocallyAndPromoteToServer",
          "description" : "Run task locally first then if succesful, promote it to the server.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "properties" : {
                  "piParametersXmlContent" : {
                    "type" : "string",
                    "description" : "URL Encoded model parameters content that validates against the following xsd: https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_modelparameters.xsd"
                  }
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "text/plain" : {
                "schema" : {
                  "title" : "text/plain",
                  "description" : "task id that can be used to query the taskrun status",
                  "type" : "string",
                  "example" : "1_0"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/timeseriesmodifiers" : {
      "get" : {
        "tags" : [ "modifiers" ],
        "summary" : "Get timeseries modifiers filtered by parameters like start time, end time and modifier type",
        "description" : "Get timeseries modifiers filtered by parameters like start time, end time and modifier type.",
        "operationId" : "timeseriesmodifiers",
        "parameters" : [ {
          "name" : "startTimeModifiers",
          "description" : "Start time modifiers. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "endTimeModifiers",
          "description" : "End time modifiers. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "modifierType",
          "description" : "Modifier Type",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "userId",
          "description" : "User Id",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "locationIds",
          "description" : "One or more location ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "moduleInstanceIds",
          "description" : "One or more module instance ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "onlyActiveModifiers",
          "description" : "Only Active Modifiers",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "userDefinedModifierDescription",
          "description" : "User Defined Modifier Description",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_XML, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_XML" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/xml" : {
                "schema" : {
                  "title" : "PI_XML",
                  "description" : "https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_modifiers.xsd",
                  "type" : "object",
                  "xml" : {
                    "name" : "Modifiers"
                  },
                  "example" : "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Modifiers xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://www.wldelft.nl/fews/PI\" xsi:schemaLocation=\"http://www.wldelft.nl/fews/PI https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_modifiers.xsd\">\n    <modifier>\n        <name>T.obs.mean_DE BILT</name>\n        <modifierId>0</modifierId>\n        <systemActivityDescriptorId>34</systemActivityDescriptorId>\n        <enabled>true</enabled>\n        <modifierType>MISSING_VALUE_MODIFIER</modifierType>\n        <userId>Andre Grijze</userId>\n        <startTime date=\"1900-10-17\" time=\"00:00:00\"/>\n        <endTime date=\"2017-11-23\" time=\"00:00:00\"/>\n        <validTime date=\"3000-01-01\" time=\"00:00:00\"/>\n        <creationTime date=\"2017-10-24\" time=\"11:43:11\"/>\n        <constantValueTimeSeriesModifier>\n            <timeSeriesSet>\n                <moduleInstanceId>ImportObserved</moduleInstanceId>\n                <parameterId>T.obs.mean</parameterId>\n                <locationId>63306260000</locationId>\n                <timeSeriesType>external historical</timeSeriesType>\n                <timeStep unit=\"nonequidistant\"/>\n                <ensembleId>main</ensembleId>\n            </timeSeriesSet>\n            <startTime date=\"1900-10-17\" time=\"00:00:00\"/>\n            <endTime date=\"2017-11-23\" time=\"00:00:00\"/>\n            <value>NaN</value>\n        </constantValueTimeSeriesModifier>\n    </modifier>\n</Modifiers>"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/modifiers" : {
      "get" : {
        "tags" : [ "modifiers" ],
        "summary" : "Get modifiers filtered by parameters like start time, end time and modifier type",
        "description" : "Get modifiers filtered by parameters like start time, end time and modifier type.",
        "operationId" : "modifiers",
        "parameters" : [ {
          "name" : "startTimeModifiers",
          "description" : "Start time modifiers. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "endTimeModifiers",
          "description" : "End time modifiers",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "modifierType",
          "description" : "Modifier Type",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_XML, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_XML" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/xml" : {
                "schema" : {
                  "title" : "PI_XML",
                  "description" : "https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_modifiers.xsd",
                  "type" : "object",
                  "xml" : {
                    "name" : "Modifiers"
                  },
                  "example" : "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Modifiers xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://www.wldelft.nl/fews/PI\" xsi:schemaLocation=\"http://www.wldelft.nl/fews/PI https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_modifiers.xsd\">\n    <modifier>\n        <name>T.obs.mean_DE BILT</name>\n        <modifierId>0</modifierId>\n        <systemActivityDescriptorId>34</systemActivityDescriptorId>\n        <enabled>true</enabled>\n        <modifierType>MISSING_VALUE_MODIFIER</modifierType>\n        <userId>Rudie Ekkelenkamp</userId>\n        <startTime date=\"1900-10-17\" time=\"00:00:00\"/>\n        <endTime date=\"2017-11-23\" time=\"00:00:00\"/>\n        <validTime date=\"3000-01-01\" time=\"00:00:00\"/>\n        <creationTime date=\"2017-10-24\" time=\"11:43:11\"/>\n        <constantValueTimeSeriesModifier>\n            <timeSeriesSet>\n                <moduleInstanceId>ImportObserved</moduleInstanceId>\n                <parameterId>T.obs.mean</parameterId>\n                <locationId>63306260000</locationId>\n                <timeSeriesType>external historical</timeSeriesType>\n                <timeStep unit=\"nonequidistant\"/>\n                <ensembleId>main</ensembleId>\n            </timeSeriesSet>\n            <startTime date=\"1900-10-17\" time=\"00:00:00\"/>\n            <endTime date=\"2017-11-23\" time=\"00:00:00\"/>\n            <value>NaN</value>\n        </constantValueTimeSeriesModifier>\n    </modifier>\n</Modifiers>"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      },
      "post" : {
        "tags" : [ "modifiers" ],
        "summary" : "Write modifiers to the Delft-FEWS database",
        "description" : "Write modifiers to the Delft-FEWS database. The application/x-www-form-urlencoded encoding has to be used. Readonly mode has to be disabled in the FewsPiService.properties to allow this functionality.",
        "operationId" : "postmodifiers",
        "parameters" : [ {
          "name" : "commitModifiers",
          "description" : "Commit modifiers",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "deleteAllModifiers",
          "description" : "Delete all modifiers",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "properties" : {
                  "piModifiersXmlContent" : {
                    "type" : "string",
                    "description" : "https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_modifiers.xsd"
                  }
                },
                "required" : [ "piModifiersXmlContent" ]
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/xml" : {
                "schema" : {
                  "title" : "PI_XML",
                  "description" : "https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_diag.xsd",
                  "type" : "object",
                  "xml" : {
                    "name" : "Diag"
                  },
                  "example" : "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Diag xmlns=\"http://www.wldelft.nl/fews/PI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.wldelft.nl/fews/PI https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_diag.xsd\" version=\"1.2\">\n    <line level=\"3\" description=\"Processing modifiers took 0 committing took 0\"/>\n</Diag>"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/workflows/forecasttimes" : {
      "get" : {
        "tags" : [ "workflows" ],
        "summary" : "Get information about how the workflow can be started",
        "description" : "Get information about how the workflow can be started",
        "operationId" : "workflows-forecasttimes",
        "parameters" : [ {
          "name" : "workflowId",
          "description" : "workflowId",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "timeZero",
          "description" : "time zero of the workflow, the web service will check if this is a valid time zero",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "forecastTimeCount",
          "description" : "number of forecast times",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_workflow_forecast_times.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/workflows" : {
      "get" : {
        "tags" : [ "workflows" ],
        "summary" : "Get all default workflow xml files in one list that are available",
        "description" : "Get all default workflow xml files in one list that are available.",
        "operationId" : "workflows",
        "parameters" : [ {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_XML, PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_XML", "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_workflows.json"
                }
              },
              "application/xml" : {
                "schema" : {
                  "title" : "PI_XML",
                  "description" : "http://www.wldelft.nl/fews/PI http://\nfews.wldelft.nl/schemas/version1.0/pi-schemas/pi_workflows.xsd",
                  "type" : "object",
                  "xml" : {
                    "name" : "workflows"
                  },
                  "example" : "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<workflows xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://www.wldelft.nl/fews/PI\" xsi:schemaLocation=\"http://www.wldelft.nl/fews/PI http://\nfews.wldelft.nl/schemas/version1.0/pi-schemas/pi_workflows.xsd\" version=\"1.23\">\n    <workflow id=\"ImportObserved\">\n        <name>Import Observed Data</name>\n        <description>Import observed scalar data from external sources and process the imported data</description>\n    </workflow>\n</workflows>"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/workflows/fssinfo" : {
      "get" : {
        "tags" : [ "workflows" ],
        "summary" : "Get the FSS information of a workflow",
        "description" : "Get the FSS information of a workflow.",
        "operationId" : "workflow-fssinfo",
        "parameters" : [ {
          "name" : "workflowId",
          "description" : "Workflow id",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_workflow_fss_info.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/samples" : {
      "get" : {
        "tags" : [ "samples" ],
        "summary" : "Get samples filtered by parameters like filterId, sampleId, parameterId and creation time of a sample",
        "description" : "Get samples filtered by parameters like filterId, sampleId, parameterId and creation time of a sample.",
        "operationId" : "samples",
        "parameters" : [ {
          "name" : "filterId",
          "description" : "Filter Id",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sampleIds",
          "description" : "One or more sample ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "locationIds",
          "description" : "One or more location ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "parameterIds",
          "description" : "One or more parameter ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "moduleInstanceIds",
          "description" : "One or more module instance ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "qualifierIds",
          "description" : "One or more qualifier ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "startTime",
          "description" : "Start time. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "endTime",
          "description" : "End time. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "startCreationTime",
          "description" : "Creation start time. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "endCreationTime",
          "description" : "Creation end time. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "omitMissing",
          "description" : "Toggle omitting or returning of missing values in response.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "onlyHeaders",
          "description" : "Toggle to return only header information or also data.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "filterTimeSeriesWithinSample",
          "description" : "Toggle to filter time series data within sample. For example on parameter id's and / or qualifier id's",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_XML, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_XML" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/xml" : {
                "schema" : {
                  "title" : "PI_XML",
                  "description" : "https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_samples.xsd",
                  "type" : "object",
                  "xml" : {
                    "name" : "Samples"
                  },
                  "example" : "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Samples xmlns=\"http://www.wldelft.nl/fews/PI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.wldelft.nl/fews/PI https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_samples.xsd\" version=\"1.23\" xmlns:fs=\"http://www.wldelft.nl/fews/fs\" xmlns:qualifierId=\"http://www.wldelft.nl/fews/qualifierId\">\n    <timeZone>0.0</timeZone>\n    <sample id=\"713\">\n        <header>\n            <locationId>MBP012</locationId>\n            <sampleDate date=\"1980-12-31\" time=\"23:00:00\"/>\n            <lat>52.18084820135932</lat>\n            <lon>5.083729510982581</lon>\n            <x>134244.0</x>\n            <y>465900.0</y>\n        </header>\n        <properties>\n            <string key=\"externereferentie\" value=\"PUT-01\\SYS\\0000000713\"/>\n            <string key=\"xcoormonster\" value=\"134240\"/>\n            <string key=\"ycoormonster\" value=\"465900\"/>\n            <string key=\"monsternemer\" value=\"IMP\"/>\n            <string key=\"analist\" value=\"IMP\"/>\n            <string key=\"bron\" value=\"TABHIST\"/>\n        </properties>\n        <table>\n            <row parameterId=\"PTB_Tans\" qualifierId:q1=\"AC_6\" qualifierId:q2=\"AP_22\" qualifierId:q3=\"TWN_3623\" qualifierId:q4=\"CO6\" qualifierId:q5=\"EE_22\" qualifierId:q6=\"GH_3\" qualifierId:q7=\"WM_1\" flag=\"0\" value=\"8.0\" unit=\"-\"/>\n            <row parameterId=\"PTB_Tans\" qualifierId:q1=\"AC_6\" qualifierId:q2=\"AP_22\" qualifierId:q3=\"TWN_2319\" qualifierId:q4=\"CO6\" qualifierId:q5=\"EE_22\" qualifierId:q6=\"GH_3\" qualifierId:q7=\"WM_1\" flag=\"0\" value=\"1.0\" unit=\"-\"/>\n        </table>\n    </sample>\n</Samples>"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/processdata" : {
      "get" : {
        "tags" : [ "processdata" ],
        "summary" : "Run workflow and make processed netcdf data available as an attachment of type application/octet-stream",
        "description" : "Run workflow and make processed netcdf data available as an attachment of type application/octet-stream. A property EXPORT_FOLDER_PROCESS_DATA should be configured in the global properties or in the webservice properties. The workflow indicated by the workflow id should export data to a folder EXPORT_FOLDER_PROCESS_DATA. Readonly mode has to be disabled in the FewsPiService.properties to allow this functionality. Automatic clean-up of the output folder is not implemented.",
        "operationId" : "processdata",
        "parameters" : [ {
          "name" : "workflowId",
          "description" : "Workflow Id",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "startTime",
          "description" : "Start time. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "endTime",
          "description" : "End time. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "xMin",
          "description" : "x min",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "xMax",
          "description" : "x max",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "yMin",
          "description" : "y min",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "yMax",
          "description" : "y max",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "xCellSize",
          "description" : "x cell size",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "yCellSize",
          "description" : "y cell size",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "runLocallyAndPromoteToServer",
          "description" : "Run task locally first then if succesful, promote it to the server.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/octet-stream" : {
                "schema" : {
                  "title" : "ZIP",
                  "description" : "File attachment with processed netcdf file",
                  "type" : "string",
                  "example" : "Content-Disposition: attachment; filename=openarchive-netcdf.nc"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/moduleruntables/current" : {
      "get" : {
        "tags" : [ "moduleruntables" ],
        "summary" : "Get the current module run table in CSV format by specifying a moduleInstanceId or taskRunId",
        "description" : "Get the current module run table in CSV format by specifying a moduleInstanceId or taskRunId.",
        "operationId" : "moduleruntables/current",
        "parameters" : [ {
          "name" : "moduleInstanceId",
          "description" : "Module instance id of the module run table to retrieve",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "taskRunId",
          "description" : "Task run id of the task run to retrieve",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "text/csv" : {
                "schema" : {
                  "title" : "TEXT/CSV",
                  "description" : "CSV file with header and comma (,) separated entries. Dates are in GMT-0 in the format: yyyyMMddHHmmss. The csv file name is returned int the Content-Disposition header: attachment;filename=filename.csv.",
                  "type" : "string",
                  "example" : "datum,status,Yes or no,int,double,string\n20030222000000,Ok,F,14,1.45,Overview 1 description 2\n20030223000000,Not Ok,T,24,2.45,Overview 1 description 2"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/logdisplays/{logDisplayId}/logs" : {
      "get" : {
        "tags" : [ "logs" ],
        "summary" : "Get the logs from the configured log display in JSON format",
        "description" : "Get the logs from the configured log display in JSON format.",
        "operationId" : "logdisplays/logDisplayId/logs",
        "parameters" : [ {
          "name" : "logDisplayId",
          "description" : "logDisplayId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "logType",
          "description" : "Type of the log. Default is system.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "system", "manual" ],
            "type" : "string"
          }
        }, {
          "name" : "startTime",
          "description" : "Start time of the log. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "endTime",
          "description" : "End time of the log. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "level",
          "description" : "Level of the log.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "INFO", "WARN", "ERROR" ],
            "type" : "string"
          }
        }, {
          "name" : "source",
          "description" : "Source of the log.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "FS", "MC", "AI" ],
            "type" : "string"
          }
        }, {
          "name" : "eventCode",
          "description" : "event code of the log",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "text",
          "description" : "text of the log message",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "taskRunId",
          "description" : "Task run id of the task run to retrieve",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "maxCount",
          "description" : "Maximum number of log messages to retrieve. Default is 1000.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "number"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_logdisplay_logs.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/dynamicreportdisplays/capabilities" : {
      "get" : {
        "tags" : [ "reports" ],
        "summary" : "Get the selectable locations and times for the dynamic report display",
        "description" : "Get the selectable locations and times for the dynamic report display.",
        "operationId" : "dynamicreportdisplays/capabilities",
        "parameters" : [ {
          "name" : "displayId",
          "description" : "displayId",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "timeZero",
          "description" : "the timezero for which the capabilities should be requested. If this parameter is omitted the time zero will be assumed equal to the current system time",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_dynamicreportdisplays_capabilities.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/dynamicreportdisplays" : {
      "get" : {
        "tags" : [ "reports" ],
        "summary" : "Get the rendered HTML for the DYNAMIC report display",
        "description" : "Get the rendered HTML for the DYNAMIC report display.",
        "operationId" : "dynamicreportdisplays",
        "parameters" : [ {
          "name" : "displayId",
          "description" : "displayId",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "locationId",
          "description" : "Location id",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "time",
          "description" : "the time for which the template should be rendered.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "useLastValue",
          "description" : "When true the last non missing value is used when there is no value available and the specified time",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "timeZero",
          "description" : "the timezero for which the template should be rendered. If this parameter is omitted the time zero will be assumed equal to the current system time",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : ""
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/dynamicreportdisplays/data" : {
      "get" : {
        "tags" : [ "reports" ],
        "summary" : "Get the json data that is used to render a dynamic report display",
        "description" : "Get the json data that is used to render a dynamic report display.",
        "operationId" : "dynamicreportdisplays/data",
        "parameters" : [ {
          "name" : "displayId",
          "description" : "displayId",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "locationId",
          "description" : "Location id",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "time",
          "description" : "the time for which the data should be requested.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "useLastValue",
          "description" : "When true the last non missing value is used when there is no value available and the specified time",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "timeZero",
          "description" : "the timezero for which the data should be requested. If this parameter is omitted the time zero will be assumed equal to the current system time",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : ""
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/documentdisplays" : {
      "get" : {
        "tags" : [ "logs" ],
        "summary" : "Get the document displays configuration in JSON format",
        "description" : "Get the document displays configuration in JSON format.",
        "operationId" : "documentdisplays",
        "parameters" : [ {
          "name" : "displayId",
          "description" : "Document display id. If not specified, all document displays are returned.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_document_displays.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/logdisplays" : {
      "get" : {
        "tags" : [ "logs" ],
        "summary" : "Get the log displays configuration in JSON format",
        "description" : "Get the log displays configuration in JSON format.",
        "operationId" : "logdisplays",
        "parameters" : [ {
          "name" : "logDisplayId",
          "description" : "Log display id. If not specified, all log displays are returned.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_logdisplays.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/logdisplays/{logDisplayId}/action" : {
      "post" : {
        "tags" : [ "logs" ],
        "summary" : "Write a LogDisplay action",
        "description" : "Write a LogDisplay action.<p>The Log Display ActionId has to be passed in the path url and the Log Display Action has to be passed in JSON format in the body of the post request following this specification: https://fewsdocs.deltares.nl/webservices/rest-api/v1/schemas/pirest/pi_rest_logdisplays_action_post.json",
        "operationId" : "logdisplays/logDisplayId/action",
        "parameters" : [ {
          "name" : "logDisplayId",
          "description" : "logDisplayId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "properties" : {
                  "logDisplaysAction" : {
                    "type" : "string",
                    "description" : "LogDisplaysAction in JSON format sent in the body of the post request. Json format is: https://fewsdocs.deltares.nl/webservices/rest-api/v1/schemas/pirest/pi_rest_logdisplays_action_post.json"
                  }
                },
                "required" : [ "logDisplaysAction" ]
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "text/plain" : {
                "schema" : {
                  "title" : "text/plain",
                  "type" : "string",
                  "example" : ""
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/forecasternotes" : {
      "post" : {
        "tags" : [ "forecasternotes" ],
        "summary" : "Create or update a forecaster note",
        "description" : "Create or update a forecaster note.<p>The Forecaster Note has to be passed in JSON format in the body of the post request following this specification: https://fewsdocs.deltares.nl/webservices/rest-api/v1/schemas/pirest/pi_rest_forecaster_notes_post.json. To update an existing forecaster note, the id and taskRunId has to be passed. If permissions are enabled, it is only allowed to update your own forecaster note. Forecaster notes are kept in the database for 10 years. This can be changed by setting the DEFAULT_EXPIRY_DAYS_LOGEVENT_MANUAL global property. It can never be larget dan 100 years.",
        "operationId" : "postforecasternotes",
        "parameters" : [ ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "properties" : {
                  "forecasterNote" : {
                    "type" : "string",
                    "description" : "JSON payload conform the schema: pi_rest_forecaster_notes_post.json. Forecaster note in JSON format sent in the body of the post request. To update an existing forecaster note, the id and taskRunId has to be passed. Json format is: https://fewsdocs.deltares.nl/webservices/rest-api/v1/schemas/pirest/pi_rest_forecaster_notes_post.json"
                  }
                },
                "required" : [ "forecasterNote" ]
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "text/plain" : {
                "schema" : {
                  "title" : "text/plain",
                  "type" : "string",
                  "example" : ""
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      },
      "get" : {
        "tags" : [ "forecasternotes" ],
        "summary" : "Get the forecaster notes from the ForecasterNotesDisplay in JSON format",
        "description" : "Get the forecaster notes from the ForecasterNotesDisplay in JSON format.",
        "operationId" : "forecasternotes",
        "parameters" : [ {
          "name" : "noteGroupId",
          "description" : "Note group id. If not specified, all note groups from the forecaster notes are returned.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_forecaster_notes.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/forecasternotes/delete" : {
      "post" : {
        "tags" : [ "forecasternotes" ],
        "summary" : "Delete one or more forecaster notes",
        "description" : "Delete one or more forecaster notes.<p>Delete one or more forecaster notes. The Forecaster Note keys have to be passed in JSON format in the body of the post request following this specification: https://fewsdocs.deltares.nl/webservices/rest-api/v1/schemas/pirest/pi_rest_forecaster_notes_log_keys_post.json.",
        "operationId" : "forecasternotesdelete",
        "parameters" : [ ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "properties" : {
                  "forecasterNoteKeys" : {
                    "type" : "string",
                    "description" : "JSON body conform the schema: pi_rest_forecaster_notes_log_keys_post.json. The Forecaster Notes keys have to be passed in JSON format in the body of the post request following this specification: https://fewsdocs.deltares.nl/webservices/rest-api/v1/schemas/pirest/pi_rest_forecaster_notes_log_keys_post.json"
                  }
                },
                "required" : [ "forecasterNoteKeys" ]
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "text/plain" : {
                "schema" : {
                  "title" : "text/plain",
                  "type" : "string",
                  "example" : ""
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/forecasternotes/acknowledge" : {
      "post" : {
        "tags" : [ "forecasternotes" ],
        "summary" : "Acknowledge one or more forecaster note",
        "description" : "Acknowledge one or more forecaster note.<p>The Forecaster Note keys have to be passed in JSON format in the body of the post request following this specification: https://fewsdocs.deltares.nl/webservices/rest-api/v1/schemas/pirest/pi_rest_forecaster_notes_log_keys_post.json.",
        "operationId" : "acknowledgeforecasternotes",
        "parameters" : [ ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "properties" : {
                  "forecasterNoteKeys" : {
                    "type" : "string",
                    "description" : "JSON body conform the schema: pi_rest_forecaster_notes_log_keys_post.json. The Forecaster Notes keys have to be passed in JSON format in the body of the post request following this specification: https://fewsdocs.deltares.nl/webservices/rest-api/v1/schemas/pirest/pi_rest_forecaster_notes_log_keys_post.json"
                  }
                },
                "required" : [ "forecasterNoteKeys" ]
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "text/plain" : {
                "schema" : {
                  "title" : "text/plain",
                  "type" : "string",
                  "example" : ""
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/forecasternotes/unacknowledge" : {
      "post" : {
        "tags" : [ "forecasternotes" ],
        "summary" : "Unacknowledge one or more forecaster note",
        "description" : "Unacknowledge one or more forecaster note.<p>The Forecaster Notes keys have to be passed in JSON format in the body of the post request following this specification: https://fewsdocs.deltares.nl/webservices/rest-api/v1/schemas/pirest/pi_rest_forecaster_notes_log_keys_post.json.",
        "operationId" : "unacknowledgeforecasternotes",
        "parameters" : [ ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "properties" : {
                  "forecasterNoteKeys" : {
                    "type" : "string",
                    "description" : "JSON body conform the schema: pi_rest_forecaster_notes_log_keys_post.json. The Forecaster Notes keys have to be passed in JSON format in the body of the post request following this specification: https://fewsdocs.deltares.nl/webservices/rest-api/v1/schemas/pirest/pi_rest_forecaster_notes_log_keys_post.json"
                  }
                },
                "required" : [ "forecasterNoteKeys" ]
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "text/plain" : {
                "schema" : {
                  "title" : "text/plain",
                  "type" : "string",
                  "example" : ""
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/microfrontends" : {
      "get" : {
        "tags" : [ "weboc" ],
        "summary" : "Get the Web OC micro front ends in JSON format",
        "description" : "Get the Web OC micro front ends in JSON format.",
        "operationId" : "microfrontends",
        "parameters" : [ {
          "name" : "microFrontEndId",
          "description" : "Micro front end id. If not specified, all micro frontends are returned.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_web_oc_micro_front_ends.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/dashboards" : {
      "get" : {
        "tags" : [ "weboc" ],
        "summary" : "Get the Web OC dashboards in JSON format",
        "description" : "Get the Web OC dashboards in JSON format.",
        "operationId" : "dashboards",
        "parameters" : [ {
          "name" : "dashboardId",
          "description" : "Dashboard id. If not specified, all dashboards are returned.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_web_oc_dashboards.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/timezoneid" : {
      "get" : {
        "tags" : [ "general" ],
        "summary" : "The ID of Configured timezone in the FewsPiService",
        "description" : "The ID of Configured timezone in the FewsPiService.properties will be returned. Default is GMT",
        "operationId" : "timezoneid",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "text/plain" : {
                "schema" : {
                  "title" : "TEXT/PLAIN",
                  "description" : "Time zone id",
                  "type" : "string",
                  "example" : "GMT"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/version" : {
      "get" : {
        "tags" : [ "general" ],
        "summary" : "The version of the running web service",
        "description" : "The version of the running web service",
        "operationId" : "version",
        "parameters" : [ {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_XML, PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_XML", "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_version.json"
                }
              },
              "application/xml" : {
                "schema" : {
                  "title" : "PI_XML",
                  "description" : "https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_version.xsd",
                  "type" : "object",
                  "xml" : {
                    "name" : "version"
                  },
                  "example" : "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Version xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://www.wldelft.nl/fews/PI\" xsi:schemaLocation=\"http://www.wldelft.nl/fews/PI https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_version.xsd\">\n    <implementation>2017.02</implementation>\n    <buildType>stable</buildType>\n    <buildNumber>12345</buildNumber>\n    <buildTime>2017-10-31T23:00:00Z</buildTime>\n</Version>"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/permissions" : {
      "get" : {
        "tags" : [ "general" ],
        "summary" : "Get all configured permissions and indicate if the current user has been assigned a permission",
        "description" : "Get all configured permissions and indicate if the current user has been assigned a permission. It is also possible to exclude permissions for a user by passing the HTTP header: fews-ws-permissions-excludes with a comma separated list of permission names to exclude. The permissions can be passed as a quoted string in case a name contains a comma.",
        "operationId" : "permissions",
        "parameters" : [ {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_permissions.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/colors/default" : {
      "get" : {
        "tags" : [ "general" ],
        "summary" : "Get the default colors as configured in the Time Series Display Configuration",
        "description" : "Get the default colors as configured in the Time Series Display Configuration. If nothing has been configured, the default colors of Delft-FEWS will be returned.",
        "operationId" : "colors/default",
        "parameters" : [ {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_colors.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/oas" : {
      "get" : {
        "tags" : [ "general" ],
        "summary" : "The Open Api Specification",
        "description" : "The Open Api Specification",
        "operationId" : "oas",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "title" : "PI_JSON",
                  "description" : "",
                  "type" : "object",
                  "example" : "{\n  \"openapi\" : \"3.0.3\",\n  \"info\" : {\n    \"title\" : \"Delft-FEWS Web Services REST API v1\",\n    \"description\" : \"Delft-FEWS Web Services REST API v1. For more information see: https://publicwiki.deltares.nl/x/fwNdBw\",\n    \"version\" : \"v1-2021-11-01T13:23:09Z\"\n  },\n  \"servers\" : [ {\n    \"url\" : \"/FewsWebServices/rest/fewspiservice/v1\",\n    \"description\" : \"API server\"\n  } ]\n\n}"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/topology/thresholds" : {
      "get" : {
        "tags" : [ "topology" ],
        "summary" : "Returns the thresholds crossings for the topology of the fews system",
        "description" : "Returns the thresholds crossings for the topology of the fews system",
        "operationId" : "topology/thresholds",
        "parameters" : [ {
          "name" : "nodeId",
          "description" : "the id of the topology node",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_topology_thresholds.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/topology/nodes" : {
      "get" : {
        "tags" : [ "topology" ],
        "summary" : "Returns the topology config of the fews system",
        "description" : "Returns the topology config of the fews system.",
        "operationId" : "topology/nodes",
        "parameters" : [ {
          "name" : "nodeId",
          "description" : "the id of the topology node",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_topology_nodes.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/filters/actions" : {
      "get" : {
        "tags" : [ "filters" ],
        "summary" : "Get the actions for a set of filters",
        "description" : "Get the actions for a set of filters",
        "operationId" : "filters/actions",
        "parameters" : [ {
          "name" : "filterId",
          "description" : "a filter id",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "parameterGroupId",
          "description" : "a parameter group id, the time series in the filters will be filtered by using the defined parameter group id",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "parameterIds",
          "description" : "one or more parameter ids, the time series in the filters will be filtered by using the defined parameter id",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "moduleInstanceIds",
          "description" : "one or more module instance ids, the time series in the filters will be filtered by using the defined module instance id",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "locationIds",
          "description" : "one or more location ids, the time series in the filters will be filtered by using the defined location id",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "timeZero",
          "description" : "the timezero for which the actions should be requested. If this parameter is ommitted the time zero will be assumed equal to the current system time",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "resamplingMethods",
          "description" : "Since 2023.02. If this parameter is set, resampling is applied using the passed method. It is required to also specify a resamplingTimeStepId. For information about the different methods, see: https://publicwiki.deltares.nl/x/xJUYBw <i>Since: 20232.02</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "minimum", "maximum", "mean", "mean_over_time", "sum", "instantaneous", "percentile" ],
            "type" : "string"
          }
        }, {
          "name" : "resamplingTimeStepId",
          "description" : "Since 2023.02. The target sampling time step id. The time step id must be configured in the TimeSeriesDisplay in the resampling element that refer to time steps that are configured in the TimeSteps.xml. It is required to also specify a resamplingMethod. <i>Since: 20232.02</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "resamplingOmitMissing",
          "description" : "Since 2023.02. When resampling omit missing values. Default is true. <i>Since: 20232.02</i>",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "includeNonResampled",
          "description" : "When false, only the resampled time series are returned. When true, the original time series are also returned. Default is true.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "useDisplayUnits",
          "description" : "Export values using display units.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "convertDatum",
          "description" : "Set to true to convert datum",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_actions.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/timeseries/filters/actions" : {
      "get" : {
        "tags" : [ "timeseries" ],
        "summary" : "Get the timeseries for the actions for a set of filters",
        "description" : "Get the timeseries for the actions for a set of filters",
        "operationId" : "timeseries/filters/actions",
        "parameters" : [ {
          "name" : "filterId",
          "description" : "a filter id",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "parameterGroupId",
          "description" : "a parameter group id, the time series in the filters will be filtered by using the defined parameter group id",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "parameterIds",
          "description" : "one or more parameter ids, the time series in the filters will be filtered by using the defined parameter id",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "locationIds",
          "description" : "one or more location ids, the time series in the filters will be filtered by using the defined location id",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "taskRunIds",
          "description" : "one or more task run ids, the time series in the filters will be filtered by using the defined task runs",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "timeZero",
          "description" : "the timezero for which the actions should be requested. If this parameter is ommitted the time zero will be assumed equal to the current system time",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "startTime",
          "description" : "Start time of the view period. Format: yyyy-MM-ddTHH:mm:ssZ. If not set the default start time of the configuration will be used.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "endTime",
          "description" : "End time of the view period. Format: yyyy-MM-ddTHH:mm:ssZ. If not set the default start time of the configuration will be used.\",",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "fullDataPeriod",
          "description" : "Returns the full available data period in the startTime and endTime of the response. Use this instead of the startTime and endTime. This can be time consuming",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "startForecastTime",
          "description" : "Start time of the forecast search period. Format: yyyy-MM-ddTHH:mm:ssZ.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "endForecastTime",
          "description" : "End time of the forecast search period. Format: yyyy-MM-ddTHH:mm:ssZ.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "forecastCount",
          "description" : "The number of forecasts which should be returned. This feature should be used in combination with the startForecastTime and endForecastTime parameters.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "number"
          }
        }, {
          "name" : "currentForecastsAlwaysVisible",
          "description" : "By default when there is a forecast selection only the selected forecasts are returned. Set this parameter to true to always return the current forecasts besides the selected. Forecast selection is ignored for non-forecast time series",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "useDisplayUnits",
          "description" : "Export values using display units.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "convertDatum",
          "description" : "Set to true to convert datum",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "downloadAsFile",
          "description" : "Since 2024.01. Set the name of the file without extension to download as an attachment. Can be used in the testpage to avoid the response being rendered in the browser.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_XML, PI_JSON, PI_CSV, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_XML", "PI_JSON", "PI_CSV" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_timeseries.json"
                }
              },
              "application/xml" : {
                "schema" : {
                  "title" : "PI_XML",
                  "description" : "https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_timeseries.xsd",
                  "type" : "object",
                  "xml" : {
                    "name" : "TimeSeries"
                  },
                  "example" : "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<TimeSeries xmlns=\"http://www.wldelft.nl/fews/PI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.wldelft.nl/fews/PI https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_timeseries.xsd\" version=\"1.27\" xmlns:fs=\"http://www.wldelft.nl/fews/fs\">\n    <timeZone>0.0</timeZone>\n    <series>\n        <header>\n            <type>instantaneous</type>\n            <moduleInstanceId>Coastal_Process_Astro</moduleInstanceId>\n            <locationId>5028N331W</locationId>\n            <parameterId>H.astronomical</parameterId>\n            <qualifierId>HighTide</qualifierId>\n            <timeStep unit=\"nonequidistant\"/>\n            <startDate date=\"2021-06-24\" time=\"08:00:00\"/>\n            <endDate date=\"2021-06-25\" time=\"09:00:00\"/>\n            <missVal>-999.0</missVal>\n            <stationName>Torquay Astro</stationName>\n            <lat>50.46667804024676</lat>\n            <lon>-3.533324439637471</lon>\n            <x>291274.0</x>\n            <y>64107.0</y>\n            <units>m</units>\n        </header>\n    </series>\n</TimeSeries>    "
                }
              },
              "text/csv" : {
                "schema" : {
                  "oneOf" : [ {
                    "title" : "PI_CSV",
                    "description" : "CSV with location and parameter headers",
                    "type" : "object"
                  }, {
                    "title" : "PI_CSV_ID_AND_NAME",
                    "description" : "CSV with location and parameter headers id and names",
                    "type" : "object"
                  } ]
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/topology/actions" : {
      "get" : {
        "tags" : [ "topology" ],
        "summary" : "Get the display group actions for a certain topology node",
        "description" : "Get the display group actions for a certain topology node",
        "operationId" : "topology/actions",
        "parameters" : [ {
          "name" : "nodeId",
          "description" : "the id of the topology node",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "taskRunIds",
          "description" : "one or more task run ids, ignored for external time series",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "timeZero",
          "description" : "the timezero for which the displaysgroups should be requested. If this parameter is omitted the time zero will be assumed equal to the current system time",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "fullDataPeriod",
          "description" : "Returns the full available data period in the startTime and endTime of the response. If this parameter is omitted the configured period is the display groupds will be used. This can be time consuming",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "startForecastTime",
          "description" : "Start time of the forecast search period. Format: yyyy-MM-ddTHH:mm:ssZ.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "endForecastTime",
          "description" : "End time of the forecast search period. Format: yyyy-MM-ddTHH:mm:ssZ.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "forecastCount",
          "description" : "The number of forecasts which should be returned. This feature should be used in combination with the startForecastTime and endForecastTime parameters.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "number"
          }
        }, {
          "name" : "currentForecastsAlwaysVisible",
          "description" : "By default when there is a forecast selection only the selected forecasts are returned. Set this parameter to true to always return the current forecasts besides the selected. Forecast selection is ignored for non-forecast time series",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "useDisplayUnits",
          "description" : "Export values using display units.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "convertDatum",
          "description" : "Set to true to convert datum",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_actions.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/timeseries/topology/actions" : {
      "get" : {
        "tags" : [ "timeseries" ],
        "summary" : "Get the timeseries from the display group actions for a certain topology node",
        "description" : "Get the timeseries from the display group actions for a certain topology node",
        "operationId" : "timeseries/topology/actions",
        "parameters" : [ {
          "name" : "nodeId",
          "description" : "the id of the topology node",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "timeSeriesDisplayIndex",
          "description" : "Index of the timeSeriesDisplay from the action response for which to get the time series",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "format" : "number"
          }
        }, {
          "name" : "downloadAsFile",
          "description" : "Since 2024.01. Set the name of the file without extension to download as an attachment. Can be used in the testpage to avoid the response being rendered in the browser.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "timeZero",
          "description" : "the timezero for which the displaysgroups should be requested. If this parameter is omitted the time zero will be assumed equal to the current system time",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "startTime",
          "description" : "Start time of the view period. Format: yyyy-MM-ddTHH:mm:ssZ. If not set the default start time of the configuration will be used.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "endTime",
          "description" : "End time of the view period. Format: yyyy-MM-ddTHH:mm:ssZ. If not set the default start time of the configuration will be used.\",",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "useDisplayUnits",
          "description" : "Export values using display units.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "convertDatum",
          "description" : "Set to true to convert datum",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_XML, PI_JSON, PI_CSV, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_XML", "PI_JSON", "PI_CSV" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_timeseries.json"
                }
              },
              "application/xml" : {
                "schema" : {
                  "title" : "PI_XML",
                  "description" : "https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_timeseries.xsd",
                  "type" : "object",
                  "xml" : {
                    "name" : "TimeSeries"
                  },
                  "example" : "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<TimeSeries xmlns=\"http://www.wldelft.nl/fews/PI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.wldelft.nl/fews/PI https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_timeseries.xsd\" version=\"1.27\" xmlns:fs=\"http://www.wldelft.nl/fews/fs\">\n    <timeZone>0.0</timeZone>\n    <series>\n        <header>\n            <type>instantaneous</type>\n            <moduleInstanceId>Coastal_Process_Astro</moduleInstanceId>\n            <locationId>5028N331W</locationId>\n            <parameterId>H.astronomical</parameterId>\n            <qualifierId>HighTide</qualifierId>\n            <timeStep unit=\"nonequidistant\"/>\n            <startDate date=\"2021-06-24\" time=\"08:00:00\"/>\n            <endDate date=\"2021-06-25\" time=\"09:00:00\"/>\n            <missVal>-999.0</missVal>\n            <stationName>Torquay Astro</stationName>\n            <lat>50.46667804024676</lat>\n            <lon>-3.533324439637471</lon>\n            <x>291274.0</x>\n            <y>64107.0</y>\n            <units>m</units>\n        </header>\n    </series>\n</TimeSeries>    "
                }
              },
              "text/csv" : {
                "schema" : {
                  "oneOf" : [ {
                    "title" : "PI_CSV",
                    "description" : "CSV with location and parameter headers",
                    "type" : "object"
                  }, {
                    "title" : "PI_CSV_ID_AND_NAME",
                    "description" : "CSV with location and parameter headers id and names",
                    "type" : "object"
                  } ]
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/displaygroups/nodes" : {
      "get" : {
        "tags" : [ "displaygroups" ],
        "summary" : "Get all displaygroups nodes and its plots",
        "description" : "Get all displaygroups nodes and its plots.",
        "operationId" : "displaygroups/nodes",
        "parameters" : [ {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_displaygroups_nodes.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/displaygroups/plot" : {
      "get" : {
        "tags" : [ "displaygroups" ],
        "summary" : "Get a plot image from a display group using the display group id and the display id of the plot",
        "description" : "Get a plot image from a display group using the display group id and the display id of the plot. The displayId is a generated id that cannot be configured. It can be determined by using the displaygroups/nodes or topology/nodes endpoint that report all supported nodes and its plots.",
        "operationId" : "displaygroups/plot",
        "parameters" : [ {
          "name" : "displayGroupId",
          "description" : "the displayGroupId of where the plot is configured.",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "displayId",
          "description" : "The displayId of a plot node. This is a generated id that can be determined from the displaygroups/nodes or topology/nodes endpoint.",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "startTime",
          "description" : "Start time of the view period. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "endTime",
          "description" : "End time of the view period. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "width",
          "description" : "the width of the plot in pixels. Default 1080",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "number"
          }
        }, {
          "name" : "height",
          "description" : "the height of the plot in pixels. Default 720",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "number"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "image/png" : {
                "schema" : {
                  "type" : "string",
                  "format" : "binary"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/ratingcurves" : {
      "get" : {
        "tags" : [ "ratingcurves" ],
        "summary" : "Get all configured rating curves from the region config and optionally filter by locationIds",
        "description" : "Get all configured rating curves from the region config and optionally filter by locationIds. Since 2022.02",
        "operationId" : "ratingcurves",
        "parameters" : [ {
          "name" : "locationIds",
          "description" : "One or more location ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "onlyHeaders",
          "description" : "Toggle to return only rating curver headers",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "useDisplayUnits",
          "description" : "Set to true to use display units",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_XML, PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_XML", "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_ratingcurves.json"
                }
              },
              "application/xml" : {
                "schema" : {
                  "title" : "PI_XML",
                  "description" : "https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_ratingcurves.xsd",
                  "type" : "object",
                  "xml" : {
                    "name" : "ratingcurves"
                  },
                  "example" : "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<RatingCurves xmlns=\"http://www.wldelft.nl/fews/PI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.wldelft.nl/fews/PI https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_ratingcurves.xsd\">\n    <timeZone>0.0</timeZone>\n    <ratingCurve>\n        <header>\n            <locationId>ALKA2</locationId>\n            <startDate date=\"2012-01-01\" time=\"00:00:00\"/>\n            <endDate date=\"2012-11-21\" time=\"00:00:00\"/>\n            <stationName>ALKA2</stationName>\n            <stageUnit>FT</stageUnit>\n            <dischargeUnit>CFS</dischargeUnit>\n            <comment>Sep07 88.88 199 kcfs</comment>\n        </header>\n        <table>\n            <interpolationMethod>logarithmic</interpolationMethod>\n            <minStage>64.9</minStage>\n            <maxStage>INF</maxStage>\n            <row stage=\"64.9\" discharge=\"2990.3328\"/>\n            <row stage=\"65.1\" discharge=\"3280.365\"/>\n            <row stage=\"65.4\" discharge=\"3740.4165\"/>\n            <row stage=\"65.700004\" discharge=\"4240.472\"/>\n        </table>\n    </ratingCurve>    \n</RatingCurves>\n\n"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/ratingcurves/stagetodischarge" : {
      "post" : {
        "tags" : [ "ratingcurves" ],
        "summary" : "Converts stage values to discharge values using a rating curve at a specific location",
        "description" : "Converts stage values to discharge values using a rating curve at a specific location. The stageValues should be passed in the body of the POST request as a key value pair where the key is dischargeValue and the value is URL Encoded JSON that conforms to the pi_rest_ratingcurves_stage.json schema: https://fewsdocs.deltares.nl/webservices/rest-api/v1/schemas/pirest/pi_rest_ratingcurves_stage.json. Since 2022.02. Also available in readonly mode.",
        "operationId" : "ratingcurves/stagetodischarge",
        "parameters" : [ {
          "name" : "locationId",
          "description" : "Location id",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "useDisplayUnits",
          "description" : "Set to true to use display units",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "properties" : {
                  "stageValues" : {
                    "type" : "string",
                    "description" : "Stage values in JSON format that conforms to the schema: https://fewsdocs.deltares.nl/webservices/rest-api/v1/schemas/pirest/pi_rest_ratingcurves_stage.json. Example: {\n  \"stageValues\" : [ \"22.1\", \"22.2\" ]\n}"
                  }
                },
                "required" : [ "stageValues" ]
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_ratingcurves_discharge.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/ratingcurves/dischargetostage" : {
      "post" : {
        "tags" : [ "ratingcurves" ],
        "summary" : "Converts discharge values to stage values using a rating curve at a specific location",
        "description" : "Converts discharge values to stage values using a rating curve at a specific location.\nThe dischargeValues should be passed in the body of the POST request as a key value pair where the key is dischargeValues and the value is URL Encoded JSON that conforms to the pi_rest_ratingcurves_discharge.json schema: https://fewsdocs.deltares.nl/webservices/rest-api/v1/schemas/pirest/pi_rest_ratingcurves_discharge.json. Since 2022.02. Also available in readonly mode.",
        "operationId" : "ratingcurves/dischargetostage",
        "parameters" : [ {
          "name" : "locationId",
          "description" : "Location id",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "useDisplayUnits",
          "description" : "Set to true to use display units",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "properties" : {
                  "dischargeValues" : {
                    "type" : "string",
                    "description" : "Discharge values in JSON format that conforms to the schema: https://fewsdocs.deltares.nl/webservices/rest-api/v1/schemas/pirest/pi_rest_ratingcurves_discharge.json. Example: {\n  \"dischargeValues\" : [ \"9920.0\", \"10200.0\" ]\n}"
                  }
                },
                "required" : [ "dischargeValues" ]
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_ratingcurves_stage.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/warmstates/times" : {
      "get" : {
        "tags" : [ "states" ],
        "summary" : "Get all the available warm state times for the specified module instance ids",
        "description" : "Get all the available warm state times for the specified module instance ids. The module instance id is used to retrieve the current taskrun. Since 2022.02",
        "operationId" : "warmstates/times",
        "parameters" : [ {
          "name" : "moduleInstanceIds",
          "description" : "One or more module instance ids",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_warmstate_times.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/warmstates" : {
      "get" : {
        "tags" : [ "states" ],
        "summary" : "Get the warm state file for the specified module instance id and state time",
        "description" : "Get the warm state file for the specified module instance id and state time. Since 2022.02",
        "operationId" : "warmstates",
        "parameters" : [ {
          "name" : "moduleInstanceId",
          "description" : "Module instance id",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "stateTime",
          "description" : "State time. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/zip" : {
                "schema" : {
                  "title" : "BINARY",
                  "description" : "File attachment with the state file",
                  "type" : "string",
                  "example" : "Content-Disposition\", \"attachment; filename=moduleinstanceid-statetime.zip"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/config/revision" : {
      "get" : {
        "tags" : [ "general" ],
        "summary" : "Get the revision of the latest configuration",
        "description" : "Get the revision of the latest configuration.",
        "operationId" : "config/revision",
        "parameters" : [ {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_config_revision.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/status" : {
      "get" : {
        "tags" : [ "general" ],
        "summary" : "Get web service and archive status",
        "description" : "Get web service and archive status",
        "operationId" : "status",
        "parameters" : [ {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_webservice_status.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/lastrefreshtime" : {
      "get" : {
        "tags" : [ "general" ],
        "summary" : "Get the last refresh time of the Web Service",
        "description" : "Get the last refresh time of the Web Service. Can be used to make sure indexes have been updated before making any requests. Typical example may be to retrieve a new forecast for which you are sure it is already available in the Delft-FEWS database. Before retrieving the new forecast keep requesting the last refresh time until you see a change in the last refresh time. This will make sure the indexes have been updated and the new forecast can be found with the WebServices. For this endpoint to work reliable in a setup with multiple web services and a load balancer, it is required that the client that connects to this endpoint is always directed to the same Web Service instance.",
        "operationId" : "lastrefreshtime",
        "parameters" : [ {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "text/plain" : {
                "schema" : {
                  "title" : "text/plain",
                  "description" : "last refresh time in the configured timezone",
                  "type" : "string",
                  "example" : "2020-03-18T15:00:00Z"
                }
              },
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_last_refresh_time.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/systemtime" : {
      "get" : {
        "tags" : [ "general" ],
        "summary" : "Get the system time of the Web Service",
        "description" : "Get the system time of the Web Service. For embedded tomcat the system time that is set in the Operator Client or a Stand Alone will be given. For the REST service the clock time is given unless a cardinalTimeStep was configured in the WebServices.xml general section. The system time is the time that matches the cardinal timestep that is closest to the clock time (always before or at the clock time, not after). In  Since 2022.02",
        "operationId" : "systemtime",
        "parameters" : [ {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "text/plain" : {
                "schema" : {
                  "title" : "text/plain",
                  "description" : "system time in the configured timezone",
                  "type" : "string",
                  "example" : "2020-03-18T15:00:00Z"
                }
              },
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_systemtime.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/resources/icons/{iconName}" : {
      "get" : {
        "tags" : [ "general" ],
        "summary" : "Get icon file from the IconFi0les folder",
        "description" : "Get icon file from the IconFi0les folder. The name of the icon file should be used, including the extension. For example: resources/icons/myIcon.png",
        "operationId" : "resources/icons/{iconName}",
        "parameters" : [ {
          "name" : "iconName",
          "description" : "icon name",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "string",
                  "format" : "text"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/resources/static/{path}/{id}" : {
      "get" : {
        "tags" : [ "general" ],
        "summary" : "Get static resources from the WebResourceFiles folder",
        "description" : "Get static resources from the WebResourceFiles folder. These are resources like css, json etc. All files stored in the WebResourceFiles folder are public available in this endpoint.",
        "operationId" : "resources/static",
        "parameters" : [ {
          "name" : "path",
          "description" : "resource path",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "id",
          "description" : "resource identifier",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "string",
                  "format" : "text"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/reports" : {
      "get" : {
        "tags" : [ "reports" ],
        "summary" : "Get the all available approved reports for one or more module instance ids",
        "description" : "Get the all available approved reports for one or more module instance ids. Only single file reports are supported.",
        "operationId" : "reports",
        "parameters" : [ {
          "name" : "moduleInstanceIds",
          "description" : "One or more module instance ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_reports.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/report" : {
      "get" : {
        "tags" : [ "reports" ],
        "summary" : "Get a report file",
        "description" : "Get a report file.",
        "operationId" : "report",
        "parameters" : [ {
          "name" : "moduleInstanceId",
          "description" : "Module instance id of the requested report",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "taskRunId",
          "description" : "Taskrun id of of the requested report.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "reportId",
          "description" : "Report id as provided by the reports endpoint.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "number"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "string",
                  "format" : "text"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/weboc/config/componentsettings" : {
      "get" : {
        "tags" : [ "weboc" ],
        "summary" : "Get the Web OC Component settings configuration",
        "description" : "Get the Web OC Component settings configuration",
        "operationId" : "weboc/config/componentsettings",
        "parameters" : [ {
          "name" : "componentSettingsId",
          "description" : "component settings will be returned",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "example" : "myComponentId"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_weboc_component_settings.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/weboc/config" : {
      "get" : {
        "tags" : [ "weboc" ],
        "summary" : "Get the Web OC Configuration",
        "description" : "Get the Web OC Configuration",
        "operationId" : "weboc/config",
        "parameters" : [ {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_weboc_configuration.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/weboc/config/public" : {
      "get" : {
        "tags" : [ "weboc" ],
        "summary" : "Get the Public Web OC Configuration that is available without permissions",
        "description" : "Get the Public Web OC Configuration that is available without permissions",
        "operationId" : "weboc/config/public",
        "parameters" : [ {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_weboc_configuration.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/lastupdatetime" : {
      "get" : {
        "tags" : [ "embedded" ],
        "summary" : "Get the last time the timeseries were updated in the Operator Client or a Stand Alone",
        "description" : "Get the last time the timeseries were updated in the Operator Client or a Stand Alone. It returns the last time the main time series dialog loaded time series. Time series dialog will only reload the time series when displayed time series are changed in the database or the user selected something different. The method was implemented for a very specific use case and is not recommended to be used anymore. Since 2022.02",
        "operationId" : "lastupdatetime",
        "parameters" : [ {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "text/plain" : {
                "schema" : {
                  "title" : "text/plain",
                  "description" : "Get the last time the timeseries were updated",
                  "type" : "string",
                  "example" : "2020-03-18T15:00:00Z"
                }
              },
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_lastupdatetime.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/topology/selected" : {
      "get" : {
        "tags" : [ "embedded" ],
        "summary" : "Get the currently selected topology node id in the Operator Client or a Stand Alone",
        "description" : "Get the currently selected topology node id in the Operator Client or a Stand Alone. Only supported when running as a embedded tomcat service in the Operator Client or in a Stand Alone. Since 2022.02",
        "operationId" : "topology/selected",
        "parameters" : [ {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_topology_selected.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/parameters/selected" : {
      "get" : {
        "tags" : [ "embedded" ],
        "summary" : "Get the currently selected parameter ids in the Operator Client or a Stand Alone",
        "description" : "Get the currently selected parameter ids in the Operator Client or a Stand Alone. Only supported when running as a embedded tomcat service in the Operator Client or in a Stand Alone. Since 2022.02",
        "operationId" : "parameters/selected",
        "parameters" : [ {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_parameters_selected.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/locations/selected" : {
      "get" : {
        "tags" : [ "embedded" ],
        "summary" : "Get the currently selected location ids in the Operator Client or a Stand Alone",
        "description" : "Get the currently selected location ids in the Operator Client or a Stand Alone. Only supported when running as a embedded tomcat service in the Operator Client or in a Stand Alone. Since 2022.02",
        "operationId" : "locations/selected",
        "parameters" : [ {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_locations_selected.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/filters/selected" : {
      "get" : {
        "tags" : [ "embedded" ],
        "summary" : "Get the currently selected filter ids in the Operator Client or a Stand Alone",
        "description" : "Get the currently selected filter ids in the Operator Client or a Stand Alone. Only supported when running as a embedded tomcat service in the Operator Client or in a Stand Alone. Since 2022.02",
        "operationId" : "filters/selected",
        "parameters" : [ {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_filters_selected.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/timeseries/topology/node" : {
      "get" : {
        "tags" : [ "embedded" ],
        "summary" : "Get the time series for the selected topology node",
        "description" : "Get the time series for the selected topology node. Only supported when running as a embedded tomcat service in the Operator Client or in a Stand Alone. Since 2022.02",
        "operationId" : "timeseries/topology/node",
        "parameters" : [ {
          "name" : "topologyNodeId",
          "description" : "Id of the topology node for which the time series will be returned.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "example" : "myNodeId"
          }
        }, {
          "name" : "timeZero",
          "description" : " time zero in format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "startTime",
          "description" : "Optional startTime for the requested period in format: yyyy-MM-ddTHH:mm:ssZ. If not set, the start time of the zoom period in the first time series dialog will be used.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "endTime",
          "description" : "Optional endTime for the requested period in format: yyyy-MM-ddTHH:mm:ssZ. If not set, the end time of the zoom period in the first time series dialog will be used.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-19T15:00:00Z"
          }
        }, {
          "name" : "thresholdsVisible",
          "description" : "Set to true to make thresholds visible.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string",
            "example" : "true"
          }
        }, {
          "name" : "omitMissing",
          "description" : "Toggle omitting or returning of missing values in response. Default is true",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "useDisplayUnits",
          "description" : "Set to true to use display units",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "convertDatum",
          "description" : "Set to true to convert datum",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_XML, PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_XML", "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_timeseries.json"
                }
              },
              "application/xml" : {
                "schema" : {
                  "title" : "PI_XML",
                  "description" : "https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_timeseries.xsd",
                  "type" : "object",
                  "xml" : {
                    "name" : "TimeSeries"
                  },
                  "example" : "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<TimeSeries xmlns=\"http://www.wldelft.nl/fews/PI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.wldelft.nl/fews/PI https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_timeseries.xsd\" version=\"1.27\" xmlns:fs=\"http://www.wldelft.nl/fews/fs\">\n    <timeZone>0.0</timeZone>\n    <series>\n        <header>\n            <type>instantaneous</type>\n            <moduleInstanceId>Coastal_Process_Astro</moduleInstanceId>\n            <locationId>5028N331W</locationId>\n            <parameterId>H.astronomical</parameterId>\n            <qualifierId>HighTide</qualifierId>\n            <timeStep unit=\"nonequidistant\"/>\n            <startDate date=\"2021-06-24\" time=\"08:00:00\"/>\n            <endDate date=\"2021-06-25\" time=\"09:00:00\"/>\n            <missVal>-999.0</missVal>\n            <stationName>Torquay Astro</stationName>\n            <lat>50.46667804024676</lat>\n            <lon>-3.533324439637471</lon>\n            <x>291274.0</x>\n            <y>64107.0</y>\n            <units>m</units>\n        </header>\n    </series>\n</TimeSeries>    "
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/whatiftemplates" : {
      "get" : {
        "tags" : [ "whatif" ],
        "summary" : "Get all the whatif templates",
        "description" : "Get all the whatif templates",
        "operationId" : "whatiftemplates",
        "parameters" : [ {
          "name" : "whatIfTemplateId",
          "description" : "Id of the what if for which the template will be returned.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "example" : "mywhatIfTemplateId"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_whatiftemplates.json"
                }
              }
            }
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/whatifscenarios" : {
      "post" : {
        "tags" : [ "whatif" ],
        "summary" : "Add a whatif scenario, for now only properties can be added to the scenario",
        "description" : "Add a whatif scenario, for now only properties can be added to the scenario",
        "operationId" : "postWhatIfScenarios",
        "parameters" : [ {
          "name" : "whatIfTemplateId",
          "description" : "Id of the what if for which a scenario must be created",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "example" : "mywhatIfTemplateId"
          }
        }, {
          "name" : "singleRunWhatIf",
          "description" : "Determine if the what-if is a single run what-if or not",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string",
            "example" : "singleRunWhatIf"
          }
        }, {
          "name" : "name",
          "description" : "The name of the whatif which should be created",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "example" : "myName"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_whatifscenariodescriptor.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      },
      "get" : {
        "tags" : [ "whatif" ],
        "summary" : "Get the whatif scenario id's that belong to one whatif template id",
        "description" : "Get the whatif scenario id's that belong to one whatif template id",
        "operationId" : "whatifscenarios",
        "parameters" : [ {
          "name" : "whatIfTemplateId",
          "description" : "Id of the what if for which the what if scenario ids will be returned.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "example" : "mywhatIfTemplateId"
          }
        }, {
          "name" : "whatIfScenarioId",
          "description" : "Id of the whatIfScenario for which the what if will be returned.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "example" : "mywhatIfTemplateId"
          }
        }, {
          "name" : "workflowId",
          "description" : "Id of the workflow for which the what if scenario ids will be returned.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "example" : "myWorkflowId"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_whatifscenariodescriptors.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/statistics/correlation" : {
      "get" : {
        "tags" : [ "statistics" ],
        "summary" : "Get the correlation between two time series",
        "description" : "Get the correlation between two time series",
        "operationId" : "correlation",
        "parameters" : [ {
          "name" : "timeSeriesIdYaxis",
          "description" : "Id of the time series for the y axis",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "example" : "myTimeSeriesId1"
          }
        }, {
          "name" : "timeSeriesIdXaxis",
          "description" : "Id of the time series for the x axis",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "example" : "timeSeriesIdXaxis"
          }
        }, {
          "name" : "startTime",
          "description" : "Start time for the correlation in format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "endTime",
          "description" : "End time for the correlation in format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-19T15:00:00Z"
          }
        }, {
          "name" : "regressionEquation",
          "description" : "Type of regression equation to be used",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "exponential multiply", "hyperbolic", "logarithmic", "power", "simple linear", "multiple linear" ],
            "type" : "string",
            "example" : "2020-03-19T15:00:00Z"
          }
        }, {
          "name" : "upperThreshold",
          "description" : "values above the threshold will not be taken into account",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "example" : "5.5"
          }
        }, {
          "name" : "lowerThreshold",
          "description" : "values below the threshold will not be taken into account",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "example" : "5.5"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_statistics_correlation.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/dataanalysisdisplays" : {
      "get" : {
        "tags" : [ "dataanalysisdisplays" ],
        "summary" : "Get the configured data analysis displays",
        "description" : "Get the configured data analysis displays",
        "operationId" : "dataanalysisdisplays",
        "parameters" : [ {
          "name" : "dataAnalysisDisplayId",
          "description" : "The id of a specific data analysis dipslay",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "oneOf" : [ {
                    "$ref" : "schemas/pirest/pi_rest_data_analysis_displays.json"
                  } ]
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/timesteps" : {
      "get" : {
        "tags" : [ "general" ],
        "summary" : "Get the time steps that have been configured in the TimeSteps",
        "description" : "Get the time steps that have been configured in the TimeSteps.xml optionally filtered by the timeSteps that can be used to do resampling",
        "operationId" : "timesteps",
        "parameters" : [ {
          "name" : "onlyResampling",
          "description" : "Only timesteps configured for resampling will be returned",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "true", "false" ],
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "oneOf" : [ {
                    "$ref" : "schemas/pirest/pi_rest_timesteps.json"
                  } ]
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/usersettings" : {
      "post" : {
        "tags" : [ "settings" ],
        "summary" : "Writes the user setting json for the specified user and topic id",
        "description" : "Writes the user setting json for the specified user and topic id",
        "operationId" : "postusersettings",
        "parameters" : [ {
          "name" : "userId",
          "description" : "Optional User id in case no authentication is used. If authentication is used, the userId of the authenticated user will be used",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "topicId",
          "description" : "topic id of the user settings json file",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "properties" : {
                  "jsonContent" : {
                    "type" : "string",
                    "description" : "Since 2024.02."
                  }
                },
                "required" : [ "jsonContent" ]
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "text/plain" : {
                "schema" : {
                  "title" : "text/plain",
                  "type" : "string",
                  "example" : ""
                }
              }
            }
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      },
      "get" : {
        "tags" : [ "settings" ],
        "summary" : "Returns the user setting json for the specified user and topic id",
        "description" : "Returns the user setting json for the specified user and topic id",
        "operationId" : "getusersettings",
        "parameters" : [ {
          "name" : "userId",
          "description" : "Get the user settings for the specified user. If not specified, the user settings for the current authenticated user will be returned.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "topicId",
          "description" : "topic id of the user settings json file",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : { }
            }
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/usersettings/users" : {
      "get" : {
        "tags" : [ "settings" ],
        "summary" : "Get all users for that have saved this topic id",
        "description" : "Get all users for that have saved this topic id",
        "operationId" : "usersettings/users",
        "parameters" : [ {
          "name" : "topicId",
          "description" : "topic id for which to get the users that have saved this topic",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_user_setting_user_ids.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/archive/parameters" : {
      "get" : {
        "tags" : [ "archive" ],
        "summary" : "Get parameters that are available in the archive",
        "description" : "Get parameters that are available in the archive. Optionally the parameters can be filtered by one or more location ids or archive attributes. Archive attributes can be added in the following format: attribute(key)=value. Attributes are passed by passing the key as an argument to the attribute() parameter and the value as parameter value. For example attribute(storageId)=storageA.",
        "operationId" : "archive/parameters",
        "parameters" : [ {
          "name" : "locationIds",
          "description" : "One or more location ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "moduleInstanceIds",
          "description" : "One or more module instance ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "areaIds",
          "description" : "One or more area ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "sourceIds",
          "description" : "One or more source ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_XML, PI_JSON, NAME_LIST, DD_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_XML", "PI_JSON", "NAME_LIST", "DD_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "oneOf" : [ {
                    "$ref" : "schemas/pirest/pi_rest_archive_parameters.json"
                  }, {
                    "type" : "object",
                    "title" : "DD_JSON",
                    "description" : "Digital Delta JSON: DocumentFormat=DD_JSON",
                    "example" : "{\n  \"results\" : [ {\n    \"id\" : \"parameter1\",\n    \"quantity\" : \"parameter1\",\n    \"quantityName\" : \"Parameter 1\",\n    \"unit\" : \"unit 1\",\n    \"node\" : {\n      \"id\" : \"locationId\",\n      \"name\" : \"DD Name\",\n      \"description\" : \"DD Description\"\n    }\n  }, {\n    \"id\" : \"parameter2\",\n    \"quantity\" : \"parameter2\",\n    \"quantityName\" : \"Parameter 2\",\n    \"unit\" : \"unit 2\",\n    \"node\" : {\n      \"id\" : \"locationId\",\n      \"name\" : \"DD Name\",\n      \"description\" : \"DD Description\"\n    }\n  } ]\n}"
                  } ]
                }
              },
              "application/xml" : {
                "schema" : {
                  "title" : "PI_XML",
                  "description" : "https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_timeseriesparameters.xsd",
                  "type" : "object",
                  "xml" : {
                    "name" : "timeseriesparameters"
                  },
                  "example" : "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<timeseriesparameters xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://www.wldelft.nl/fews/PI\" xsi:schemaLocation=\"http://www.wldelft.nl/fews/PI https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_timeseriesparameters.xsd\" version=\"1.9\">\n    <parameter id=\"QR_Adj\">\n        <name>QR_Adj</name>\n        <parameterType>instantaneous</parameterType>\n        <unit></unit>\n    </parameter>\n</timeseriesparameters>"
                }
              },
              "text/plain" : {
                "schema" : {
                  "title" : "TEXT/PLAIN",
                  "description" : "List of parameter names. DocumentFormat=NAME_LIST",
                  "type" : "object",
                  "example" : "air_pressure\nair_temperature\n"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/archive/status" : {
      "get" : {
        "tags" : [ "archive" ],
        "summary" : "Get Archive status",
        "description" : "Get Archive status",
        "operationId" : "archive/status",
        "parameters" : [ {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "oneOf" : [ {
                    "$ref" : "schemas/pirest/pi_rest_archive_status.json"
                  } ]
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/archive/locations" : {
      "get" : {
        "tags" : [ "archive" ],
        "summary" : "Get locations that are available in the archive",
        "description" : "Get locations that are available in the archive. Optionally the locations can be filtered by one or more parameter ids or archive attributes. Archive attributes can be added in the following format: attribute(key)=value. Attributes are passed by passing the key as an argument to the attribute() parameter and the value as parameter value. For example attribute(storageId)=storageA.",
        "operationId" : "archive/locations",
        "parameters" : [ {
          "name" : "parameterIds",
          "description" : "One or more parameter ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "moduleInstanceIds",
          "description" : "One or more module instance ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "areaIds",
          "description" : "One or more area ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "sourceIds",
          "description" : "One or more source ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_XML, PI_JSON, GEO_JSON, NAME_LIST, DD_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_XML", "PI_JSON", "GEO_JSON", "NAME_LIST", "DD_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "oneOf" : [ {
                    "$ref" : "schemas/pirest/pi_rest_archive_locations.json"
                  }, {
                    "type" : "object",
                    "title" : "GEO_JSON",
                    "description" : "GEO JSON: DocumentFormat=GEO_JSON",
                    "example" : "{\n  \"type\" : \"FeatureCollection\",\n  \"features\" : [ {\n    \"type\" : \"Feature\",\n    \"geometry\" : {\n      \"type\" : \"Point\",\n      \"coordinates\" : [ 3.816699981689453, 55.400001525878906 ]\n    },\n    \"properties\" : {\n      \"locationId\" : \"A121\",\n      \"locationName\" : \"A121\"\n    }\n  }\n  ]\n}"
                  }, {
                    "type" : "object",
                    "title" : "DD_JSON",
                    "description" : "Digital Delta JSON: DocumentFormat=DD_JSON",
                    "example" : "{\n  \"results\" : [ {\n    \"type\" : \"Feature\",\n    \"geometry\" : {\n      \"type\" : \"Point\",\n      \"coordinates\" : [ 3.816699981689453, 55.400001525878906, 0.0 ]\n    },\n    \"properties\" : {\n      \"locationId\" : \"A121\",\n      \"locationName\" : \"A121\",\n      \"node\" : {\n        \"id\" : \"Deltares\",\n        \"name\" : \"Deltares Digitale Delta\",\n        \"description\" : \"Delft-FEWS Web Services (1.0) - version: 2017.01, build: 68155 Sep11, type: development-2017.01, jre: 11.0.10, os:Windows 10, mx: 8558m\"\n      }\n    }\n  } ]\n}"
                  } ]
                }
              },
              "application/xml" : {
                "schema" : {
                  "title" : "PI_XML",
                  "description" : "https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_locations.xsd",
                  "type" : "object",
                  "xml" : {
                    "name" : "Locations"
                  },
                  "example" : "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Locations xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://www.wldelft.nl/fews/PI\" xsi:schemaLocation=\"http://www.wldelft.nl/fews/PI https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_locations.xsd\" version=\"1.9\">\n    <geoDatum>LOCAL</geoDatum>\n    <location locationId=\"BCRA1\">\n        <shortName>Bear Creek Dam</shortName>\n        <lat>34.399166107177734</lat>\n        <lon>-87.98777770996094</lon>\n    </location>\n</Locations>"
                }
              },
              "text/plain" : {
                "schema" : {
                  "description" : "List of location names. DocumentFormat=NAME_LIST",
                  "title" : "NAME_LIST",
                  "type" : "object",
                  "example" : "Location 1\nLocation 2"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/archive/attributes" : {
      "get" : {
        "tags" : [ "archive" ],
        "summary" : "Get attributes with their values that are available in the archive",
        "description" : "Get attributes with their values that are available in the archive. Optionally the attributes can be filtered by one or more attribute keys, a parameter ids or a location id.",
        "operationId" : "archive/attributes",
        "parameters" : [ {
          "name" : "parameterIds",
          "description" : "Parameter ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "locationIds",
          "description" : "Location ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "moduleInstanceIds",
          "description" : "One or more module instance ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "areaIds",
          "description" : "One or more area ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "sourceIds",
          "description" : "One or more source ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "attributes",
          "description" : "One or more attributes",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_XML, PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_XML", "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_archive_attributes.json"
                }
              },
              "application/xml" : {
                "schema" : {
                  "description" : "https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_archive_attributes.xsd",
                  "title" : "PI_XML",
                  "type" : "object",
                  "xml" : {
                    "name" : "archiveAttributes"
                  },
                  "example" : "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<archiveAttributes xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://www.wldelft.nl/fews/PI\" xsi:schemaLocation=\"http://www.wldelft.nl/fews/PI https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_archive_attributes.xsd\">\n    <attribute>\n        <name>storageId</name>\n        <value>storageA</value>\n    </attribute>\n</archiveAttributes>"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/archive/netcdfstorageforecasts" : {
      "get" : {
        "tags" : [ "archive" ],
        "summary" : "Get forecasts with its attributes from the external netcdf storage from the archive",
        "description" : "Get forecasts with its attributes from the external netcdf storage from the archive.",
        "operationId" : "archive/netcdfstorageforecasts",
        "parameters" : [ {
          "name" : "requestedAttributes",
          "description" : "Requested attributes",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "startTime",
          "description" : "Start time. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "endTime",
          "description" : "End time. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : true,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "forecastCount",
          "description" : "Forecast count",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "number"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_XML, PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_XML", "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_archive_externalnetcdfstorageforecasts.json"
                }
              },
              "application/xml" : {
                "schema" : {
                  "title" : "PI_XML",
                  "description" : "https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_archive_externalnetcdfstorageforecasts.xsd",
                  "type" : "object",
                  "xml" : {
                    "name" : "externalNetCDFStorageForecasts"
                  },
                  "example" : "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<externalNetCDFStorageForecasts xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://www.wldelft.nl/fews/PI\" xsi:schemaLocation=\"http://www.wldelft.nl/fews/PI https://fewsdocs.deltares.nl/schemas/version1.0/pi-schemas/pi_archive_externalnetcdfstorageforecasts.xsd\">\n    <externalNetCDFStorageForecast>\n        <forecastTime date=\"2019-09-27\" time=\"12:00:00\"/>\n        <forecastAvailableTime date=\"2021-05-21\" time=\"08:40:43\"/>\n        <attribute>\n            <name>long_name</name>\n            <value>sep</value>\n        </attribute>\n    </externalNetCDFStorageForecast>\n    <externalNetCDFStorageForecast>\n        <forecastTime date=\"2019-09-27\" time=\"06:00:00\"/>\n        <forecastAvailableTime date=\"2021-05-21\" time=\"08:40:43\"/>\n        <attribute>\n            <name>long_name</name>\n            <value>sep</value>\n        </attribute>\n    </externalNetCDFStorageForecast>\n</externalNetCDFStorageForecasts>"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/archive/sources" : {
      "get" : {
        "tags" : [ "archive" ],
        "summary" : "Returns the available sources for the open archive, netcdf-storage and the archive database",
        "description" : "Returns the available sources for the open archive, netcdf-storage and the archive database",
        "operationId" : "archive/sources",
        "parameters" : [ {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_archive_sources.json"
                }
              }
            }
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/archive/moduleinstances" : {
      "get" : {
        "tags" : [ "archive" ],
        "summary" : "Returns the available module instaces for the netcdf storage",
        "description" : "Returns the available module instaces for the netcdf storage",
        "operationId" : "archive/moduleinstances",
        "parameters" : [ {
          "name" : "locationIds",
          "description" : "One or more location ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "parameterIds",
          "description" : "One or more parameter ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "areaIds",
          "description" : "One or more area ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "sourceIds",
          "description" : "One or more source ids",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "The parameter can be repeated"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_moduleinstances.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/archive/areas" : {
      "get" : {
        "tags" : [ "archive" ],
        "summary" : "Returns the available areas for the open archive, netcdf-storage and the archive database",
        "description" : "Returns the available areas for the open archive, netcdf-storage and the archive database",
        "operationId" : "archive/areas",
        "parameters" : [ {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_archive_areas.json"
                }
              }
            }
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/archive/products" : {
      "get" : {
        "tags" : [ "archive" ],
        "summary" : "Returns a zip-file with the requested products or a binary file if only one file is requested, that are available in the archive filtered by the specified parameters",
        "description" : "Returns a zip-file with the requested products or a binary file if only one file is requested, that are available in the archive filtered by the specified parameters.",
        "operationId" : "archive/products",
        "parameters" : [ {
          "name" : "sourceId",
          "description" : "Source Id",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "areaId",
          "description" : "Area Id",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "productCount",
          "description" : "Archived Product Count",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "number"
          }
        }, {
          "name" : "startTime",
          "description" : "Start Time Archive Search Period. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "endTime",
          "description" : "End Time Archive Search Period. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "startForecastTime",
          "description" : "Start Time Archive Forecast Search Period. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "endForecastTime",
          "description" : "End Time Archive Forecast Search Period. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "productFileName",
          "description" : "An optional product file name. If this is specified only this item will be returned",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: BINARY, BINARY_ZIP, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "BINARY", "BINARY_ZIP" ],
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/octet-stream" : {
                "schema" : {
                  "title" : "BINARY_ZIP or BINARY",
                  "description" : "File attachment with zipped products",
                  "type" : "string",
                  "example" : "Content-Disposition\", \"attachment; filename=products.zip"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      },
      "post" : {
        "tags" : [ "archive" ],
        "summary" : "upload new products to the archive",
        "description" : "upload new products to the archive. The multipart/form-data encoding has to be used. The metaData.xml will be automatically generated. It is only possible to upload a single product file each time this endpoint is used.",
        "operationId" : "post/archive/products",
        "parameters" : [ {
          "name" : "timeZero",
          "description" : " time zero of the uploaded product. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "areaId",
          "description" : "area id of the uploaded product",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "sourceId",
          "description" : "source id of the uploaded product",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "subFolder",
          "description" : "The sub folder in which the product will be stored. This can be used as an folder to identify the product easier",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "properties" : {
                  "file" : {
                    "type" : "string",
                    "description" : "file to upload"
                  }
                },
                "required" : [ "file" ]
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "text/plain" : {
                "schema" : {
                  "title" : "text/plain",
                  "description" : "Empty response it the upload succeeded.",
                  "type" : "string",
                  "example" : ""
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/archive/products/attributes/" : {
      "post" : {
        "tags" : [ "archive" ],
        "summary" : "Add or update attributes to a product metadata",
        "description" : "Add or update attributes to a product metadata.xml. It's only possible to add attributes to one xml at a time.",
        "operationId" : "archive/products/attributes",
        "parameters" : [ {
          "name" : "relativePath",
          "description" : " the relative path of the product in the archive",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "example" : "products-rws/2022/05/rivieren/10/product/weerbeeld_maas/2022_05_10_T_09_00_00/KNMI_20220510085242/weerbeeld_maas.txt"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "text/plain" : {
                "schema" : {
                  "title" : "text/plain",
                  "description" : "Plain text comforming successful update.",
                  "type" : "string",
                  "example" : "Attributes were successfully updated."
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/archive/products/id" : {
      "get" : {
        "tags" : [ "archive" ],
        "summary" : "Return a specific product from the archive",
        "description" : "Return a specific product from the archive. The relative path in the archive will be used as the id.",
        "operationId" : "archive/products/id",
        "parameters" : [ {
          "name" : "relativePath",
          "description" : " the relative path of the product in the archive",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "example" : "products-rws/2022/05/rivieren/10/product/weerbeeld_maas/2022_05_10_T_09_00_00/KNMI_20220510085242/weerbeeld_maas.txt"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: BINARY, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "BINARY" ],
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "title" : "product",
                  "description" : "Product",
                  "type" : "object",
                  "example" : ""
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    },
    "/archive/productsmetadata" : {
      "get" : {
        "tags" : [ "archive" ],
        "summary" : "Returns a list of metadata found in the archive, where the T0 falls between the startForecastTime and endForecastTime",
        "description" : "Returns a list of metadata found in the archive, where the T0 falls between the startForecastTime and endForecastTime.",
        "operationId" : "archive/productsmetadata",
        "parameters" : [ {
          "name" : "startForecastTime",
          "description" : "Start Forecast Time Archive Search Period. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "endForecastTime",
          "description" : "End Forecast Time Archive Search Period. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "startTime",
          "description" : "Start creation time archive Search Period. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "endTime",
          "description" : "End creation time archive Search Period. Format: yyyy-MM-ddTHH:mm:ssZ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "description" : "Date-time string that adheres to RFC 3339.",
            "format" : "date-time",
            "example" : "2020-03-18T15:00:00Z"
          }
        }, {
          "name" : "forecastCount",
          "description" : "Number of products which should be returned. If no forecast count is used, all products in the search period will be returned.",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string",
            "format" : "number",
            "example" : "1"
          }
        }, {
          "name" : "documentFormat",
          "description" : "Supported Document Format: PI_JSON, ",
          "in" : "query",
          "required" : false,
          "schema" : {
            "enum" : [ "PI_JSON" ],
            "type" : "string"
          }
        }, {
          "name" : "documentVersion",
          "description" : "Document Version. Latest version is: 1.34",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "schemas/pirest/pi_rest_archive_productsmetadata.json"
                }
              }
            }
          },
          "400" : {
            "$ref" : "#/components/responses/badRequestInvalidParameter"
          },
          "401" : {
            "$ref" : "#/components/responses/unAuthorizedError"
          },
          "403" : {
            "$ref" : "#/components/responses/forbiddenError"
          },
          "500" : {
            "$ref" : "#/components/responses/internalServerError"
          }
        }
      }
    }
  },
  "components" : {
    "securitySchemes" : {
      "Bearer" : {
        "type" : "http",
        "description" : "JWT Bearer ID token",
        "scheme" : "bearer",
        "bearerFormat" : "JWT"
      }
    },
    "responses" : {
      "internalServerError" : {
        "description" : "",
        "content" : {
          "plain/text" : {
            "schema" : {
              "type" : "string",
              "title" : "Internal server error",
              "description" : "An internal server error is reported when an application error occurs in the Delft-FEWS Web Services.",
              "example" : "Internal server error."
            }
          }
        }
      },
      "badRequestInvalidParameter" : {
        "description" : "",
        "content" : {
          "plain/text" : {
            "schema" : {
              "type" : "string",
              "title" : "Invalid request",
              "description" : "Bad request for query parameters can occur when an unexpected parameter is used",
              "example" : "Invalid request. An unexpected parameter was used in the request."
            }
          }
        }
      },
      "badRequestDuplicateParameter" : {
        "description" : "",
        "content" : {
          "plain/text" : {
            "schema" : {
              "type" : "string",
              "title" : "Invalid request",
              "description" : "Bad request for query parameters can occur when a parameter is used twice for a parameter that can only occur once",
              "example" : "Invalid request. Parameter was used more than once in the request."
            }
          }
        }
      },
      "unAuthorizedError" : {
        "description" : "",
        "content" : {
          "plain/text" : {
            "schema" : {
              "type" : "string",
              "title" : "Authorization error",
              "description" : "JWT Id token is missing or invalid",
              "example" : "No JWT token provided."
            }
          }
        }
      },
      "forbiddenError" : {
        "description" : "",
        "content" : {
          "plain/text" : {
            "schema" : {
              "type" : "string",
              "title" : "Forbidden error",
              "description" : "Forbidden to access the requested resource",
              "example" : "Forbidden to access the requested method."
            }
          }
        }
      }
    }
  },
  "security" : [ {
    "Bearer" : [ ]
  } ]
}