pushizo 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -155,11 +155,11 @@ module Pushizo
155
155
  # GET /v1/apps/{appId}/users
156
156
  #
157
157
  # @param sort Değerler: "last_active_at", "-last_active_at".
158
- def list(limit: nil, cursor: nil, sort: nil, q: nil, tag: nil, last_active_after: nil, last_active_before: nil, app_id: nil, request_options: nil)
158
+ def list(limit: nil, cursor: nil, sort: nil, q: nil, ip: nil, tag: nil, last_active_after: nil, last_active_before: nil, app_id: nil, request_options: nil)
159
159
  @client.call(
160
160
  :get, "/v1/apps/{appId}/users",
161
161
  path_params: {},
162
- query: { "limit" => limit, "cursor" => cursor, "sort" => sort, "q" => q, "tag" => tag, "last_active_after" => last_active_after, "last_active_before" => last_active_before },
162
+ query: { "limit" => limit, "cursor" => cursor, "sort" => sort, "q" => q, "ip" => ip, "tag" => tag, "last_active_after" => last_active_after, "last_active_before" => last_active_before },
163
163
  app_id: app_id,
164
164
  response: "UserList",
165
165
  request_options: request_options
@@ -167,9 +167,9 @@ module Pushizo
167
167
  end
168
168
 
169
169
  # list sonuçlarını next_cursor ile tüm sayfalar boyunca tek tek dolaşan Enumerator döndürür (sayfalar tembel yüklenir).
170
- def list_all(limit: nil, cursor: nil, sort: nil, q: nil, tag: nil, last_active_after: nil, last_active_before: nil, app_id: nil, request_options: nil)
170
+ def list_all(limit: nil, cursor: nil, sort: nil, q: nil, ip: nil, tag: nil, last_active_after: nil, last_active_before: nil, app_id: nil, request_options: nil)
171
171
  @client.paginate(cursor) do |cursor_value|
172
- list(limit: limit, sort: sort, q: q, tag: tag, last_active_after: last_active_after, last_active_before: last_active_before, app_id: app_id, request_options: request_options, cursor: cursor_value)
172
+ list(limit: limit, sort: sort, q: q, ip: ip, tag: tag, last_active_after: last_active_after, last_active_before: last_active_before, app_id: app_id, request_options: request_options, cursor: cursor_value)
173
173
  end
174
174
  end
175
175
 
@@ -592,7 +592,7 @@ module Pushizo
592
592
  #
593
593
  # GET /v1/apps/{appId}/templates
594
594
  #
595
- # @param channel Değerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs".
595
+ # @param channel Değerler: "ios_push", "android_push", "hms_push", "adm_push", "wns_push", "web_push", "email", "sms", "whatsapp", "rcs".
596
596
  def list(limit: nil, cursor: nil, q: nil, channel: nil, app_id: nil, request_options: nil)
597
597
  @client.call(
598
598
  :get, "/v1/apps/{appId}/templates",
@@ -728,7 +728,7 @@ module Pushizo
728
728
  #
729
729
  # @param status Değerler: "draft", "scheduled", "running", "paused", "completed", "cancelled", "failed".
730
730
  # @param type Değerler: "one_time", "scheduled", "recurring", "automated", "transactional".
731
- # @param channel Değerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs".
731
+ # @param channel Değerler: "ios_push", "android_push", "hms_push", "adm_push", "wns_push", "web_push", "email", "sms", "whatsapp", "rcs".
732
732
  def list(limit: nil, cursor: nil, q: nil, status: nil, type: nil, channel: nil, label: nil, app_id: nil, request_options: nil)
733
733
  @client.call(
734
734
  :get, "/v1/apps/{appId}/campaigns",
@@ -801,13 +801,16 @@ module Pushizo
801
801
  )
802
802
  end
803
803
 
804
- # Zamanla
804
+ # Zamanla; e-posta liste koruması 409 → force=true (admin kapsamı)
805
805
  #
806
806
  # POST /v1/apps/{appId}/campaigns/{campaignId}/schedule
807
- def schedule(campaign_id, body, app_id: nil, request_options: nil)
807
+ #
808
+ # @param force Değerler: "true", "false".
809
+ def schedule(campaign_id, body, force: nil, app_id: nil, request_options: nil)
808
810
  @client.call(
809
811
  :post, "/v1/apps/{appId}/campaigns/{campaignId}/schedule",
810
812
  path_params: { "campaignId" => campaign_id },
813
+ query: { "force" => force },
811
814
  body: body,
812
815
  app_id: app_id,
813
816
  response: "Campaign",
@@ -815,19 +818,35 @@ module Pushizo
815
818
  )
816
819
  end
817
820
 
818
- # Hemen gönder
821
+ # Hemen gönder; e-posta liste koruması 409 → force=true (admin kapsamı)
819
822
  #
820
823
  # POST /v1/apps/{appId}/campaigns/{campaignId}/send
821
- def send_campaign(campaign_id, app_id: nil, request_options: nil)
824
+ #
825
+ # @param force Değerler: "true", "false".
826
+ def send_campaign(campaign_id, force: nil, app_id: nil, request_options: nil)
822
827
  @client.call(
823
828
  :post, "/v1/apps/{appId}/campaigns/{campaignId}/send",
824
829
  path_params: { "campaignId" => campaign_id },
830
+ query: { "force" => force },
825
831
  app_id: app_id,
826
832
  response: "Campaign",
827
833
  request_options: request_options
828
834
  )
829
835
  end
830
836
 
837
+ # E-posta liste riski (tahmini geçersiz oranı, 7/30 gün bounce oranı)
838
+ #
839
+ # GET /v1/apps/{appId}/campaigns/{campaignId}/email-risk
840
+ def email_risk(campaign_id, app_id: nil, request_options: nil)
841
+ @client.call(
842
+ :get, "/v1/apps/{appId}/campaigns/{campaignId}/email-risk",
843
+ path_params: { "campaignId" => campaign_id },
844
+ app_id: app_id,
845
+ response: "CampaignEmailRisk",
846
+ request_options: request_options
847
+ )
848
+ end
849
+
831
850
  # Duraklat
832
851
  #
833
852
  # POST /v1/apps/{appId}/campaigns/{campaignId}/pause
@@ -1642,6 +1661,25 @@ module Pushizo
1642
1661
  )
1643
1662
  end
1644
1663
 
1664
+ # Uygulama kaldırma raporu
1665
+ #
1666
+ # GET /v1/apps/{appId}/analytics/uninstalls
1667
+ #
1668
+ # Mobil push sağlayıcısının "cihaz kayıtlı değil" yanıtından sayılır.
1669
+ #
1670
+ # @param compare Değerler: "true", "false".
1671
+ # @param format Değerler: "json", "csv".
1672
+ def uninstall_report(from: nil, to: nil, compare: nil, format: nil, app_id: nil, request_options: nil)
1673
+ @client.call(
1674
+ :get, "/v1/apps/{appId}/analytics/uninstalls",
1675
+ path_params: {},
1676
+ query: { "from" => from, "to" => to, "compare" => compare, "format" => format },
1677
+ app_id: app_id,
1678
+ response: "UninstallReport",
1679
+ request_options: request_options
1680
+ )
1681
+ end
1682
+
1645
1683
  # Olay hacmi
1646
1684
  #
1647
1685
  # GET /v1/apps/{appId}/analytics/events
@@ -1677,6 +1715,38 @@ module Pushizo
1677
1715
  )
1678
1716
  end
1679
1717
 
1718
+ # Rapor çalıştır
1719
+ #
1720
+ # POST /v1/apps/{appId}/analytics/reports/run
1721
+ #
1722
+ # Kaynak, metrik, boyut ve filtre seçilerek rapor üretir; alanlar izinli listeyle sınırlıdır.
1723
+ def run_report(body, app_id: nil, request_options: nil)
1724
+ @client.call(
1725
+ :post, "/v1/apps/{appId}/analytics/reports/run",
1726
+ path_params: {},
1727
+ body: body,
1728
+ app_id: app_id,
1729
+ response: "ReportResult",
1730
+ request_options: request_options
1731
+ )
1732
+ end
1733
+
1734
+ # Yol analizi
1735
+ #
1736
+ # POST /v1/apps/{appId}/analytics/paths
1737
+ #
1738
+ # Başlangıç olayından sonra veya önce kullanıcıların izlediği yollar.
1739
+ def paths(body, app_id: nil, request_options: nil)
1740
+ @client.call(
1741
+ :post, "/v1/apps/{appId}/analytics/paths",
1742
+ path_params: {},
1743
+ body: body,
1744
+ app_id: app_id,
1745
+ response: "PathReport",
1746
+ request_options: request_options
1747
+ )
1748
+ end
1749
+
1680
1750
  # Funnel
1681
1751
  #
1682
1752
  # POST /v1/apps/{appId}/analytics/funnels
@@ -1740,6 +1810,72 @@ module Pushizo
1740
1810
  request_options: request_options
1741
1811
  )
1742
1812
  end
1813
+
1814
+ # Kaydedilmiş raporlar
1815
+ #
1816
+ # GET /v1/apps/{appId}/analytics/reports
1817
+ def list(app_id: nil, request_options: nil)
1818
+ @client.call(
1819
+ :get, "/v1/apps/{appId}/analytics/reports",
1820
+ path_params: {},
1821
+ app_id: app_id,
1822
+ response: "SavedReportList",
1823
+ request_options: request_options
1824
+ )
1825
+ end
1826
+
1827
+ # Raporu kaydet
1828
+ #
1829
+ # POST /v1/apps/{appId}/analytics/reports
1830
+ def create(body, app_id: nil, request_options: nil)
1831
+ @client.call(
1832
+ :post, "/v1/apps/{appId}/analytics/reports",
1833
+ path_params: {},
1834
+ body: body,
1835
+ app_id: app_id,
1836
+ response: "SavedReport",
1837
+ request_options: request_options
1838
+ )
1839
+ end
1840
+
1841
+ # Kaydedilmiş rapor
1842
+ #
1843
+ # GET /v1/apps/{appId}/analytics/reports/{id}
1844
+ def get(id, app_id: nil, request_options: nil)
1845
+ @client.call(
1846
+ :get, "/v1/apps/{appId}/analytics/reports/{id}",
1847
+ path_params: { "id" => id },
1848
+ app_id: app_id,
1849
+ response: "SavedReport",
1850
+ request_options: request_options
1851
+ )
1852
+ end
1853
+
1854
+ # Raporu güncelle
1855
+ #
1856
+ # PATCH /v1/apps/{appId}/analytics/reports/{id}
1857
+ def update(id, body, app_id: nil, request_options: nil)
1858
+ @client.call(
1859
+ :patch, "/v1/apps/{appId}/analytics/reports/{id}",
1860
+ path_params: { "id" => id },
1861
+ body: body,
1862
+ app_id: app_id,
1863
+ response: "SavedReport",
1864
+ request_options: request_options
1865
+ )
1866
+ end
1867
+
1868
+ # Raporu sil
1869
+ #
1870
+ # DELETE /v1/apps/{appId}/analytics/reports/{id}
1871
+ def delete(id, app_id: nil, request_options: nil)
1872
+ @client.call(
1873
+ :delete, "/v1/apps/{appId}/analytics/reports/{id}",
1874
+ path_params: { "id" => id },
1875
+ app_id: app_id,
1876
+ request_options: request_options
1877
+ )
1878
+ end
1743
1879
  end
