{
  "openapi": "3.1.0",
  "info": {
    "title": "Yazar Haber Ajansı Abone API",
    "version": "1.0.0",
    "description": "Abonenin kendi yazılımı için haber, fotoğraf ve video akışı. Kimlik: `Authorization: Bearer yha_canli_…` (YHA Abone · Çıkışlar · Anahtarlar). İçerik her zaman paket hakkıyla sınırlıdır. Aynı olay iki kez gelebilir: `olay_id` ile ayıkla, düzeltmeyi `surum_no` ile uygula.",
    "contact": {
      "name": "Yazar Haber Ajansı Teknik Destek"
    }
  },
  "servers": [
    {
      "url": "https://api.<alan>",
      "description": "Canlı"
    },
    {
      "url": "https://deneme.<alan>",
      "description": "Deneme ortamı (yha_deneme_ anahtarı, örnek içerik)"
    }
  ],
  "security": [
    {
      "anahtar": []
    }
  ],
  "tags": [
    {
      "name": "Akış"
    },
    {
      "name": "Anahtar"
    },
    {
      "name": "Anlık akış"
    },
    {
      "name": "Arama"
    },
    {
      "name": "Belge"
    },
    {
      "name": "Canlı yayın"
    },
    {
      "name": "Durum"
    },
    {
      "name": "Eklenti"
    },
    {
      "name": "Entegrasyon"
    },
    {
      "name": "Haberler"
    },
    {
      "name": "MCP"
    },
    {
      "name": "Medya"
    },
    {
      "name": "Sözlük"
    }
  ],
  "paths": {
    "/v1/akis": {
      "get": {
        "operationId": "akis",
        "summary": "Olaylar eskiden yeniye (imleçli)",
        "description": "İmleç yoksa `baslangic` ya da son 24 saatten başlar; en çok 7 gün geri gidilir. `devami_var` yanlışsa en erken 10 saniye sonra yeniden sor.",
        "tags": [
          "Akış"
        ],
        "x-yha-kapsam": "akis.oku",
        "parameters": [
          {
            "name": "imlec",
            "in": "query",
            "required": false,
            "description": "Önceki yanıtın sonraki_imlec değeri",
            "schema": {
              "description": "Önceki yanıtın sonraki_imlec değeri",
              "type": "string",
              "maxLength": 500
            }
          },
          {
            "name": "baslangic",
            "in": "query",
            "required": false,
            "description": "ISO 8601 ya da YYYY-AA-GG",
            "schema": {
              "description": "ISO 8601 ya da YYYY-AA-GG",
              "type": "string",
              "maxLength": 40
            }
          },
          {
            "name": "boyut",
            "in": "query",
            "required": false,
            "schema": {
              "default": 50,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "icerik",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "haber",
                "fotograf",
                "video"
              ]
            }
          },
          {
            "name": "kategori_id",
            "in": "query",
            "required": false,
            "schema": {
              "maxItems": 100,
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              }
            }
          },
          {
            "name": "il_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 81
            }
          },
          {
            "name": "oncelik",
            "in": "query",
            "required": false,
            "schema": {
              "maxItems": 100,
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "flas",
                  "onemli",
                  "normal"
                ]
              }
            }
          },
          {
            "name": "olay",
            "in": "query",
            "required": false,
            "schema": {
              "maxItems": 100,
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "yeni",
                  "duzeltme",
                  "iptal",
                  "guncelleme"
                ]
              }
            }
          },
          {
            "name": "paket_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Başarılı",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisOlayListesi"
                }
              }
            }
          },
          "400": {
            "description": "dogrulama_hatasi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "401": {
            "description": "anahtar_gecersiz, anahtar_gerekli, anahtar_iptal, anahtar_ortami_uyusmuyor, anahtar_suresi_doldu",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "403": {
            "description": "abonelik_askida, abonelik_yok, ag_disi, deneme_kisiti, kanal_paketinde_yok, kapsam_yok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "429": {
            "description": "gunluk_sinir_doldu, yavasla",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          }
        }
      }
    },
    "/v1/ara": {
      "get": {
        "operationId": "ara",
        "summary": "Arşivde arama (kanal hakkıyla)",
        "tags": [
          "Arama"
        ],
        "x-yha-kapsam": "arsiv.ara",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 300
            }
          },
          {
            "name": "icerik",
            "in": "query",
            "required": false,
            "schema": {
              "default": "tumu",
              "type": "string",
              "enum": [
                "tumu",
                "haber",
                "fotograf",
                "video"
              ]
            }
          },
          {
            "name": "kategori_id",
            "in": "query",
            "required": false,
            "schema": {
              "maxItems": 100,
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              }
            }
          },
          {
            "name": "il_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 81
            }
          },
          {
            "name": "baslangic",
            "in": "query",
            "required": false,
            "description": "ISO 8601 ya da YYYY-AA-GG",
            "schema": {
              "description": "ISO 8601 ya da YYYY-AA-GG",
              "type": "string",
              "maxLength": 40
            }
          },
          {
            "name": "bitis",
            "in": "query",
            "required": false,
            "description": "ISO 8601 ya da YYYY-AA-GG",
            "schema": {
              "description": "ISO 8601 ya da YYYY-AA-GG",
              "type": "string",
              "maxLength": 40
            }
          },
          {
            "name": "boyut",
            "in": "query",
            "required": false,
            "schema": {
              "default": 20,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "imlec",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 500
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Başarılı",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisAramaSonucu"
                }
              }
            }
          },
          "400": {
            "description": "dogrulama_hatasi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "401": {
            "description": "anahtar_gecersiz, anahtar_gerekli, anahtar_iptal, anahtar_ortami_uyusmuyor, anahtar_suresi_doldu",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "403": {
            "description": "abonelik_askida, abonelik_yok, ag_disi, deneme_kisiti, kanal_paketinde_yok, kapsam_yok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "429": {
            "description": "gunluk_sinir_doldu, yavasla",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          }
        }
      }
    },
    "/v1/ben": {
      "get": {
        "operationId": "ben",
        "summary": "Anahtar, kurum, paketler ve sınırlar",
        "tags": [
          "Anahtar"
        ],
        "x-yha-kapsam": "akis.oku",
        "responses": {
          "200": {
            "description": "Başarılı",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisBen"
                }
              }
            }
          },
          "401": {
            "description": "anahtar_gecersiz, anahtar_gerekli, anahtar_iptal, anahtar_ortami_uyusmuyor, anahtar_suresi_doldu",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "403": {
            "description": "abonelik_askida, abonelik_yok, ag_disi, deneme_kisiti, kanal_paketinde_yok, kapsam_yok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "429": {
            "description": "gunluk_sinir_doldu, yavasla",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          }
        }
      }
    },
    "/v1/canli-yayinlar": {
      "get": {
        "operationId": "canli_yayinlar",
        "summary": "Canlı yayınlar (süren ya da son 7 günde biten; adres yok)",
        "tags": [
          "Canlı yayın"
        ],
        "x-yha-kapsam": "akis.oku",
        "parameters": [
          {
            "name": "durum",
            "in": "query",
            "required": false,
            "schema": {
              "default": "canli",
              "type": "string",
              "enum": [
                "canli",
                "bitti"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Başarılı",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CanliYayinListesi"
                }
              }
            }
          },
          "401": {
            "description": "anahtar_gecersiz, anahtar_gerekli, anahtar_iptal, anahtar_ortami_uyusmuyor, anahtar_suresi_doldu",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "403": {
            "description": "abonelik_askida, abonelik_yok, ag_disi, deneme_kisiti, kanal_paketinde_yok, kapsam_yok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "429": {
            "description": "gunluk_sinir_doldu, yavasla",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          }
        }
      }
    },
    "/v1/canli-yayinlar/{id}": {
      "get": {
        "operationId": "canli_yayin",
        "summary": "Canlı yayın",
        "tags": [
          "Canlı yayın"
        ],
        "x-yha-kapsam": "akis.oku",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Canlı yayın kimliği",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Başarılı",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CanliYayin"
                }
              }
            }
          },
          "401": {
            "description": "anahtar_gecersiz, anahtar_gerekli, anahtar_iptal, anahtar_ortami_uyusmuyor, anahtar_suresi_doldu",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "403": {
            "description": "abonelik_askida, abonelik_yok, ag_disi, deneme_kisiti, kanal_paketinde_yok, kapsam_yok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "404": {
            "description": "bulunamadi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "429": {
            "description": "gunluk_sinir_doldu, yavasla",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          }
        }
      }
    },
    "/v1/durum": {
      "get": {
        "operationId": "durum",
        "summary": "Servis durumu, açık olaylar ve planlı bakımlar",
        "description": "Abone servislerinin durumu ve kullanıcılara duyurulmuş açık olaylar. Kök neden ve izleme alarmları yanıtta yoktur.",
        "tags": [
          "Durum"
        ],
        "responses": {
          "200": {
            "description": "Başarılı",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisDurum"
                }
              }
            }
          },
          "401": {
            "description": "anahtar_gecersiz, anahtar_gerekli, anahtar_iptal, anahtar_ortami_uyusmuyor, anahtar_suresi_doldu",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "403": {
            "description": "abonelik_askida, abonelik_yok, ag_disi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "404": {
            "description": "bulunamadi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "429": {
            "description": "gunluk_sinir_doldu, yavasla",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          }
        }
      }
    },
    "/v1/eklentiler/{kod}/guncel": {
      "get": {
        "operationId": "eklenti_guncel",
        "summary": "Eklentinin güncel sürümü (anahtarsız)",
        "description": "WordPress eklentisinin güncelleme kanalı. `surum` kurulu sürümdür; en düşük desteklenen sürümün altındaysa `zorunlu: true`. Paket Ed25519 ile imzalıdır (`imza`, base64).",
        "tags": [
          "Eklenti"
        ],
        "security": [],
        "parameters": [
          {
            "name": "kod",
            "in": "path",
            "required": true,
            "description": "Eklenti kodu (yha-haber)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "kanal",
            "in": "query",
            "required": false,
            "schema": {
              "default": "kararli",
              "type": "string",
              "enum": [
                "kararli",
                "deneme"
              ]
            }
          },
          {
            "name": "surum",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{1,4}\\.\\d{1,4}\\.\\d{1,4}$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Başarılı",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisEklentiSurumu"
                }
              }
            }
          },
          "400": {
            "description": "dogrulama_hatasi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "404": {
            "description": "eklenti_yok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          }
        }
      }
    },
    "/v1/entegrasyon": {
      "put": {
        "operationId": "entegrasyon_bildir",
        "summary": "Bağlantının durum bildirimi (WordPress eklentisi, bağlayıcı, kendi yazılımı)",
        "description": "Bağlantı kendini tanıtır: yazılım ve eklenti sürümü, site adresi, kip, sayaçlar ve son hatalar. Kayıt anahtardan bulunur; ilk bildirim entegrasyonu açar ya da `kuruluyor`dan `calisiyor`a geçirir. `sonraki_bildirim_saniye`den sık gelen bildirim yazılmaz (son yanıt döner).",
        "tags": [
          "Entegrasyon"
        ],
        "x-yha-kapsam": "akis.oku",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DisEntegrasyonBildirimi"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Başarılı",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisEntegrasyonYaniti"
                }
              }
            }
          },
          "400": {
            "description": "dogrulama_hatasi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "401": {
            "description": "anahtar_gecersiz, anahtar_gerekli, anahtar_iptal, anahtar_ortami_uyusmuyor, anahtar_suresi_doldu",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "403": {
            "description": "abonelik_askida, abonelik_yok, ag_disi, deneme_kisiti, gelistirici_yalnizca_deneme, kanal_paketinde_yok, kapsam_yok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "409": {
            "description": "entegrasyon_kaldirildi, entegrasyon_uyusmuyor",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "413": {
            "description": "govde_cok_buyuk",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "429": {
            "description": "gunluk_sinir_doldu, yavasla",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          }
        }
      }
    },
    "/v1/haberler": {
      "get": {
        "operationId": "haberler",
        "summary": "Haber listesi (yeniden eskiye)",
        "tags": [
          "Haberler"
        ],
        "x-yha-kapsam": "akis.oku",
        "parameters": [
          {
            "name": "baslangic",
            "in": "query",
            "required": false,
            "description": "ISO 8601 ya da YYYY-AA-GG",
            "schema": {
              "description": "ISO 8601 ya da YYYY-AA-GG",
              "type": "string",
              "maxLength": 40
            }
          },
          {
            "name": "bitis",
            "in": "query",
            "required": false,
            "description": "ISO 8601 ya da YYYY-AA-GG",
            "schema": {
              "description": "ISO 8601 ya da YYYY-AA-GG",
              "type": "string",
              "maxLength": 40
            }
          },
          {
            "name": "kategori_id",
            "in": "query",
            "required": false,
            "schema": {
              "maxItems": 100,
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              }
            }
          },
          {
            "name": "il_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 81
            }
          },
          {
            "name": "oncelik",
            "in": "query",
            "required": false,
            "schema": {
              "maxItems": 100,
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "flas",
                  "onemli",
                  "normal"
                ]
              }
            }
          },
          {
            "name": "durum",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "serviste",
                "iptal_edildi"
              ]
            }
          },
          {
            "name": "paket_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            }
          },
          {
            "name": "dil",
            "in": "query",
            "required": false,
            "schema": {
              "maxItems": 100,
              "type": "array",
              "items": {
                "type": "string",
                "pattern": "^[a-z]{2,3}$"
              }
            }
          },
          {
            "name": "boyut",
            "in": "query",
            "required": false,
            "schema": {
              "default": 50,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "imlec",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 500
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Başarılı",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHaberListesi"
                }
              }
            }
          },
          "400": {
            "description": "dogrulama_hatasi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "401": {
            "description": "anahtar_gecersiz, anahtar_gerekli, anahtar_iptal, anahtar_ortami_uyusmuyor, anahtar_suresi_doldu",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "403": {
            "description": "abonelik_askida, abonelik_yok, ag_disi, deneme_kisiti, kanal_paketinde_yok, kapsam_yok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "429": {
            "description": "gunluk_sinir_doldu, yavasla",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          }
        }
      }
    },
    "/v1/haberler/{id}": {
      "get": {
        "operationId": "haber",
        "summary": "Haber (servisteki son sürüm)",
        "description": "Kimlik yerine numara da kabul edilir (H-001230). ETag ve If-None-Match ile 304.",
        "tags": [
          "Haberler"
        ],
        "x-yha-kapsam": "akis.oku",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Haber kimliği ya da numarası",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Başarılı",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHaber"
                }
              }
            }
          },
          "304": {
            "description": "Değişmedi (If-None-Match)"
          },
          "401": {
            "description": "anahtar_gecersiz, anahtar_gerekli, anahtar_iptal, anahtar_ortami_uyusmuyor, anahtar_suresi_doldu",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "403": {
            "description": "abonelik_askida, abonelik_yok, ag_disi, deneme_kisiti, kanal_paketinde_yok, kapsam_yok, paket_disi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "404": {
            "description": "bulunamadi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "429": {
            "description": "gunluk_sinir_doldu, yavasla",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          }
        }
      }
    },
    "/v1/haberler/{id}/yayinladim": {
      "delete": {
        "operationId": "haber_yayinladim_kaldir",
        "summary": "\"Yayınladım\" işaretini kaldırır",
        "tags": [
          "Haberler"
        ],
        "x-yha-kapsam": "akis.oku",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Haber kimliği ya da numarası",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Başarılı",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisYayinIsaretiYaniti"
                }
              }
            }
          },
          "401": {
            "description": "anahtar_gecersiz, anahtar_gerekli, anahtar_iptal, anahtar_ortami_uyusmuyor, anahtar_suresi_doldu",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "403": {
            "description": "abonelik_askida, abonelik_yok, ag_disi, deneme_kisiti, kanal_paketinde_yok, kapsam_yok, paket_disi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "404": {
            "description": "bulunamadi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "429": {
            "description": "gunluk_sinir_doldu, yavasla",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          }
        }
      },
      "put": {
        "operationId": "haber_yayinladim",
        "summary": "\"Yayınladım\" işareti",
        "description": "Kurum haberi kendi yayınında kullandığını bildirir (WordPress eklentisi yazıyı yayımlayınca kendiliğinden gönderir). Habere sonradan kabul edilmiş hukuki cevap ya da düzeltme yayımlanırsa yalnızca işaretleyen kurumlara değişiklik bildirimi gider. Yinelenebilir: yeniden gönderim adresi günceller. Bir kurum başka kurumun işaretini göremez.",
        "tags": [
          "Haberler"
        ],
        "x-yha-kapsam": "akis.oku",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Haber kimliği ya da numarası",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DisYayinIsareti"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Başarılı",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisYayinIsaretiYaniti"
                }
              }
            }
          },
          "400": {
            "description": "dogrulama_hatasi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "401": {
            "description": "anahtar_gecersiz, anahtar_gerekli, anahtar_iptal, anahtar_ortami_uyusmuyor, anahtar_suresi_doldu",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "403": {
            "description": "abonelik_askida, abonelik_yok, ag_disi, deneme_kisiti, kanal_paketinde_yok, kapsam_yok, paket_disi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "404": {
            "description": "bulunamadi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "409": {
            "description": "icerik_iptal",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "429": {
            "description": "gunluk_sinir_doldu, yavasla",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          }
        }
      }
    },
    "/v1/mcp": {
      "delete": {
        "operationId": "mcp_bitir",
        "summary": "MCP oturum sonu (durumsuz kipte etkisiz)",
        "tags": [
          "MCP"
        ],
        "x-yha-kapsam": "mcp.kullan",
        "responses": {
          "401": {
            "description": "anahtar_gecersiz, anahtar_gerekli, anahtar_iptal, anahtar_ortami_uyusmuyor, anahtar_suresi_doldu",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "403": {
            "description": "abonelik_askida, abonelik_yok, ag_disi, deneme_kisiti, kanal_paketinde_yok, kapsam_yok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "405": {
            "description": "Gövdesiz"
          },
          "429": {
            "description": "gunluk_sinir_doldu, yavasla",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          }
        }
      },
      "get": {
        "operationId": "mcp_akis",
        "summary": "MCP akışı (durumsuz kipte açılmaz: 405)",
        "tags": [
          "MCP"
        ],
        "x-yha-kapsam": "mcp.kullan",
        "responses": {
          "401": {
            "description": "anahtar_gecersiz, anahtar_gerekli, anahtar_iptal, anahtar_ortami_uyusmuyor, anahtar_suresi_doldu",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "403": {
            "description": "abonelik_askida, abonelik_yok, ag_disi, deneme_kisiti, kanal_paketinde_yok, kapsam_yok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "405": {
            "description": "Gövdesiz"
          },
          "429": {
            "description": "gunluk_sinir_doldu, yavasla",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "mcp",
        "summary": "MCP sunucusu (akışlı HTTP, durumsuz)",
        "description": "Araçlar: son_haberler, haber_ara, haber_getir, kategoriler, iller. Yalnızca tools/call çağrı sayılır.",
        "tags": [
          "MCP"
        ],
        "x-yha-kapsam": "mcp.kullan",
        "responses": {
          "200": {
            "description": "Başarılı",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "anahtar_gecersiz, anahtar_gerekli, anahtar_iptal, anahtar_ortami_uyusmuyor, anahtar_suresi_doldu",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "403": {
            "description": "abonelik_askida, abonelik_yok, ag_disi, deneme_kisiti, kanal_paketinde_yok, kapsam_yok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "429": {
            "description": "gunluk_sinir_doldu, yavasla",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          }
        }
      }
    },
    "/v1/olaylar": {
      "get": {
        "operationId": "olaylar",
        "summary": "Anlık akış (sunucu gönderimli olaylar)",
        "description": "`Accept: text/event-stream`; `Last-Event-ID` (ya da `?imlec=`) ile kaldığı yerden sürer. Her 25 saniyede `: canli` yorumu. Uzun kopuklukta `yeniden_yukle` gönderip kapanır.",
        "tags": [
          "Anlık akış"
        ],
        "x-yha-kapsam": "akis.oku",
        "parameters": [
          {
            "name": "imlec",
            "in": "query",
            "required": false,
            "description": "Önceki yanıtın sonraki_imlec değeri",
            "schema": {
              "description": "Önceki yanıtın sonraki_imlec değeri",
              "type": "string",
              "maxLength": 500
            }
          },
          {
            "name": "icerik",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "haber",
                "fotograf",
                "video"
              ]
            }
          },
          {
            "name": "kategori_id",
            "in": "query",
            "required": false,
            "schema": {
              "maxItems": 100,
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              }
            }
          },
          {
            "name": "il_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 81
            }
          },
          {
            "name": "oncelik",
            "in": "query",
            "required": false,
            "schema": {
              "maxItems": 100,
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "flas",
                  "onemli",
                  "normal"
                ]
              }
            }
          },
          {
            "name": "olay",
            "in": "query",
            "required": false,
            "schema": {
              "maxItems": 100,
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "yeni",
                  "duzeltme",
                  "iptal",
                  "guncelleme"
                ]
              }
            }
          },
          {
            "name": "paket_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sunucu gönderimli olaylar; her olayın data alanı DisOlay",
            "content": {
              "text/event-stream": {
                "schema": {
                  "type": "string"
                },
                "itemSchema": {
                  "$ref": "#/components/schemas/DisOlay"
                }
              }
            }
          },
          "401": {
            "description": "anahtar_gecersiz, anahtar_gerekli, anahtar_iptal, anahtar_ortami_uyusmuyor, anahtar_suresi_doldu",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "403": {
            "description": "abonelik_askida, abonelik_yok, ag_disi, deneme_kisiti, kanal_paketinde_yok, kapsam_yok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "406": {
            "description": "kabul_edilemez",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "429": {
            "description": "es_zamanli_baglanti_siniri, gunluk_sinir_doldu, yavasla",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          }
        }
      }
    },
    "/v1/openapi.json": {
      "get": {
        "operationId": "openapi",
        "summary": "OpenAPI 3.1 belgesi (anahtarsız)",
        "tags": [
          "Belge"
        ],
        "security": [],
        "responses": {
          "200": {
            "description": "Başarılı",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          }
        }
      }
    },
    "/v1/sozluk/iller": {
      "get": {
        "operationId": "sozluk_iller",
        "summary": "İller ve ilçeler",
        "tags": [
          "Sözlük"
        ],
        "x-yha-kapsam": "akis.oku",
        "responses": {
          "200": {
            "description": "Başarılı",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisSozlukIller"
                }
              }
            }
          },
          "401": {
            "description": "anahtar_gecersiz, anahtar_gerekli, anahtar_iptal, anahtar_ortami_uyusmuyor, anahtar_suresi_doldu",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "403": {
            "description": "abonelik_askida, abonelik_yok, ag_disi, deneme_kisiti, kanal_paketinde_yok, kapsam_yok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "429": {
            "description": "gunluk_sinir_doldu, yavasla",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          }
        }
      }
    },
    "/v1/sozluk/kategoriler": {
      "get": {
        "operationId": "sozluk_kategoriler",
        "summary": "Kategoriler",
        "tags": [
          "Sözlük"
        ],
        "x-yha-kapsam": "akis.oku",
        "responses": {
          "200": {
            "description": "Başarılı",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisSozlukKategoriler"
                }
              }
            }
          },
          "401": {
            "description": "anahtar_gecersiz, anahtar_gerekli, anahtar_iptal, anahtar_ortami_uyusmuyor, anahtar_suresi_doldu",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "403": {
            "description": "abonelik_askida, abonelik_yok, ag_disi, deneme_kisiti, kanal_paketinde_yok, kapsam_yok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "429": {
            "description": "gunluk_sinir_doldu, yavasla",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          }
        }
      }
    },
    "/v1/varliklar": {
      "get": {
        "operationId": "varliklar",
        "summary": "Tek başına servis edilen medya",
        "tags": [
          "Medya"
        ],
        "x-yha-kapsam": "akis.oku",
        "parameters": [
          {
            "name": "tur",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "fotograf",
                "video",
                "foto_360",
                "video_360"
              ]
            }
          },
          {
            "name": "baslangic",
            "in": "query",
            "required": false,
            "description": "ISO 8601 ya da YYYY-AA-GG",
            "schema": {
              "description": "ISO 8601 ya da YYYY-AA-GG",
              "type": "string",
              "maxLength": 40
            }
          },
          {
            "name": "bitis",
            "in": "query",
            "required": false,
            "description": "ISO 8601 ya da YYYY-AA-GG",
            "schema": {
              "description": "ISO 8601 ya da YYYY-AA-GG",
              "type": "string",
              "maxLength": 40
            }
          },
          {
            "name": "kategori_id",
            "in": "query",
            "required": false,
            "schema": {
              "maxItems": 100,
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              }
            }
          },
          {
            "name": "il_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 81
            }
          },
          {
            "name": "boyut",
            "in": "query",
            "required": false,
            "schema": {
              "default": 50,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "imlec",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 500
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Başarılı",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisVarlikListesi"
                }
              }
            }
          },
          "400": {
            "description": "dogrulama_hatasi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "401": {
            "description": "anahtar_gecersiz, anahtar_gerekli, anahtar_iptal, anahtar_ortami_uyusmuyor, anahtar_suresi_doldu",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "403": {
            "description": "abonelik_askida, abonelik_yok, ag_disi, deneme_kisiti, kanal_paketinde_yok, kapsam_yok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "429": {
            "description": "gunluk_sinir_doldu, yavasla",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          }
        }
      }
    },
    "/v1/varliklar/{id}": {
      "get": {
        "operationId": "varlik",
        "summary": "Fotoğraf, video ya da belge",
        "tags": [
          "Medya"
        ],
        "x-yha-kapsam": "akis.oku",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Medya kimliği ya da numarası (F-000386, V-000412, B-000017)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Başarılı",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisVarlik"
                }
              }
            }
          },
          "304": {
            "description": "Değişmedi (If-None-Match)"
          },
          "401": {
            "description": "anahtar_gecersiz, anahtar_gerekli, anahtar_iptal, anahtar_ortami_uyusmuyor, anahtar_suresi_doldu",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "403": {
            "description": "abonelik_askida, abonelik_yok, ag_disi, deneme_kisiti, kanal_paketinde_yok, kapsam_yok, paket_disi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "404": {
            "description": "bulunamadi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "429": {
            "description": "gunluk_sinir_doldu, yavasla",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          }
        }
      }
    },
    "/v1/varliklar/{id}/dosya": {
      "get": {
        "operationId": "varlik_dosyasi",
        "summary": "Dosya (303 ile imzalı adrese yönlendirir)",
        "description": "Kopya hazırlanıyorsa 202 `hazirlaniyor` ve `Retry-After`. İndirilen fotoğraf ve video aylık indirme kotasına girer; belge (PDF, tek seçenek `orijinal`) girmez.",
        "tags": [
          "Medya"
        ],
        "x-yha-kapsam": "icerik.indir",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Medya kimliği ya da numarası",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "secenek",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "enum": [
                    "kucuk",
                    "web",
                    "orijinal",
                    "1080p",
                    "720p",
                    "480p",
                    "kapak"
                  ]
                },
                {
                  "type": "string",
                  "pattern": "^\\d{3,5}x\\d{3,5}$"
                }
              ]
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Kopya hazırlanıyor (Retry-After)",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "303": {
            "description": "İmzalı dosya adresine yönlendirme (Location)",
            "headers": {
              "Location": {
                "schema": {
                  "type": "string",
                  "format": "uri"
                }
              }
            }
          },
          "401": {
            "description": "anahtar_gecersiz, anahtar_gerekli, anahtar_iptal, anahtar_ortami_uyusmuyor, anahtar_suresi_doldu",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "403": {
            "description": "abonelik_askida, abonelik_yok, ag_disi, deneme_kisiti, kanal_paketinde_yok, kapsam_yok, paket_disi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "404": {
            "description": "bulunamadi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "409": {
            "description": "icerik_iptal, kota_doldu",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "429": {
            "description": "gunluk_sinir_doldu, yavasla",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          }
        }
      }
    },
    "/v1/varliklar/{id}/goruntuleyici": {
      "get": {
        "operationId": "varlik_goruntuleyici",
        "summary": "360° görüntüleyici yanıtı (döşemeler ya da video)",
        "description": "Yalnızca 360° fotoğraf ve videoda. Döşeme adresleri `doseme.adres_kalibi`ndan kurulur; döşeme istekleri API kotasına girmez, jeton başına dakikalık sınıra girer. Jeton süresi dolunca bu uç yeniden çağrılır.",
        "tags": [
          "Medya"
        ],
        "x-yha-kapsam": "icerik.indir",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Medya kimliği ya da numarası (YHA-360-000412)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Başarılı",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisGoruntuleyici"
                }
              }
            }
          },
          "401": {
            "description": "anahtar_gecersiz, anahtar_gerekli",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "403": {
            "description": "kapsam_yok, paket_disi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "404": {
            "description": "bulunamadi",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "409": {
            "description": "kuresel_degil",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          },
          "429": {
            "description": "yavasla",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisHata"
                }
              }
            }
          }
        }
      }
    }
  },
  "webhooks": {
    "haber.yeni": {
      "post": {
        "operationId": "webhook_olay",
        "summary": "Webhook olayı (Standard Webhooks imzalı)",
        "description": "Başlıklar: `webhook-id` (yeniden denemelerde aynı), `webhook-timestamp` (Unix saniye), `webhook-signature: v1,<base64 HMAC-SHA256>`. İmzalanan metin `<webhook-id>.<webhook-timestamp>.<ham gövde>`; anahtar `whsec_` önekinden sonraki base64 çözülmüş baytlar. Olay türleri: haber.yeni, haber.duzeltme, haber.iptal, varlik.yeni, varlik.iptal, varlik.guncelleme, sinama.ping.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookGovdesi"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "2xx: teslim edildi; 410: abone kanalı kapatır"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "anahtar": {
        "type": "http",
        "scheme": "bearer",
        "description": "yha_canli_… ya da yha_deneme_…"
      }
    },
    "schemas": {
      "CanliYayin": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "no": {
            "type": "string",
            "description": "CY-000041"
          },
          "baslik": {
            "type": [
              "string",
              "null"
            ]
          },
          "aciklama": {
            "type": [
              "string",
              "null"
            ]
          },
          "kategori": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DisKategori"
              },
              {
                "type": "null"
              }
            ]
          },
          "il": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DisIl"
              },
              {
                "type": "null"
              }
            ]
          },
          "kaynak": {
            "type": "object",
            "properties": {
              "tur": {
                "type": "string",
                "enum": [
                  "ajans",
                  "kurum"
                ]
              },
              "ad": {
                "type": "string",
                "description": "Kurum yayınında kaynak adı; ajans yayınında \"Yazar Haber Ajansı\""
              }
            },
            "required": [
              "tur",
              "ad"
            ],
            "additionalProperties": false
          },
          "durum": {
            "type": "string",
            "enum": [
              "canli",
              "yeniden_baglaniyor",
              "bitti"
            ]
          },
          "baslama_zamani": {
            "anyOf": [
              {
                "type": "string",
                "description": "ISO 8601, UTC"
              },
              {
                "type": "null"
              }
            ]
          },
          "bitis_zamani": {
            "anyOf": [
              {
                "type": "string",
                "description": "ISO 8601, UTC"
              },
              {
                "type": "null"
              }
            ]
          },
          "kayit_varlik_id": {
            "description": "Kayıt videosu servise verildiyse (GET /v1/varliklar/:id)",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "no",
          "baslik",
          "aciklama",
          "kategori",
          "il",
          "kaynak",
          "durum",
          "baslama_zamani",
          "bitis_zamani",
          "kayit_varlik_id"
        ],
        "additionalProperties": false,
        "description": "Canlı yayın (abonelere açılmış; anahtarın paketlerinde görülen). Adres taşımaz"
      },
      "CanliYayinListesi": {
        "type": "object",
        "properties": {
          "ogeler": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CanliYayin"
            }
          }
        },
        "required": [
          "ogeler"
        ],
        "additionalProperties": false,
        "description": "Canlı yayınlar (süren ya da son 7 günde biten)"
      },
      "CanliYayinOlayi": {
        "type": "object",
        "properties": {
          "olay_id": {
            "type": "string"
          },
          "olay": {
            "type": "string",
            "enum": [
              "basladi",
              "bitti"
            ]
          },
          "zaman": {
            "type": "string",
            "description": "ISO 8601, UTC"
          },
          "icerik": {
            "type": "string",
            "const": "canli_yayin"
          },
          "canli_yayin": {
            "$ref": "#/components/schemas/CanliYayin"
          }
        },
        "required": [
          "olay_id",
          "olay",
          "zaman",
          "icerik",
          "canli_yayin"
        ],
        "additionalProperties": false,
        "description": "Webhook canlı yayın olayı (abonelere açıldığında ve bittiğinde; oynatma ya da akış adresi yok)"
      },
      "DisAdres": {
        "type": "object",
        "properties": {
          "adres": {
            "type": "string"
          },
          "son_gecerlilik_zamani": {
            "type": "string",
            "description": "ISO 8601, UTC"
          }
        },
        "required": [
          "adres",
          "son_gecerlilik_zamani"
        ],
        "additionalProperties": false,
        "description": "İmzalı, süreli dosya adresi"
      },
      "DisAramaSonucu": {
        "type": "object",
        "properties": {
          "ogeler": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "icerik": {
                  "type": "string",
                  "enum": [
                    "haber",
                    "fotograf",
                    "video",
                    "foto_360",
                    "video_360"
                  ]
                },
                "haber": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/DisHaberOzet"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "varlik": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/DisVarlik"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "icerik",
                "haber",
                "varlik"
              ],
              "additionalProperties": false
            }
          },
          "sonraki_imlec": {
            "type": [
              "string",
              "null"
            ]
          },
          "devami_var": {
            "type": "boolean"
          }
        },
        "required": [
          "ogeler",
          "sonraki_imlec",
          "devami_var"
        ],
        "additionalProperties": false,
        "description": "Arama sonucu"
      },
      "DisBen": {
        "type": "object",
        "properties": {
          "anahtar": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "ad": {
                "type": "string"
              },
              "on_ek": {
                "type": "string"
              },
              "ortam": {
                "type": "string",
                "enum": [
                  "canli",
                  "deneme"
                ]
              },
              "tur": {
                "type": "string",
                "enum": [
                  "api",
                  "mcp"
                ]
              },
              "kapsamlar": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "son_kullanma_zamani": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "ISO 8601, UTC"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "id",
              "ad",
              "on_ek",
              "ortam",
              "tur",
              "kapsamlar",
              "son_kullanma_zamani"
            ],
            "additionalProperties": false
          },
          "kurum": {
            "type": "object",
            "properties": {
              "unvan": {
                "type": "string"
              },
              "kisa_kod": {
                "type": "string"
              }
            },
            "required": [
              "unvan",
              "kisa_kod"
            ],
            "additionalProperties": false
          },
          "abonelik": {
            "type": "object",
            "properties": {
              "durum": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "tanitim_icerigi_al": {
                "type": "boolean"
              }
            },
            "required": [
              "durum",
              "tanitim_icerigi_al"
            ],
            "additionalProperties": false
          },
          "paketler": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DisPaket"
            }
          },
          "sinirlar": {
            "type": "object",
            "properties": {
              "dakika": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "gun": {
                "type": "object",
                "properties": {
                  "sinir": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "kullanilan": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "sifirlanma_zamani": {
                    "type": "string",
                    "description": "ISO 8601, UTC"
                  }
                },
                "required": [
                  "sinir",
                  "kullanilan",
                  "sifirlanma_zamani"
                ],
                "additionalProperties": false
              },
              "es_zamanli_baglanti": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "dakika",
              "gun",
              "es_zamanli_baglanti"
            ],
            "additionalProperties": false
          },
          "kota": {
            "type": "object",
            "properties": {
              "indirme": {
                "type": "object",
                "properties": {
                  "kullanilan": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "sinir": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "donem_bitis_tarihi": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": [
                  "kullanilan",
                  "sinir",
                  "donem_bitis_tarihi"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "indirme"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "anahtar",
          "kurum",
          "abonelik",
          "paketler",
          "sinirlar",
          "kota"
        ],
        "additionalProperties": false,
        "description": "Anahtar, kurum, paketler ve sınırlar"
      },
      "DisDurum": {
        "type": "object",
        "properties": {
          "servisler": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "kod": {
                  "type": "string"
                },
                "ad": {
                  "type": "string"
                },
                "durum": {
                  "type": "string",
                  "enum": [
                    "calisiyor",
                    "bakim",
                    "yavas",
                    "kismi_kesinti",
                    "kesinti"
                  ]
                },
                "durum_zamani": {
                  "type": "string",
                  "description": "ISO 8601, UTC"
                }
              },
              "required": [
                "kod",
                "ad",
                "durum",
                "durum_zamani"
              ],
              "additionalProperties": false
            }
          },
          "acik_olaylar": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "baslik": {
                  "type": "string"
                },
                "tur": {
                  "type": "string",
                  "enum": [
                    "kesinti",
                    "yavaslama",
                    "bakim"
                  ]
                },
                "baslangic_zamani": {
                  "type": "string",
                  "description": "ISO 8601, UTC"
                },
                "aciklama": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "id",
                "baslik",
                "tur",
                "baslangic_zamani",
                "aciklama"
              ],
              "additionalProperties": false
            }
          },
          "bakim_duyurulari": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "baslik": {
                  "type": "string"
                },
                "baslangic_zamani": {
                  "type": "string",
                  "description": "ISO 8601, UTC"
                },
                "bitis_zamani": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "ISO 8601, UTC"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "baslik",
                "baslangic_zamani",
                "bitis_zamani"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "servisler",
          "acik_olaylar",
          "bakim_duyurulari"
        ],
        "additionalProperties": false,
        "description": "Abone servislerinin durumu, kullanıcılara duyurulmuş açık olaylar ve planlı bakımlar"
      },
      "DisDuzeltme": {
        "type": "object",
        "properties": {
          "zaman": {
            "type": "string",
            "description": "ISO 8601, UTC"
          },
          "surum_no": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "not": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "zaman",
          "surum_no",
          "not"
        ],
        "additionalProperties": false,
        "description": "Düzeltme kaydı"
      },
      "DisEklentiSurumu": {
        "type": "object",
        "properties": {
          "kod": {
            "type": "string"
          },
          "surum": {
            "type": "string"
          },
          "yayim_zamani": {
            "anyOf": [
              {
                "type": "string",
                "description": "ISO 8601, UTC"
              },
              {
                "type": "null"
              }
            ]
          },
          "gereken_wordpress": {
            "type": "string"
          },
          "gereken_php": {
            "type": "string"
          },
          "sinanan_wordpress": {
            "type": [
              "string",
              "null"
            ]
          },
          "indirme_adresi": {
            "type": "string"
          },
          "sha256": {
            "type": [
              "string",
              "null"
            ]
          },
          "imza": {
            "type": [
              "string",
              "null"
            ]
          },
          "boyut_bayt": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "notlar": {
            "type": [
              "string",
              "null"
            ]
          },
          "en_dusuk_surum": {
            "type": [
              "string",
              "null"
            ]
          },
          "zorunlu": {
            "type": "boolean"
          }
        },
        "required": [
          "kod",
          "surum",
          "yayim_zamani",
          "gereken_wordpress",
          "gereken_php",
          "sinanan_wordpress",
          "indirme_adresi",
          "sha256",
          "imza",
          "boyut_bayt",
          "notlar",
          "en_dusuk_surum",
          "zorunlu"
        ],
        "additionalProperties": false,
        "description": "Eklentinin güncel sürümü ve imzalı paketi (Ed25519); eklenti kurmadan önce SHA-256 ve imzayı doğrular"
      },
      "DisEmbargo": {
        "type": "object",
        "properties": {
          "zaman": {
            "type": "string",
            "description": "ISO 8601, UTC"
          },
          "suruyor": {
            "type": "boolean"
          }
        },
        "required": [
          "zaman",
          "suruyor"
        ],
        "additionalProperties": false,
        "description": "Önceden verilen embargolu içerik: yayım serbest zamanı"
      },
      "DisEntegrasyonBildirimi": {
        "type": "object",
        "properties": {
          "entegrasyon_id": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              {
                "type": "null"
              }
            ]
          },
          "tur": {
            "type": "string",
            "enum": [
              "wordpress_eklentisi",
              "baglayici",
              "kendi_yazilimi"
            ]
          },
          "yazilim": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "ad": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "surum": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 200
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "ad"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "eklenti": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "kod": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "surum": {
                    "type": "string",
                    "maxLength": 200
                  }
                },
                "required": [
                  "kod",
                  "surum"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "calisma_ortami": {
            "anyOf": [
              {
                "type": "object",
                "propertyNames": {
                  "type": "string",
                  "maxLength": 40
                },
                "additionalProperties": {
                  "type": "string",
                  "maxLength": 200
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "site_adresi": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 500
              },
              {
                "type": "null"
              }
            ]
          },
          "webhook_adresi": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 500
              },
              {
                "type": "null"
              }
            ]
          },
          "kip": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "webhook",
                  "cekme"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "yayin_bicimi": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "taslak",
                  "dogrudan"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "zamanlayici": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "wp_cron",
                  "sistem_cron",
                  "diger"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "son_cekme_zamani": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 40
              },
              {
                "type": "null"
              }
            ]
          },
          "son_olay_zamani": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 40
              },
              {
                "type": "null"
              }
            ]
          },
          "esleme": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "kategori_eslenen": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 10000
                  },
                  "kategori_toplam": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 10000
                  }
                },
                "required": [
                  "kategori_eslenen",
                  "kategori_toplam"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "sayaclar": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "bugun_yeni": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "bugun_duzeltme": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "bugun_iptal": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "bekleyen_medya": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "hata": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "hatalar": {
            "anyOf": [
              {
                "maxItems": 20,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "zaman": {
                      "type": "string",
                      "maxLength": 40
                    },
                    "kod": {
                      "type": "string",
                      "maxLength": 200
                    },
                    "mesaj": {
                      "type": "string",
                      "maxLength": 500
                    }
                  },
                  "required": [
                    "zaman",
                    "kod",
                    "mesaj"
                  ],
                  "additionalProperties": false
                }
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "tur"
        ],
        "additionalProperties": false,
        "description": "Bağlantının kendini tanıtması ve durum bildirimi (WordPress eklentisi her eşitleme döngüsünde; kişi verisi yok)"
      },
      "DisEntegrasyonYaniti": {
        "type": "object",
        "properties": {
          "entegrasyon_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "durum": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "kuruluyor",
                  "calisiyor",
                  "hata",
                  "kaldirildi"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "sonraki_bildirim_saniye": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "eklenti": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "guncel_surum": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "en_dusuk_surum": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "guncelleme_var": {
                    "type": "boolean"
                  },
                  "zorunlu": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "guncel_surum",
                  "en_dusuk_surum",
                  "guncelleme_var",
                  "zorunlu"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "webhook": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "etkin": {
                    "type": "boolean"
                  },
                  "hedef_adres": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "durum": {
                    "type": "string"
                  }
                },
                "required": [
                  "etkin",
                  "hedef_adres",
                  "durum"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "uyarilar": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "kod": {
                  "type": "string"
                },
                "mesaj": {
                  "type": "string"
                }
              },
              "required": [
                "kod",
                "mesaj"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "entegrasyon_id",
          "durum",
          "sonraki_bildirim_saniye",
          "eklenti",
          "webhook",
          "uyarilar"
        ],
        "additionalProperties": false,
        "description": "Entegrasyonun durumu, bir sonraki bildirimin zamanı, eklenti sürümü ve uyarılar"
      },
      "DisGoruntuleyici": {
        "type": "object",
        "properties": {
          "varlik_id": {
            "type": "string"
          },
          "no_metni": {
            "type": "string",
            "description": "YHA-360-000412"
          },
          "tur": {
            "type": "string",
            "enum": [
              "foto_360",
              "video_360"
            ]
          },
          "durum": {
            "type": "string",
            "enum": [
              "hazir",
              "hazirlaniyor",
              "yok"
            ]
          },
          "izdusum": {
            "type": "string",
            "enum": [
              "esdikdortgen"
            ]
          },
          "kaynak_olcusu": {
            "type": "object",
            "properties": {
              "genislik": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "yukseklik": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "genislik",
              "yukseklik"
            ],
            "additionalProperties": false
          },
          "acilis": {
            "type": "object",
            "properties": {
              "yon": {
                "type": "number"
              },
              "egim": {
                "type": "number"
              },
              "yakinlik": {
                "type": "number"
              }
            },
            "required": [
              "yon",
              "egim",
              "yakinlik"
            ],
            "additionalProperties": false
          },
          "sinirlar": {
            "type": "object",
            "properties": {
              "yakinlik_en_az": {
                "type": "number"
              },
              "yakinlik_en_cok": {
                "type": "number"
              },
              "egim_en_az": {
                "type": "number"
              },
              "egim_en_cok": {
                "type": "number"
              }
            },
            "required": [
              "yakinlik_en_az",
              "yakinlik_en_cok",
              "egim_en_az",
              "egim_en_cok"
            ],
            "additionalProperties": false
          },
          "taban": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DisKureselAdres"
              },
              {
                "type": "null"
              }
            ]
          },
          "doseme": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "adres_kalibi": {
                    "type": "string",
                    "description": "{seviye}/{sutun}/{satir} yer tutuculu; döşemeler API kotasına girmez"
                  },
                  "bitis_zamani": {
                    "type": "string",
                    "description": "ISO 8601, UTC"
                  },
                  "doseme_boyu": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "bicim": {
                    "type": "string",
                    "enum": [
                      "jpg"
                    ]
                  },
                  "filigranli": {
                    "type": "boolean"
                  },
                  "onbellek_anahtari": {
                    "type": "string"
                  },
                  "seviyeler": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "seviye": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "genislik": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "yukseklik": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "sutun": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "satir": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        }
                      },
                      "required": [
                        "seviye",
                        "genislik",
                        "yukseklik",
                        "sutun",
                        "satir"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "adres_kalibi",
                  "bitis_zamani",
                  "doseme_boyu",
                  "bicim",
                  "filigranli",
                  "onbellek_anahtari",
                  "seviyeler"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "video": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "adres": {
                    "$ref": "#/components/schemas/DisKureselAdres"
                  },
                  "sure_ms": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "kare_hizi": {
                    "type": [
                      "number",
                      "null"
                    ]
                  },
                  "genislik": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "yukseklik": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "serit": {
                    "anyOf": [
                      {
                        "$ref": "#/components/schemas/DisKureselAdres"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "adres",
                  "sure_ms",
                  "kare_hizi",
                  "genislik",
                  "yukseklik",
                  "serit"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "kapak": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DisKureselAdres"
              },
              {
                "type": "null"
              }
            ]
          },
          "kucuk_resim": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DisKureselAdres"
              },
              {
                "type": "null"
              }
            ]
          },
          "yazi_katmani": {
            "type": "object",
            "properties": {
              "metin": {
                "type": "string"
              },
              "konum": {
                "type": "string",
                "enum": [
                  "sol_alt"
                ]
              }
            },
            "required": [
              "metin",
              "konum"
            ],
            "additionalProperties": false
          },
          "baslik": {
            "type": [
              "string",
              "null"
            ]
          },
          "imza": {
            "type": "string"
          }
        },
        "required": [
          "varlik_id",
          "no_metni",
          "tur",
          "durum",
          "izdusum",
          "kaynak_olcusu",
          "acilis",
          "sinirlar",
          "taban",
          "doseme",
          "video",
          "kapak",
          "kucuk_resim",
          "yazi_katmani",
          "baslik",
          "imza"
        ],
        "additionalProperties": false,
        "description": "360° görüntüleyici yanıtı (Faz 20): gömme döşemeleri ya da gömme videosu (2560 × 1280), filigran otomatik çıkış kuralıyla"
      },
      "DisHaber": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "no": {
            "type": "string",
            "description": "H-001230"
          },
          "surum_no": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "durum": {
            "type": "string",
            "enum": [
              "serviste",
              "iptal_edildi"
            ]
          },
          "tur": {
            "type": "object",
            "properties": {
              "kod": {
                "type": "string"
              },
              "ad": {
                "type": "string"
              }
            },
            "required": [
              "kod",
              "ad"
            ],
            "additionalProperties": false
          },
          "oncelik": {
            "type": "string",
            "enum": [
              "flas",
              "onemli",
              "normal"
            ]
          },
          "baslik": {
            "type": "string"
          },
          "spot": {
            "type": [
              "string",
              "null"
            ]
          },
          "etiketler": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "kategori": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DisKategori"
              },
              {
                "type": "null"
              }
            ]
          },
          "il": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DisIl"
              },
              {
                "type": "null"
              }
            ]
          },
          "ilce": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DisIlce"
              },
              {
                "type": "null"
              }
            ]
          },
          "imza": {
            "type": "string"
          },
          "kaynak_kurum": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "ad": {
                    "type": "string"
                  },
                  "ozgun_adres": {
                    "description": "Duyuru haberinde kurumun duyurusunun özgün adresi (Faz 15); diğerlerinde null",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "ozgun_yayim_zamani": {
                    "description": "Duyuru haberinde kurumun duyuruyu yayımladığı zaman",
                    "anyOf": [
                      {
                        "type": "string",
                        "description": "ISO 8601, UTC"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "ad"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "ilk_servis_zamani": {
            "type": "string",
            "description": "ISO 8601, UTC"
          },
          "servis_zamani": {
            "type": "string",
            "description": "ISO 8601, UTC"
          },
          "embargo": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DisEmbargo"
              },
              {
                "type": "null"
              }
            ]
          },
          "kullanim": {
            "type": "object",
            "properties": {
              "kaynak_gosterme_notu": {
                "type": "string"
              },
              "kullanim_kisiti": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "kaynak_gosterme_notu",
              "kullanim_kisiti"
            ],
            "additionalProperties": false
          },
          "tanitim": {
            "type": "boolean"
          },
          "iptal": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "zaman": {
                    "type": "string",
                    "description": "ISO 8601, UTC"
                  },
                  "gerekce": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "kaldirma": {
                    "type": "boolean",
                    "description": "Hukuki kaynaklı kaldırma: içeriği kendi yayınınızdan da kaldırın (Faz 14)"
                  }
                },
                "required": [
                  "zaman",
                  "gerekce",
                  "kaldirma"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "zincir_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "dil": {
            "description": "Haberin dili (BCP 47 dil alt etiketi: tr, en, ar; Faz 22)",
            "type": "string"
          },
          "ceviri": {
            "description": "Çeviri haberinde Türkçe aslı (Faz 22); Türkçe haberde null",
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "kaynak_dil": {
                    "type": "string",
                    "description": "Kaynak dil (her zaman tr; Türkçe asıl esastır)"
                  },
                  "kaynak_no": {
                    "type": "string",
                    "description": "Türkçe aslının numarası (H-001230)"
                  }
                },
                "required": [
                  "kaynak_dil",
                  "kaynak_no"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "adres": {
            "type": "string"
          },
          "deneme": {
            "description": "Yalnızca deneme ortamında: true",
            "type": "boolean"
          },
          "govde": {
            "type": "string"
          },
          "duzeltmeler": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DisDuzeltme"
            }
          },
          "medya": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DisVarlik"
            },
            "description": "Yalnızca erişilebilen medya; paket dışı medya ve sayısı yoktur"
          }
        },
        "required": [
          "id",
          "no",
          "surum_no",
          "durum",
          "tur",
          "oncelik",
          "baslik",
          "spot",
          "etiketler",
          "kategori",
          "il",
          "ilce",
          "imza",
          "kaynak_kurum",
          "ilk_servis_zamani",
          "servis_zamani",
          "embargo",
          "kullanim",
          "tanitim",
          "iptal",
          "zincir_id",
          "adres",
          "govde",
          "duzeltmeler",
          "medya"
        ],
        "additionalProperties": false,
        "description": "Haber (servisteki son sürüm). İptalde govde, spot ve medya boştur"
      },
      "DisHaberListesi": {
        "type": "object",
        "properties": {
          "ogeler": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DisHaberOzet"
            }
          },
          "sonraki_imlec": {
            "type": [
              "string",
              "null"
            ]
          },
          "devami_var": {
            "type": "boolean"
          }
        },
        "required": [
          "ogeler",
          "sonraki_imlec",
          "devami_var"
        ],
        "additionalProperties": false,
        "description": "Haber listesi (yeniden eskiye)"
      },
      "DisHaberOzet": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "no": {
            "type": "string",
            "description": "H-001230"
          },
          "surum_no": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "durum": {
            "type": "string",
            "enum": [
              "serviste",
              "iptal_edildi"
            ]
          },
          "tur": {
            "type": "object",
            "properties": {
              "kod": {
                "type": "string"
              },
              "ad": {
                "type": "string"
              }
            },
            "required": [
              "kod",
              "ad"
            ],
            "additionalProperties": false
          },
          "oncelik": {
            "type": "string",
            "enum": [
              "flas",
              "onemli",
              "normal"
            ]
          },
          "baslik": {
            "type": "string"
          },
          "spot": {
            "type": [
              "string",
              "null"
            ]
          },
          "etiketler": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "kategori": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DisKategori"
              },
              {
                "type": "null"
              }
            ]
          },
          "il": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DisIl"
              },
              {
                "type": "null"
              }
            ]
          },
          "ilce": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DisIlce"
              },
              {
                "type": "null"
              }
            ]
          },
          "imza": {
            "type": "string"
          },
          "kaynak_kurum": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "ad": {
                    "type": "string"
                  },
                  "ozgun_adres": {
                    "description": "Duyuru haberinde kurumun duyurusunun özgün adresi (Faz 15); diğerlerinde null",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "ozgun_yayim_zamani": {
                    "description": "Duyuru haberinde kurumun duyuruyu yayımladığı zaman",
                    "anyOf": [
                      {
                        "type": "string",
                        "description": "ISO 8601, UTC"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "ad"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "ilk_servis_zamani": {
            "type": "string",
            "description": "ISO 8601, UTC"
          },
          "servis_zamani": {
            "type": "string",
            "description": "ISO 8601, UTC"
          },
          "embargo": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DisEmbargo"
              },
              {
                "type": "null"
              }
            ]
          },
          "kullanim": {
            "type": "object",
            "properties": {
              "kaynak_gosterme_notu": {
                "type": "string"
              },
              "kullanim_kisiti": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "kaynak_gosterme_notu",
              "kullanim_kisiti"
            ],
            "additionalProperties": false
          },
          "tanitim": {
            "type": "boolean"
          },
          "iptal": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "zaman": {
                    "type": "string",
                    "description": "ISO 8601, UTC"
                  },
                  "gerekce": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "kaldirma": {
                    "type": "boolean",
                    "description": "Hukuki kaynaklı kaldırma: içeriği kendi yayınınızdan da kaldırın (Faz 14)"
                  }
                },
                "required": [
                  "zaman",
                  "gerekce",
                  "kaldirma"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "zincir_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "dil": {
            "description": "Haberin dili (BCP 47 dil alt etiketi: tr, en, ar; Faz 22)",
            "type": "string"
          },
          "ceviri": {
            "description": "Çeviri haberinde Türkçe aslı (Faz 22); Türkçe haberde null",
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "kaynak_dil": {
                    "type": "string",
                    "description": "Kaynak dil (her zaman tr; Türkçe asıl esastır)"
                  },
                  "kaynak_no": {
                    "type": "string",
                    "description": "Türkçe aslının numarası (H-001230)"
                  }
                },
                "required": [
                  "kaynak_dil",
                  "kaynak_no"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "adres": {
            "type": "string"
          },
          "deneme": {
            "description": "Yalnızca deneme ortamında: true",
            "type": "boolean"
          },
          "medya_sayisi": {
            "type": "object",
            "properties": {
              "fotograf": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "video": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "belge": {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              "kuresel": {
                "description": "360° fotoğraf ve video (Faz 20)",
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "fotograf",
              "video",
              "belge"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "id",
          "no",
          "surum_no",
          "durum",
          "tur",
          "oncelik",
          "baslik",
          "spot",
          "etiketler",
          "kategori",
          "il",
          "ilce",
          "imza",
          "kaynak_kurum",
          "ilk_servis_zamani",
          "servis_zamani",
          "embargo",
          "kullanim",
          "tanitim",
          "iptal",
          "zincir_id",
          "adres",
          "medya_sayisi"
        ],
        "additionalProperties": false,
        "description": "Liste satırı (gövde, düzeltmeler ve medya yerine erişilebilen medya sayısı)"
      },
      "DisHata": {
        "type": "object",
        "properties": {
          "hata": {
            "type": "object",
            "properties": {
              "kod": {
                "type": "string"
              },
              "mesaj": {
                "type": "string"
              },
              "belge": {
                "type": "string"
              },
              "alanlar": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {
                  "type": "string"
                }
              }
            },
            "required": [
              "kod",
              "mesaj"
            ],
            "additionalProperties": {}
          }
        },
        "required": [
          "hata"
        ],
        "additionalProperties": false,
        "description": "Hata biçimi (Faz 1) ve hata kodunun belge adresi"
      },
      "DisIl": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "ad": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "ad"
        ],
        "additionalProperties": false,
        "description": "İl (plaka kodu)"
      },
      "DisIlce": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "ad": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "ad"
        ],
        "additionalProperties": false,
        "description": "İlçe"
      },
      "DisKategori": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "kod": {
            "type": "string"
          },
          "ad": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "kod",
          "ad"
        ],
        "additionalProperties": false,
        "description": "Ajans kategorisi"
      },
      "DisKuresel": {
        "type": "object",
        "properties": {
          "izdusum": {
            "type": "string",
            "enum": [
              "esdikdortgen"
            ]
          },
          "acilis": {
            "type": "object",
            "properties": {
              "yon": {
                "type": "number"
              },
              "egim": {
                "type": "number"
              },
              "yakinlik": {
                "type": "number"
              }
            },
            "required": [
              "yon",
              "egim",
              "yakinlik"
            ],
            "additionalProperties": false
          },
          "goruntuleyici_adresi": {
            "type": "string",
            "description": "GET /v1/varliklar/:id/goruntuleyici (kapsam icerik.indir)"
          }
        },
        "required": [
          "izdusum",
          "acilis",
          "goruntuleyici_adresi"
        ],
        "additionalProperties": false,
        "description": "360° içeriğin izdüşümü, açılış görünümü (derece) ve görüntüleyici yanıtının adresi"
      },
      "DisKureselAdres": {
        "type": "object",
        "properties": {
          "adres": {
            "type": [
              "string",
              "null"
            ]
          },
          "bitis_zamani": {
            "anyOf": [
              {
                "type": "string",
                "description": "ISO 8601, UTC"
              },
              {
                "type": "null"
              }
            ]
          },
          "onbellek_anahtari": {
            "type": "string"
          },
          "genislik": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "yukseklik": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "boyut_bayt": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "bicim": {
            "type": [
              "string",
              "null"
            ]
          },
          "mime": {
            "type": [
              "string",
              "null"
            ]
          },
          "sure_ms": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "onbellege_alinabilir": {
            "type": "boolean"
          }
        },
        "required": [
          "adres",
          "bitis_zamani",
          "onbellek_anahtari",
          "genislik",
          "yukseklik",
          "boyut_bayt",
          "bicim",
          "mime",
          "sure_ms",
          "onbellege_alinabilir"
        ],
        "additionalProperties": false,
        "description": "Görüntüleyicinin imzalı, süreli dosya adresi (taban, kapak, küçük resim, video, şerit)"
      },
      "DisOlay": {
        "type": "object",
        "properties": {
          "olay_id": {
            "type": "string"
          },
          "imlec": {
            "type": "string"
          },
          "olay": {
            "type": "string",
            "enum": [
              "yeni",
              "duzeltme",
              "iptal",
              "guncelleme"
            ]
          },
          "zaman": {
            "type": "string",
            "description": "ISO 8601, UTC"
          },
          "icerik": {
            "type": "string",
            "enum": [
              "haber",
              "fotograf",
              "video",
              "foto_360",
              "video_360"
            ]
          },
          "haber": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DisHaber"
              },
              {
                "type": "null"
              }
            ]
          },
          "varlik": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DisVarlik"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "olay_id",
          "imlec",
          "olay",
          "zaman",
          "icerik",
          "haber",
          "varlik"
        ],
        "additionalProperties": false,
        "description": "Akış olayı. Aynı olay iki kez gelebilir: olay_id ile ayıkla, düzeltmeyi surum_no ile uygula"
      },
      "DisOlayListesi": {
        "type": "object",
        "properties": {
          "ogeler": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DisOlay"
            }
          },
          "sonraki_imlec": {
            "type": [
              "string",
              "null"
            ]
          },
          "devami_var": {
            "type": "boolean"
          }
        },
        "required": [
          "ogeler",
          "sonraki_imlec",
          "devami_var"
        ],
        "additionalProperties": false,
        "description": "Akış sayfası (eskiden yeniye)"
      },
      "DisPaket": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "kod": {
            "type": "string"
          },
          "ad": {
            "type": "string"
          },
          "ozet": {
            "type": "string"
          },
          "kanallar": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "metin": {
            "type": "boolean"
          },
          "fotograf": {
            "type": "boolean"
          },
          "video": {
            "type": "boolean"
          },
          "tum_kategoriler": {
            "type": "boolean"
          },
          "kategori_idleri": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "turkiye_geneli": {
            "type": "boolean"
          },
          "il_idleri": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            }
          },
          "arsiv_baslangic": {
            "anyOf": [
              {
                "type": "string",
                "description": "ISO 8601, UTC"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "kod",
          "ad",
          "ozet",
          "kanallar",
          "metin",
          "fotograf",
          "video",
          "tum_kategoriler",
          "kategori_idleri",
          "turkiye_geneli",
          "il_idleri",
          "arsiv_baslangic"
        ],
        "additionalProperties": false,
        "description": "Anahtarın kapsadığı paket"
      },
      "DisSecenek": {
        "type": "object",
        "properties": {
          "secenek": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "kucuk",
                  "web",
                  "orijinal",
                  "1080p",
                  "720p",
                  "480p",
                  "kapak"
                ]
              },
              {
                "type": "string",
                "pattern": "^\\d{3,5}x\\d{3,5}$"
              }
            ],
            "description": "360 fotoğrafta kucuk, kapak, web, orijinal; 360 videoda kapak ve 3840x1920, 1920x960 (Faz 20)"
          },
          "genislik": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "yukseklik": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "bicim": {
            "type": [
              "string",
              "null"
            ]
          },
          "boyut_bayt": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "filigranli": {
            "type": [
              "boolean",
              "null"
            ]
          }
        },
        "required": [
          "secenek",
          "genislik",
          "yukseklik",
          "bicim",
          "boyut_bayt",
          "filigranli"
        ],
        "additionalProperties": false,
        "description": "İndirilebilir kopya seçeneği; boyut ve filigran kopya bu kurum için hazırsa dolu"
      },
      "DisSinama": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "ad": {
            "type": "string"
          },
          "durum": {
            "type": "string",
            "enum": [
              "suruyor",
              "tamamlandi",
              "suresi_doldu",
              "iptal"
            ]
          },
          "sonuc": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "uyumlu",
                  "uyumsuz",
                  "eksik"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "baslangic_zamani": {
            "type": "string",
            "description": "ISO 8601, UTC"
          },
          "son_gecerlilik_zamani": {
            "type": "string",
            "description": "ISO 8601, UTC"
          },
          "bitis_zamani": {
            "anyOf": [
              {
                "type": "string",
                "description": "ISO 8601, UTC"
              },
              {
                "type": "null"
              }
            ]
          },
          "yayin_bicimi": {
            "type": "string",
            "enum": [
              "taslak",
              "dogrudan"
            ]
          },
          "anahtar": {
            "type": "object",
            "properties": {
              "on_ek": {
                "type": "string"
              }
            },
            "required": [
              "on_ek"
            ],
            "additionalProperties": false
          },
          "baglanti": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "yazilim": {
                    "anyOf": [
                      {},
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "eklenti": {
                    "anyOf": [
                      {},
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "site_adresi": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": [
                  "yazilim",
                  "eklenti",
                  "site_adresi"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "adimlar": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DisSinamaAdimi"
            }
          }
        },
        "required": [
          "id",
          "ad",
          "durum",
          "sonuc",
          "baslangic_zamani",
          "son_gecerlilik_zamani",
          "bitis_zamani",
          "yayin_bicimi",
          "anahtar",
          "baglanti",
          "adimlar"
        ],
        "additionalProperties": false,
        "description": "Uyumluluk sınaması (deneme ortamında, anahtara özel altı adım)"
      },
      "DisSinamaAdimi": {
        "type": "object",
        "properties": {
          "no": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "kod": {
            "type": "string",
            "enum": [
              "yeni_icerik",
              "duzeltme",
              "iptal",
              "embargo_kullanim",
              "kaynak",
              "yayin_bicimi"
            ]
          },
          "ad": {
            "type": "string"
          },
          "yayilma_zamani": {
            "anyOf": [
              {
                "type": "string",
                "description": "ISO 8601, UTC"
              },
              {
                "type": "null"
              }
            ]
          },
          "icerik": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "no": {
                    "type": "string"
                  },
                  "baslik": {
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "no",
                  "baslik"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "gozlem": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          },
          "rapor": {
            "anyOf": [
              {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              {
                "type": "null"
              }
            ]
          },
          "elle": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "sonuc": {
                    "type": "string",
                    "enum": [
                      "gecti",
                      "kaldi"
                    ]
                  },
                  "not": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "kisi": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "zaman": {
                    "type": "string",
                    "description": "ISO 8601, UTC"
                  }
                },
                "required": [
                  "sonuc",
                  "not",
                  "kisi",
                  "zaman"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "sonuc": {
            "type": "string",
            "enum": [
              "bekliyor",
              "gecti",
              "elle_gecti",
              "kaldi"
            ]
          }
        },
        "required": [
          "no",
          "kod",
          "ad",
          "yayilma_zamani",
          "icerik",
          "gozlem",
          "rapor",
          "elle",
          "sonuc"
        ],
        "additionalProperties": false,
        "description": "Uyumluluk sınamasının bir adımı: yayılan içerik, sunucunun gözlemi, bağlantının raporu, insan onayı"
      },
      "DisSinamaListesi": {
        "type": "object",
        "properties": {
          "ogeler": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DisSinama"
            }
          }
        },
        "required": [
          "ogeler"
        ],
        "additionalProperties": false,
        "description": "Anahtarın son 20 uyumluluk sınaması"
      },
      "DisSozlukIller": {
        "type": "object",
        "properties": {
          "ogeler": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "ad": {
                  "type": "string"
                },
                "ilceler": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DisIlce"
                  }
                }
              },
              "required": [
                "id",
                "ad",
                "ilceler"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "ogeler"
        ],
        "additionalProperties": false,
        "description": "İller ve ilçeleri"
      },
      "DisSozlukKategoriler": {
        "type": "object",
        "properties": {
          "ogeler": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DisKategori"
            }
          }
        },
        "required": [
          "ogeler"
        ],
        "additionalProperties": false,
        "description": "Kategoriler"
      },
      "DisVarlik": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "no": {
            "type": "string",
            "description": "F-000386, V-000412, B-000017 (belge), YHA-360-000412 (360°)"
          },
          "tur": {
            "type": "string",
            "enum": [
              "fotograf",
              "video",
              "belge",
              "foto_360",
              "video_360"
            ],
            "description": "belge: PDF eki (Faz 15); hakkı metin hakkıdır. foto_360, video_360: 360° (Faz 20; hakkı icerik_360)"
          },
          "durum": {
            "type": "string",
            "enum": [
              "serviste",
              "geri_cekildi"
            ]
          },
          "baslik": {
            "type": [
              "string",
              "null"
            ]
          },
          "altyazi": {
            "type": [
              "string",
              "null"
            ]
          },
          "kategori": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DisKategori"
              },
              {
                "type": "null"
              }
            ]
          },
          "il": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DisIl"
              },
              {
                "type": "null"
              }
            ]
          },
          "ilce": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DisIlce"
              },
              {
                "type": "null"
              }
            ]
          },
          "yer_adi": {
            "type": [
              "string",
              "null"
            ]
          },
          "cekim_zamani": {
            "anyOf": [
              {
                "type": "string",
                "description": "ISO 8601, UTC"
              },
              {
                "type": "null"
              }
            ]
          },
          "servis_zamani": {
            "anyOf": [
              {
                "type": "string",
                "description": "ISO 8601, UTC"
              },
              {
                "type": "null"
              }
            ]
          },
          "imza": {
            "type": "string"
          },
          "hak_sahibi": {
            "type": [
              "string",
              "null"
            ]
          },
          "kullanim_kisiti": {
            "type": [
              "string",
              "null"
            ]
          },
          "tanitim": {
            "type": "boolean"
          },
          "genislik": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "yukseklik": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "sure_ms": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "sayfa_sayisi": {
            "description": "Yalnızca belgede: PDF sayfa sayısı",
            "anyOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "kucuk_resim": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DisAdres"
              },
              {
                "type": "null"
              }
            ]
          },
          "secenekler": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DisSecenek"
            }
          },
          "kuresel": {
            "description": "Yalnızca 360 türlerinde dolu (Faz 20); düz türlerde null",
            "anyOf": [
              {
                "$ref": "#/components/schemas/DisKuresel"
              },
              {
                "type": "null"
              }
            ]
          },
          "dosya_adresi": {
            "type": "string"
          },
          "bagli_haber": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "no": {
                    "type": "string"
                  },
                  "baslik": {
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "no",
                  "baslik"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "deneme": {
            "description": "Yalnızca deneme ortamında: true",
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "no",
          "tur",
          "durum",
          "baslik",
          "altyazi",
          "kategori",
          "il",
          "ilce",
          "yer_adi",
          "cekim_zamani",
          "servis_zamani",
          "imza",
          "hak_sahibi",
          "kullanim_kisiti",
          "tanitim",
          "genislik",
          "yukseklik",
          "sure_ms",
          "kucuk_resim",
          "secenekler",
          "dosya_adresi",
          "bagli_haber"
        ],
        "additionalProperties": false,
        "description": "Fotoğraf, video ya da belge (PDF; tek seçenek orijinal, filigransız; indirme kotasına girmez)"
      },
      "DisVarlikListesi": {
        "type": "object",
        "properties": {
          "ogeler": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DisVarlik"
            }
          },
          "sonraki_imlec": {
            "type": [
              "string",
              "null"
            ]
          },
          "devami_var": {
            "type": "boolean"
          }
        },
        "required": [
          "ogeler",
          "sonraki_imlec",
          "devami_var"
        ],
        "additionalProperties": false,
        "description": "Tek başına servis edilen medya"
      },
      "DisYayinIsareti": {
        "type": "object",
        "properties": {
          "adres": {
            "description": "Haberin kurumun sitesindeki adresi",
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000,
                "pattern": "^https?:\\/\\/\\S+$"
              },
              {
                "type": "null"
              }
            ]
          },
          "yayim_zamani": {
            "description": "Kurumun yayımladığı an (ISO 8601)",
            "anyOf": [
              {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
              },
              {
                "type": "null"
              }
            ]
          },
          "kaynak": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "wordpress_eklentisi",
                  "kendi_yazilimi"
                ]
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "description": "\"Yayınladım\" işareti: haber kurumun yayınında kullanıldı; habere hukuki cevap ya da düzeltme yayımlanırsa kuruma bildirilir"
      },
      "DisYayinIsaretiYaniti": {
        "type": "object",
        "properties": {
          "haber_id": {
            "type": "string"
          },
          "yayinlandi": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "zaman": {
                    "type": "string",
                    "description": "ISO 8601, UTC"
                  },
                  "kaynak": {
                    "type": "string",
                    "enum": [
                      "abone_terminali",
                      "dis_api",
                      "wordpress_eklentisi"
                    ]
                  },
                  "adres": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": [
                  "zaman",
                  "kaynak",
                  "adres"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "haber_id",
          "yayinlandi"
        ],
        "additionalProperties": false,
        "description": "Kurumun bu haberdeki \"Yayınladım\" işareti (yoksa null)"
      },
      "WebhookGovdesi": {
        "type": "object",
        "properties": {
          "surum": {
            "type": "number",
            "const": 1
          },
          "olay_turu": {
            "type": "string",
            "enum": [
              "haber.yeni",
              "haber.duzeltme",
              "haber.iptal",
              "varlik.yeni",
              "varlik.iptal",
              "varlik.guncelleme",
              "canli_yayin.basladi",
              "canli_yayin.bitti",
              "sinama.ping"
            ]
          },
          "zaman": {
            "type": "string",
            "description": "ISO 8601, UTC"
          },
          "deneme": {
            "type": "boolean"
          },
          "govde_kesildi": {
            "type": "boolean"
          },
          "veri": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DisOlay"
              },
              {
                "$ref": "#/components/schemas/CanliYayinOlayi"
              },
              {
                "type": "object",
                "properties": {
                  "olay_id": {
                    "type": "string"
                  },
                  "olay": {
                    "type": "string"
                  },
                  "icerik": {
                    "type": "string"
                  },
                  "id": {
                    "type": "string"
                  },
                  "no": {
                    "type": "string"
                  },
                  "surum_no": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "adres": {
                    "type": "string"
                  }
                },
                "required": [
                  "olay_id",
                  "olay",
                  "icerik",
                  "id",
                  "no",
                  "surum_no",
                  "adres"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "mesaj": {
                    "type": "string"
                  }
                },
                "required": [
                  "mesaj"
                ],
                "additionalProperties": false
              }
            ]
          }
        },
        "required": [
          "surum",
          "olay_turu",
          "zaman",
          "deneme",
          "veri"
        ],
        "additionalProperties": false,
        "description": "Webhook gövdesi (Standard Webhooks imzalı): webhook-id, webhook-timestamp, webhook-signature"
      }
    }
  }
}
