{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://portal.yesilveri.tr/standart/kades-json/v1.1.0/kades-faktor-seti.schema.json",
  "title": "kadesFaktorSetiSemasi",
  "description": "KADES-JSON kades-faktor-seti şeması\n\nKOBİZON Proje Danışmanlık ve Yazılım Tic. Ltd. Şti. — Sürüm 1.1.0",
  "$ref": "#/definitions/kadesFaktorSetiSemasi",
  "definitions": {
    "kadesFaktorSetiSemasi": {
      "type": "object",
      "properties": {
        "$schema": {
          "type": "string",
          "pattern": "^(?:https:\\/\\/portal\\.yesilveri\\.tr\\/standart\\/kades-json|https:\\/\\/portal\\.kobizon\\.com\\/standart\\/kades-json)\\/v\\d+\\.\\d+\\.\\d+\\/kades-faktor-seti\\.schema\\.json$"
        },
        "surum": {
          "type": "string",
          "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$"
        },
        "setSurumu": {
          "type": "string",
          "pattern": "^[A-Z]{2,6}-(19|20)\\d{2}\\.(0|[1-9]\\d*)$"
        },
        "setAciklamasi": {
          "type": "string",
          "maxLength": 2000
        },
        "yayinTarihi": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        "dondurulmaTarihi": {
          "type": "string",
          "format": "date-time"
        },
        "faktorSayisi": {
          "type": "integer",
          "minimum": 0
        },
        "faktorler": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "kod": {
                "type": "string",
                "minLength": 2,
                "maxLength": 100
              },
              "adTr": {
                "type": "string",
                "minLength": 2,
                "maxLength": 300
              },
              "adEn": {
                "type": "string",
                "minLength": 2,
                "maxLength": 300
              },
              "kapsam": {
                "type": "number",
                "enum": [
                  1,
                  2,
                  3
                ]
              },
              "kategori": {
                "type": "string",
                "minLength": 2,
                "maxLength": 100
              },
              "birim": {
                "type": "string",
                "enum": [
                  "MJ",
                  "GJ",
                  "TJ",
                  "kJ",
                  "kcal",
                  "kWh",
                  "MWh",
                  "GWh",
                  "kg",
                  "g",
                  "ton",
                  "kton",
                  "litre",
                  "m3",
                  "Sm3",
                  "km",
                  "m",
                  "mil",
                  "ton-km",
                  "kg-km",
                  "yolcu-km",
                  "hektar",
                  "m2",
                  "TL",
                  "adet"
                ]
              },
              "deger": {
                "type": "string",
                "minLength": 1,
                "pattern": "^-?\\d+(\\.\\d+)?$"
              },
              "gaz": {
                "type": "string",
                "minLength": 1,
                "maxLength": 50
              },
              "gwpSeti": {
                "anyOf": [
                  {
                    "type": "string",
                    "enum": [
                      "AR5",
                      "AR6"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "kaynakKurum": {
                "type": "string",
                "minLength": 2,
                "maxLength": 300
              },
              "kaynakBelgeUrl": {
                "type": "string",
                "format": "uri",
                "pattern": "^https?:\\/\\/"
              },
              "kaynakBelgeAdi": {
                "type": "string",
                "minLength": 3,
                "maxLength": 300
              },
              "kaynakBelgeKonumu": {
                "type": "string",
                "minLength": 2,
                "maxLength": 200
              },
              "yayimTarihi": {
                "type": "string",
                "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
              },
              "gecerlilikBaslangic": {
                "type": "string",
                "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
              },
              "gecerlilikBitis": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "cografya": {
                "type": "string",
                "enum": [
                  "TR",
                  "TR-81",
                  "EU",
                  "GLOBAL"
                ]
              },
              "tur": {
                "type": "string",
                "enum": [
                  "fiziksel",
                  "parasal"
                ]
              },
              "referansYil": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 1990,
                    "maximum": 2100
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "belirsizlikYuzde": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1,
                    "pattern": "^-?\\d+(\\.\\d+)?$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "veriKalitesiSkoru": {
                "type": "string",
                "enum": [
                  "yuksek",
                  "orta",
                  "dusuk"
                ]
              },
              "setSurumu": {
                "type": "string",
                "pattern": "^[A-Z]{2,6}-(19|20)\\d{2}\\.(0|[1-9]\\d*)$"
              },
              "onay": {
                "type": "object",
                "properties": {
                  "onaylandiMi": {
                    "type": "boolean"
                  },
                  "onaylayanRol": {
                    "type": "string",
                    "const": "methodology_admin"
                  },
                  "onayTarihi": {
                    "anyOf": [
                      {
                        "type": "string",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "onaylandiMi",
                  "onaylayanRol",
                  "onayTarihi"
                ],
                "additionalProperties": false
              },
              "notlar": {
                "type": "string",
                "maxLength": 2000
              },
              "ekAdimlar": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "ad": {
                      "type": "string",
                      "minLength": 2,
                      "maxLength": 120
                    },
                    "islem": {
                      "type": "string",
                      "enum": [
                        "carp",
                        "bol"
                      ]
                    },
                    "deger": {
                      "type": "string",
                      "pattern": "^\\d{1,12}(\\.\\d{1,10})?$"
                    },
                    "uygulama": {
                      "type": "string",
                      "enum": [
                        "miktar",
                        "sonuc"
                      ]
                    },
                    "aciklama": {
                      "type": "string",
                      "maxLength": 1000
                    },
                    "kaynakKurum": {
                      "type": "string",
                      "minLength": 2,
                      "maxLength": 300
                    },
                    "kaynakBelgeAdi": {
                      "type": "string",
                      "minLength": 3,
                      "maxLength": 300
                    },
                    "kaynakBelgeUrl": {
                      "type": "string",
                      "format": "uri",
                      "pattern": "^https?:\\/\\/"
                    },
                    "kaynakBelgeKonumu": {
                      "type": "string",
                      "minLength": 2,
                      "maxLength": 200
                    },
                    "referansYili": {
                      "type": "string",
                      "pattern": "^(19|20)\\d{2}$"
                    }
                  },
                  "required": [
                    "ad",
                    "islem",
                    "deger",
                    "uygulama",
                    "kaynakKurum",
                    "kaynakBelgeAdi",
                    "kaynakBelgeUrl",
                    "referansYili"
                  ],
                  "additionalProperties": false
                },
                "maxItems": 10
              }
            },
            "required": [
              "kod",
              "adTr",
              "adEn",
              "kapsam",
              "kategori",
              "birim",
              "deger",
              "gaz",
              "gwpSeti",
              "kaynakKurum",
              "kaynakBelgeUrl",
              "kaynakBelgeAdi",
              "yayimTarihi",
              "gecerlilikBaslangic",
              "gecerlilikBitis",
              "cografya",
              "tur",
              "referansYil",
              "belirsizlikYuzde",
              "veriKalitesiSkoru",
              "setSurumu",
              "onay"
            ],
            "additionalProperties": false
          },
          "minItems": 1
        },
        "gwp": {
          "type": "object",
          "properties": {
            "set": {
              "type": "string",
              "enum": [
                "AR5",
                "AR6"
              ]
            },
            "zamanUfku": {
              "type": "string",
              "const": "100yil"
            },
            "kaynak": {
              "type": "string",
              "minLength": 3,
              "maxLength": 300
            },
            "kaynakUrl": {
              "type": "string",
              "format": "uri",
              "pattern": "^https?:\\/\\/"
            },
            "degerler": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "gaz": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 50
                  },
                  "deger": {
                    "type": "string",
                    "minLength": 1,
                    "pattern": "^-?\\d+(\\.\\d+)?$"
                  }
                },
                "required": [
                  "gaz",
                  "deger"
                ],
                "additionalProperties": false
              },
              "minItems": 1
            }
          },
          "required": [
            "set",
            "zamanUfku",
            "kaynak",
            "kaynakUrl",
            "degerler"
          ],
          "additionalProperties": false
        },
        "deflatorler": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "referansYil": {
                "type": "integer",
                "minimum": 1990,
                "maximum": 2100
              },
              "hedefYil": {
                "type": "integer",
                "minimum": 1990,
                "maximum": 2100
              },
              "katsayi": {
                "type": "string",
                "minLength": 1,
                "pattern": "^-?\\d+(\\.\\d+)?$"
              },
              "kaynak": {
                "type": "string",
                "minLength": 3,
                "maxLength": 300
              },
              "kaynakUrl": {
                "type": "string",
                "format": "uri",
                "pattern": "^https?:\\/\\/"
              }
            },
            "required": [
              "referansYil",
              "hedefYil",
              "katsayi",
              "kaynak"
            ],
            "additionalProperties": false
          },
          "default": []
        },
        "birimDonusumleri": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "kaynakBirim": {
                "type": "string",
                "enum": [
                  "MJ",
                  "GJ",
                  "TJ",
                  "kJ",
                  "kcal",
                  "kWh",
                  "MWh",
                  "GWh",
                  "kg",
                  "g",
                  "ton",
                  "kton",
                  "litre",
                  "m3",
                  "Sm3",
                  "km",
                  "m",
                  "mil",
                  "ton-km",
                  "kg-km",
                  "yolcu-km",
                  "hektar",
                  "m2",
                  "TL",
                  "adet"
                ]
              },
              "hedefBirim": {
                "type": "string",
                "enum": [
                  "MJ",
                  "GJ",
                  "TJ",
                  "kJ",
                  "kcal",
                  "kWh",
                  "MWh",
                  "GWh",
                  "kg",
                  "g",
                  "ton",
                  "kton",
                  "litre",
                  "m3",
                  "Sm3",
                  "km",
                  "m",
                  "mil",
                  "ton-km",
                  "kg-km",
                  "yolcu-km",
                  "hektar",
                  "m2",
                  "TL",
                  "adet"
                ]
              },
              "carpan": {
                "type": "string",
                "minLength": 1,
                "pattern": "^-?\\d+(\\.\\d+)?$"
              }
            },
            "required": [
              "kaynakBirim",
              "hedefBirim",
              "carpan"
            ],
            "additionalProperties": false
          },
          "default": []
        }
      },
      "required": [
        "$schema",
        "surum",
        "setSurumu",
        "yayinTarihi",
        "dondurulmaTarihi",
        "faktorSayisi",
        "faktorler",
        "gwp"
      ],
      "additionalProperties": false
    }
  }
}