1744
1880
 
1745
1881
  # App listesi ve ayarları.
@@ -2315,6 +2451,150 @@ module Pushizo
2315
2451
  end
2316
2452
  end
2317
2453
 
2454
+ # catalogs kaynağı.
2455
+ class Catalogs < Pushizo::BaseResource
2456
+ # Ürün katalogları
2457
+ #
2458
+ # GET /v1/apps/{appId}/catalogs
2459
+ def list(app_id: nil, request_options: nil)
2460
+ @client.call(
2461
+ :get, "/v1/apps/{appId}/catalogs",
2462
+ path_params: {},
2463
+ app_id: app_id,
2464
+ response: "CatalogList",
2465
+ request_options: request_options
2466
+ )
2467
+ end
2468
+
2469
+ # Katalog oluştur
2470
+ #
2471
+ # POST /v1/apps/{appId}/catalogs
2472
+ #
2473
+ # Şablonda `{% catalog_item '<ad>' id: custom_data.product_id as urun %}{{ urun.title }}`.
2474
+ def create(body, app_id: nil, request_options: nil)
2475
+ @client.call(
2476
+ :post, "/v1/apps/{appId}/catalogs",
2477
+ path_params: {},
2478
+ body: body,
2479
+ app_id: app_id,
2480
+ response: "Catalog",
2481
+ request_options: request_options
2482
+ )
2483
+ end
2484
+
2485
+ # Katalog ayrıntısı
2486
+ #
2487
+ # GET /v1/apps/{appId}/catalogs/{catalogId}
2488
+ def get(catalog_id, app_id: nil, request_options: nil)
2489
+ @client.call(
2490
+ :get, "/v1/apps/{appId}/catalogs/{catalogId}",
2491
+ path_params: { "catalogId" => catalog_id },
2492
+ app_id: app_id,
2493
+ response: "Catalog",
2494
+ request_options: request_options
2495
+ )
2496
+ end
2497
+
2498
+ # Kataloğu güncelle
2499
+ #
2500
+ # PATCH /v1/apps/{appId}/catalogs/{catalogId}
2501
+ def update(catalog_id, body, app_id: nil, request_options: nil)
2502
+ @client.call(
2503
+ :patch, "/v1/apps/{appId}/catalogs/{catalogId}",
2504
+ path_params: { "catalogId" => catalog_id },
2505
+ body: body,
2506
+ app_id: app_id,
2507
+ response: "Catalog",
2508
+ request_options: request_options
2509
+ )
2510
+ end
2511
+
2512
+ # Kataloğu sil
2513
+ #
2514
+ # DELETE /v1/apps/{appId}/catalogs/{catalogId}
2515
+ def delete(catalog_id, app_id: nil, request_options: nil)
2516
+ @client.call(
2517
+ :delete, "/v1/apps/{appId}/catalogs/{catalogId}",
2518
+ path_params: { "catalogId" => catalog_id },
2519
+ app_id: app_id,
2520
+ response: "Ok",
2521
+ request_options: request_options
2522
+ )
2523
+ end
2524
+
2525
+ # Ürünler
2526
+ #
2527
+ # GET /v1/apps/{appId}/catalogs/{catalogId}/items
2528
+ def items(catalog_id, limit: nil, offset: nil, q: nil, category: nil, app_id: nil, request_options: nil)
2529
+ @client.call(
2530
+ :get, "/v1/apps/{appId}/catalogs/{catalogId}/items",
2531
+ path_params: { "catalogId" => catalog_id },
2532
+ query: { "limit" => limit, "offset" => offset, "q" => q, "category" => category },
2533
+ app_id: app_id,
2534
+ response: "CatalogItemsPage",
2535
+ request_options: request_options
2536
+ )
2537
+ end
2538
+
2539
+ # Ürünleri ekle veya güncelle (en fazla 1000)
2540
+ #
2541
+ # PUT /v1/apps/{appId}/catalogs/{catalogId}/items
2542
+ #
2543
+ # Listede olmayan ürünlere dokunulmaz. Listedeki ürünün verilmeyen alanları temizlenir.
2544
+ def upsert(catalog_id, body, app_id: nil, request_options: nil)
2545
+ @client.call(
2546
+ :put, "/v1/apps/{appId}/catalogs/{catalogId}/items",
2547
+ path_params: { "catalogId" => catalog_id },
2548
+ body: body,
2549
+ app_id: app_id,
2550
+ response: "CatalogUpsertResult",
2551
+ request_options: request_options
2552
+ )
2553
+ end
2554
+
2555
+ # CSV ile ürün ekle veya güncelle
2556
+ #
2557
+ # POST /v1/apps/{appId}/catalogs/{catalogId}/items/upload
2558
+ #
2559
+ # @param file UTF-8 CSV. Zorunlu sütunlar: id, title. Bilinen: description, image_url, url, price, sale_price, currency, category, brand, in_stock. Diğerleri özellik olur. En fazla 100.000 satır, 20 MB.
2560
+ def upload(catalog_id, file:, app_id: nil, request_options: nil)
2561
+ @client.call(
2562
+ :post, "/v1/apps/{appId}/catalogs/{catalogId}/items/upload",
2563
+ path_params: { "catalogId" => catalog_id },
2564
+ form: { "file" => file },
2565
+ app_id: app_id,
2566
+ response: "CatalogUpsertResult",
2567
+ request_options: request_options
2568
+ )
2569
+ end
2570
+
2571
+ # Ürün ayrıntısı
2572
+ #
2573
+ # GET /v1/apps/{appId}/catalogs/{catalogId}/items/{itemId}
2574
+ def item(catalog_id, item_id, app_id: nil, request_options: nil)
2575
+ @client.call(
2576
+ :get, "/v1/apps/{appId}/catalogs/{catalogId}/items/{itemId}",
2577
+ path_params: { "catalogId" => catalog_id, "itemId" => item_id },
2578
+ app_id: app_id,
2579
+ response: "CatalogItem",
2580
+ request_options: request_options
2581
+ )
2582
+ end
2583
+
2584
+ # Ürünü sil
2585
+ #
2586
+ # DELETE /v1/apps/{appId}/catalogs/{catalogId}/items/{itemId}
2587
+ def remove_item(catalog_id, item_id, app_id: nil, request_options: nil)
2588
+ @client.call(
2589
+ :delete, "/v1/apps/{appId}/catalogs/{catalogId}/items/{itemId}",
2590
+ path_params: { "catalogId" => catalog_id, "itemId" => item_id },
2591
+ app_id: app_id,
2592
+ response: "Ok",
2593
+ request_options: request_options
2594
+ )
2595
+ end
2596
+ end
2597
+
2318
2598
  # categories kaynağı.
2319
2599
  class Categories < Pushizo::BaseResource
2320
2600
  # Mesaj kategorileri
@@ -2372,6 +2652,95 @@ module Pushizo
2372
2652
  end
2373
2653
  end
2374
2654
 
2655
+ # channelScores kaynağı.
2656
+ class ChannelScores < Pushizo::BaseResource
2657
+ # Kanal skoru ayarı
2658
+ #
2659
+ # GET /v1/apps/{appId}/channel-scores/config
2660
+ def config(app_id: nil, request_options: nil)
2661
+ @client.call(
2662
+ :get, "/v1/apps/{appId}/channel-scores/config",
2663
+ path_params: {},
2664
+ app_id: app_id,
2665
+ response: "ChannelScoreConfig",
2666
+ request_options: request_options
2667
+ )
2668
+ end
2669
+
2670
+ # Kanal skorunu ayarla
2671
+ #
2672
+ # PUT /v1/apps/{appId}/channel-scores/config
2673
+ #
2674
+ # Açıkken skorlar kayıttan sonra yeniden hesaplanır; kapatınca silinir.
2675
+ def update(body, app_id: nil, request_options: nil)
2676
+ @client.call(
2677
+ :put, "/v1/apps/{appId}/channel-scores/config",
2678
+ path_params: {},
2679
+ body: body,
2680
+ app_id: app_id,
2681
+ response: "ChannelScoreConfig",
2682
+ request_options: request_options
2683
+ )
2684
+ end
2685
+
2686
+ # Kanal skorlarını yeniden hesapla
2687
+ #
2688
+ # POST /v1/apps/{appId}/channel-scores/compute
2689
+ #
2690
+ # İş kuyruğa alınır; ilerleme `status` alanından izlenir.
2691
+ def compute(app_id: nil, request_options: nil)
2692
+ @client.call(
2693
+ :post, "/v1/apps/{appId}/channel-scores/compute",
2694
+ path_params: {},
2695
+ app_id: app_id,
2696
+ response: "ChannelScoreConfig",
2697
+ request_options: request_options
2698
+ )
2699
+ end
2700
+
2701
+ # En iyi kanal dağılımı
2702
+ #
2703
+ # GET /v1/apps/{appId}/channel-scores/overview
2704
+ def overview(app_id: nil, request_options: nil)
2705
+ @client.call(
2706
+ :get, "/v1/apps/{appId}/channel-scores/overview",
2707
+ path_params: {},
2708
+ app_id: app_id,
2709
+ response: "ChannelScoreOverview",
2710
+ request_options: request_options
2711
+ )
2712
+ end
2713
+
2714
+ # En iyi kanalı belli kullanıcılar
2715
+ #
2716
+ # GET /v1/apps/{appId}/channel-scores/users
2717
+ #
2718
+ # @param channel Değerler: "push", "email", "whatsapp", "rcs", "sms".
2719
+ def users(channel: nil, limit: nil, cursor: nil, app_id: nil, request_options: nil)
2720
+ @client.call(
2721
+ :get, "/v1/apps/{appId}/channel-scores/users",
2722
+ path_params: {},
2723
+ query: { "channel" => channel, "limit" => limit, "cursor" => cursor },
2724
+ app_id: app_id,
2725
+ response: "ChannelScoreUsersPage",
2726
+ request_options: request_options
2727
+ )
2728
+ end
2729
+
2730
+ # Kullanıcının kanal skorları
2731
+ #
2732
+ # GET /v1/apps/{appId}/channel-scores/users/{userId}
2733
+ def user(user_id, app_id: nil, request_options: nil)
2734
+ @client.call(
2735
+ :get, "/v1/apps/{appId}/channel-scores/users/{userId}",
2736
+ path_params: { "userId" => user_id },
2737
+ app_id: app_id,
2738
+ response: "ChannelScoreUser",
2739
+ request_options: request_options
2740
+ )
2741
+ end
2742
+ end
2743
+
2375
2744
  # contentTables kaynağı.
