{
  "openapi": "3.0.4",
  "info": {
    "title": "Macrobond WebAPI",
    "version": "v1"
  },
  "servers": [
    {
      "url": "https://api.macrobondfinancial.com"
    }
  ],
  "paths": {
    "/v1/series/deleteseries": {
      "delete": {
        "tags": [
          "In-house series"
        ],
        "summary": "Delete an in-house time series",
        "description": "Delete an in-house time series. The name typically starts with 'ih:mb:'.\nOAuth scope: macrobond_web_api.write_ih",
        "operationId": "series_deleteseries_delete",
        "parameters": [
          {
            "name": "n",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful"
          },
          "404": {
            "description": "The series could not be found"
          },
          "400": {
            "description": "The operation failed"
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.write_ih"
            ]
          }
        ]
      }
    },
    "/v1/series/fetchentities": {
      "get": {
        "tags": [
          "Series"
        ],
        "summary": "Fetch one or more entities",
        "description": "Fetch one or more entities. The result will be in the same order as the request.\nOAuth scope: macrobond_web_api.read_mb",
        "operationId": "series_fetchentities_get",
        "parameters": [
          {
            "name": "n",
            "in": "query",
            "description": "The name of one or more entities to fetch",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EntityResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "The operation failed"
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.read_mb"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "Series"
        ],
        "summary": "Fetch one or more entities",
        "description": "Fetch one or more entities. A timestamp can be specified for each entity to conditionally retrieve a result. This is typically the value of the metadata LastModifiedTimeStamp from a previous request. The result will be in the same order as the request.\nOAuth scope: macrobond_web_api.read_mb",
        "operationId": "series_fetchentities_post",
        "requestBody": {
          "description": "The name and timestamp of one or more entities to request",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EntityRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EntityRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EntityRequest"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The operation was successful",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EntityResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "The operation failed"
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.read_mb"
            ]
          }
        ]
      }
    },
    "/v1/series/fetchseries": {
      "get": {
        "tags": [
          "Series"
        ],
        "summary": "Fetch one or more series",
        "description": "Fetch one or more series. The result will be in the same order as the request.\nOAuth scope: macrobond_web_api.read_mb",
        "operationId": "series_fetchseries_get",
        "parameters": [
          {
            "name": "n",
            "in": "query",
            "description": "The name of one or more series to fetch",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "dateEndOfPeriod",
            "in": "query",
            "description": "Return the observation dates at the end of each period instead of the start",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SeriesResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "The operation failed"
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.read_mb"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "Series"
        ],
        "summary": "Fetch one or more series",
        "description": "Fetch one or more series. A timestamp can be specified for each series to conditionally retrieve a result. This is typically the value of the metadata LastModifiedTimeStamp from a previous request. The result will be in the same order as the request.\nOAuth scope: macrobond_web_api.read_mb",
        "operationId": "series_fetchseries_post",
        "requestBody": {
          "description": "The name and timestamp of one or more series to request",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/DateTypeDefinedEntityRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/DateTypeDefinedEntityRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/DateTypeDefinedEntityRequest"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The operation was successful",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SeriesResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "The operation failed"
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.read_mb"
            ]
          }
        ]
      }
    },
    "/v1/series/getrevisioninfo": {
      "get": {
        "tags": [
          "Series"
        ],
        "summary": "Get information about if a record of updates is stored for one or more series",
        "description": "Get information about if a record of updates is stored for one or more series and the dates of changes.\nOAuth scope: macrobond_web_api.read_mb",
        "operationId": "series_getrevisioninfo_get",
        "parameters": [
          {
            "name": "n",
            "in": "query",
            "description": "The name of one or more time series to fetch",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SeriesWithRevisionsInfoResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.read_mb"
            ]
          }
        ]
      }
    },
    "/v1/series/fetchvintageseries": {
      "get": {
        "tags": [
          "Series"
        ],
        "summary": "Fetch one or more vintage series",
        "description": "Fetch one or more vintage series. The result will be in the same order as the request.\nOAuth scope: macrobond_web_api.read_mb",
        "operationId": "series_fetchvintageseries_get",
        "parameters": [
          {
            "name": "t",
            "in": "query",
            "description": "The time of the vintage to retrieve",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "getTimesOfChange",
            "in": "query",
            "description": "If True, include information of the time each values was last changed",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "n",
            "in": "query",
            "description": "The name of one or more series to fetch",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "dateEndOfPeriod",
            "in": "query",
            "description": "Return the observation dates at the end of each period instead of the start",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VintageSeriesResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.read_mb"
            ]
          }
        ]
      }
    },
    "/v1/series/fetchallvintageseries": {
      "get": {
        "tags": [
          "Series"
        ],
        "summary": "Fetch all vintage series",
        "description": "Fetch all vintage series and the complete history of changes. Metadata from the prevision response can be specified to get conditional and incremental changes.\nOAuth scope: macrobond_web_api.read_mb",
        "operationId": "series_fetchallvintageseries_get",
        "parameters": [
          {
            "name": "n",
            "in": "query",
            "description": "The name of the series",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ifModifiedSince",
            "in": "query",
            "description": "If specified, the series will only be returned if modified since the specified time. If not, HTTP status 304 (Not Modified) will be returned. The value should be from the metadata LastModifiedTimeStamp of the previous response.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "lastRevision",
            "in": "query",
            "description": "If specified, incremental updates can be return. HTTP status 206 (Partial Content) will be returned in that case. The value should be from the metadata LastRevisionTimeStamp of the previous response.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "lastRevisionAdjustment",
            "in": "query",
            "description": "If specified, incremental updates can be return. HTTP status 206 (Partial Content) will be returned in that case. The value should be from the metadata LastRevisionAdjustmentTimeStamp of the previous response.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "dateEndOfPeriod",
            "in": "query",
            "description": "Return the observation dates at the end of each period instead of the start",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VintageSeriesResponse"
                  }
                }
              }
            }
          },
          "206": {
            "description": "The operation was successful, but only new revisions are included",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VintageSeriesResponse"
                  }
                }
              }
            }
          },
          "304": {
            "description": "The series was not modified since the timestamp passed as parmeter ifModifiedSince."
          },
          "400": {
            "description": "The operation failed"
          },
          "404": {
            "description": "The series could not be found"
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.read_mb"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "Series"
        ],
        "summary": "Fetch all vintage series",
        "description": "Fetch all vintage series and the complete history of changes. Metadata from the prevision response can be specified to get conditional and incremental changes.\nOAuth scope: macrobond_web_api.read_mb",
        "operationId": "series_fetchallvintageseries_post",
        "requestBody": {
          "description": "The name and timestamps of one or more series to request",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/RevisionHistoryRequest"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/RevisionHistoryRequest"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/RevisionHistoryRequest"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The operation was successful",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SeriesWithVintagesResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "The operation failed"
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.read_mb"
            ]
          }
        ]
      }
    },
    "/v1/series/fetchnthreleaseseries": {
      "get": {
        "tags": [
          "Series"
        ],
        "summary": "Fetch one or more nth release series",
        "description": "Fetch one or more series where each value is the nth change of the value. The result will be in the same order as the request.\nOAuth scope: macrobond_web_api.read_mb",
        "operationId": "series_fetchnthreleaseseries_get",
        "parameters": [
          {
            "name": "nth",
            "in": "query",
            "description": "The nth change of each value",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "getTimesOfChange",
            "in": "query",
            "description": "If True, include information of the time each values was last changed",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "n",
            "in": "query",
            "description": "The name of one or more series to fetch",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "dateEndOfPeriod",
            "in": "query",
            "description": "Return the observation dates at the end of each period instead of the start",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SeriesWithTimesOfChangeResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.read_mb"
            ]
          }
        ]
      }
    },
    "/v1/series/fetchobservationhistory": {
      "get": {
        "tags": [
          "Series"
        ],
        "summary": "Fetch history of one or more observations in a time series",
        "description": "Fetch the history of one or more observations in a time series. The result will be in the same order as the request.\nOAuth scope: macrobond_web_api.read_mb",
        "operationId": "series_fetchobservationhistory_get",
        "parameters": [
          {
            "name": "n",
            "in": "query",
            "description": "The name of the series fetch",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "t",
            "in": "query",
            "description": "The date of the observation to retrieve",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "date-time"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SeriesObservationHistoryResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "The operation failed"
          },
          "404": {
            "description": "The series could not be found"
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.read_mb"
            ]
          }
        ]
      }
    },
    "/v1/series/getdatapackagelist": {
      "get": {
        "tags": [
          "Series"
        ],
        "summary": "Get a list of entities for accounts that subscribe to data packages only",
        "description": "Get a list of series in the data package list and timestamps when they were last changed. You can specify a timestamp to see what has changed since then. For this the timeStampForIfModifiedSince in the response from a previous call is typically used. This guarantees that you will not miss any updates, but you may see the same update more than once.\nOAuth scope: macrobond_web_api.read_mb",
        "operationId": "series_getdatapackagelist_get",
        "parameters": [
          {
            "name": "ifModifiedSince",
            "in": "query",
            "description": "If specified, only entities modified since the specified time are returned. This is typically the timeStampForIfModifiedSince from a previous call.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DataPackageListResponse"
                }
              }
            }
          },
          "403": {
            "description": "The account is not set up to use a subscription list"
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.read_mb"
            ]
          }
        ]
      }
    },
    "/v1/series/entityinfofordisplay": {
      "get": {
        "tags": [
          "Series"
        ],
        "summary": "Get formatted information about a time series",
        "description": "Get formatted information about a time series intended to be displayed to the user\nOAuth scope: macrobond_web_api.read_structure",
        "operationId": "series_entityinfofordisplay_get",
        "parameters": [
          {
            "name": "n",
            "in": "query",
            "description": "The name of one or more entities to fetch",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EntityInfoForDisplayResponse"
                }
              }
            }
          },
          "400": {
            "description": "The operation failed"
          },
          "404": {
            "description": "The series could not be found"
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.read_structure"
            ]
          }
        ]
      }
    },
    "/v1/series/fetchunifiedseries": {
      "post": {
        "tags": [
          "Series"
        ],
        "summary": "Fetch one or more series and convert them to a common frequency and calendar",
        "description": "Fetch one or more series and convert them to a common frequency, calendar and optionally a common currency. Specify properties for frequency conversion and method to fill in missing values. The resulting list of series will be in the same order as in the request.\nOAuth scope: macrobond_web_api.read_mb",
        "operationId": "series_fetchunifiedseries_post",
        "requestBody": {
          "description": "The name and timestamp of one or more series to request",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "seriesEntries"
                ],
                "allOf": [
                  {
                    "$ref": "#/components/schemas/UnifiedSeriesRequest"
                  }
                ],
                "description": "Request of a list of series converted to the same calendar",
                "writeOnly": true
              }
            },
            "text/json": {
              "schema": {
                "required": [
                  "seriesEntries"
                ],
                "allOf": [
                  {
                    "$ref": "#/components/schemas/UnifiedSeriesRequest"
                  }
                ],
                "description": "Request of a list of series converted to the same calendar",
                "writeOnly": true
              }
            },
            "application/*+json": {
              "schema": {
                "required": [
                  "seriesEntries"
                ],
                "allOf": [
                  {
                    "$ref": "#/components/schemas/UnifiedSeriesRequest"
                  }
                ],
                "description": "Request of a list of series converted to the same calendar",
                "writeOnly": true
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The operation was successful",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnifiedSeriesResponse"
                }
              }
            }
          },
          "400": {
            "description": "The operation failed"
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.read_mb"
            ]
          }
        ]
      }
    },
    "/v1/series/uploadseries": {
      "post": {
        "tags": [
          "In-house series"
        ],
        "summary": "Upload an in-house time series",
        "description": "Upload an in-house time series. In the metadata, PrimName, Frequency, IHCategory, Region and Description must be set. If no vector of dates is specified, the StartDate must be included in the metadata. For daily series, DayMask must also be included.\nOAuth scope: macrobond_web_api.write_ih",
        "operationId": "series_uploadseries_post",
        "requestBody": {
          "description": "The series data to upload",
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SeriesRequest"
                  }
                ],
                "description": "A time series request"
              }
            },
            "text/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SeriesRequest"
                  }
                ],
                "description": "A time series request"
              }
            },
            "application/*+json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SeriesRequest"
                  }
                ],
                "description": "A time series request"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The operation was successful"
          },
          "400": {
            "description": "The operation failed"
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.write_ih"
            ]
          }
        ]
      }
    },
    "/v1/metadata/getattributeinformation": {
      "get": {
        "tags": [
          "Metadata"
        ],
        "summary": "Get information about one or more metadata attributes",
        "description": "Get information about metadata attributes. The result will be in the same order as the request.\nOAuth scope: macrobond_web_api.read_mb",
        "operationId": "metadata_getattributeinformation_get",
        "parameters": [
          {
            "name": "n",
            "in": "query",
            "description": "The name of a metadata attribute",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MetadataAttributeInformationResponse"
                  }
                }
              }
            }
          },
          "404": {
            "description": "At least one attribute was not found"
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.read_mb"
            ]
          }
        ]
      }
    },
    "/v1/metadata/getvalueinformation": {
      "get": {
        "tags": [
          "Metadata"
        ],
        "summary": "Get information about one or more metadata values",
        "description": "Get information about metadata values. The result will be in the same order as the request.\nOAuth scope: macrobond_web_api.read_mb",
        "operationId": "metadata_getvalueinformation_get",
        "parameters": [
          {
            "name": "v",
            "in": "query",
            "description": "The name of a metadata attribute followed by comma and then the value",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MetadataValueInformationResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Malformed request"
          },
          "404": {
            "description": "At least one attribute or value was not found"
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.read_mb"
            ]
          }
        ]
      }
    },
    "/v1/metadata/listattributevalues": {
      "get": {
        "tags": [
          "Metadata"
        ],
        "summary": "List the values of a metadata attribute",
        "description": "List all metadata attribute values. The attribute must have the property canListValues.\nOAuth scope: macrobond_web_api.read_mb",
        "operationId": "metadata_listattributevalues_get",
        "parameters": [
          {
            "name": "n",
            "in": "query",
            "description": "The name of a metadata attribute",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MetadataValueInformationResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Values cannot be listed for the attribute"
          },
          "404": {
            "description": "The attribute was not found"
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.read_mb"
            ]
          }
        ]
      }
    },
    "/v1/search/entities": {
      "get": {
        "tags": [
          "Search"
        ],
        "summary": "Search for time series and other entites",
        "description": "Search for time series and other entites matching attribute values. You can only use attributes that have a value list as specified in the getattributeinformation endpoint. If the same attribute name is specified more than once, then entities matching any of them will be included. If the value is *, any value will match. If ! is specified before an attribute name, entities matching the value will be excluded instead of included.\nOAuth scope: macrobond_web_api.search_mb",
        "operationId": "search_entities_get",
        "parameters": [
          {
            "name": "entityType",
            "in": "query",
            "description": "Specify one or more entity types to search for. Use * to search for all types. The default is TimeSeries.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "includeDiscontinued",
            "in": "query",
            "description": "If true, include discontinued series in the search.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "noMetaData",
            "in": "query",
            "description": "If true, do not include full metadata in the response.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowLongResult",
            "in": "query",
            "description": "If true, allow for longer search results. noMetaData must be set to true.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "text",
            "in": "query",
            "description": "Specify one or more words to search for. Words are separated by space.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "One or more attribute=value or !attribute=value pairs.",
            "required": true,
            "style": "deepObject",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResponse"
                }
              }
            }
          },
          "400": {
            "description": "Request failed"
          },
          "404": {
            "description": "At least one attribute was not found"
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.search_mb"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "Search"
        ],
        "summary": "Search for time series and other entites",
        "description": "Search for time series and other entites matching attribute values. You can only use attributes that have a value list as specified in the getattributeinformation endpoint.\nOAuth scope: macrobond_web_api.search_mb",
        "operationId": "search_entities_post",
        "requestBody": {
          "description": "One or more search filters.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "filter"
                ],
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SearchRequest"
                  }
                ],
                "description": "Information about a search request",
                "writeOnly": true
              }
            },
            "text/json": {
              "schema": {
                "required": [
                  "filter"
                ],
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SearchRequest"
                  }
                ],
                "description": "Information about a search request",
                "writeOnly": true
              }
            },
            "application/*+json": {
              "schema": {
                "required": [
                  "filter"
                ],
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SearchRequest"
                  }
                ],
                "description": "Information about a search request",
                "writeOnly": true
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The operation was successful",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResponse"
                }
              }
            }
          },
          "400": {
            "description": "Request failed"
          },
          "404": {
            "description": "At least one attribute was not found"
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.search_mb"
            ]
          }
        ]
      }
    },
    "/v1/search/searchsuggestions": {
      "get": {
        "tags": [
          "Search"
        ],
        "summary": "Suggest search phrase based on a search query",
        "description": "Suggest one or more search phrases, that can be used for 'type ahead', based on the specificed search query. You typically specify just a set of keywords.\nOAuth scope: macrobond_web_api.search_mb",
        "operationId": "search_searchsuggestions_get",
        "parameters": [
          {
            "name": "searchPhrase",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Request failed"
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.search_mb"
            ]
          }
        ]
      }
    },
    "/v1/search/filterlists": {
      "get": {
        "tags": [
          "Search"
        ],
        "summary": "Get a list of saved filter lists",
        "description": "Get a structured list of all saved filter lists of the specified type.\nOAuth scope: macrobond_web_api.read_structure or macrobond_web_api.search_mb",
        "operationId": "search_filterlists_get",
        "parameters": [
          {
            "name": "entityType",
            "in": "query",
            "description": "Specify the entity types that the returned lists should contain.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ItemListingResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Request failed"
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.read_structure",
              "macrobond_web_api.search_mb"
            ]
          }
        ]
      }
    },
    "/v1/search/entitiesfordisplay": {
      "post": {
        "tags": [
          "Search"
        ],
        "summary": "Search for time series and other entites and return formatted metadata",
        "description": "Search for time series and other entites matching attribute values and return the selected metadata formatted for presentation purposes.\nOAuth scope: macrobond_web_api.read_structure",
        "operationId": "search_entitiesfordisplay_post",
        "requestBody": {
          "description": "One or more search filters.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "attributesForDisplayFormat",
                  "filter"
                ],
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SearchForDisplayRequest"
                  }
                ],
                "description": "Information about a search request with metadata as presentable text",
                "writeOnly": true
              }
            },
            "text/json": {
              "schema": {
                "required": [
                  "attributesForDisplayFormat",
                  "filter"
                ],
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SearchForDisplayRequest"
                  }
                ],
                "description": "Information about a search request with metadata as presentable text",
                "writeOnly": true
              }
            },
            "application/*+json": {
              "schema": {
                "required": [
                  "attributesForDisplayFormat",
                  "filter"
                ],
                "allOf": [
                  {
                    "$ref": "#/components/schemas/SearchForDisplayRequest"
                  }
                ],
                "description": "Information about a search request with metadata as presentable text",
                "writeOnly": true
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The operation was successful",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchForDisplayResponse"
                }
              }
            }
          },
          "400": {
            "description": "Request failed"
          },
          "404": {
            "description": "At least one attribute was not found"
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.read_structure"
            ]
          }
        ]
      }
    },
    "/v1/seriestree/getnodes": {
      "get": {
        "tags": [
          "SeriesTree"
        ],
        "summary": "Get the nodes of the series database tree",
        "description": "Get the nodes of a branch of the series database tree.\nOAuth scope: macrobond_web_api.read_structure",
        "operationId": "seriestree_getnodes_get",
        "parameters": [
          {
            "name": "path",
            "in": "query",
            "description": "Path to branch of the tree or not specified for the root",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filterPath",
            "in": "query",
            "description": "Path to a filter or omitted if not filtered",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "$ref": "#/components/schemas/SeriesTreeNodeLeaf"
                      },
                      {
                        "$ref": "#/components/schemas/SeriesTreeNodeBranch"
                      },
                      {
                        "$ref": "#/components/schemas/SeriesTreeNodeBranchRef"
                      }
                    ],
                    "description": "Information about a node in the series database tree"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.read_structure"
            ]
          }
        ]
      }
    },
    "/v1/seriestree/getleafseries": {
      "get": {
        "tags": [
          "SeriesTree"
        ],
        "summary": "Get a structured list of series for a leaf in the database tree",
        "description": "Get a structured list of series for a leaf in the database tree identified by the path of the tree branches.\nOAuth scope: macrobond_web_api.read_structure",
        "operationId": "seriestree_getleafseries_get",
        "parameters": [
          {
            "name": "path",
            "in": "query",
            "description": "Path to the leaf of the tree composed of the node descriptions encoded using RFC 2396 separated by /",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dp",
            "in": "query",
            "description": "Optional display properties. Can be names of metadata attributes or $CopPercent or $CopValue",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SeriesTreeListingResponse"
                }
              }
            }
          },
          "404": {
            "description": "The path was not found"
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.read_structure"
            ]
          }
        ]
      }
    },
    "/v1/seriestree/findlocations": {
      "get": {
        "tags": [
          "SeriesTree"
        ],
        "summary": "Find the locations of the series in the database tree",
        "description": "Find the locations where this series can be found in the database tree.\nOAuth scope: macrobond_web_api.read_structure",
        "operationId": "seriestree_findlocations_get",
        "parameters": [
          {
            "name": "seriesName",
            "in": "query",
            "description": "The name of the series",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SeriesTreeLocationPart"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.read_structure"
            ]
          }
        ]
      }
    },
    "/v1/seriestree/getseriesstoragelocations": {
      "get": {
        "tags": [
          "In-house series"
        ],
        "summary": "Get list of locations where in-house series can be stored",
        "description": "Get a list of locations where in-house series can be stored.\nOAuth scope: macrobond_web_api.read_structure and macrobond_web_api.write_ih",
        "operationId": "seriestree_getseriesstoragelocations_get",
        "responses": {
          "200": {
            "description": "The operation was successful",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SeriesStorageLocationResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.read_structure",
              "macrobond_web_api.write_ih"
            ]
          }
        ]
      }
    },
    "/v1/seriestree/getusedinhousecategories": {
      "get": {
        "tags": [
          "In-house series"
        ],
        "summary": "Get a list of used in-house categories",
        "description": "Get a list of values of the IHCategory attribute that has previously been used. This can be used to suggest values to the user when creating in-house series.\nOAuth scope: macrobond_web_api.read_structure and macrobond_web_api.write_ih",
        "operationId": "seriestree_getusedinhousecategories_get",
        "responses": {
          "200": {
            "description": "The operation was successful",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.read_structure",
              "macrobond_web_api.write_ih"
            ]
          }
        ]
      }
    },
    "/v1/subscriptionlist/list": {
      "get": {
        "tags": [
          "SubscriptionList"
        ],
        "summary": "Return series names in the list",
        "description": "Return all the series names currently in the list.\nOAuth scope: macrobond_web_api.read_mb",
        "operationId": "subscriptionlist_list_get",
        "responses": {
          "200": {
            "description": "The operation was successful and the answer contains the names in the list",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.read_mb"
            ]
          }
        ]
      }
    },
    "/v1/subscriptionlist/getupdates": {
      "get": {
        "tags": [
          "SubscriptionList"
        ],
        "summary": "Get a list of names of series recently updated",
        "description": "Get the names and time of last modification of the series list. You can specify a timestamp to see what has changed since then. For this the timeStampForIfModifiedSince in the response from a previous call is typically used. This guarantees that you will not miss any updates, but you may see the same update more than once.\nOAuth scope: macrobond_web_api.read_mb",
        "operationId": "subscriptionlist_getupdates_get",
        "parameters": [
          {
            "name": "ifModifiedSince",
            "in": "query",
            "description": "The time to start checking from. This is typically the timeStampForIfModifiedSince from a previous call.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionListUpdatesResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.read_mb"
            ]
          }
        ]
      }
    },
    "/v1/subscriptionlist/set": {
      "post": {
        "tags": [
          "SubscriptionList"
        ],
        "summary": "Set the list of series",
        "description": "Set the list of series. This will replace any series already in the list. The changes might not be visible directly, but after a short delay.\nOAuth scope: macrobond_web_api.read_mb",
        "operationId": "subscriptionlist_set_post",
        "requestBody": {
          "description": "The name of all the series to include in the list",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The operation was successful"
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.read_mb"
            ]
          }
        ]
      }
    },
    "/v1/subscriptionlist/add": {
      "post": {
        "tags": [
          "SubscriptionList"
        ],
        "summary": "Add names to the list of series",
        "description": "Add to the list of series. The changes might not be visible directly, but after a short delay.\nOAuth scope: macrobond_web_api.read_mb",
        "operationId": "subscriptionlist_add_post",
        "requestBody": {
          "description": "The name of the series to add to the list",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The operation was successful"
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.read_mb"
            ]
          }
        ]
      }
    },
    "/v1/subscriptionlist/remove": {
      "post": {
        "tags": [
          "SubscriptionList"
        ],
        "summary": "Remove names from the list of series",
        "description": "Remove from the list of series. The changes might not be visible directly, but after a short delay.\nOAuth scope: macrobond_web_api.read_mb",
        "operationId": "subscriptionlist_remove_post",
        "requestBody": {
          "description": "The name of the series to remove from list",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The operation was successful"
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.read_mb"
            ]
          }
        ]
      }
    },
    "/v1/subscriptionlist/checkifnotincluded": {
      "post": {
        "tags": [
          "SubscriptionList"
        ],
        "summary": "Check what series names that are not yet in the list",
        "description": "Check what series names that are not yet in the list. Since adding new names takes a little while, this method can be used to poll for them to be added.\nOAuth scope: macrobond_web_api.read_mb",
        "operationId": "subscriptionlist_checkifnotincluded_post",
        "requestBody": {
          "description": "The name of the series to check",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The operation was successful and the answer contains the names not in the list",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.read_mb"
            ]
          }
        ]
      }
    },
    "/v1/release/upcomingreleases": {
      "get": {
        "tags": [
          "Release"
        ],
        "summary": "List the upcoming releases",
        "description": "List upcoming releases until provided cutoff time\nOAuth scope: macrobond_web_api.read_mb",
        "operationId": "release_upcomingreleases_get",
        "parameters": [
          {
            "name": "n",
            "in": "query",
            "description": "The name of one or more releases",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "endTime",
            "in": "query",
            "description": "The cutoff time. If not specified, 1 year from now will be used.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation was successful",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReleaseEntityResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "The requested entity was not a Release entity"
          },
          "404": {
            "description": "The entity was not found"
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.read_mb"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "Release"
        ],
        "summary": "List the upcoming releases",
        "description": "List upcoming releases until provided cutoff time\nOAuth scope: macrobond_web_api.read_mb",
        "operationId": "release_upcomingreleases_post",
        "parameters": [
          {
            "name": "endTime",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "requestBody": {
          "description": "The name of one or more releases to request",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "The operation was successful",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReleaseEntityResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "The requested entity was not a Release entity"
          },
          "404": {
            "description": "The entity was not found"
          },
          "401": {
            "description": "Unauthorized. Missing, invalid or expired access token."
          },
          "403": {
            "description": "Forbidden. Not authorized."
          },
          "429": {
            "description": "Too many requests. The maximum number of requests per day has been reached or the number of concurrent requests has been exceeded."
          }
        },
        "security": [
          {
            "ClientDirectAccess": [
              "macrobond_web_api.read_mb"
            ]
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "AttributeFilter": {
        "type": "object",
        "properties": {
          "attributeName": {
            "type": "string",
            "description": "The name of the attribute for this filter",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "The description of the attribute",
            "nullable": true
          },
          "values": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttributeFilterValue"
            },
            "description": "The list of values for this attribute",
            "nullable": true
          },
          "count": {
            "type": "integer",
            "description": "The count of entities that has this attribute",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "AttributeFilterCollection": {
        "type": "object",
        "properties": {
          "filters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttributeFilter"
            },
            "description": "The list of suggested filters",
            "nullable": true
          },
          "count": {
            "type": "integer",
            "description": "The count of entities covered by the filters",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "AttributeFilterValue": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string",
            "description": "The value of the attribute for this filter",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "The description of the value",
            "nullable": true
          },
          "count": {
            "type": "integer",
            "description": "The count of entities that has this value",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "CalendarDateMode": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "description": "\n\n0 = DataInAnySeries (All the series start or end when there is data in any series)\n\n1 = DataInAllSeries (All the series start or end when there is data in all series)",
        "format": "int32",
        "x-enumNames": [
          "DataInAnySeries",
          "DataInAllSeries"
        ],
        "x-enumDescriptions": [
          "All the series start or end when there is data in any series",
          "All the series start or end when there is data in all series"
        ]
      },
      "CalendarMergeMode": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "\n\n0 = FullCalendar (Include the full range implied by the frequency and weekday settings)\n\n1 = AvailableInAll (Use points in time that are available in all calendars)\n\n2 = AvailableInAny (Use points in time that are available in any calendar)",
        "format": "int32",
        "x-enumNames": [
          "FullCalendar",
          "AvailableInAll",
          "AvailableInAny"
        ],
        "x-enumDescriptions": [
          "Include the full range implied by the frequency and weekday settings",
          "Use points in time that are available in all calendars",
          "Use points in time that are available in any calendar"
        ]
      },
      "DataPackageListResponse": {
        "type": "object",
        "properties": {
          "timeStampForIfModifiedSince": {
            "type": "string",
            "description": "A timestamp to pass as the ifModifiedSince parameter in the next request to get incremental updates",
            "format": "date-time",
            "readOnly": true
          },
          "downloadFullListOnOrAfter": {
            "type": "string",
            "description": "Recommended earliest next time to request a full list by omitting timeStampForIfModifiedSince.",
            "format": "date-time",
            "nullable": true,
            "readOnly": true
          },
          "state": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DataPackageListState"
              }
            ],
            "description": "The state of this list.\n\n0 = FullListing (A complete listing of all series. Make another request for full data at some point after timestamp in downloadFullListOnOrAfter.)\n\n1 = UpToDate (The list contains all updates since the specified start date. Wait 15 minutes before making another request where timeStampForIfModifiedSince is used.)\n\n2 = Incomplete (The list might not contain all updates. Wait one minute and then use the timeStampForIfModifiedSince in an a new request.)",
            "readOnly": true,
            "x-enumNames": [
              "FullListing",
              "UpToDate",
              "Incomplete"
            ],
            "x-enumDescriptions": [
              "A complete listing of all series. Make another request for full data at some point after timestamp in downloadFullListOnOrAfter.",
              "The list contains all updates since the specified start date. Wait 15 minutes before making another request where timeStampForIfModifiedSince is used.",
              "The list might not contain all updates. Wait one minute and then use the timeStampForIfModifiedSince in an a new request."
            ]
          },
          "entities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EntityNameWithTimeStamp"
            },
            "description": "A list of entity names and timestamps when they were last modified.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "List of entities available in a data package"
      },
      "DataPackageListState": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "\n\n0 = FullListing (A complete listing of all series. Make another request for full data at some point after timestamp in downloadFullListOnOrAfter.)\n\n1 = UpToDate (The list contains all updates since the specified start date. Wait 15 minutes before making another request where timeStampForIfModifiedSince is used.)\n\n2 = Incomplete (The list might not contain all updates. Wait one minute and then use the timeStampForIfModifiedSince in an a new request.)",
        "format": "int32",
        "x-enumNames": [
          "FullListing",
          "UpToDate",
          "Incomplete"
        ],
        "x-enumDescriptions": [
          "A complete listing of all series. Make another request for full data at some point after timestamp in downloadFullListOnOrAfter.",
          "The list contains all updates since the specified start date. Wait 15 minutes before making another request where timeStampForIfModifiedSince is used.",
          "The list might not contain all updates. Wait one minute and then use the timeStampForIfModifiedSince in an a new request."
        ]
      },
      "DateTypeDefinedEntityRequest": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "nullable": true
          },
          "ifModifiedSince": {
            "type": "string",
            "description": "If specified, the entity will only be returned if modified since the specified time. If not, the ErrorCode field of the response will be NotModified (304).",
            "format": "date-time",
            "nullable": true
          },
          "dateEndOfPeriod": {
            "type": "boolean",
            "description": "If specified, dates will return as the last date in the period",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Request of an entity and an optional timestamp of last modification",
        "writeOnly": true
      },
      "EntityInfoForDisplayGroup": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "Heading of the group",
            "nullable": true
          },
          "title": {
            "type": "string",
            "description": "Title of the group",
            "nullable": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EntityInfoForDisplayItem"
            },
            "description": "List of information items",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EntityInfoForDisplayItem": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "Description of the item",
            "nullable": true
          },
          "comment": {
            "type": "string",
            "description": "The comment of the metadata value",
            "nullable": true
          },
          "valueType": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MetadataAttributeType"
              }
            ],
            "description": "The value type of the metadata attribute\n\n3 = Int (32-bit signed integer)\n\n5 = Double (64-bit IEEE floating point number)\n\n7 = TimeStamp (A time stamp including date, time of day and time zone)\n\n8 = String (A unicode string)\n\n11 = Bool (A boolean value that can be true of false)",
            "x-enumNames": [
              "Int",
              "Double",
              "TimeStamp",
              "String",
              "Bool"
            ],
            "x-enumDescriptions": [
              "32-bit signed integer",
              "64-bit IEEE floating point number",
              "A time stamp including date, time of day and time zone",
              "A unicode string",
              "A boolean value that can be true of false"
            ]
          },
          "valueRestriction": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MetadataAttributeTypeRestriction"
              }
            ],
            "description": "Restriction on the value type\n\n1 = Url (The string is an URL)\n\n2 = Email (The string is an e-mail address)\n\n3 = Date (Only the date of the TimeStamp is valid)\n\n4 = Positive (The integer or double is >= 0)\n\n5 = Json (The string is encoded as JSON)",
            "nullable": true
          },
          "value": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "boolean"
              },
              {
                "type": "decimal"
              }
            ],
            "description": "The item value",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EntityInfoForDisplayResponse": {
        "type": "object",
        "properties": {
          "groups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EntityInfoForDisplayGroup"
            },
            "description": "A list of information groups",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Entity search response with metadata displayed for presentation purposes"
      },
      "EntityNameWithTimeStamp": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The entity name",
            "nullable": true
          },
          "modified": {
            "type": "string",
            "description": "Timestamp when this entity was last modified",
            "format": "date-time",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Name and timestamp of an entity"
      },
      "EntityRequest": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the entity",
            "nullable": true
          },
          "ifModifiedSince": {
            "type": "string",
            "description": "If specified, the entity will only be returned if modified since the specified time. If not, the ErrorCode field of the response will be NotModified (304).",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Request of an entity and an optional timestamp of last modification",
        "writeOnly": true
      },
      "EntityResponse": {
        "type": "object",
        "properties": {
          "errorText": {
            "type": "string",
            "description": "The error text if there was an error or not specified if there was no error",
            "nullable": true,
            "readOnly": true
          },
          "errorCode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ResponseErrorCode"
              }
            ],
            "description": "Set if there was an error and not specified if there was no error\n\n206 = PartialContent (The operation was successful, but only new revisions are included)\n\n304 = NotModified (The item was not modified and is not included in the response)\n\n403 = Forbidden (Access to the item was denied)\n\n404 = NotFound (The item was not found)\n\n429 = QuotaExceeded (Quota exceeded)\n\n500 = Other (There was an error and it is described in the error text)",
            "nullable": true,
            "readOnly": true
          },
          "metadata": {
            "type": "object",
            "additionalProperties": { },
            "description": "The metadata of the entity or not specified if there was an error",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Information about an entity"
      },
      "ItemInformation": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "The title of the item",
            "nullable": true
          },
          "path": {
            "type": "string",
            "description": "The path of the item",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ItemListingResponse": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "The title of the directory",
            "nullable": true
          },
          "directories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ItemListingResponse"
            },
            "description": "The list of sub directories if any.",
            "nullable": true,
            "readOnly": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ItemInformation"
            },
            "description": "The list of if any.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "The response of listing items that can be organized into directories"
      },
      "MetadataAttributeInformationResponse": {
        "required": [
          "Description",
          "Name",
          "ValueType"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the metadata attribute",
            "nullable": true,
            "readOnly": true
          },
          "description": {
            "type": "string",
            "description": "The description of the metadata attribute",
            "nullable": true,
            "readOnly": true
          },
          "comment": {
            "type": "string",
            "description": "The comment of the metadata attribute",
            "nullable": true,
            "readOnly": true
          },
          "valueType": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MetadataAttributeType"
              }
            ],
            "description": "The value type of the metadata attribute\n\n3 = Int (32-bit signed integer)\n\n5 = Double (64-bit IEEE floating point number)\n\n7 = TimeStamp (A time stamp including date, time of day and time zone)\n\n8 = String (A unicode string)\n\n11 = Bool (A boolean value that can be true of false)",
            "readOnly": true,
            "x-enumNames": [
              "Int",
              "Double",
              "TimeStamp",
              "String",
              "Bool"
            ],
            "x-enumDescriptions": [
              "32-bit signed integer",
              "64-bit IEEE floating point number",
              "A time stamp including date, time of day and time zone",
              "A unicode string",
              "A boolean value that can be true of false"
            ]
          },
          "valueRestriction": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MetadataAttributeTypeRestriction"
              }
            ],
            "description": "Restriction on the value type\n\n1 = Url (The string is an URL)\n\n2 = Email (The string is an e-mail address)\n\n3 = Date (Only the date of the TimeStamp is valid)\n\n4 = Positive (The integer or double is >= 0)\n\n5 = Json (The string is encoded as JSON)",
            "nullable": true,
            "readOnly": true
          },
          "usesValueList": {
            "type": "boolean",
            "description": "If True, the metadata attribute uses a list of values",
            "readOnly": true
          },
          "canListValues": {
            "type": "boolean",
            "description": "If True then the values of this type of metadata can be listen using the ListAllValues function",
            "readOnly": true
          },
          "canHaveMultipleValues": {
            "type": "boolean",
            "description": "If True then this type of metadata can have multiple values in a metadata collection",
            "readOnly": true
          },
          "isDatabaseEntity": {
            "type": "boolean",
            "description": "If True then this type of metadata is an entity that can be retrieved from the database",
            "readOnly": true
          },
          "appliesTo": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "If provided, specifies what types of entities that this attribute applies to",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Information about a metadata attribute"
      },
      "MetadataAttributeType": {
        "enum": [
          3,
          5,
          7,
          8,
          11
        ],
        "type": "integer",
        "description": "\n\n3 = Int (32-bit signed integer)\n\n5 = Double (64-bit IEEE floating point number)\n\n7 = TimeStamp (A time stamp including date, time of day and time zone)\n\n8 = String (A unicode string)\n\n11 = Bool (A boolean value that can be true of false)",
        "format": "int32",
        "x-enumNames": [
          "Int",
          "Double",
          "TimeStamp",
          "String",
          "Bool"
        ],
        "x-enumDescriptions": [
          "32-bit signed integer",
          "64-bit IEEE floating point number",
          "A time stamp including date, time of day and time zone",
          "A unicode string",
          "A boolean value that can be true of false"
        ]
      },
      "MetadataAttributeTypeRestriction": {
        "enum": [
          1,
          2,
          3,
          4,
          5
        ],
        "type": "integer",
        "description": "\n\n1 = Url (The string is an URL)\n\n2 = Email (The string is an e-mail address)\n\n3 = Date (Only the date of the TimeStamp is valid)\n\n4 = Positive (The integer or double is >= 0)\n\n5 = Json (The string is encoded as JSON)",
        "format": "int32",
        "x-enumNames": [
          "Url",
          "Email",
          "Date",
          "Positive",
          "Json"
        ],
        "x-enumDescriptions": [
          "The string is an URL",
          "The string is an e-mail address",
          "Only the date of the TimeStamp is valid",
          "The integer or double is >= 0",
          "The string is encoded as JSON"
        ]
      },
      "MetadataValueInformationResponse": {
        "type": "object",
        "properties": {
          "attributeName": {
            "type": "string",
            "description": "The name of the metadata attribute",
            "nullable": true,
            "readOnly": true
          },
          "value": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "boolean"
              },
              {
                "type": "decimal"
              }
            ],
            "description": "The value",
            "nullable": true,
            "readOnly": true
          },
          "description": {
            "type": "string",
            "description": "The description of the metadata value",
            "nullable": true,
            "readOnly": true
          },
          "comment": {
            "type": "string",
            "description": "The comment of the metadata value",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Information about a metadata value"
      },
      "ReleaseEntityResponse": {
        "type": "object",
        "properties": {
          "errorText": {
            "type": "string",
            "description": "The error text if there was an error or not specified if there was no error",
            "nullable": true,
            "readOnly": true
          },
          "errorCode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ResponseErrorCode"
              }
            ],
            "description": "Set if there was an error and not specified if there was no error\n\n206 = PartialContent (The operation was successful, but only new revisions are included)\n\n304 = NotModified (The item was not modified and is not included in the response)\n\n403 = Forbidden (Access to the item was denied)\n\n404 = NotFound (The item was not found)\n\n429 = QuotaExceeded (Quota exceeded)\n\n500 = Other (There was an error and it is described in the error text)",
            "nullable": true,
            "readOnly": true
          },
          "metadata": {
            "type": "object",
            "additionalProperties": { },
            "description": "The metadata of the entity or not specified if there was an error",
            "nullable": true
          },
          "events": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReleaseEventItem"
            },
            "description": "The schedule of the release or not specified if the schedule is not known of if there was an error",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A release entity"
      },
      "ReleaseEventItem": {
        "type": "object",
        "properties": {
          "expectedReleaseTime": {
            "type": "string",
            "description": "The time when Macrobond expects the next update. This takes known delays and other factors into account.",
            "format": "date-time"
          },
          "sourceReleaseTime": {
            "type": "string",
            "description": "The time when the next update will be published according to the data source",
            "format": "date-time"
          },
          "referencePeriodDate": {
            "type": "string",
            "description": "The reference period of the expected update",
            "format": "date-time",
            "nullable": true
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "kind": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ReleaseEventItemKind"
              }
            ],
            "description": "The kind of event this item represents\n\n0 = Unknown (Unknown)\n\n1 = Revised (Revised values)\n\n2 = New (New values)",
            "x-enumNames": [
              "Unknown",
              "Revised",
              "New"
            ],
            "x-enumDescriptions": [
              "Unknown",
              "Revised values",
              "New values"
            ]
          }
        },
        "additionalProperties": false
      },
      "ReleaseEventItemKind": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "\n\n0 = Unknown (Unknown)\n\n1 = Revised (Revised values)\n\n2 = New (New values)",
        "format": "int32",
        "x-enumNames": [
          "Unknown",
          "Revised",
          "New"
        ],
        "x-enumDescriptions": [
          "Unknown",
          "Revised values",
          "New values"
        ]
      },
      "ResponseErrorCode": {
        "enum": [
          206,
          304,
          403,
          404,
          429,
          500
        ],
        "type": "integer",
        "description": "\n\n206 = PartialContent (The operation was successful, but only new revisions are included)\n\n304 = NotModified (The item was not modified and is not included in the response)\n\n403 = Forbidden (Access to the item was denied)\n\n404 = NotFound (The item was not found)\n\n429 = QuotaExceeded (Quota exceeded)\n\n500 = Other (There was an error and it is described in the error text)",
        "format": "int32",
        "x-enumNames": [
          "PartialContent",
          "NotModified",
          "Forbidden",
          "NotFound",
          "QuotaExceeded",
          "Other"
        ],
        "x-enumDescriptions": [
          "The operation was successful, but only new revisions are included",
          "The item was not modified and is not included in the response",
          "Access to the item was denied",
          "The item was not found",
          "Quota exceeded",
          "There was an error and it is described in the error text"
        ]
      },
      "RevisionHistoryRequest": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the series",
            "nullable": true
          },
          "ifModifiedSince": {
            "type": "string",
            "description": "If specified, the series will only be returned if modified since the specified time. If not, NotModified (304) will be returned. The value should be from the metadata LastModifiedTimeStamp of the previous response.",
            "format": "date-time",
            "nullable": true
          },
          "lastRevision": {
            "type": "string",
            "description": "If specified, incremental updates can be return. PartialContent (206) will be returned in that case. The value should be from the metadata LastRevisionTimeStamp of the previous response.",
            "format": "date-time",
            "nullable": true
          },
          "lastRevisionAdjustment": {
            "type": "string",
            "description": "If specified, incremental updates can be return. PartialContent (206) will be returned in that case. The value should be from the metadata LastRevisionAdjustmentTimeStamp of the previous response.",
            "format": "date-time",
            "nullable": true
          },
          "dateEndOfPeriod": {
            "type": "boolean",
            "description": "If specified, dates will return as the last date in the period",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Request of new revisions of a time series",
        "writeOnly": true
      },
      "SearchFilter": {
        "type": "object",
        "properties": {
          "entityTypes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "One or more entity types to include in the search. An empty list will include all types. If not specified, the search will be made for TimeSeries.",
            "nullable": true
          },
          "mustHaveValues": {
            "type": "object",
            "additionalProperties": { },
            "description": "Pairs of attributes and values to be matched against entities when searching",
            "nullable": true
          },
          "mustNotHaveValues": {
            "type": "object",
            "additionalProperties": { },
            "description": "Pairs of attributes and values to exclude entities when searching",
            "nullable": true
          },
          "mustHaveAttributes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Attributes to be matched against entities when searching. Any value will match.",
            "nullable": true
          },
          "mustNotHaveAttributes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Attributes to exclude entities when searching. Any value will match.",
            "nullable": true
          },
          "text": {
            "type": "string",
            "description": "Words to search for separated by space.",
            "nullable": true
          },
          "mustHaveFilterListPath": {
            "type": "string",
            "description": "Optional path to filter list that is added to the set of MustHaveValues. The paths are typically obtained from a call ListFilterLists.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A filter in a search request"
      },
      "SearchForDisplayRequest": {
        "required": [
          "attributesForDisplayFormat",
          "filter"
        ],
        "type": "object",
        "properties": {
          "includeDiscontinued": {
            "type": "boolean",
            "description": "If True, discontinued entities will be included in the search"
          },
          "filters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SearchFilter"
            },
            "description": "One or more filters that specifies what to search for",
            "nullable": true
          },
          "suggestFilters": {
            "type": "boolean",
            "description": "If set to true, include suggestions of filters in the search result.",
            "nullable": true
          },
          "attributesForDisplayFormat": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Attributes to return that will be formatted for as presentable text.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Information about a search request with metadata as presentable text",
        "writeOnly": true
      },
      "SearchForDisplayResponse": {
        "type": "object",
        "properties": {
          "isTruncated": {
            "type": "boolean",
            "description": "If True, the search response is truncated",
            "nullable": true
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": { }
            },
            "description": "The matched entites",
            "nullable": true
          },
          "filterSuggestions": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AttributeFilterCollection"
              }
            ],
            "description": "Filter suggestions",
            "nullable": true,
            "readOnly": true
          },
          "commonTitle": {
            "type": "string",
            "description": "The common part of the title",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Entity search response with metadata displayed for presentation purposes"
      },
      "SearchRequest": {
        "required": [
          "filter"
        ],
        "type": "object",
        "properties": {
          "includeDiscontinued": {
            "type": "boolean",
            "description": "If True, discontinued entities will be included in the search"
          },
          "filters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SearchFilter"
            },
            "description": "One or more filters that specifies what to search for",
            "nullable": true
          },
          "suggestFilters": {
            "type": "boolean",
            "description": "If set to true, include suggestions of filters in the search result.",
            "nullable": true
          },
          "noMetadata": {
            "type": "boolean",
            "description": "If set to true, no metadata but only the name of the entities will be returned.",
            "nullable": true
          },
          "allowLongResult": {
            "type": "boolean",
            "description": "If set to true, allow for longer search results. noMetaData must be set to true.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Information about a search request",
        "writeOnly": true
      },
      "SearchResponse": {
        "type": "object",
        "properties": {
          "isTruncated": {
            "type": "boolean",
            "description": "If True, the search response is truncated",
            "nullable": true
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": { }
            },
            "description": "The matched entites",
            "nullable": true
          },
          "filterSuggestions": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AttributeFilterCollection"
              }
            ],
            "description": "Filter suggestions",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Entity search response"
      },
      "SeriesFrequency": {
        "enum": [
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          100,
          101
        ],
        "type": "integer",
        "description": "\n\n1 = Annual (Once a year)\n\n2 = SemiAnnual (One in half a year)\n\n3 = QuadMonthly\n\n4 = Quarterly (Once a quarter)\n\n5 = BiMonthly (Once every 2 months)\n\n6 = Monthly (Once a month)\n\n7 = Weekly (Once a week)\n\n8 = Daily (Once a day)\n\n100 = Lowest (The lowest frequency)\n\n101 = Highest (The highest frequency)",
        "format": "int32",
        "x-enumNames": [
          "Annual",
          "SemiAnnual",
          "QuadMonthly",
          "Quarterly",
          "BiMonthly",
          "Monthly",
          "Weekly",
          "Daily",
          "Lowest",
          "Highest"
        ],
        "x-enumDescriptions": [
          "Once a year",
          "One in half a year",
          "",
          "Once a quarter",
          "Once every 2 months",
          "Once a month",
          "Once a week",
          "Once a day",
          "The lowest frequency",
          "The highest frequency"
        ]
      },
      "SeriesMissingValueMethod": {
        "enum": [
          0,
          1,
          2,
          3,
          4
        ],
        "type": "integer",
        "description": "\n\n0 = None (Do not fill in missing values)\n\n1 = Auto (Determine the method based on the series classification)\n\n2 = PreviousValue (Use the previous non-missing value)\n\n3 = ZeroValue (Use the value zero)\n\n4 = LinearInterpolation (Do a linear interpolation)",
        "format": "int32",
        "x-enumNames": [
          "None",
          "Auto",
          "PreviousValue",
          "ZeroValue",
          "LinearInterpolation"
        ],
        "x-enumDescriptions": [
          "Do not fill in missing values",
          "Determine the method based on the series classification",
          "Use the previous non-missing value",
          "Use the value zero",
          "Do a linear interpolation"
        ]
      },
      "SeriesObservationHistoryResponse": {
        "type": "object",
        "properties": {
          "observationDate": {
            "type": "string",
            "description": "The date of the observation",
            "format": "date"
          },
          "values": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double",
              "nullable": true
            },
            "description": "The historical values of the observation or an empty list if there are no recorded values for the specified date.",
            "nullable": true
          },
          "timeStamps": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "description": "A list of timestamps of when the historical values were recorded. The first timestamp may be null if the time of the original is unknown.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The history of changes of an observation"
      },
      "SeriesPartialPeriodsMethod": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5
        ],
        "type": "integer",
        "description": "\n\n0 = None (Type of partial period method when converting to lower frequency)\n\n1 = Auto (Determine the method based on the series meta data)\n\n2 = RepeatLastValue (Fill up the partial period by repeating the last value)\n\n3 = FlowCurrentSum (Fill up the partial period with the average of the incomplete period)\n\n4 = PastRateOfChange (Use the rate of change from the previous year to extend the partial period)\n\n5 = Zero (Fill up the partial period with zeroes)",
        "format": "int32",
        "x-enumNames": [
          "None",
          "Auto",
          "RepeatLastValue",
          "FlowCurrentSum",
          "PastRateOfChange",
          "Zero"
        ],
        "x-enumDescriptions": [
          "Type of partial period method when converting to lower frequency",
          "Determine the method based on the series meta data",
          "Fill up the partial period by repeating the last value",
          "Fill up the partial period with the average of the incomplete period",
          "Use the rate of change from the previous year to extend the partial period",
          "Fill up the partial period with zeroes"
        ]
      },
      "SeriesRequest": {
        "type": "object",
        "properties": {
          "values": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double",
              "nullable": true
            },
            "description": "The values of the series.",
            "nullable": true
          },
          "dates": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "date-time"
            },
            "description": "The dates of the series or not specified if deducted from metadata. When included, it must be the same length as the list of Values.",
            "format": "date",
            "nullable": true
          },
          "forecastFlags": {
            "type": "array",
            "items": {
              "type": "boolean"
            },
            "description": "An optional array of forecast flags. When included, it must be the same length as the list of Values.",
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "additionalProperties": { },
            "description": "The metadata.",
            "nullable": true
          },
          "metadataBaseSeries": {
            "type": "string",
            "description": "An optional existing series to inherit metadata from.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A time series request"
      },
      "SeriesResponse": {
        "type": "object",
        "properties": {
          "errorText": {
            "type": "string",
            "description": "The error text if there was an error or not specified if there was no error",
            "nullable": true,
            "readOnly": true
          },
          "errorCode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ResponseErrorCode"
              }
            ],
            "description": "Set if there was an error and not specified if there was no error\n\n206 = PartialContent (The operation was successful, but only new revisions are included)\n\n304 = NotModified (The item was not modified and is not included in the response)\n\n403 = Forbidden (Access to the item was denied)\n\n404 = NotFound (The item was not found)\n\n429 = QuotaExceeded (Quota exceeded)\n\n500 = Other (There was an error and it is described in the error text)",
            "nullable": true,
            "readOnly": true
          },
          "metadata": {
            "type": "object",
            "additionalProperties": { },
            "description": "The metadata of the entity or not specified if there was an error",
            "nullable": true
          },
          "values": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double",
              "nullable": true
            },
            "description": "The values of the series or not specified if there was an error. Missing values are represented by null.",
            "nullable": true
          },
          "dates": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "date-time"
            },
            "description": "The dates of the series or not specified if there was an error",
            "format": "date",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A time series"
      },
      "SeriesStorageLocationResponse": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The description of the location",
            "nullable": true
          },
          "seriesPrefix": {
            "type": "string",
            "description": "The series prefix to use for this location",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A series storage location"
      },
      "SeriesToHigherFrequencyMethod": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8
        ],
        "type": "integer",
        "description": "\n\n0 = Auto (Determine the method based on the series classification)\n\n1 = Same (Duplicate the lower frequency value for each of the higher frequency series positions)\n\n2 = Distribute (Distribute the lower frequency value into equal sized parts for each of the higher frequency series positions)\n\n3 = PercentageChange (Distribute the percentage change so that the product of the higher frequency observations - 100, is the same)\n\n4 = LinearInterpolation (Use a linear interpolation between each pair of lower frequency values to fill in each of the higher frequency values)\n\n5 = Pulse (Sets the value for the first observation in the period range and the other values to 'missing')\n\n6 = QuadraticDistribution (Use a quadratic interpolation that optimize the area under the lower frequency values to fill in the higher frequency values)\n\n7 = CubicInterpolation (Use a cubic interpolation that optimize the area under the lower frequency values to fill in the higher frequency values)\n\n8 = ConditionalPercentageChange (Distribute the percentage change so that the product of the higher frequency observations - 100, is the same, but only if pp100 is set on the series)",
        "format": "int32",
        "x-enumNames": [
          "Auto",
          "Same",
          "Distribute",
          "PercentageChange",
          "LinearInterpolation",
          "Pulse",
          "QuadraticDistribution",
          "CubicInterpolation",
          "ConditionalPercentageChange"
        ],
        "x-enumDescriptions": [
          "Determine the method based on the series classification",
          "Duplicate the lower frequency value for each of the higher frequency series positions",
          "Distribute the lower frequency value into equal sized parts for each of the higher frequency series positions",
          "Distribute the percentage change so that the product of the higher frequency observations - 100, is the same",
          "Use a linear interpolation between each pair of lower frequency values to fill in each of the higher frequency values",
          "Sets the value for the first observation in the period range and the other values to 'missing'",
          "Use a quadratic interpolation that optimize the area under the lower frequency values to fill in the higher frequency values",
          "Use a cubic interpolation that optimize the area under the lower frequency values to fill in the higher frequency values",
          "Distribute the percentage change so that the product of the higher frequency observations - 100, is the same, but only if pp100 is set on the series"
        ]
      },
      "SeriesToLowerFrequencyMethod": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8
        ],
        "type": "integer",
        "description": "\n\n0 = Auto (Determine the method based on the series classification)\n\n1 = Last (Use last observation in higher frequency when converting to lower frequency)\n\n2 = First (Use first observation in higher frequency when converting to lower frequency)\n\n3 = Flow (Use aggregate of observations in higher frequency when converting to lower frequency)\n\n4 = PercentageChange (Use recalculated percentage changes when converting pp100 series to lower frequency)\n\n5 = Highest (Use highest observation in higher frequency when converting to lower frequency)\n\n6 = Lowest (Use lowest observation in higher frequency when converting to lower frequency)\n\n7 = Average (Use average of observations in higher frequency when converting to lower frequency)\n\n8 = ConditionalPercentageChange (Use recalculated percentage changes when converting pp100 series to lower frequency, but only if it actually has the pp100 attribute)",
        "format": "int32",
        "x-enumNames": [
          "Auto",
          "Last",
          "First",
          "Flow",
          "PercentageChange",
          "Highest",
          "Lowest",
          "Average",
          "ConditionalPercentageChange"
        ],
        "x-enumDescriptions": [
          "Determine the method based on the series classification",
          "Use last observation in higher frequency when converting to lower frequency",
          "Use first observation in higher frequency when converting to lower frequency",
          "Use aggregate of observations in higher frequency when converting to lower frequency",
          "Use recalculated percentage changes when converting pp100 series to lower frequency",
          "Use highest observation in higher frequency when converting to lower frequency",
          "Use lowest observation in higher frequency when converting to lower frequency",
          "Use average of observations in higher frequency when converting to lower frequency",
          "Use recalculated percentage changes when converting pp100 series to lower frequency, but only if it actually has the pp100 attribute"
        ]
      },
      "SeriesTreeListingAspect": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "The title of the aspect. This is might be omitted if there is only one aspect.",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "A longer description of the aspect that can be used as a tooltip. This is might be omitted if there is only one aspect.",
            "nullable": true
          },
          "groups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SeriesTreeListingGroup"
            },
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Defines an aspect in a structured series list"
      },
      "SeriesTreeListingGroup": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "The title of the group. This is might be omitted if there is only one group.",
            "nullable": true
          },
          "series": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SeriesTreeListingSeries"
            },
            "description": "The list of series in this group.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Defines an aspect in a structured series list"
      },
      "SeriesTreeListingResponse": {
        "type": "object",
        "properties": {
          "commonTitle": {
            "type": "string",
            "description": "The common part of the series titles",
            "nullable": true
          },
          "hasAspects": {
            "type": "boolean",
            "description": "If True then there are several aspects of the series which is typically displayed as tabs",
            "readOnly": true
          },
          "hasGroups": {
            "type": "boolean",
            "description": "If True then the list is grouped"
          },
          "aspects": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SeriesTreeListingAspect"
            },
            "description": "The list of aspects. There will always be at least one.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A structured list of series for a leaf in the series database tree"
      },
      "SeriesTreeListingSeries": {
        "type": "object",
        "properties": {
          "discontinued": {
            "type": "boolean",
            "description": "If True then the series is discontinued. This is typically indicated by drawing the series title in red.",
            "nullable": true
          },
          "indentation": {
            "type": "integer",
            "description": "The indentation level.",
            "format": "int32",
            "nullable": true
          },
          "emphasized": {
            "type": "boolean",
            "description": "If True then the series is emphasized. This is typically indicated by drawing the series title in bold.",
            "nullable": true,
            "readOnly": true
          },
          "spaceAbove": {
            "type": "boolean",
            "description": "If True then some extra space should be drawn above this series.",
            "nullable": true,
            "readOnly": true
          },
          "properties": {
            "type": "object",
            "additionalProperties": { },
            "description": "Properties that can be used for display purposes. It will always contain a property called Description. If there is a series, the property Name will contain the series name. If there is no Name, the series is missing and the description is typically shown as 'disabled'.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Defines an aspect in a structured series list"
      },
      "SeriesTreeLocationPart": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "The title of the location element",
            "nullable": true
          },
          "child": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SeriesTreeLocationPart"
              }
            ],
            "description": "The child of the location part",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A location in the database tree"
      },
      "SeriesTreeNodeBranch": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SeriesTreeNodeResponse"
          },
          {
            "type": "object",
            "properties": {
              "children": {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/SeriesTreeNodeLeaf"
                    },
                    {
                      "$ref": "#/components/schemas/SeriesTreeNodeBranch"
                    },
                    {
                      "$ref": "#/components/schemas/SeriesTreeNodeBranchRef"
                    }
                  ],
                  "description": "Information about a node in the series database tree"
                },
                "description": "The children of this branch",
                "nullable": true
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Information about a branch in the series database tree"
      },
      "SeriesTreeNodeBranchRef": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SeriesTreeNodeResponse"
          },
          {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "description": "The path of the sub tree",
                "nullable": true
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Information about a branch reference in the series database tree"
      },
      "SeriesTreeNodeLeaf": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SeriesTreeNodeResponse"
          },
          {
            "type": "object",
            "additionalProperties": false
          }
        ],
        "description": "Information about a leaf in the series database tree"
      },
      "SeriesTreeNodeResponse": {
        "required": [
          "nodeType"
        ],
        "type": "object",
        "properties": {
          "nodeType": {
            "type": "string",
            "description": "The node type. Can be one of 'leaf', 'branch', 'branchref'.",
            "nullable": true,
            "readOnly": true
          },
          "title": {
            "type": "string",
            "description": "The title of the tree node",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Information about a node in the series database tree",
        "discriminator": {
          "propertyName": "nodeType",
          "mapping": {
            "leaf": "#/components/schemas/SeriesTreeNodeLeaf",
            "branch": "#/components/schemas/SeriesTreeNodeBranch",
            "branchref": "#/components/schemas/SeriesTreeNodeBranchRef"
          }
        }
      },
      "SeriesWeekdays": {
        "enum": [
          1,
          2,
          4,
          8,
          16,
          31,
          32,
          62,
          64,
          79,
          94,
          95,
          127
        ],
        "type": "integer",
        "description": "\n\n1 = Sunday (Represents a Sunday)\n\n2 = Monday (Represents a Monday)\n\n4 = Tuesday (Represents a Tuesday)\n\n8 = Wednesday (Represents a Wednesday)\n\n16 = Thursday (Represents a Thursday)\n\n31 = SundayToThursday (Sunday to Thursday daymask, weekend on Friday and Saturday)\n\n32 = Friday (Represents a Friday)\n\n62 = MondayToFriday (Standard five day week)\n\n64 = Saturday (Represents a Saturday)\n\n79 = SaturdayToWednesday (Saturday to Wednesday daymask, weekend on Thursday and Friday)\n\n94 = MondayToThursdayAndSaturday (Monday to Thursday and Saturday, weekend on Friday and Sunday)\n\n95 = SaturdayToThursday (Saturday to Thursday, weekend on Friday)\n\n127 = FullWeek (All days of the week)",
        "format": "int32",
        "x-enumNames": [
          "Sunday",
          "Monday",
          "Tuesday",
          "Wednesday",
          "Thursday",
          "SundayToThursday",
          "Friday",
          "MondayToFriday",
          "Saturday",
          "SaturdayToWednesday",
          "MondayToThursdayAndSaturday",
          "SaturdayToThursday",
          "FullWeek"
        ],
        "x-enumDescriptions": [
          "Represents a Sunday",
          "Represents a Monday",
          "Represents a Tuesday",
          "Represents a Wednesday",
          "Represents a Thursday",
          "Sunday to Thursday daymask, weekend on Friday and Saturday",
          "Represents a Friday",
          "Standard five day week",
          "Represents a Saturday",
          "Saturday to Wednesday daymask, weekend on Thursday and Friday",
          "Monday to Thursday and Saturday, weekend on Friday and Sunday",
          "Saturday to Thursday, weekend on Friday",
          "All days of the week"
        ]
      },
      "SeriesWithRevisionsInfoResponse": {
        "type": "object",
        "properties": {
          "errorText": {
            "type": "string",
            "description": "The error text if there was an error or not specified if there was no error",
            "nullable": true,
            "readOnly": true
          },
          "errorCode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ResponseErrorCode"
              }
            ],
            "description": "Set if there was an error and not specified if there was no error\n\n206 = PartialContent (The operation was successful, but only new revisions are included)\n\n304 = NotModified (The item was not modified and is not included in the response)\n\n403 = Forbidden (Access to the item was denied)\n\n404 = NotFound (The item was not found)\n\n429 = QuotaExceeded (Quota exceeded)\n\n500 = Other (There was an error and it is described in the error text)",
            "nullable": true,
            "readOnly": true
          },
          "storesRevisions": {
            "type": "boolean",
            "description": "If True, a record of of updates of the series are stored",
            "nullable": true,
            "readOnly": true
          },
          "hasRevisions": {
            "type": "boolean",
            "description": "If True, at least one update has been stored",
            "nullable": true,
            "readOnly": true
          },
          "timeStampOfFirstRevision": {
            "type": "string",
            "description": "The timestamp of the first recorded update",
            "format": "date-time",
            "nullable": true,
            "readOnly": true
          },
          "timeStampOfLastRevision": {
            "type": "string",
            "description": "The timestamp of the last recorded update",
            "format": "date-time",
            "nullable": true,
            "readOnly": true
          },
          "vintageTimeStamps": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "date-time"
            },
            "description": "A list of timestamp of recorded updates",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Information about a series related to storage of updates"
      },
      "SeriesWithTimesOfChangeResponse": {
        "type": "object",
        "properties": {
          "errorText": {
            "type": "string",
            "description": "The error text if there was an error or not specified if there was no error",
            "nullable": true,
            "readOnly": true
          },
          "errorCode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ResponseErrorCode"
              }
            ],
            "description": "Set if there was an error and not specified if there was no error\n\n206 = PartialContent (The operation was successful, but only new revisions are included)\n\n304 = NotModified (The item was not modified and is not included in the response)\n\n403 = Forbidden (Access to the item was denied)\n\n404 = NotFound (The item was not found)\n\n429 = QuotaExceeded (Quota exceeded)\n\n500 = Other (There was an error and it is described in the error text)",
            "nullable": true,
            "readOnly": true
          },
          "metadata": {
            "type": "object",
            "additionalProperties": { },
            "description": "The metadata of the entity or not specified if there was an error",
            "nullable": true
          },
          "values": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double",
              "nullable": true
            },
            "description": "The values of the series or not specified if there was an error. Missing values are represented by null.",
            "nullable": true
          },
          "dates": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "date-time"
            },
            "description": "The dates of the series or not specified if there was an error",
            "format": "date",
            "nullable": true
          },
          "timesOfChange": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "description": "The time each value was last modified",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "A time series with times of change"
      },
      "SeriesWithVintagesResponse": {
        "type": "object",
        "properties": {
          "errorText": {
            "type": "string",
            "description": "The error text if there was an error or not specified if there was no error",
            "nullable": true,
            "readOnly": true
          },
          "errorCode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ResponseErrorCode"
              }
            ],
            "description": "Set if there was an error and not specified if there was no error\n\n206 = PartialContent (The operation was successful, but only new revisions are included)\n\n304 = NotModified (The item was not modified and is not included in the response)\n\n403 = Forbidden (Access to the item was denied)\n\n404 = NotFound (The item was not found)\n\n429 = QuotaExceeded (Quota exceeded)\n\n500 = Other (There was an error and it is described in the error text)",
            "nullable": true,
            "readOnly": true
          },
          "metadata": {
            "type": "object",
            "additionalProperties": { },
            "description": "The metadata of the entity or not specified if there was an error",
            "nullable": true
          },
          "vintages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VintageValuesResponse"
            },
            "description": "The collection of vintages",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A time series with times of change"
      },
      "SubscriptionListUpdatesResponse": {
        "type": "object",
        "properties": {
          "timeStampForIfModifiedSince": {
            "type": "string",
            "description": "A timestamp to pass as the ifModifiedSince parameter in the next request to get incremental updates",
            "format": "date-time"
          },
          "noMoreChanges": {
            "type": "boolean",
            "description": "Set to True if there are no more changes. Wait a while before polling again."
          },
          "entities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EntityNameWithTimeStamp"
            },
            "description": "A list of entity names and timestamps when they were last modified. The list might be empty while still NoMoreChanges is false.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "List of the names of the series that have been updated"
      },
      "UnifiedSeriesEntry": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the series.",
            "nullable": true
          },
          "missingValueMethod": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SeriesMissingValueMethod"
              }
            ],
            "description": "The method for filling in missing values. The default is the automatic method.\n\n0 = None (Do not fill in missing values)\n\n1 = Auto (Determine the method based on the series classification)\n\n2 = PreviousValue (Use the previous non-missing value)\n\n3 = ZeroValue (Use the value zero)\n\n4 = LinearInterpolation (Do a linear interpolation)",
            "nullable": true
          },
          "toLowerFrequencyMethod": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SeriesToLowerFrequencyMethod"
              }
            ],
            "description": "The method to converting to lower frequency. The default is the automatic method.\n\n0 = Auto (Determine the method based on the series classification)\n\n1 = Last (Use last observation in higher frequency when converting to lower frequency)\n\n2 = First (Use first observation in higher frequency when converting to lower frequency)\n\n3 = Flow (Use aggregate of observations in higher frequency when converting to lower frequency)\n\n4 = PercentageChange (Use recalculated percentage changes when converting pp100 series to lower frequency)\n\n5 = Highest (Use highest observation in higher frequency when converting to lower frequency)\n\n6 = Lowest (Use lowest observation in higher frequency when converting to lower frequency)\n\n7 = Average (Use average of observations in higher frequency when converting to lower frequency)\n\n8 = ConditionalPercentageChange (Use recalculated percentage changes when converting pp100 series to lower frequency, but only if it actually has the pp100 attribute)",
            "nullable": true
          },
          "toHigherFrequencyMethod": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SeriesToHigherFrequencyMethod"
              }
            ],
            "description": "The method to converting to higher frequency. The default is the automatic method.\n\n0 = Auto (Determine the method based on the series classification)\n\n1 = Same (Duplicate the lower frequency value for each of the higher frequency series positions)\n\n2 = Distribute (Distribute the lower frequency value into equal sized parts for each of the higher frequency series positions)\n\n3 = PercentageChange (Distribute the percentage change so that the product of the higher frequency observations - 100, is the same)\n\n4 = LinearInterpolation (Use a linear interpolation between each pair of lower frequency values to fill in each of the higher frequency values)\n\n5 = Pulse (Sets the value for the first observation in the period range and the other values to 'missing')\n\n6 = QuadraticDistribution (Use a quadratic interpolation that optimize the area under the lower frequency values to fill in the higher frequency values)\n\n7 = CubicInterpolation (Use a cubic interpolation that optimize the area under the lower frequency values to fill in the higher frequency values)\n\n8 = ConditionalPercentageChange (Distribute the percentage change so that the product of the higher frequency observations - 100, is the same, but only if pp100 is set on the series)",
            "nullable": true
          },
          "partialPeriodsMethod": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SeriesPartialPeriodsMethod"
              }
            ],
            "description": "The method to use for converting partial periods to lower frequency. The default is not to extend the series.\n\n0 = None (Type of partial period method when converting to lower frequency)\n\n1 = Auto (Determine the method based on the series meta data)\n\n2 = RepeatLastValue (Fill up the partial period by repeating the last value)\n\n3 = FlowCurrentSum (Fill up the partial period with the average of the incomplete period)\n\n4 = PastRateOfChange (Use the rate of change from the previous year to extend the partial period)\n\n5 = Zero (Fill up the partial period with zeroes)",
            "nullable": true
          },
          "vintage": {
            "type": "string",
            "description": "The vintage of the series. The default is the latest version of the series.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Request of a list of series converted to the same calendar",
        "writeOnly": true
      },
      "UnifiedSeriesRequest": {
        "required": [
          "seriesEntries"
        ],
        "type": "object",
        "properties": {
          "frequency": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SeriesFrequency"
              }
            ],
            "description": "The frequency to convert all series to. The default is to convert to the highest frequency of the series in the request.\n\n1 = Annual (Once a year)\n\n2 = SemiAnnual (One in half a year)\n\n3 = QuadMonthly\n\n4 = Quarterly (Once a quarter)\n\n5 = BiMonthly (Once every 2 months)\n\n6 = Monthly (Once a month)\n\n7 = Weekly (Once a week)\n\n8 = Daily (Once a day)\n\n100 = Lowest (The lowest frequency)\n\n101 = Highest (The highest frequency)",
            "nullable": true
          },
          "weekdays": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SeriesWeekdays"
              }
            ],
            "description": "The days of the week used for daily series. The default is Monday to Friday.\n\n1 = Sunday (Represents a Sunday)\n\n2 = Monday (Represents a Monday)\n\n4 = Tuesday (Represents a Tuesday)\n\n8 = Wednesday (Represents a Wednesday)\n\n16 = Thursday (Represents a Thursday)\n\n31 = SundayToThursday (Sunday to Thursday daymask, weekend on Friday and Saturday)\n\n32 = Friday (Represents a Friday)\n\n62 = MondayToFriday (Standard five day week)\n\n64 = Saturday (Represents a Saturday)\n\n79 = SaturdayToWednesday (Saturday to Wednesday daymask, weekend on Thursday and Friday)\n\n94 = MondayToThursdayAndSaturday (Monday to Thursday and Saturday, weekend on Friday and Sunday)\n\n95 = SaturdayToThursday (Saturday to Thursday, weekend on Friday)\n\n127 = FullWeek (All days of the week)",
            "nullable": true
          },
          "calendarMergeMode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CalendarMergeMode"
              }
            ],
            "description": "The merge mode determines how the series calendars are used when forming the new shared calendar. The default is to use all observations that are in any calendar.\n\n0 = FullCalendar (Include the full range implied by the frequency and weekday settings)\n\n1 = AvailableInAll (Use points in time that are available in all calendars)\n\n2 = AvailableInAny (Use points in time that are available in any calendar)",
            "nullable": true
          },
          "currency": {
            "type": "string",
            "description": "The currency to use for currency conversion or omitted for no conversion.",
            "nullable": true
          },
          "startDateMode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CalendarDateMode"
              }
            ],
            "description": "The start date mode determines how the start date is calculated. By default the mode is to start when there is data in any series.\n\n0 = DataInAnySeries (All the series start or end when there is data in any series)\n\n1 = DataInAllSeries (All the series start or end when there is data in all series)",
            "nullable": true
          },
          "startPoint": {
            "type": "string",
            "description": "The start point. By default, this is determined by the startDateMode. It can be a date on the format yyyy-mm-dd or a number of observations relative the end of the series.",
            "nullable": true
          },
          "endDateMode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CalendarDateMode"
              }
            ],
            "description": "The end date mode determines how the end date is calculated. By default the mode is to end when there is no data in any series.\n\n0 = DataInAnySeries (All the series start or end when there is data in any series)\n\n1 = DataInAllSeries (All the series start or end when there is data in all series)",
            "nullable": true
          },
          "endPoint": {
            "type": "string",
            "description": "The end point. By default, this is determined by the endDateMode. It can be a date on the format yyyy-mm-dd or a number of observations relative the end of the series.",
            "nullable": true
          },
          "seriesEntries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UnifiedSeriesEntry"
            },
            "description": "The list of series entries that defines the series to request.",
            "nullable": true
          },
          "dateEndOfPeriod": {
            "type": "boolean",
            "description": "If specified, dates will return as the last date in the period",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Request of a list of series converted to the same calendar",
        "writeOnly": true
      },
      "UnifiedSeriesResponse": {
        "type": "object",
        "properties": {
          "dates": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "date-time"
            },
            "description": "The dates of the series or not specified if there were only errors",
            "format": "date",
            "nullable": true
          },
          "series": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ValuesResponse"
            },
            "description": "The list of series responses in the same order as in the request",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Response from a unified series request"
      },
      "ValuesResponse": {
        "type": "object",
        "properties": {
          "errorText": {
            "type": "string",
            "description": "The error text if there was an error or not specified if there was no error",
            "nullable": true,
            "readOnly": true
          },
          "errorCode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ResponseErrorCode"
              }
            ],
            "description": "Set if there was an error and not specified if there was no error\n\n206 = PartialContent (The operation was successful, but only new revisions are included)\n\n304 = NotModified (The item was not modified and is not included in the response)\n\n403 = Forbidden (Access to the item was denied)\n\n404 = NotFound (The item was not found)\n\n429 = QuotaExceeded (Quota exceeded)\n\n500 = Other (There was an error and it is described in the error text)",
            "nullable": true,
            "readOnly": true
          },
          "metadata": {
            "type": "object",
            "additionalProperties": { },
            "description": "The metadata of the entity or not specified if there was an error",
            "nullable": true
          },
          "values": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double",
              "nullable": true
            },
            "description": "The values of the series or not specified if there was an error. Missing values are represented by null.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A series"
      },
      "VintageSeriesResponse": {
        "type": "object",
        "properties": {
          "errorText": {
            "type": "string",
            "description": "The error text if there was an error or not specified if there was no error",
            "nullable": true,
            "readOnly": true
          },
          "errorCode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ResponseErrorCode"
              }
            ],
            "description": "Set if there was an error and not specified if there was no error\n\n206 = PartialContent (The operation was successful, but only new revisions are included)\n\n304 = NotModified (The item was not modified and is not included in the response)\n\n403 = Forbidden (Access to the item was denied)\n\n404 = NotFound (The item was not found)\n\n429 = QuotaExceeded (Quota exceeded)\n\n500 = Other (There was an error and it is described in the error text)",
            "nullable": true,
            "readOnly": true
          },
          "metadata": {
            "type": "object",
            "additionalProperties": { },
            "description": "The metadata of the entity or not specified if there was an error",
            "nullable": true
          },
          "values": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double",
              "nullable": true
            },
            "description": "The values of the series or not specified if there was an error. Missing values are represented by null.",
            "nullable": true
          },
          "dates": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "date-time"
            },
            "description": "The dates of the series or not specified if there was an error",
            "format": "date",
            "nullable": true
          },
          "timesOfChange": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "date-time",
              "nullable": true
            },
            "description": "The time each value was last modified",
            "nullable": true,
            "readOnly": true
          },
          "vintageTimeStamp": {
            "type": "string",
            "description": "The time when this version of the series was recorded. It is omitted if the series does not have revision history and for the original set of values before any revisions were recorded.",
            "format": "date-time",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "A time series with times of change and vintage"
      },
      "VintageValuesResponse": {
        "type": "object",
        "properties": {
          "vintageTimeStamp": {
            "type": "string",
            "description": "The time when this version of the series was recorded. It is omitted if the series does not have revision history and for the original set of values before any revisions were recorded.",
            "format": "date-time",
            "nullable": true,
            "readOnly": true
          },
          "dates": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "date-time"
            },
            "description": "The dates of the vintage series.",
            "format": "date",
            "nullable": true
          },
          "values": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double",
              "nullable": true
            },
            "description": "The values of the vintage series. Missing values are represented by null.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The values of a vintage"
      }
    },
    "securitySchemes": {
      "ClientDirectAccess": {
        "type": "oauth2",
        "description": "OAuth Client Credential flow",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "https://apiauth.macrobondfinancial.com/mbauth/connect/token",
            "scopes": {
              "macrobond_web_api.read_mb": "Read entities from the Macrobond database",
              "macrobond_web_api.search_mb": "Search in the Macrobond database",
              "macrobond_web_api.read_structure": "Read database structure like the database tree",
              "macrobond_web_api.write_ih": "Create and update in-house time series"
            }
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "Metadata",
      "description": "Metadata operations"
    },
    {
      "name": "Release",
      "description": "Lists upcoming releases for given release name"
    },
    {
      "name": "Search",
      "description": "Search for time series and other entites"
    },
    {
      "name": "Series",
      "description": "Time series and entity operations"
    },
    {
      "name": "SeriesTree",
      "description": "Operations related to the visual series database tree structure"
    },
    {
      "name": "SubscriptionList",
      "description": "Subscription list operations"
    },
    {
      "name": "In-house series",
      "description": "Additional operations for in-house series"
    }
  ]
}