{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/csu-gov-cz/json-schema/csu-gov-cz-obsah-vyberu-schema.json",
  "title": "ObsahVyberu",
  "description": "Nastavení vlastního výběru pro data",
  "x-generated": "2026-11-11",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/csu-gov-cz-datastat-query-openapi.yml#/components/schemas/ObsahVyberu",
  "type": "object",
  "properties": {
    "sloupce": {
      "type": "array",
      "description": "Seznam dimenzí ve sloupci",
      "items": {
        "$ref": "#/$defs/ObsahVyberuDimenze"
      }
    },
    "radky": {
      "type": "array",
      "description": "Seznam dimenzí v řádku",
      "items": {
        "$ref": "#/$defs/ObsahVyberuDimenze"
      }
    },
    "filtryTabulky": {
      "type": "array",
      "description": "Dimenze v záhlaví",
      "items": {
        "$ref": "#/$defs/ObsahVyberuDimenze"
      }
    },
    "nepouziteDimenze": {
      "type": "array",
      "description": "Dimenze v záhlaví",
      "items": {
        "$ref": "#/$defs/ObsahVyberuDimenze"
      }
    },
    "rozbaleni": {
      "type": "array",
      "description": "Rozbalené položky dimenzí, uvedené ve stromové struktuře v případě rozbalení vnořených položek",
      "items": {
        "$ref": "#/$defs/ObsahVyberuRozbalene"
      }
    },
    "pridaneUkazatele": {
      "type": "array",
      "description": "Ukayatel jiné sady přidaný do výběru. Ukazatel musí mít dimenze kompatibilní s dimenzemi vlastní sady zařazenými do výběru. Nesmí mít další povinné typy dimenzí , které nejsou obsaženy ve vlastní sadě. ",
      "items": {
        "$ref": "#/$defs/ObsahVyberuPridanyUkazatel"
      }
    },
    "casovaDimenze": {
      "$ref": "#/$defs/CasovaDimenze"
    },
    "nekonzistenceSady": {
      "$ref": "#/$defs/ObsahVyberuNekonzistenceSady"
    }
  },
  "$defs": {
    "CasovaDimenze": {
      "type": "object",
      "description": "Způsob chování časové dimenze",
      "properties": {
        "typAktualizacePolozek": {
          "type": "string",
          "description": "Způsob výběru aktuálních položek",
          "enum": [
            "MANUALNE",
            "POSLEDNICH_N",
            "PRIDAT_NOVE"
          ]
        },
        "pocet": {
          "type": "integer",
          "format": "int32",
          "description": "Počet posledních položek nejnižší definované úrovně hierarchie časové dimenze (REF_CAS). Uvádí se jen pro variantu POSLEDNICH_N"
        },
        "casAktualizace": {
          "type": "string",
          "format": "date-time",
          "description": "Čas aktualizace filtrů výběru. Reálný rozsah hodnot v sadě odpovídá tomuto času. Je vyplněno při načtení výběru, pokud je k dispozici obsah sady."
        },
        "urovenPridanychPolozek": {
          "type": "string",
          "description": "Úroveň hiearchie pro přidávané položky"
        }
      }
    },
    "ObsahVyberuDimenze": {
      "type": "object",
      "properties": {
        "kodDimenze": {
          "type": "string",
          "description": "kód dimenze v rámci definice datové sady, nebo kód \"#UKAZATEL\" pro zobrazení ukazatelů."
        },
        "razeni": {
          "type": "string",
          "description": "řazení dimenze v sestavě",
          "enum": [
            "kod",
            "nazev",
            "kodSestupne",
            "nazevSestupne",
            "vychozi",
            "vychoziSestupne"
          ]
        },
        "popis": {
          "type": "string",
          "description": "Zobrazený typ popisu položky",
          "enum": [
            "nazev",
            "kod",
            "kodNazev",
            "nazevKod"
          ]
        },
        "zdrojPopisu": {
          "type": "string",
          "description": "Typ zdrojového textu názvu v popisu položky.",
          "enum": [
            "NAZEV",
            "ZKRACENY_NAZEV",
            "ALTERNATIVNI_NAZEV",
            "ROZSIRENY_NAZEV"
          ]
        },
        "rozbalitUroven": {
          "type": "string",
          "description": "úroveň rozbalení hierarchie (kód úrovně hierarchie do které je rozbaleno výchozí zobrazení)"
        },
        "filtr": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ObsahVyberuFiltr"
          }
        },
        "filtrTabulkyKod": {
          "type": "string",
          "description": "Kód položky dimenze, na níž je výběr nafiltrován. Použije se pouze pro filtr tabulky (ne pro řádku a sloupec)"
        },
        "casovaDimenze": {
          "$ref": "#/$defs/CasovaDimenze"
        }
      },
      "required": [
        "kodDimenze"
      ]
    },
    "ObsahVyberuDimenzeNekonzistence": {
      "type": "object",
      "description": "Popis nekonzistence dimenze v definici sady",
      "properties": {
        "kodDimenze": {
          "type": "string",
          "description": "kód dimenze v rámci definice datové sady, nebo kód \"IndicatorType\" pro zobrazení ukazatelů."
        },
        "nekonzistence": {
          "type": "array",
          "description": "Výpis typů nekonzistencí v dimenzi použité v výběru. Zrušené dimenze jsou z výběru odebrány. Pokud byla nastavena úroveň rozbalení pro neexistující úroveň dimenze, je toto nastavení zrušeno. Pokud byly použity položky pro filtraci (negativní a pozitivní) jsou tyto filtry zrušeny: ZRUSENA  .. V sadě se dimenze nenachází (např. byla ze sady zrušena) ZRUSENA_DUPLICITNI .. Dimenze stejneho typu nebo tatáž se vyskytuje duplicitně vícekrát ve výběru (ve stejné skupině či různých skupinách). CHYBI_UROVEN_DIMENZE  .. Nastavená úroveň dimenze už neexistuje, dimenze ve výběru zůstává, ale úroveň je nastavena na výchozí CHYBI_POLOZKY_FILTRU .. Některé položky filtru dimenze/ukzatele už v dimenzi/sadě neexistují PRIDANA_VARIANTA .. Původní nastavená varianta dimenze už v sadě neexistuje, msto toho byla automaticky přidána varianta PRIDANA_POVINNY_TYP .. Typ dimenze je povinný, ale nebyla k němu ve výběru žádná varianta dimenze. Byla vybrána první výchozí PRIDANA_POVOLENA_KOMBINACE, ZRUSENA_NEPOVOLENA_KOMBINACE .. Sada umožňuje zobrazit jen některé kombinace dimenzí. Dimenze byla přidána ve výchozí povolené kombinaci PRIDANA_KOMPLET ..  Dimenze byla přidána jako výchozí daného typu pro účely výběru kompletní sady (volitelný parametr) ",
          "items": {
            "type": "string",
            "enum": [
              "ZRUSENA",
              "ZRUSENA_DUPLICITNI",
              "CHYBI_UROVEN_DIMENZE",
              "CHYBI_POLOZKY_FILTRU",
              "PRIDANA_VARIANTA",
              "PRIDANA_POVINNY_TYP",
              "PRIDANA_POVOLENA_KOMBINACE",
              "ZRUSENA_NEPOVOLENA_KOMBINACE",
              "ZRUSEN_NEPLATNY_FILTR",
              "PRIDANA_KOMPLET",
              "NAHRAZENA_VARIANTOU"
            ]
          }
        },
        "zrusenePolozkyFiltru": {
          "type": "array",
          "description": "Kód položek dimenze, které byly vybrány pro zobrazení. Pro typ \"CHYBI_POLOZKY_FILTRU\"",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "kodDimenze"
      ]
    },
    "ObsahVyberuFiltr": {
      "type": "object",
      "description": "Nastavení filtru na položky dimenze / výběr ukazatelů ve výběru z datové sady. Pro hiearchické číselníky je filtr uveden pro každou úroveň zvlášť. ~ v každé  úrovni položek varianty dimenze (včetně kořenové) se jako výchoz stav předpokládá, že jsou v úrovni vybrané VŠECHNY existující položky, pokud není uveden pozitivní ani negativní výčet (zobrazitPolozky / nezobrazitPolozky). ~ pro každou úroveň je uložen JEN JEDEN výčet položek - zobrazitPolozky nebo nezobrazitPolozky. Výčet může být při uložení optimalizován (uvede se výčet s nižším počtem položek). ~ v seznamu odlisnePodpolozky jsou bez ohledu na způsob pozitivního či negativního výčtu nastavení filtru indikovány takové zobrazené položky, kde se nastavení některých podpoložek liší. ",
      "properties": {
        "urovenHierarchieKod": {
          "type": "string",
          "description": "Informace o úrovni hierarchie položky s uvedeným identifikátorem (uvedeno u hiearchických dimenzí). "
        },
        "zobrazitPolozky": {
          "type": "array",
          "description": "Výčet identifikátorů položek dimenze. Není být současně uveden  filtr \"nezobrazitPolozky\".",
          "items": {
            "type": "string"
          }
        },
        "nezobrazitPolozky": {
          "type": "array",
          "description": "Negativní výčet identifikátorů položek dimenze. Použije se jako alternativa k výčtu položek, pokud je zobrazena většina položek dimenze.",
          "items": {
            "type": "string"
          }
        },
        "odlisnePodpolozky": {
          "type": "array",
          "description": "Seznam identifikátorů položek, jejichž některé podpoložky (v nižší úrovni hiearchického čísleníku) jsou nastaveny odlišně od nadřazené položky (některé podřazené položky nejsou zobrazovány). Informace je read-only a slouží pro indikaci při nastavování filtrů (nenahrazuje seznam zobrazených položek).",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "ObsahVyberuKonzistentniKombinace": {
      "type": "object",
      "description": "Varianta úpravy původní definice výběru, aby byla zajištěna konzistetní kombinace variant dimenzí v sadě",
      "properties": {
        "pridaneDimenze": {
          "type": "array",
          "description": "Výčet přidaných kódů dimenzí do výběru",
          "items": {
            "type": "string"
          }
        },
        "odebraneDimenze": {
          "type": "array",
          "description": "Výčet odebraných kódů dimenzí do výběru",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "ObsahVyberuNekonzistenceSady": {
      "type": "object",
      "description": "Vrací se informace o modifikaci nastavení výběru po načtení z důvodu nekonzistence vůči aktuální modifikaci obsahu sady. Tento údaj se neukládá. Po novém uložení výběru obsahujícím dimenze aktuální sady se tyto údaje již nezobrazí, pokud je nově uložený výběr konzistentní s definicií sady.",
      "properties": {
        "sloupce": {
          "type": "array",
          "description": "Seznam diemenzí ve sloupci odebraných z uložené definice obsahu výběru z důvodu její neexistence v nové sadě.",
          "items": {
            "$ref": "#/$defs/ObsahVyberuDimenzeNekonzistence"
          }
        },
        "radky": {
          "type": "array",
          "description": "Seznam diemenzí v řádku odebraných z uložené definice obsahu výběru z důvodu její neexistence v nové sadě.",
          "items": {
            "$ref": "#/$defs/ObsahVyberuDimenzeNekonzistence"
          }
        },
        "filtryTabulky": {
          "type": "array",
          "description": "Seznam diemenzí ve filtru tabulky odebraných z uložené definice obsahu výběru z důvodu její neexistence v nové sadě.",
          "items": {
            "$ref": "#/$defs/ObsahVyberuDimenzeNekonzistence"
          }
        },
        "povoleneKombinaceDimenzi": {
          "type": "array",
          "description": "V případě, že sada má definovány povolené kombinace  variant dimenzí a původní definice obsahu výběru požadavek nesplňuje, obsahuje toto pole návrhy na úpravu výběru v souladu s nastavením sady. První návrh je aplikován v úpravě výběru změnou dimenzí (PRIDANA_POVOLENA_KOMBINACE, ZRUSENA_NEPOVOLENA_KOMBINACE)",
          "items": {
            "$ref": "#/$defs/ObsahVyberuKonzistentniKombinace"
          }
        }
      }
    },
    "ObsahVyberuPridanyUkazatel": {
      "type": "object",
      "description": "Ukazatel jiné sady přidaný do výběru. Ukazatel musí mít dimenze kompatibilní s dimenzemi vlastní sady zařazenými do výběru. Nesmí mít další povinné typy dimenzí , které nejsou obsaženy ve vlastní sadě. ",
      "properties": {
        "sadaKod": {
          "type": "string"
        },
        "sadaVerze": {
          "type": "string"
        },
        "ukazatelKod": {
          "type": "string"
        }
      }
    },
    "ObsahVyberuRozbalene": {
      "type": "object",
      "description": "Rekurzivní struktura pro rozbalení hierarchie a dimenzí. Musí odpovídat definici hierarchie dimenzí, řádků a sloupců, jinak se rozbalení položky v dané úrovni neaplikuje. ",
      "properties": {
        "dim": {
          "type": "string",
          "description": "Kód dimenze rozbalené položky. Pro první úroveň musí jít o první dimenzi v řádku nebo sloupci atd."
        },
        "uroven": {
          "type": "string",
          "description": "Kód úrovně dimenze - uvedeno jen u hierarchických"
        },
        "kod": {
          "type": "string",
          "description": "Kód rozbalené položky"
        },
        "typ": {
          "type": "string",
          "description": "Typ rozbalení: EXP - rozbalení další dimeneze (expand) DRILL - rozbalení další urovně (drilldown) ",
          "enum": [
            "EXP",
            "DRILL"
          ]
        },
        "vnorene": {
          "type": "array",
          "description": "Rozbalení vnořených položek. Je vyplněno pouze, pokud je rozbalena další úroveň.",
          "items": {
            "$ref": "#/$defs/ObsahVyberuRozbalene"
          }
        }
      },
      "required": [
        "dim",
        "kod",
        "typ"
      ]
    }
  }
}