2376
2745
  class ContentTables < Pushizo::BaseResource
2377
2746
  # İçerik tabloları
@@ -2709,69 +3078,171 @@ module Pushizo
2709
3078
  end
2710
3079
  end
2711
3080
 
2712
- # emailDeliverability kaynağı.
2713
- class EmailDeliverability < Pushizo::BaseResource
2714
- # E-posta teslim ayarları (BCC/arşiv, gönderim öncesi adres doğrulama, üçüncü taraf doğrulayıcı)
3081
+ # decisionAgents kaynağı.
3082
+ class DecisionAgents < Pushizo::BaseResource
3083
+ # Karar ajanları
2715
3084
  #
2716
- # GET /v1/apps/{appId}/email-deliverability
2717
- def settings(app_id: nil, request_options: nil)
3085
+ # GET /v1/apps/{appId}/decision-agents
3086
+ def list(app_id: nil, request_options: nil)
2718
3087
  @client.call(
2719
- :get, "/v1/apps/{appId}/email-deliverability",
3088
+ :get, "/v1/apps/{appId}/decision-agents",
2720
3089
  path_params: {},
2721
3090
  app_id: app_id,
2722
- response: "EmailDeliverabilitySettings",
3091
+ response: "DecisionAgentList",
2723
3092
  request_options: request_options
2724
3093
  )
2725
3094
  end
2726
3095
 
2727
- # E-posta teslim ayarlarını güncelle (doğrulayıcı anahtarı zarf şifreli saklanır, geri okunmaz)
3096
+ # Karar ajanı oluştur
2728
3097
  #
2729
- # PUT /v1/apps/{appId}/email-deliverability
2730
- def update(body, app_id: nil, request_options: nil)
3098
+ # POST /v1/apps/{appId}/decision-agents
3099
+ def create(body, app_id: nil, request_options: nil)
2731
3100
  @client.call(
2732
- :put, "/v1/apps/{appId}/email-deliverability",
3101
+ :post, "/v1/apps/{appId}/decision-agents",
2733
3102
  path_params: {},
2734
3103
  body: body,
2735
3104
  app_id: app_id,
2736
- response: "EmailDeliverabilitySettings",
3105
+ response: "DecisionAgent",
2737
3106
  request_options: request_options
2738
3107
  )
2739
3108
  end
2740
3109
 
2741
- # Adres doğrulama testi (sözdizimi, MX, tek kullanımlık alan adı, rol hesabı, üçüncü taraf)
3110
+ # Karar ajanı
2742
3111
  #
2743
- # POST /v1/apps/{appId}/email-deliverability/verify-address
2744
- def verify(body, app_id: nil, request_options: nil)
3112
+ # GET /v1/apps/{appId}/decision-agents/{id}
3113
+ def get(id, app_id: nil, request_options: nil)
2745
3114
  @client.call(
2746
- :post, "/v1/apps/{appId}/email-deliverability/verify-address",
2747
- path_params: {},
2748
- body: body,
3115
+ :get, "/v1/apps/{appId}/decision-agents/{id}",
3116
+ path_params: { "id" => id },
2749
3117
  app_id: app_id,
2750
- response: "EmailAddressCheck",
3118
+ response: "DecisionAgent",
2751
3119
  request_options: request_options
2752
3120
  )
2753
3121
  end
2754
3122
 
2755
- # Isındırma planları (bugünkü limit/kullanım ve ileri günlere ayrılmış gönderimler)
3123
+ # Karar ajanını güncelle
2756
3124
  #
2757
- # GET /v1/apps/{appId}/email-deliverability/warmup-plans
2758
- def plans(app_id: nil, request_options: nil)
3125
+ # PATCH /v1/apps/{appId}/decision-agents/{id}
3126
+ #
3127
+ # Seçenekler değiştirilemez: geçmiş öğrenme onlara bağlıdır. Yeni seçenekler için yeni ajan oluşturun.
3128
+ def update(id, body, app_id: nil, request_options: nil)
2759
3129
  @client.call(
2760
- :get, "/v1/apps/{appId}/email-deliverability/warmup-plans",
2761
- path_params: {},
3130
+ :patch, "/v1/apps/{appId}/decision-agents/{id}",
3131
+ path_params: { "id" => id },
3132
+ body: body,
2762
3133
  app_id: app_id,
2763
- response: "EmailWarmupPlanList",
3134
+ response: "DecisionAgent",
2764
3135
  request_options: request_options
2765
3136
  )
2766
3137
  end
2767
3138
 
2768
- # Isındırma planı oluştur (günlük limit eğrisi veya başlangıç/çarpan/hedef; sağlayıcı payları)
3139
+ # Karar ajanını sil
2769
3140
  #
2770
- # POST /v1/apps/{appId}/email-deliverability/warmup-plans
2771
- def create(body, app_id: nil, request_options: nil)
3141
+ # DELETE /v1/apps/{appId}/decision-agents/{id}
3142
+ def delete(id, app_id: nil, request_options: nil)
2772
3143
  @client.call(
2773
- :post, "/v1/apps/{appId}/email-deliverability/warmup-plans",
2774
- path_params: {},
3144
+ :delete, "/v1/apps/{appId}/decision-agents/{id}",
3145
+ path_params: { "id" => id },
3146
+ app_id: app_id,
3147
+ request_options: request_options
3148
+ )
3149
+ end
3150
+
3151
+ # Kazanç raporu
3152
+ #
3153
+ # GET /v1/apps/{appId}/decision-agents/{id}/report
3154
+ #
3155
+ # Öğrenen politika ve kontrol grubu karşılaştırması.
3156
+ def report(id, app_id: nil, request_options: nil)
3157
+ @client.call(
3158
+ :get, "/v1/apps/{appId}/decision-agents/{id}/report",
3159
+ path_params: { "id" => id },
3160
+ app_id: app_id,
3161
+ response: "DecisionReport",
3162
+ request_options: request_options
3163
+ )
3164
+ end
3165
+
3166
+ # Kullanıcı için karar al
3167
+ #
3168
+ # POST /v1/apps/{appId}/decision-agents/{id}/decide
3169
+ #
3170
+ # Karar kaydedilir, ödül olayı geldikçe ajan öğrenir.
3171
+ def decide(id, body, app_id: nil, request_options: nil)
3172
+ @client.call(
3173
+ :post, "/v1/apps/{appId}/decision-agents/{id}/decide",
3174
+ path_params: { "id" => id },
3175
+ body: body,
3176
+ app_id: app_id,
3177
+ response: "DecisionResult",
3178
+ request_options: request_options
3179
+ )
3180
+ end
3181
+ end
3182
+
3183
+ # emailDeliverability kaynağı.
3184
+ class EmailDeliverability < Pushizo::BaseResource
3185
+ # E-posta teslim ayarları (BCC/arşiv, gönderim öncesi adres doğrulama, üçüncü taraf doğrulayıcı)
3186
+ #
3187
+ # GET /v1/apps/{appId}/email-deliverability
3188
+ def settings(app_id: nil, request_options: nil)
3189
+ @client.call(
3190
+ :get, "/v1/apps/{appId}/email-deliverability",
3191
+ path_params: {},
3192
+ app_id: app_id,
3193
+ response: "EmailDeliverabilitySettings",
3194
+ request_options: request_options
3195
+ )
3196
+ end
3197
+
3198
+ # E-posta teslim ayarlarını güncelle (doğrulayıcı anahtarı zarf şifreli saklanır, geri okunmaz)
3199
+ #
3200
+ # PUT /v1/apps/{appId}/email-deliverability
3201
+ def update(body, app_id: nil, request_options: nil)
3202
+ @client.call(
3203
+ :put, "/v1/apps/{appId}/email-deliverability",
3204
+ path_params: {},
3205
+ body: body,
3206
+ app_id: app_id,
3207
+ response: "EmailDeliverabilitySettings",
3208
+ request_options: request_options
3209
+ )
3210
+ end
3211
+
3212
+ # Adres doğrulama testi (sözdizimi, MX, tek kullanımlık alan adı, rol hesabı, üçüncü taraf)
3213
+ #
3214
+ # POST /v1/apps/{appId}/email-deliverability/verify-address
3215
+ def verify(body, app_id: nil, request_options: nil)
3216
+ @client.call(
3217
+ :post, "/v1/apps/{appId}/email-deliverability/verify-address",
3218
+ path_params: {},
3219
+ body: body,
3220
+ app_id: app_id,
3221
+ response: "EmailAddressCheck",
3222
+ request_options: request_options
3223
+ )
3224
+ end
3225
+
3226
+ # Isındırma planları (bugünkü limit/kullanım ve ileri günlere ayrılmış gönderimler)
3227
+ #
3228
+ # GET /v1/apps/{appId}/email-deliverability/warmup-plans
3229
+ def plans(app_id: nil, request_options: nil)
3230
+ @client.call(
3231
+ :get, "/v1/apps/{appId}/email-deliverability/warmup-plans",
3232
+ path_params: {},
3233
+ app_id: app_id,
3234
+ response: "EmailWarmupPlanList",
3235
+ request_options: request_options
3236
+ )
3237
+ end
3238
+
3239
+ # Isındırma planı oluştur (günlük limit eğrisi veya başlangıç/çarpan/hedef; sağlayıcı payları)
3240
+ #
3241
+ # POST /v1/apps/{appId}/email-deliverability/warmup-plans
3242
+ def create(body, app_id: nil, request_options: nil)
3243
+ @client.call(
3244
+ :post, "/v1/apps/{appId}/email-deliverability/warmup-plans",
3245
+ path_params: {},
2775
3246
  body: body,
2776
3247
  app_id: app_id,
2777
3248
  response: "EmailWarmupPlan",
@@ -2832,6 +3303,118 @@ module Pushizo
2832
3303
  request_options: request_options
2833
3304
  )
2834
3305
  end
