{
  "openapi": "3.0.4",
  "info": {
    "title": "OpenHolidays API v1",
    "description": "Open Data API for public and school holidays",
    "contact": {
      "name": "The OpenHolidays API Project",
      "url": "https://www.openholidaysapi.org"
    },
    "license": {
      "name": "Open Database License",
      "url": "https://github.com/openpotato/openholidaysapi.data/blob/main/LICENSE"
    },
    "version": "v1"
  },
  "paths": {
    "/Countries": {
      "get": {
        "tags": [
          "Regional"
        ],
        "summary": "Returns a list of all supported countries",
        "parameters": [
          {
            "name": "languageIsoCode",
            "in": "query",
            "description": "ISO-639-1 code of a language or empty",
            "schema": {
              "type": "string"
            },
            "example": "DE"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CountryResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CountryResponse"
                  }
                }
              },
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CountryResponse"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CountryResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/Groups": {
      "get": {
        "tags": [
          "Regional"
        ],
        "summary": "Returns a list of relevant holiday groups for a supported country (if any)",
        "parameters": [
          {
            "name": "countryIsoCode",
            "in": "query",
            "description": "ISO 3166-1 code of the country",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "DE"
          },
          {
            "name": "languageIsoCode",
            "in": "query",
            "description": "ISO-639-1 code of a language or empty",
            "schema": {
              "type": "string"
            },
            "example": "de"
          },
          {
            "name": "subdivisionCode",
            "in": "query",
            "description": "Code of a subdivision or empty",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GroupResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GroupResponse"
                  }
                }
              },
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GroupResponse"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GroupResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/Languages": {
      "get": {
        "tags": [
          "Regional"
        ],
        "summary": "Returns a list of all used languages",
        "parameters": [
          {
            "name": "languageIsoCode",
            "in": "query",
            "description": "ISO-639-1 code of a language or empty",
            "schema": {
              "type": "string"
            },
            "example": "DE"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LanguageResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LanguageResponse"
                  }
                }
              },
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LanguageResponse"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LanguageResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/PublicHolidays": {
      "get": {
        "tags": [
          "Holidays"
        ],
        "summary": "Returns list of public holidays for a given country",
        "parameters": [
          {
            "name": "countryIsoCode",
            "in": "query",
            "description": "ISO 3166-1 code of the country",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "DE"
          },
          {
            "name": "validFrom",
            "in": "query",
            "description": "Start of the date range",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "example": "2023-01-01"
          },
          {
            "name": "validTo",
            "in": "query",
            "description": "End of the date range",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "example": "2023-12-31"
          },
          {
            "name": "languageIsoCode",
            "in": "query",
            "description": "ISO-639-1 code of a language or empty",
            "schema": {
              "type": "string"
            },
            "example": "DE"
          },
          {
            "name": "subdivisionCode",
            "in": "query",
            "description": "Code of the subdivision or empty",
            "schema": {
              "type": "string"
            },
            "example": "DE-BE"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HolidayResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HolidayResponse"
                  }
                }
              },
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HolidayResponse"
                  }
                }
              },
              "text/calendar": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HolidayResponse"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HolidayResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/PublicHolidaysByDate": {
      "get": {
        "tags": [
          "Holidays"
        ],
        "summary": "Returns a list of public holidays from all countries for a given date.",
        "parameters": [
          {
            "name": "date",
            "in": "query",
            "description": "Date of interest",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "example": "2023-12-25"
          },
          {
            "name": "languageIsoCode",
            "in": "query",
            "description": "ISO-639-1 code of a language or empty",
            "schema": {
              "type": "string"
            },
            "example": "DE"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HolidayByDateResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HolidayByDateResponse"
                  }
                }
              },
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HolidayByDateResponse"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HolidayByDateResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/SchoolHolidays": {
      "get": {
        "tags": [
          "Holidays"
        ],
        "summary": "Returns list of official school holidays for a given country",
        "parameters": [
          {
            "name": "countryIsoCode",
            "in": "query",
            "description": "ISO 3166-1 code of the country",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "DE"
          },
          {
            "name": "validFrom",
            "in": "query",
            "description": "Start of the date range",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "example": "2023-01-01"
          },
          {
            "name": "validTo",
            "in": "query",
            "description": "End of the date range",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "example": "2023-12-31"
          },
          {
            "name": "languageIsoCode",
            "in": "query",
            "description": "ISO-639-1 code of a language or empty",
            "schema": {
              "type": "string"
            },
            "example": "DE"
          },
          {
            "name": "subdivisionCode",
            "in": "query",
            "description": "Code of the subdivision or empty",
            "schema": {
              "type": "string"
            },
            "example": "DE-MV"
          },
          {
            "name": "groupCode",
            "in": "query",
            "description": "Code of a holiday group or empty",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HolidayResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HolidayResponse"
                  }
                }
              },
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HolidayResponse"
                  }
                }
              },
              "text/calendar": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HolidayResponse"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HolidayResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/SchoolHolidaysByDate": {
      "get": {
        "tags": [
          "Holidays"
        ],
        "summary": "Returns a list of school holidays from all countries for a given date.",
        "parameters": [
          {
            "name": "date",
            "in": "query",
            "description": "Date of interest",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "example": "2023-12-25"
          },
          {
            "name": "languageIsoCode",
            "in": "query",
            "description": "ISO-639-1 code of a language or empty",
            "schema": {
              "type": "string"
            },
            "example": "DE"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HolidayByDateResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HolidayByDateResponse"
                  }
                }
              },
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HolidayByDateResponse"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HolidayByDateResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/Statistics/PublicHolidays": {
      "get": {
        "tags": [
          "Statistics"
        ],
        "summary": "Returns statistical data about public holidays for a given country.",
        "parameters": [
          {
            "name": "countryIsoCode",
            "in": "query",
            "description": "ISO 3166-1 code of the country",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "DE"
          },
          {
            "name": "subdivisionCode",
            "in": "query",
            "description": "Code of the subdivision or empty",
            "schema": {
              "type": "string"
            },
            "example": "DE-BE"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/StatisticsResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/StatisticsResponse"
                  }
                }
              },
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/StatisticsResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/Statistics/SchoolHolidays": {
      "get": {
        "tags": [
          "Statistics"
        ],
        "summary": "Returns statistical data about school holidays for a given country",
        "parameters": [
          {
            "name": "countryIsoCode",
            "in": "query",
            "description": "ISO 3166-1 code of the country",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "DE"
          },
          {
            "name": "subdivisionCode",
            "in": "query",
            "description": "Code of the subdivision or empty",
            "schema": {
              "type": "string"
            },
            "example": "DE-BE"
          },
          {
            "name": "groupCode",
            "in": "query",
            "description": "Code of the holiday group or empty",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/StatisticsResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/StatisticsResponse"
                  }
                }
              },
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/StatisticsResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/Subdivisions": {
      "get": {
        "tags": [
          "Regional"
        ],
        "summary": "Returns a list of relevant subdivisions for a supported country (if any)",
        "parameters": [
          {
            "name": "countryIsoCode",
            "in": "query",
            "description": "ISO 3166-1 code of the country",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "DE"
          },
          {
            "name": "languageIsoCode",
            "in": "query",
            "description": "ISO-639-1 code of a language or empty",
            "schema": {
              "type": "string"
            },
            "example": "DE"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SubdivisionResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SubdivisionResponse"
                  }
                }
              },
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SubdivisionResponse"
                  }
                }
              },
              "text/csv": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SubdivisionResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "CountryReference": {
        "required": [
          "isoCode"
        ],
        "type": "object",
        "properties": {
          "isoCode": {
            "minLength": 1,
            "type": "string",
            "description": "Country ISO code",
            "example": "DE"
          }
        },
        "additionalProperties": false,
        "description": "Representation of a country reference",
        "readOnly": true
      },
      "CountryResponse": {
        "required": [
          "isoCode",
          "name",
          "officialLanguages"
        ],
        "type": "object",
        "properties": {
          "isoCode": {
            "minLength": 1,
            "type": "string",
            "description": "ISO 3166-1 country code",
            "example": "DE"
          },
          "name": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LocalizedText"
            },
            "description": "Localized country names",
            "example": [
              {
                "language": "EN",
                "text": "Germany"
              },
              {
                "language": "DE",
                "text": "Deutschland"
              }
            ]
          },
          "officialLanguages": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Official ISO-639-1 language codes",
            "example": [
              "DE"
            ]
          }
        },
        "additionalProperties": false,
        "description": "Representation of a country as defined in ISO 3166-1",
        "readOnly": true
      },
      "GroupReference": {
        "required": [
          "code",
          "shortName"
        ],
        "type": "object",
        "properties": {
          "code": {
            "minLength": 1,
            "type": "string",
            "description": "Group code",
            "example": "FR-ZA"
          },
          "shortName": {
            "minLength": 1,
            "type": "string",
            "description": "Short name for display",
            "example": "ZA"
          }
        },
        "additionalProperties": false,
        "description": "Representation of a holiday group reference",
        "readOnly": true
      },
      "GroupResponse": {
        "required": [
          "category",
          "code",
          "name",
          "shortName"
        ],
        "type": "object",
        "properties": {
          "category": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LocalizedText"
            },
            "description": "Localized categories of the group",
            "example": [
              {
                "language": "fr",
                "text": "zone"
              },
              {
                "language": "de",
                "text": "Zone"
              }
            ]
          },
          "children": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GroupResponse"
            },
            "description": "Child groups",
            "nullable": true
          },
          "code": {
            "minLength": 1,
            "type": "string",
            "description": "Group code",
            "example": "FR-ZA"
          },
          "comment": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LocalizedText"
            },
            "description": "Localized comments of the group",
            "nullable": true
          },
          "name": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LocalizedText"
            },
            "description": "Localized names of the group",
            "example": [
              {
                "language": "fr",
                "text": "Zone A"
              },
              {
                "language": "de",
                "text": "Zone A"
              }
            ]
          },
          "shortName": {
            "minLength": 1,
            "type": "string",
            "description": "Short name for display",
            "example": "ZA"
          },
          "subdivisions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubdivisionReference"
            },
            "description": "List of subdivision references",
            "nullable": true,
            "example": ">[\"FR-BF-TB\"]"
          }
        },
        "additionalProperties": false,
        "description": "Representation of a holiday zone",
        "readOnly": true
      },
      "HolidayByDateResponse": {
        "required": [
          "country",
          "id",
          "name",
          "nationwide",
          "type"
        ],
        "type": "object",
        "properties": {
          "comment": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LocalizedText"
            },
            "description": "Additional localized comments",
            "nullable": true
          },
          "country": {
            "$ref": "#/components/schemas/CountryReference"
          },
          "groups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GroupReference"
            },
            "description": "List of group references",
            "nullable": true
          },
          "id": {
            "type": "string",
            "description": "Unique holiday id",
            "format": "uuid",
            "example": "ff3b77a3-8c31-47af-b1c7-f26dd51f3c19"
          },
          "name": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LocalizedText"
            },
            "description": "Localized names of the holiday"
          },
          "nationwide": {
            "type": "boolean",
            "description": "Is the holiday nationwide?",
            "example": true
          },
          "regionalScope": {
            "$ref": "#/components/schemas/RegionalScope"
          },
          "subdivisions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubdivisionReference"
            },
            "description": "List of subdivision references",
            "nullable": true
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Additional holday tags",
            "nullable": true,
            "example": "Recommended"
          },
          "temporalScope": {
            "$ref": "#/components/schemas/TemporalScope"
          },
          "type": {
            "$ref": "#/components/schemas/HolidayType"
          }
        },
        "additionalProperties": false,
        "description": "Representation of a holiday by date",
        "readOnly": true
      },
      "HolidayResponse": {
        "required": [
          "endDate",
          "id",
          "name",
          "nationwide",
          "startDate",
          "type"
        ],
        "type": "object",
        "properties": {
          "comment": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LocalizedText"
            },
            "description": "Additional localized comments",
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "description": "End date of the holiday",
            "format": "date",
            "example": "2022-12-31"
          },
          "id": {
            "type": "string",
            "description": "Unique holiday id",
            "format": "uuid",
            "example": "ff3b77a3-8c31-47af-b1c7-f26dd51f3c19"
          },
          "name": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LocalizedText"
            },
            "description": "Localized names of the holiday"
          },
          "nationwide": {
            "type": "boolean",
            "description": "Is the holiday nationwide?",
            "example": true
          },
          "regionalScope": {
            "$ref": "#/components/schemas/RegionalScope"
          },
          "startDate": {
            "type": "string",
            "description": "Start date of the holiday",
            "format": "date",
            "example": "2022-01-01"
          },
          "subdivisions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubdivisionReference"
            },
            "description": "List of subdivision references",
            "nullable": true
          },
          "groups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GroupReference"
            },
            "description": "List of group references",
            "nullable": true
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Additional holday tags",
            "nullable": true,
            "example": "Recommended"
          },
          "temporalScope": {
            "$ref": "#/components/schemas/TemporalScope"
          },
          "type": {
            "$ref": "#/components/schemas/HolidayType"
          }
        },
        "additionalProperties": false,
        "description": "Representation of a holiday",
        "readOnly": true
      },
      "HolidayType": {
        "enum": [
          "Public",
          "Bank",
          "Optional",
          "School",
          "BackToSchool",
          "EndOfLessons"
        ],
        "type": "string",
        "description": "Type of holiday",
        "readOnly": true
      },
      "LanguageResponse": {
        "required": [
          "isoCode",
          "name"
        ],
        "type": "object",
        "properties": {
          "isoCode": {
            "minLength": 1,
            "type": "string",
            "description": "ISO-639-1 language code",
            "example": "DE"
          },
          "name": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LocalizedText"
            },
            "description": "Localized language names",
            "example": [
              {
                "language": "DE",
                "text": "Deutsch"
              },
              {
                "language": "EN",
                "text": "German"
              }
            ]
          }
        },
        "additionalProperties": false,
        "description": "Representation of a language as defined in ISO-639-1",
        "readOnly": true
      },
      "LocalizedText": {
        "required": [
          "language",
          "text"
        ],
        "type": "object",
        "properties": {
          "language": {
            "minLength": 1,
            "type": "string",
            "description": "ISO-639-1 language code"
          },
          "text": {
            "minLength": 1,
            "type": "string",
            "description": "The localized text"
          }
        },
        "additionalProperties": false,
        "description": "A localized text string",
        "readOnly": true
      },
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": { }
      },
      "RegionalScope": {
        "enum": [
          "National",
          "Regional",
          "Local"
        ],
        "type": "string",
        "description": "Regional scope of a holdiay",
        "readOnly": true
      },
      "StatisticsResponse": {
        "required": [
          "oldestStartDate",
          "youngestStartDate"
        ],
        "type": "object",
        "properties": {
          "youngestStartDate": {
            "type": "string",
            "description": "The youngest holiday start date in the database",
            "format": "date"
          },
          "oldestStartDate": {
            "type": "string",
            "description": "The oldest holiday start date in the database",
            "format": "date"
          }
        },
        "additionalProperties": false,
        "description": "Statistical data of the holidays database",
        "readOnly": true
      },
      "SubdivisionReference": {
        "required": [
          "code",
          "shortName"
        ],
        "type": "object",
        "properties": {
          "code": {
            "minLength": 1,
            "type": "string",
            "description": "Subdivision code",
            "example": "DE-BE"
          },
          "shortName": {
            "minLength": 1,
            "type": "string",
            "description": "Short name for display",
            "example": "BE"
          }
        },
        "additionalProperties": false,
        "description": "Representation of a subdivision reference",
        "readOnly": true
      },
      "SubdivisionResponse": {
        "required": [
          "category",
          "code",
          "name",
          "officialLanguages",
          "shortName"
        ],
        "type": "object",
        "properties": {
          "category": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LocalizedText"
            },
            "description": "Localized categories of the subdivision",
            "example": [
              {
                "language": "fr",
                "text": "région"
              },
              {
                "language": "de",
                "text": "Region"
              }
            ]
          },
          "children": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubdivisionResponse"
            },
            "description": "Child subdivisions",
            "nullable": true
          },
          "code": {
            "minLength": 1,
            "type": "string",
            "description": "Subdivision code",
            "example": "FR-BF"
          },
          "comment": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LocalizedText"
            },
            "description": "Localized comments of the subdivision",
            "nullable": true
          },
          "groups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GroupReference"
            },
            "description": "List of group references",
            "nullable": true,
            "example": ">[\"FR-ZA-BE,FR-ZA-DI\"]"
          },
          "isoCode": {
            "type": "string",
            "description": "ISO 3166-2 subdivision code (if defined)",
            "nullable": true,
            "example": "FR-BFC"
          },
          "name": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LocalizedText"
            },
            "description": "Localized names of the subdivision",
            "example": [
              {
                "language": "fr",
                "text": "Bourgogne-Franche-Comté"
              }
            ]
          },
          "officialLanguages": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Official languages as ISO-639-1 codes",
            "example": ">[\"fr\"]"
          },
          "shortName": {
            "minLength": 1,
            "type": "string",
            "description": "Short name for display",
            "example": "BF"
          }
        },
        "additionalProperties": false,
        "description": "Representation of a subdivision",
        "readOnly": true
      },
      "TemporalScope": {
        "enum": [
          "FullDay",
          "HalfDay"
        ],
        "type": "string",
        "description": "Temporal scope of a holdiay",
        "readOnly": true
      }
    }
  },
  "tags": [
    {
      "name": "Regional",
      "description": "Reads countries, languages, subdivisions and groups"
    },
    {
      "name": "Holidays",
      "description": "Reads public and school holidays"
    },
    {
      "name": "Statistics",
      "description": "Reads statistical data about stored holidays"
    }
  ]
}