3306
+
3307
+ # Google Postmaster itibar kayıtları
3308
+ #
3309
+ # GET /v1/apps/{appId}/email-deliverability/postmaster
3310
+ def postmaster(app_id: nil, request_options: nil)
3311
+ @client.call(
3312
+ :get, "/v1/apps/{appId}/email-deliverability/postmaster",
3313
+ path_params: {},
3314
+ app_id: app_id,
3315
+ response: "PostmasterStats",
3316
+ request_options: request_options
3317
+ )
3318
+ end
3319
+
3320
+ # Google Postmaster dünkü itibarını oku
3321
+ #
3322
+ # POST /v1/apps/{appId}/email-deliverability/postmaster/sync
3323
+ def sync_postmaster(app_id: nil, request_options: nil)
3324
+ @client.call(
3325
+ :post, "/v1/apps/{appId}/email-deliverability/postmaster/sync",
3326
+ path_params: {},
3327
+ app_id: app_id,
3328
+ response: "PostmasterStats",
3329
+ request_options: request_options
3330
+ )
3331
+ end
3332
+ end
3333
+
3334
+ # featureFlags kaynağı.
3335
+ class FeatureFlags < Pushizo::BaseResource
3336
+ # Özellik bayrakları
3337
+ #
3338
+ # GET /v1/apps/{appId}/feature-flags
3339
+ def list(app_id: nil, request_options: nil)
3340
+ @client.call(
3341
+ :get, "/v1/apps/{appId}/feature-flags",
3342
+ path_params: {},
3343
+ app_id: app_id,
3344
+ response: "AppFlagList",
3345
+ request_options: request_options
3346
+ )
3347
+ end
3348
+
3349
+ # Bayrak oluştur
3350
+ #
3351
+ # POST /v1/apps/{appId}/feature-flags
3352
+ #
3353
+ # Değerler uygulama kimliğini bilen herkesçe okunabilir; gizli bilgi yazmayın.
3354
+ def create(body, app_id: nil, request_options: nil)
3355
+ @client.call(
3356
+ :post, "/v1/apps/{appId}/feature-flags",
3357
+ path_params: {},
3358
+ body: body,
3359
+ app_id: app_id,
3360
+ response: "AppFlag",
3361
+ request_options: request_options
3362
+ )
3363
+ end
3364
+
3365
+ # Bayrakları bir kullanıcı için değerlendir
3366
+ #
3367
+ # POST /v1/apps/{appId}/feature-flags/evaluate
3368
+ def evaluate(body, app_id: nil, request_options: nil)
3369
+ @client.call(
3370
+ :post, "/v1/apps/{appId}/feature-flags/evaluate",
3371
+ path_params: {},
3372
+ body: body,
3373
+ app_id: app_id,
3374
+ response: "AppFlagEvaluation",
3375
+ request_options: request_options
3376
+ )
3377
+ end
3378
+
3379
+ # Bayrak ayrıntısı
3380
+ #
3381
+ # GET /v1/apps/{appId}/feature-flags/{flagId}
3382
+ def get(flag_id, app_id: nil, request_options: nil)
3383
+ @client.call(
3384
+ :get, "/v1/apps/{appId}/feature-flags/{flagId}",
3385
+ path_params: { "flagId" => flag_id },
3386
+ app_id: app_id,
3387
+ response: "AppFlag",
3388
+ request_options: request_options
3389
+ )
3390
+ end
3391
+
3392
+ # Bayrağı güncelle
3393
+ #
3394
+ # PATCH /v1/apps/{appId}/feature-flags/{flagId}
3395
+ def update(flag_id, body, app_id: nil, request_options: nil)
3396
+ @client.call(
3397
+ :patch, "/v1/apps/{appId}/feature-flags/{flagId}",
3398
+ path_params: { "flagId" => flag_id },
3399
+ body: body,
3400
+ app_id: app_id,
3401
+ response: "AppFlag",
3402
+ request_options: request_options
3403
+ )
3404
+ end
3405
+
3406
+ # Bayrağı sil
3407
+ #
3408
+ # DELETE /v1/apps/{appId}/feature-flags/{flagId}
3409
+ def delete(flag_id, app_id: nil, request_options: nil)
3410
+ @client.call(
3411
+ :delete, "/v1/apps/{appId}/feature-flags/{flagId}",
3412
+ path_params: { "flagId" => flag_id },
3413
+ app_id: app_id,
3414
+ response: "Ok",
3415
+ request_options: request_options
3416
+ )
3417
+ end
2835
3418
  end
2836
3419
 
2837
3420
  # forms kaynağı.
@@ -2924,6 +3507,137 @@ module Pushizo
2924
3507
  end
2925
3508
  end
2926
3509
 
3510
+ # geofences kaynağı.
3511
+ class Geofences < Pushizo::BaseResource
3512
+ # Bölgeler
3513
+ #
3514
+ # GET /v1/apps/{appId}/geofences
3515
+ def list(app_id: nil, request_options: nil)
3516
+ @client.call(
3517
+ :get, "/v1/apps/{appId}/geofences",
3518
+ path_params: {},
3519
+ app_id: app_id,
3520
+ response: "GeofenceList",
3521
+ request_options: request_options
3522
+ )
3523
+ end
3524
+
3525
+ # Bölge oluştur
3526
+ #
3527
+ # POST /v1/apps/{appId}/geofences
3528
+ #
3529
+ # Konum paylaşan abonelik bölgeye girip çıktığında `geofence_enter` ve `geofence_exit` olayları oluşur.
3530
+ def create(body, app_id: nil, request_options: nil)
3531
+ @client.call(
3532
+ :post, "/v1/apps/{appId}/geofences",
3533
+ path_params: {},
3534
+ body: body,
3535
+ app_id: app_id,
3536
+ response: "Geofence",
3537
+ request_options: request_options
3538
+ )
3539
+ end
3540
+
3541
+ # Bölge ayrıntısı
3542
+ #
3543
+ # GET /v1/apps/{appId}/geofences/{geofenceId}
3544
+ def get(geofence_id, app_id: nil, request_options: nil)
3545
+ @client.call(
3546
+ :get, "/v1/apps/{appId}/geofences/{geofenceId}",
3547
+ path_params: { "geofenceId" => geofence_id },
3548
+ app_id: app_id,
3549
+ response: "Geofence",
3550
+ request_options: request_options
3551
+ )
3552
+ end
3553
+
3554
+ # Bölgeyi güncelle
3555
+ #
3556
+ # PATCH /v1/apps/{appId}/geofences/{geofenceId}
3557
+ def update(geofence_id, body, app_id: nil, request_options: nil)
3558
+ @client.call(
3559
+ :patch, "/v1/apps/{appId}/geofences/{geofenceId}",
3560
+ path_params: { "geofenceId" => geofence_id },
3561
+ body: body,
3562
+ app_id: app_id,
3563
+ response: "Geofence",
3564
+ request_options: request_options
3565
+ )
3566
+ end
3567
+
3568
+ # Bölgeyi sil
3569
+ #
3570
+ # DELETE /v1/apps/{appId}/geofences/{geofenceId}
3571
+ def delete(geofence_id, app_id: nil, request_options: nil)
3572
+ @client.call(
3573
+ :delete, "/v1/apps/{appId}/geofences/{geofenceId}",
3574
+ path_params: { "geofenceId" => geofence_id },
3575
+ app_id: app_id,
3576
+ response: "Ok",
3577
+ request_options: request_options
3578
+ )
3579
+ end
3580
+ end
3581
+
3582
+ # globalControl kaynağı.
3583
+ class GlobalControl < Pushizo::BaseResource
3584
+ # Genel kontrol grubu ayarı
3585
+ #
3586
+ # GET /v1/apps/{appId}/global-control
3587
+ def get(app_id: nil, request_options: nil)
3588
+ @client.call(
3589
+ :get, "/v1/apps/{appId}/global-control",
3590
+ path_params: {},
3591
+ app_id: app_id,
3592
+ response: "GlobalControl",
3593
+ request_options: request_options
3594
+ )
3595
+ end
3596
+
3597
+ # Genel kontrol grubunu ayarla
3598
+ #
3599
+ # PUT /v1/apps/{appId}/global-control
3600
+ #
3601
+ # Gruptaki kullanıcılar kampanya, otomasyon ve uygulama içi mesajları almaz. API ve işlemsel gönderimler etkilenmez.
3602
+ def update(body, app_id: nil, request_options: nil)
3603
+ @client.call(
3604
+ :put, "/v1/apps/{appId}/global-control",
3605
+ path_params: {},
3606
+ body: body,
3607
+ app_id: app_id,
3608
+ response: "GlobalControl",
3609
+ request_options: request_options
3610
+ )
3611
+ end
3612
+
3613
+ # Grubu yeniden kur (üyelik değişir, ölçüm baştan başlar)
3614
+ #
3615
+ # POST /v1/apps/{appId}/global-control/reset
3616
+ def reset(app_id: nil, request_options: nil)
3617
+ @client.call(
3618
+ :post, "/v1/apps/{appId}/global-control/reset",
3619
+ path_params: {},
3620
+ app_id: app_id,
3621
+ response: "GlobalControl",
3622
+ request_options: request_options
3623
+ )
3624
+ end
3625
+
3626
+ # Kontrol ve mesaj alan grubun dönüşüm karşılaştırması
3627
+ #
3628
+ # GET /v1/apps/{appId}/global-control/report
3629
+ def report(days: nil, event: nil, app_id: nil, request_options: nil)
3630
+ @client.call(
3631
+ :get, "/v1/apps/{appId}/global-control/report",
3632
+ path_params: {},
3633
+ query: { "days" => days, "event" => event },
3634
+ app_id: app_id,
3635
+ response: "GlobalControlReport",
3636
+ request_options: request_options
3637
+ )
3638
+ end
3639
+ end
3640
+
2927
3641
  # identityKeys kaynağı.
2928
3642
  class IdentityKeys < Pushizo::BaseResource
2929
3643
  # SDK kimlik doğrulama (JWT) genel anahtarları
@@ -3148,6 +3862,19 @@ module Pushizo
3148
3862
  )
3149
3863
  end
3150
3864
 
3865
+ # Eski sürümü yeni taslak olarak geri yükle (yayındaki sürüm değişmez)
3866
+ #
3867
+ # POST /v1/apps/{appId}/journeys/{journeyId}/versions/{version}/restore
3868
+ def restore_version(journey_id, version, app_id: nil, request_options: nil)
3869
+ @client.call(
3870
+ :post, "/v1/apps/{appId}/journeys/{journeyId}/versions/{version}/restore",
3871
+ path_params: { "journeyId" => journey_id, "version" => version },
3872
+ app_id: app_id,
3873
+ response: "JourneyDetail",
3874
+ request_options: request_options
3875
+ )
3876
+ end
3877
+
3151
3878
  # Yayınla
3152
3879
  #
3153
3880
  # POST /v1/apps/{appId}/journeys/{journeyId}/publish
@@ -3561,24 +4288,126 @@ module Pushizo
3561
4288
  end
3562
4289
  end
3563
4290
 
3564
- # preferences kaynağı.
3565
- class Preferences < Pushizo::BaseResource
3566
- # Kullanıcının tercihleri (alias ile)
4291
+ # predictions kaynağı.
4292
+ class Predictions < Pushizo::BaseResource
4293
+ # Öngörü modelleri
3567
4294
  #
3568
- # GET /v1/apps/{appId}/users/by/{label}/{value}/preferences
3569
- def get(label, value, app_id: nil, request_options: nil)
4295
+ # GET /v1/apps/{appId}/predictions
4296
+ def list(app_id: nil, request_options: nil)
3570
4297
  @client.call(
3571
- :get, "/v1/apps/{appId}/users/by/{label}/{value}/preferences",
3572
- path_params: { "label" => label, "value" => value },
4298
+ :get, "/v1/apps/{appId}/predictions",
4299
+ path_params: {},
3573
4300
  app_id: app_id,
3574
- response: "UserPreferences",
4301
+ response: "PredictionModelList",
3575
4302
  request_options: request_options
3576
4303
  )
3577
4304
  end
3578
4305
 
3579
- # Kullanıcı tercihlerini yaz (alias ile)
4306
+ # Öngörü modeli oluştur
3580
4307
  #
3581
- # PUT /v1/apps/{appId}/users/by/{label}/{value}/preferences
4308
+ # POST /v1/apps/{appId}/predictions
4309
+ #
4310
+ # Eğitim kuyruğa alınır; sonuç `outcome` alanından izlenir.
4311
+ def create(body, app_id: nil, request_options: nil)
4312
+ @client.call(
4313
+ :post, "/v1/apps/{appId}/predictions",
4314
+ path_params: {},
4315
+ body: body,
4316
+ app_id: app_id,
4317
+ response: "PredictionModel",
4318
+ request_options: request_options
4319
+ )
4320
+ end
4321
+
4322
+ # Öngörü modeli
4323
+ #
4324
+ # GET /v1/apps/{appId}/predictions/{id}
4325
+ def get(id, app_id: nil, request_options: nil)
4326
+ @client.call(
4327
+ :get, "/v1/apps/{appId}/predictions/{id}",
4328
+ path_params: { "id" => id },
4329
+ app_id: app_id,
4330
+ response: "PredictionModel",
4331
+ request_options: request_options
4332
+ )
4333
+ end
4334
+
4335
+ # Öngörü modelini güncelle
4336
+ #
4337
+ # PATCH /v1/apps/{appId}/predictions/{id}
4338
+ #
4339
+ # Olay veya ufuk değişirse yeniden eğitilir; kapatınca skorlar silinir.
4340
+ def update(id, body, app_id: nil, request_options: nil)
4341
+ @client.call(
4342
+ :patch, "/v1/apps/{appId}/predictions/{id}",
4343
+ path_params: { "id" => id },
4344
+ body: body,
4345
+ app_id: app_id,
4346
+ response: "PredictionModel",
4347
+ request_options: request_options
4348
+ )
4349
+ end
4350
+
4351
+ # Öngörü modelini sil
4352
+ #
4353
+ # DELETE /v1/apps/{appId}/predictions/{id}
4354
+ def delete(id, app_id: nil, request_options: nil)
4355
+ @client.call(
4356
+ :delete, "/v1/apps/{appId}/predictions/{id}",
4357
+ path_params: { "id" => id },
4358
+ app_id: app_id,
4359
+ request_options: request_options
4360
+ )
4361
+ end
4362
+
4363
+ # Modeli yeniden eğit
4364
+ #
4365
+ # POST /v1/apps/{appId}/predictions/{id}/compute
4366
+ def compute(id, app_id: nil, request_options: nil)
4367
+ @client.call(
4368
+ :post, "/v1/apps/{appId}/predictions/{id}/compute",
4369
+ path_params: { "id" => id },
4370
+ app_id: app_id,
4371
+ response: "PredictionModel",
4372
+ request_options: request_options
4373
+ )
4374
+ end
4375
+
4376
+ # Skoru olan kullanıcılar
4377
+ #
4378
+ # GET /v1/apps/{appId}/predictions/{id}/users
4379
+ #
4380
+ # @param bucket Değerler: "low", "medium", "high".
4381
+ def users(id, bucket: nil, limit: nil, cursor: nil, app_id: nil, request_options: nil)
4382
+ @client.call(
4383
+ :get, "/v1/apps/{appId}/predictions/{id}/users",
4384
+ path_params: { "id" => id },
4385
+ query: { "bucket" => bucket, "limit" => limit, "cursor" => cursor },
4386
+ app_id: app_id,
4387
+ response: "PredictionUsersPage",
4388
+ request_options: request_options
4389
+ )
4390
+ end
4391
+ end
4392
+
4393
+ # preferences kaynağı.
4394
+ class Preferences < Pushizo::BaseResource
4395
+ # Kullanıcının tercihleri (alias ile)
4396
+ #
4397
+ # GET /v1/apps/{appId}/users/by/{label}/{value}/preferences
4398
+ def get(label, value, app_id: nil, request_options: nil)
4399
+ @client.call(
4400
+ :get, "/v1/apps/{appId}/users/by/{label}/{value}/preferences",
4401
+ path_params: { "label" => label, "value" => value },
4402
+ app_id: app_id,
4403
+ response: "UserPreferences",
4404
+ request_options: request_options
4405
+ )
4406
+ end
4407
+
4408
+ # Kullanıcı tercihlerini yaz (alias ile)
4409
+ #
4410
+ # PUT /v1/apps/{appId}/users/by/{label}/{value}/preferences
3582
4411
  def set(label, value, body, app_id: nil, request_options: nil)
3583
4412
  @client.call(
3584
4413
  :put, "/v1/apps/{appId}/users/by/{label}/{value}/preferences",
@@ -3591,6 +4420,396 @@ module Pushizo
3591
4420
  end
3592
4421
  end
3593
4422
 
4423
+ # promoCodeLists kaynağı.
4424
+ class PromoCodeLists < Pushizo::BaseResource
4425
+ # Promosyon kodu listeleri
4426
+ #
4427
+ # GET /v1/apps/{appId}/promo-code-lists
4428
+ def list_promo_lists(app_id: nil, request_options: nil)
4429
+ @client.call(
4430
+ :get, "/v1/apps/{appId}/promo-code-lists",
4431
+ path_params: {},
4432
+ app_id: app_id,
4433
+ response: "PromoCodeListList",
4434
+ request_options: request_options
4435
+ )
4436
+ end
4437
+
4438
+ # Promosyon kodu listesi oluştur
4439
+ #
4440
+ # POST /v1/apps/{appId}/promo-code-lists
4441
+ #
4442
+ # Şablonda `{% promo_code '<ad>' %}` teslimat başına tek kullanımlık kod verir. Kod kalmazsa teslimat `PromoCodeUnavailable` hatasıyla düşer.
4443
+ def create_promo_list(body, app_id: nil, request_options: nil)
4444
+ @client.call(
4445
+ :post, "/v1/apps/{appId}/promo-code-lists",
4446
+ path_params: {},
4447
+ body: body,
4448
+ app_id: app_id,
4449
+ response: "PromoCodeList",
4450
+ request_options: request_options
4451
+ )
4452
+ end
4453
+
4454
+ # Promosyon kodu listesi ayrıntısı
4455
+ #
4456
+ # GET /v1/apps/{appId}/promo-code-lists/{listId}
4457
+ def get_promo_list(list_id, app_id: nil, request_options: nil)
4458
+ @client.call(
4459
+ :get, "/v1/apps/{appId}/promo-code-lists/{listId}",
4460
+ path_params: { "listId" => list_id },
4461
+ app_id: app_id,
4462
+ response: "PromoCodeList",
4463
+ request_options: request_options
4464
+ )
4465
+ end
4466
+
4467
+ # Promosyon kodu listesini güncelle (açıklama, son kullanma)
4468
+ #
4469
+ # PATCH /v1/apps/{appId}/promo-code-lists/{listId}
4470
+ def update_promo_list(list_id, body, app_id: nil, request_options: nil)
4471
+ @client.call(
4472
+ :patch, "/v1/apps/{appId}/promo-code-lists/{listId}",
4473
+ path_params: { "listId" => list_id },
4474
+ body: body,
4475
+ app_id: app_id,
4476
+ response: "PromoCodeList",
4477
+ request_options: request_options
4478
+ )
4479
+ end
4480
+
4481
+ # Promosyon kodu listesini sil
4482
+ #
4483
+ # DELETE /v1/apps/{appId}/promo-code-lists/{listId}
4484
+ def delete_promo_list(list_id, app_id: nil, request_options: nil)
4485
+ @client.call(
4486
+ :delete, "/v1/apps/{appId}/promo-code-lists/{listId}",
4487
+ path_params: { "listId" => list_id },
4488
+ app_id: app_id,
4489
+ response: "Ok",
4490
+ request_options: request_options
4491
+ )
4492
+ end
4493
+
4494
+ # CSV ile kod ekle (zaten olanlar atlanır)
4495
+ #
4496
+ # POST /v1/apps/{appId}/promo-code-lists/{listId}/codes
4497
+ #
4498
+ # @param file UTF-8 CSV; kodlar ilk sütunda, başlık isteğe bağlı. En fazla 1.000.000 kod, 20 MB.
4499
+ def upload_promo_list(list_id, file:, app_id: nil, request_options: nil)
4500
+ @client.call(
4501
+ :post, "/v1/apps/{appId}/promo-code-lists/{listId}/codes",
4502
+ path_params: { "listId" => list_id },
4503
+ form: { "file" => file },
4504
+ app_id: app_id,
4505
+ response: "PromoCodeUploadResult",
4506
+ request_options: request_options
4507
+ )
4508
+ end
4509
+
4510
+ # Listedeki kodlar ve atamaları
4511
+ #
4512
+ # GET /v1/apps/{appId}/promo-code-lists/{listId}/codes
4513
+ #
4514
+ # @param status Değerler: "available", "assigned".
4515
+ def promo_codes(list_id, limit: nil, offset: nil, q: nil, status: nil, app_id: nil, request_options: nil)
4516
+ @client.call(
4517
+ :get, "/v1/apps/{appId}/promo-code-lists/{listId}/codes",
4518
+ path_params: { "listId" => list_id },
4519
+ query: { "limit" => limit, "offset" => offset, "q" => q, "status" => status },
4520
+ app_id: app_id,
4521
+ response: "PromoCodesPage",
4522
+ request_options: request_options
4523
+ )
4524
+ end
4525
+ end
4526
+
4527
+ # recommendations kaynağı.
4528
+ class Recommendations < Pushizo::BaseResource
4529
+ # Ürün önerileri
4530
+ #
4531
+ # GET /v1/apps/{appId}/catalogs/{catalogId}/recommendations
4532
+ #
4533
+ # Stokta olmayan ve kullanıcının satın aldığı ürünler çıkmaz. Sonuç yetmezse yedek kaynakla tamamlanır.
4534
+ #
4535
+ # @param strategy Değerler: "personalized", "popular", "trending", "similar", "category", "recently_viewed", "new_arrivals".
4536
+ def list(catalog_id, strategy:, limit: nil, user_id: nil, external_id: nil, item_id: nil, category: nil, app_id: nil, request_options: nil)
4537
+ @client.call(
4538
+ :get, "/v1/apps/{appId}/catalogs/{catalogId}/recommendations",
4539
+ path_params: { "catalogId" => catalog_id },
4540
+ query: { "strategy" => strategy, "limit" => limit, "user_id" => user_id, "external_id" => external_id, "item_id" => item_id, "category" => category },
4541
+ app_id: app_id,
4542
+ response: "Recommendations",
4543
+ request_options: request_options
4544
+ )
4545
+ end
4546
+
4547
+ # Öneri modeli
4548
+ #
4549
+ # GET /v1/apps/{appId}/catalogs/{catalogId}/recommendations/config
4550
+ def get_config(catalog_id, app_id: nil, request_options: nil)
4551
+ @client.call(
4552
+ :get, "/v1/apps/{appId}/catalogs/{catalogId}/recommendations/config",
4553
+ path_params: { "catalogId" => catalog_id },
4554
+ app_id: app_id,
4555
+ response: "RecommendationConfig",
4556
+ request_options: request_options
4557
+ )
4558
+ end
4559
+
4560
+ # Öneri modelini ayarla
4561
+ #
4562
+ # PUT /v1/apps/{appId}/catalogs/{catalogId}/recommendations/config
4563
+ #
4564
+ # Model açıksa öneriler kayıttan sonra yeniden hesaplanır.
4565
+ def update_config(catalog_id, body, app_id: nil, request_options: nil)
4566
+ @client.call(
4567
+ :put, "/v1/apps/{appId}/catalogs/{catalogId}/recommendations/config",
4568
+ path_params: { "catalogId" => catalog_id },
4569
+ body: body,
4570
+ app_id: app_id,
4571
+ response: "RecommendationConfig",
4572
+ request_options: request_options
4573
+ )
4574
+ end
4575
+
4576
+ # Önerileri yeniden hesapla
4577
+ #
4578
+ # POST /v1/apps/{appId}/catalogs/{catalogId}/recommendations/compute
4579
+ #
4580
+ # İş kuyruğa alınır; ilerleme `status` alanından izlenir.
4581
+ def compute(catalog_id, app_id: nil, request_options: nil)
4582
+ @client.call(
4583
+ :post, "/v1/apps/{appId}/catalogs/{catalogId}/recommendations/compute",
4584
+ path_params: { "catalogId" => catalog_id },
4585
+ app_id: app_id,
4586
+ response: "RecommendationConfig",
4587
+ request_options: request_options
4588
+ )
4589
+ end
4590
+ end
4591
+
4592
+ # reverseEtl kaynağı.
4593
+ class ReverseEtl < Pushizo::BaseResource
4594
+ # Depodan içeri aktarımlar
4595
+ #
4596
+ # GET /v1/apps/{appId}/reverse-etl
4597
+ def list(app_id: nil, request_options: nil)
4598
+ @client.call(
4599
+ :get, "/v1/apps/{appId}/reverse-etl",
4600
+ path_params: {},
4601
+ app_id: app_id,
4602
+ response: "ReverseEtlSyncList",
4603
+ request_options: request_options
4604
+ )
4605
+ end
4606
+
4607
+ # İçeri aktarım oluştur
4608
+ #
4609
+ # POST /v1/apps/{appId}/reverse-etl
4610
+ def create(body, app_id: nil, request_options: nil)
4611
+ @client.call(
4612
+ :post, "/v1/apps/{appId}/reverse-etl",
4613
+ path_params: {},
4614
+ body: body,
4615
+ app_id: app_id,
4616
+ response: "ReverseEtlSync",
4617
+ request_options: request_options
4618
+ )
4619
+ end
4620
+
4621
+ # Kaydetmeden bağlantı testi
4622
+ #
4623
+ # POST /v1/apps/{appId}/reverse-etl/test-connection
4624
+ def test(body, app_id: nil, request_options: nil)
4625
+ @client.call(
4626
+ :post, "/v1/apps/{appId}/reverse-etl/test-connection",
4627
+ path_params: {},
4628
+ body: body,
4629
+ app_id: app_id,
4630
+ response: "WarehouseConnectionResult",
4631
+ request_options: request_options
4632
+ )
4633
+ end
4634
+
4635
+ # İçeri aktarım detayı
4636
+ #
4637
+ # GET /v1/apps/{appId}/reverse-etl/{syncId}
4638
+ def get(sync_id, app_id: nil, request_options: nil)
4639
+ @client.call(
4640
+ :get, "/v1/apps/{appId}/reverse-etl/{syncId}",
4641
+ path_params: { "syncId" => sync_id },
4642
+ app_id: app_id,
4643
+ response: "ReverseEtlSync",
4644
+ request_options: request_options
4645
+ )
4646
+ end
4647
+
4648
+ # İçeri aktarımı güncelle
4649
+ #
4650
+ # PATCH /v1/apps/{appId}/reverse-etl/{syncId}
4651
+ def update(sync_id, body, app_id: nil, request_options: nil)
4652
+ @client.call(
4653
+ :patch, "/v1/apps/{appId}/reverse-etl/{syncId}",
4654
+ path_params: { "syncId" => sync_id },
4655
+ body: body,
4656
+ app_id: app_id,
4657
+ response: "ReverseEtlSync",
4658
+ request_options: request_options
4659
+ )
4660
+ end
4661
+
4662
+ # İçeri aktarımı sil
4663
+ #
4664
+ # DELETE /v1/apps/{appId}/reverse-etl/{syncId}
4665
+ def delete(sync_id, app_id: nil, request_options: nil)
4666
+ @client.call(
4667
+ :delete, "/v1/apps/{appId}/reverse-etl/{syncId}",
4668
+ path_params: { "syncId" => sync_id },
4669
+ app_id: app_id,
4670
+ response: "Ok",
4671
+ request_options: request_options
4672
+ )
4673
+ end
4674
+
4675
+ # Kayıtlı içeri aktarımın bağlantı testi
4676
+ #
4677
+ # POST /v1/apps/{appId}/reverse-etl/{syncId}/test
4678
+ def test_saved(sync_id, app_id: nil, request_options: nil)
4679
+ @client.call(
4680
+ :post, "/v1/apps/{appId}/reverse-etl/{syncId}/test",
4681
+ path_params: { "syncId" => sync_id },
4682
+ app_id: app_id,
4683
+ response: "WarehouseConnectionResult",
4684
+ request_options: request_options
4685
+ )
4686
+ end
4687
+
4688
+ # Şimdi içeri aktar
4689
+ #
4690
+ # POST /v1/apps/{appId}/reverse-etl/{syncId}/run
4691
+ def run(sync_id, app_id: nil, request_options: nil)
4692
+ @client.call(
4693
+ :post, "/v1/apps/{appId}/reverse-etl/{syncId}/run",
4694
+ path_params: { "syncId" => sync_id },
4695
+ app_id: app_id,
4696
+ response: "ReverseEtlRun",
4697
+ request_options: request_options
4698
+ )
4699
+ end
4700
+
4701
+ # İçeri aktarım geçmişi
4702
+ #
4703
+ # GET /v1/apps/{appId}/reverse-etl/{syncId}/runs
4704
+ def runs(sync_id, limit: nil, cursor: nil, app_id: nil, request_options: nil)
4705
+ @client.call(
4706
+ :get, "/v1/apps/{appId}/reverse-etl/{syncId}/runs",
4707
+ path_params: { "syncId" => sync_id },
4708
+ query: { "limit" => limit, "cursor" => cursor },
4709
+ app_id: app_id,
4710
+ response: "ReverseEtlRunPage",
4711
+ request_options: request_options
4712
+ )
4713
+ end
4714
+
4715
+ # runs sonuçlarını next_cursor ile tüm sayfalar boyunca tek tek dolaşan Enumerator döndürür (sayfalar tembel yüklenir).
4716
+ def runs_all(sync_id, limit: nil, cursor: nil, app_id: nil, request_options: nil)
4717
+ @client.paginate(cursor) do |cursor_value|
4718
+ runs(sync_id, limit: limit, app_id: app_id, request_options: request_options, cursor: cursor_value)
4719
+ end
4720
+ end
4721
+ end
4722
+
4723
+ # rfm kaynağı.
4724
+ class Rfm < Pushizo::BaseResource
4725
+ # RFM modeli
4726
+ #
4727
+ # GET /v1/apps/{appId}/rfm/config
4728
+ def config(app_id: nil, request_options: nil)
4729
+ @client.call(
4730
+ :get, "/v1/apps/{appId}/rfm/config",
4731
+ path_params: {},
4732
+ app_id: app_id,
4733
+ response: "RfmConfig",
4734
+ request_options: request_options
4735
+ )
4736
+ end
4737
+
4738
+ # RFM modelini ayarla
4739
+ #
4740
+ # PUT /v1/apps/{appId}/rfm/config
4741
+ #
4742
+ # Model açıksa skorlar kayıttan sonra yeniden hesaplanır.
4743
+ def update(body, app_id: nil, request_options: nil)
4744
+ @client.call(
4745
+ :put, "/v1/apps/{appId}/rfm/config",
4746
+ path_params: {},
4747
+ body: body,
4748
+ app_id: app_id,
4749
+ response: "RfmConfig",
4750
+ request_options: request_options
4751
+ )
4752
+ end
4753
+
4754
+ # Skorları yeniden hesapla
4755
+ #
4756
+ # POST /v1/apps/{appId}/rfm/compute
4757
+ #
4758
+ # İş kuyruğa alınır; ilerleme `status` alanından izlenir.
4759
+ def compute(app_id: nil, request_options: nil)
4760
+ @client.call(
4761
+ :post, "/v1/apps/{appId}/rfm/compute",
4762
+ path_params: {},
4763
+ app_id: app_id,
4764
+ response: "RfmConfig",
4765
+ request_options: request_options
4766
+ )
4767
+ end
4768
+
4769
+ # Segment dağılımı
4770
+ #
4771
+ # GET /v1/apps/{appId}/rfm/overview
4772
+ def overview(app_id: nil, request_options: nil)
4773
+ @client.call(
4774
+ :get, "/v1/apps/{appId}/rfm/overview",
4775
+ path_params: {},
4776
+ app_id: app_id,
4777
+ response: "RfmOverview",
4778
+ request_options: request_options
4779
+ )
4780
+ end
4781
+
4782
+ # İki tarih arası segment geçişleri
4783
+ #
4784
+ # GET /v1/apps/{appId}/rfm/transitions
4785
+ def transitions(from: nil, to: nil, app_id: nil, request_options: nil)
4786
+ @client.call(
4787
+ :get, "/v1/apps/{appId}/rfm/transitions",
4788
+ path_params: {},
4789
+ query: { "from" => from, "to" => to },
4790
+ app_id: app_id,
4791
+ response: "RfmTransitions",
4792
+ request_options: request_options
4793
+ )
4794
+ end
4795
+
4796
+ # Skoru olan kullanıcılar
4797
+ #
4798
+ # GET /v1/apps/{appId}/rfm/users
4799
+ #
4800
+ # @param segment Değerler: "champions", "loyal", "potential", "new", "promising", "need_attention", "about_to_sleep", "at_risk", "cant_lose", "hibernating", "lost".
4801
+ def users(segment: nil, limit: nil, cursor: nil, app_id: nil, request_options: nil)
4802
+ @client.call(
4803
+ :get, "/v1/apps/{appId}/rfm/users",
4804
+ path_params: {},
4805
+ query: { "segment" => segment, "limit" => limit, "cursor" => cursor },
4806
+ app_id: app_id,
4807
+ response: "RfmUsersPage",
4808
+ request_options: request_options
4809
+ )
4810
+ end
4811
+ end
4812
+
3594
4813
  # smsKeywords kaynağı.
3595
4814
  class SmsKeywords < Pushizo::BaseResource
3596
4815
  # İki yönlü mesaj anahtar sözcükleri (org geneli + bu app) ve yasal (ayrılmış) sözcükler
@@ -3766,6 +4985,213 @@ module Pushizo
3766
4985
  end
3767
4986
  end
3768
4987
 
4988
+ # verify kaynağı.
4989
+ class Verify < Pushizo::BaseResource
4990
+ # SMS doğrulama kodu gönder
4991
+ #
4992
+ # POST /v1/apps/{appId}/verify/sms
4993
+ def start(body, app_id: nil, request_options: nil)
4994
+ @client.call(
4995
+ :post, "/v1/apps/{appId}/verify/sms",
4996
+ path_params: {},
4997
+ body: body,
4998
+ app_id: app_id,
4999
+ response: "SmsVerification",
5000
+ request_options: request_options
5001
+ )
5002
+ end
5003
+
5004
+ # SMS doğrulama kodunu kontrol et
5005
+ #
5006
+ # POST /v1/apps/{appId}/verify/sms/check
5007
+ def check(body, app_id: nil, request_options: nil)
5008
+ @client.call(
5009
+ :post, "/v1/apps/{appId}/verify/sms/check",
5010
+ path_params: {},
5011
+ body: body,
5012
+ app_id: app_id,
5013
+ response: "SmsVerificationCheck",
5014
+ request_options: request_options
5015
+ )
5016
+ end
5017
+ end
5018
+
5019
+ # wallet kaynağı.
5020
+ class Wallet < Pushizo::BaseResource
5021
+ # Wallet yapılandırması
5022
+ #
5023
+ # GET /v1/apps/{appId}/wallet/config
5024
+ #
5025
+ # Kimlik bilgisi geri okunamaz, yalnızca durum döner.
5026
+ def get_config(app_id: nil, request_options: nil)
5027
+ @client.call(
5028
+ :get, "/v1/apps/{appId}/wallet/config",
5029
+ path_params: {},
5030
+ app_id: app_id,
5031
+ response: "WalletConfig",
5032
+ request_options: request_options
5033
+ )
5034
+ end
5035
+
5036
+ # Wallet kimlik bilgilerini ayarla
5037
+ #
5038
+ # PUT /v1/apps/{appId}/wallet/config
5039
+ def update_config(body, app_id: nil, request_options: nil)
5040
+ @client.call(
5041
+ :put, "/v1/apps/{appId}/wallet/config",
5042
+ path_params: {},
5043
+ body: body,
5044
+ app_id: app_id,
5045
+ response: "WalletConfig",
5046
+ request_options: request_options
5047
+ )
5048
+ end
5049
+
5050
+ # Wallet şablonları
5051
+ #
5052
+ # GET /v1/apps/{appId}/wallet/templates
5053
+ def list_templates(app_id: nil, request_options: nil)
5054
+ @client.call(
5055
+ :get, "/v1/apps/{appId}/wallet/templates",
5056
+ path_params: {},
5057
+ app_id: app_id,
5058
+ response: "WalletTemplateList",
5059
+ request_options: request_options
5060
+ )
5061
+ end
5062
+
5063
+ # Wallet şablonu oluştur
5064
+ #
5065
+ # POST /v1/apps/{appId}/wallet/templates
5066
+ def create_template(body, app_id: nil, request_options: nil)
5067
+ @client.call(
5068
+ :post, "/v1/apps/{appId}/wallet/templates",
5069
+ path_params: {},
5070
+ body: body,
5071
+ app_id: app_id,
5072
+ response: "WalletTemplate",
5073
+ request_options: request_options
5074
+ )
5075
+ end
5076
+
5077
+ # Wallet şablonu
5078
+ #
5079
+ # GET /v1/apps/{appId}/wallet/templates/{id}
5080
+ def get_template(id, app_id: nil, request_options: nil)
5081
+ @client.call(
5082
+ :get, "/v1/apps/{appId}/wallet/templates/{id}",
5083
+ path_params: { "id" => id },
5084
+ app_id: app_id,
5085
+ response: "WalletTemplate",
5086
+ request_options: request_options
5087
+ )
5088
+ end
5089
+
5090
+ # Wallet şablonunu güncelle
5091
+ #
5092
+ # PATCH /v1/apps/{appId}/wallet/templates/{id}
5093
+ #
5094
+ # Tasarım değişirse verilmiş kartlar da güncellenir.
5095
+ def update_template(id, body, app_id: nil, request_options: nil)
5096
+ @client.call(
5097
+ :patch, "/v1/apps/{appId}/wallet/templates/{id}",
5098
+ path_params: { "id" => id },
5099
+ body: body,
5100
+ app_id: app_id,
5101
+ response: "WalletTemplate",
5102
+ request_options: request_options
5103
+ )
5104
+ end
5105
+
5106
+ # Wallet şablonunu sil
5107
+ #
5108
+ # DELETE /v1/apps/{appId}/wallet/templates/{id}
5109
+ #
5110
+ # Verilmiş kartı olan şablon silinemez, arşivlenir.
5111
+ def delete_template(id, app_id: nil, request_options: nil)
5112
+ @client.call(
5113
+ :delete, "/v1/apps/{appId}/wallet/templates/{id}",
5114
+ path_params: { "id" => id },
5115
+ app_id: app_id,
5116
+ request_options: request_options
5117
+ )
5118
+ end
5119
+
5120
+ # Verilmiş kartlar
5121
+ #
5122
+ # GET /v1/apps/{appId}/wallet/passes
5123
+ def list_passes(template_id: nil, limit: nil, cursor: nil, app_id: nil, request_options: nil)
5124
+ @client.call(
5125
+ :get, "/v1/apps/{appId}/wallet/passes",
5126
+ path_params: {},
5127
+ query: { "template_id" => template_id, "limit" => limit, "cursor" => cursor },
5128
+ app_id: app_id,
5129
+ response: "WalletPassPage",
5130
+ request_options: request_options
5131
+ )
5132
+ end
5133
+
5134
+ # Kart ver
5135
+ #
5136
+ # POST /v1/apps/{appId}/wallet/passes
5137
+ #
5138
+ # Kullanıcılı kart şablon başına tektir; tekrar istek aynı kartı döndürür.
5139
+ def issue_pass(body, app_id: nil, request_options: nil)
5140
+ @client.call(
5141
+ :post, "/v1/apps/{appId}/wallet/passes",
5142
+ path_params: {},
5143
+ body: body,
5144
+ app_id: app_id,
5145
+ response: "WalletPass",
5146
+ request_options: request_options
5147
+ )
5148
+ end
5149
+
5150
+ # Kart
5151
+ #
5152
+ # GET /v1/apps/{appId}/wallet/passes/{id}
5153
+ def get_pass(id, app_id: nil, request_options: nil)
5154
+ @client.call(
5155
+ :get, "/v1/apps/{appId}/wallet/passes/{id}",
5156
+ path_params: { "id" => id },
5157
+ app_id: app_id,
5158
+ response: "WalletPass",
5159
+ request_options: request_options
5160
+ )
5161
+ end
5162
+
5163
+ # Kartı güncelle
5164
+ #
5165
+ # PATCH /v1/apps/{appId}/wallet/passes/{id}
5166
+ #
5167
+ # Cihazdaki kart arka planda yenilenir.
5168
+ def update_pass(id, body, app_id: nil, request_options: nil)
5169
+ @client.call(
5170
+ :patch, "/v1/apps/{appId}/wallet/passes/{id}",
5171
+ path_params: { "id" => id },
5172
+ body: body,
5173
+ app_id: app_id,
5174
+ response: "WalletPass",
5175
+ request_options: request_options
5176
+ )
5177
+ end
5178
+
5179
+ # Kartı iptal et
5180
+ #
5181
+ # POST /v1/apps/{appId}/wallet/passes/{id}/void
5182
+ #
5183
+ # Geri alınmaz; cihazdaki kart geçersiz görünür.
5184
+ def void_pass(id, app_id: nil, request_options: nil)
5185
+ @client.call(
5186
+ :post, "/v1/apps/{appId}/wallet/passes/{id}/void",
5187
+ path_params: { "id" => id },
5188
+ app_id: app_id,
5189
+ response: "WalletPass",
5190
+ request_options: request_options
5191
+ )
5192
+ end
5193
+ end
5194
+
3769
5195
  # warehouseExports kaynağı.
3770
5196
  class WarehouseExports < Pushizo::BaseResource
3771
5197
  # Dışa aktarılabilir tablolar, kolonlar ve şema sürümleri
@@ -4005,6 +5431,101 @@ module Pushizo
4005
5431
  end
4006
5432
  end
4007
5433
 
5434
+ # webPersonalizations kaynağı.
5435
+ class WebPersonalizations < Pushizo::BaseResource
5436
+ # Web kişiselleştirme deneyimleri
5437
+ #
5438
+ # GET /v1/apps/{appId}/web-personalizations
5439
+ #
5440
+ # @param status Değerler: "draft", "active", "paused", "archived".
5441
+ def list(limit: nil, cursor: nil, status: nil, app_id: nil, request_options: nil)
5442
+ @client.call(
5443
+ :get, "/v1/apps/{appId}/web-personalizations",
5444
+ path_params: {},
5445
+ query: { "limit" => limit, "cursor" => cursor, "status" => status },
5446
+ app_id: app_id,
5447
+ response: "WebPersonalizationPage",
5448
+ request_options: request_options
5449
+ )
5450
+ end
5451
+
5452
+ # list sonuçlarını next_cursor ile tüm sayfalar boyunca tek tek dolaşan Enumerator döndürür (sayfalar tembel yüklenir).
5453
+ def list_all(limit: nil, cursor: nil, status: nil, app_id: nil, request_options: nil)
5454
+ @client.paginate(cursor) do |cursor_value|
5455
+ list(limit: limit, status: status, app_id: app_id, request_options: request_options, cursor: cursor_value)
5456
+ end
5457
+ end
5458
+
5459
+ # Kişiselleştirme deneyimi oluştur (taslak)
5460
+ #
5461
+ # POST /v1/apps/{appId}/web-personalizations
5462
+ def create(body, app_id: nil, request_options: nil)
5463
+ @client.call(
5464
+ :post, "/v1/apps/{appId}/web-personalizations",
5465
+ path_params: {},
5466
+ body: body,
5467
+ app_id: app_id,
5468
+ response: "WebPersonalization",
5469
+ request_options: request_options
5470
+ )
5471
+ end
5472
+
5473
+ # Kişiselleştirme deneyimi detayı ve istatistikleri
5474
+ #
5475
+ # GET /v1/apps/{appId}/web-personalizations/{personalizationId}
5476
+ def get(personalization_id, app_id: nil, request_options: nil)
5477
+ @client.call(
5478
+ :get, "/v1/apps/{appId}/web-personalizations/{personalizationId}",
5479
+ path_params: { "personalizationId" => personalization_id },
5480
+ app_id: app_id,
5481
+ response: "WebPersonalization",
5482
+ request_options: request_options
5483
+ )
5484
+ end
5485
+
5486
+ # Kişiselleştirme deneyimini düzenle
5487
+ #
5488
+ # PATCH /v1/apps/{appId}/web-personalizations/{personalizationId}
5489
+ def update(personalization_id, body, app_id: nil, request_options: nil)
5490
+ @client.call(
5491
+ :patch, "/v1/apps/{appId}/web-personalizations/{personalizationId}",
5492
+ path_params: { "personalizationId" => personalization_id },
5493
+ body: body,
5494
+ app_id: app_id,
5495
+ response: "WebPersonalization",
5496
+ request_options: request_options
5497
+ )
5498
+ end
5499
+
5500
+ # Günlük seri
5501
+ #
5502
+ # GET /v1/apps/{appId}/web-personalizations/{personalizationId}/report
5503
+ def report(personalization_id, days: nil, app_id: nil, request_options: nil)
5504
+ @client.call(
5505
+ :get, "/v1/apps/{appId}/web-personalizations/{personalizationId}/report",
5506
+ path_params: { "personalizationId" => personalization_id },
5507
+ query: { "days" => days },
5508
+ app_id: app_id,
5509
+ response: "WebPersonalizationReport",
5510
+ request_options: request_options
5511
+ )
5512
+ end
5513
+
5514
+ # Yayınla / duraklat / arşivle
5515
+ #
5516
+ # POST /v1/apps/{appId}/web-personalizations/{personalizationId}/status
5517
+ def status(personalization_id, body, app_id: nil, request_options: nil)
5518
+ @client.call(
5519
+ :post, "/v1/apps/{appId}/web-personalizations/{personalizationId}/status",
5520
+ path_params: { "personalizationId" => personalization_id },
5521
+ body: body,
5522
+ app_id: app_id,
5523
+ response: "WebPersonalization",
5524
+ request_options: request_options
5525
+ )
5526
+ end
5527
+ end
5528
+
4008
5529
  # whatsapp kaynağı.
4009
5530
  class Whatsapp < Pushizo::BaseResource
4010
5531
  # WhatsApp şablonları (Meta onay durumu ile)
@@ -4039,9 +5560,9 @@ module Pushizo
4039
5560
  # İstemciye kaynak erişimcilerini ekleyen üretilmiş modül.
4040
5561
  module GeneratedResources
4041
5562
  # SDK'nın üretildiği OpenAPI sözleşmesinin sürümü.
4042
- API_VERSION = "1.0.0"
5563
+ API_VERSION = "1.1.0"
4043
5564
 
4044
- RESOURCE_NAMES = %i[notifications users aliases subscriptions events segments templates campaigns in_app_messages inbox suppressions exports imports webhooks channels analytics apps api_keys organization ads canned_responses categories content_tables conversations data_feeds email_deliverability forms identity_keys integrations journeys landing_pages live_activities mcp preferences sms_keywords surveys warehouse_exports web_campaigns whatsapp].freeze
5565
+ RESOURCE_NAMES = %i[notifications users aliases subscriptions events segments templates campaigns in_app_messages inbox suppressions exports imports webhooks channels analytics apps api_keys organization ads canned_responses catalogs categories channel_scores content_tables conversations data_feeds decision_agents email_deliverability feature_flags forms geofences global_control identity_keys integrations journeys landing_pages live_activities mcp predictions preferences promo_code_lists recommendations reverse_etl rfm sms_keywords surveys verify wallet warehouse_exports web_campaigns web_personalizations whatsapp].freeze
4045
5566
 
4046
5567
  # Bildirim gönderme, durum, iptal, teslimatlar ve geçmiş dışa aktarımı.
4047
5568
  def notifications
@@ -4146,10 +5667,18 @@ module Pushizo
4146
5667
  @canned_responses ||= Pushizo::Resources::CannedResponses.new(self)
4147
5668
  end
4148
5669
 
5670
+ def catalogs
5671
+ @catalogs ||= Pushizo::Resources::Catalogs.new(self)
5672
+ end
5673
+
4149
5674
  def categories
4150
5675
  @categories ||= Pushizo::Resources::Categories.new(self)
4151
5676
  end
4152
5677
 
5678
+ def channel_scores
5679
+ @channel_scores ||= Pushizo::Resources::ChannelScores.new(self)
5680
+ end
5681
+
4153
5682
  def content_tables
4154
5683
  @content_tables ||= Pushizo::Resources::ContentTables.new(self)
4155
5684
  end
@@ -4162,14 +5691,30 @@ module Pushizo
4162
5691
  @data_feeds ||= Pushizo::Resources::DataFeeds.new(self)
4163
5692
  end
4164
5693
 
5694
+ def decision_agents
5695
+ @decision_agents ||= Pushizo::Resources::DecisionAgents.new(self)
5696
+ end
5697
+
4165
5698
  def email_deliverability
4166
5699
  @email_deliverability ||= Pushizo::Resources::EmailDeliverability.new(self)
4167
5700
  end
4168
5701
 
5702
+ def feature_flags
5703
+ @feature_flags ||= Pushizo::Resources::FeatureFlags.new(self)
5704
+ end
5705
+
4169
5706
  def forms
4170
5707
  @forms ||= Pushizo::Resources::Forms.new(self)
4171
5708
  end
4172
5709
 
5710
+ def geofences
5711
+ @geofences ||= Pushizo::Resources::Geofences.new(self)
5712
+ end
5713
+
5714
+ def global_control
5715
+ @global_control ||= Pushizo::Resources::GlobalControl.new(self)
5716
+ end
5717
+
4173
5718
  def identity_keys
4174
5719
  @identity_keys ||= Pushizo::Resources::IdentityKeys.new(self)
4175
5720
  end
@@ -4194,10 +5739,30 @@ module Pushizo
4194
5739
  @mcp ||= Pushizo::Resources::Mcp.new(self)
4195
5740
  end
4196
5741
 
5742
+ def predictions
5743
+ @predictions ||= Pushizo::Resources::Predictions.new(self)
5744
+ end
5745
+
4197
5746
  def preferences
4198
5747
  @preferences ||= Pushizo::Resources::Preferences.new(self)
4199
5748
  end
4200
5749
 
5750
+ def promo_code_lists
5751
+ @promo_code_lists ||= Pushizo::Resources::PromoCodeLists.new(self)
5752
+ end
5753
+
5754
+ def recommendations
5755
+ @recommendations ||= Pushizo::Resources::Recommendations.new(self)
5756
+ end
5757
+
5758
+ def reverse_etl
5759
+ @reverse_etl ||= Pushizo::Resources::ReverseEtl.new(self)
5760
+ end
5761
+
5762
+ def rfm
5763
+ @rfm ||= Pushizo::Resources::Rfm.new(self)
5764
+ end
5765
+
4201
5766
  def sms_keywords
4202
5767
  @sms_keywords ||= Pushizo::Resources::SmsKeywords.new(self)
4203
5768
  end
@@ -4206,6 +5771,14 @@ module Pushizo
4206
5771
  @surveys ||= Pushizo::Resources::Surveys.new(self)
4207
5772
  end
4208
5773
 
5774
+ def verify
5775
+ @verify ||= Pushizo::Resources::Verify.new(self)
5776
+ end
5777
+
5778
+ def wallet
5779
+ @wallet ||= Pushizo::Resources::Wallet.new(self)
5780
+ end
5781
+
4209
5782
  def warehouse_exports
4210
5783
  @warehouse_exports ||= Pushizo::Resources::WarehouseExports.new(self)
4211
5784
  end
@@ -4214,6 +5787,10 @@ module Pushizo
4214
5787
  @web_campaigns ||= Pushizo::Resources::WebCampaigns.new(self)
4215
5788
  end
4216
5789
 
5790
+ def web_personalizations
5791
+ @web_personalizations ||= Pushizo::Resources::WebPersonalizations.new(self)
5792
+ end
5793
+
4217
5794
  def whatsapp
4218
5795
  @whatsapp ||= Pushizo::Resources::Whatsapp.new(self)
4219
5796
  end