@zinn-digital/sdk 0.1.1377 → 0.1.1380

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.
@@ -19752,6 +19752,114 @@ export interface paths {
19752
19752
  patch?: never;
19753
19753
  trace?: never;
19754
19754
  };
19755
+ "/v1/ads/report/pdf": {
19756
+ parameters: {
19757
+ query?: never;
19758
+ header?: never;
19759
+ path?: never;
19760
+ cookie?: never;
19761
+ };
19762
+ /**
19763
+ * One client's white-label advertising report as a PDF (za-200).
19764
+ * @description Gated on `ads.view`. The same document a scheduled report e-mails: the client organisation's figures (and its sub-organisations') over the last `days` days, under the brand that organisation renders under (the agency's white label), in `locale` (any of the 58 platform languages; Arabic and Hebrew right to left). Stored rows only. Throttled per caller (`ads_report_render`, 300 per hour) on top of the account limits.
19765
+ */
19766
+ get: operations["getAdsReportPdf"];
19767
+ put?: never;
19768
+ post?: never;
19769
+ delete?: never;
19770
+ options?: never;
19771
+ head?: never;
19772
+ patch?: never;
19773
+ trace?: never;
19774
+ };
19775
+ "/v1/ads/report/rows": {
19776
+ parameters: {
19777
+ query?: never;
19778
+ header?: never;
19779
+ path?: never;
19780
+ cookie?: never;
19781
+ };
19782
+ /**
19783
+ * Daily campaign rows for Looker Studio (za-200).
19784
+ * @description Gated on `ads.view`. One row per day, ad account and campaign over `start`..`end` (inclusive, at most 400 days) for the organisations the caller may view; `org_id` narrows to that organisation and its clients. Built for the Zinn® Ads Looker Studio community connector, which authenticates with an API key minted on ONE client organisation with only the `ads.view` scope, so the key reads that client and nothing else. Spend and value are integer micros of the account currency (`currency` on every row); conversions are thousandths. Paged: follow `next_offset` until it is `null`. Stored rows only - never a network call in the request.
19785
+ */
19786
+ get: operations["listAdsReportRows"];
19787
+ put?: never;
19788
+ post?: never;
19789
+ delete?: never;
19790
+ options?: never;
19791
+ head?: never;
19792
+ patch?: never;
19793
+ trace?: never;
19794
+ };
19795
+ "/v1/ads/report/schedules": {
19796
+ parameters: {
19797
+ query?: never;
19798
+ header?: never;
19799
+ path?: never;
19800
+ cookie?: never;
19801
+ };
19802
+ /**
19803
+ * The scheduled white-label PDF reports (za-200).
19804
+ * @description Gated on `ads.view`. Every schedule in the organisations the caller may view; `org_id` narrows to that organisation and its clients.
19805
+ */
19806
+ get: operations["listAdsReportSchedules"];
19807
+ put?: never;
19808
+ /**
19809
+ * Create or replace a client's weekly or monthly PDF report (za-200).
19810
+ * @description Gated on `ads.manage`; audit action `ads.report_schedule.save`. One schedule per client organisation and cadence: posting the same cadence again replaces it (200), a new one answers 201. Weekly reports are sent on Monday at 06:00 UTC, monthly ones on the 1st at 06:00 UTC, by a Temporal workflow. A bad field answers `422 badLimit` naming it.
19811
+ */
19812
+ post: operations["saveAdsReportSchedule"];
19813
+ delete?: never;
19814
+ options?: never;
19815
+ head?: never;
19816
+ patch?: never;
19817
+ trace?: never;
19818
+ };
19819
+ "/v1/ads/report/schedules/{schedule_id}": {
19820
+ parameters: {
19821
+ query?: never;
19822
+ header?: never;
19823
+ path?: never;
19824
+ cookie?: never;
19825
+ };
19826
+ get?: never;
19827
+ put?: never;
19828
+ post?: never;
19829
+ /**
19830
+ * Stop and remove a scheduled report (za-200).
19831
+ * @description Gated on `ads.manage`; audit action `ads.report_schedule.delete`.
19832
+ */
19833
+ delete: operations["deleteAdsReportSchedule"];
19834
+ options?: never;
19835
+ head?: never;
19836
+ /**
19837
+ * Change a scheduled report's recipients, language, window or on/off (za-200).
19838
+ * @description Gated on `ads.manage`; audit action `ads.report_schedule.save`.
19839
+ */
19840
+ patch: operations["updateAdsReportSchedule"];
19841
+ trace?: never;
19842
+ };
19843
+ "/v1/ads/report/schedules/{schedule_id}/send": {
19844
+ parameters: {
19845
+ query?: never;
19846
+ header?: never;
19847
+ path?: never;
19848
+ cookie?: never;
19849
+ };
19850
+ get?: never;
19851
+ put?: never;
19852
+ /**
19853
+ * E-mail this period's report now, without moving the schedule (za-200).
19854
+ * @description Gated on `ads.manage`; audit action `ads.report_schedule.send`. Refused with `422 notInGoodStanding` when the paying organisation is not in good standing. Throttled per caller (`ads_report_send`, 300 per hour) on top of the account limits.
19855
+ */
19856
+ post: operations["sendAdsReportScheduleNow"];
19857
+ delete?: never;
19858
+ options?: never;
19859
+ head?: never;
19860
+ patch?: never;
19861
+ trace?: never;
19862
+ };
19755
19863
  "/v1/ads/shield": {
19756
19864
  parameters: {
19757
19865
  query?: never;
@@ -45929,7 +46037,7 @@ export interface paths {
45929
46037
  };
45930
46038
  /**
45931
46039
  * Read a site's automatic app updates add-on and its window.
45932
- * @description The paid automatic-updates add-on for the app the site runs (`wordpress_auto_updates`, `woocommerce_auto_updates` or `joomla_auto_updates`, USD 29 a year per site; `nextcloud_auto_updates`, USD 50 a year per site; s1014 row 41): whether it is on sale and on, its price in the caller's currency, the renewal, the quiet window and the last run. Each run takes a safety backup first and rolls back to it when the homepage breaks. WordPress: core, plugins and themes (a held plugin version is never applied). Joomla!: the core only, through Joomla's own console; extensions and templates are not updated. Nextcloud: the server through its own updater, then every app with an update. Buy it through `purchaseExtra` with `site_id`. Requires `sites.view`.
46040
+ * @description The paid automatic-updates add-on for the app the site runs (`wordpress_auto_updates`, `woocommerce_auto_updates`, `joomla_auto_updates` or `drupal_auto_updates`, USD 29 a year per site; `nextcloud_auto_updates`, USD 50 a year per site; s1014 row 41): whether it is on sale and on, its price in the caller's currency, the renewal, the quiet window and the last run. Each run takes a safety backup first and rolls back to it when the homepage breaks. WordPress: core, plugins and themes (a held plugin version is never applied). Joomla!: the core only, through Joomla's own console; extensions and templates are not updated. Nextcloud: the server through its own updater, then every app with an update. Drupal: the core only (the newest release of the installed major version, then its database updates); contributed modules and themes are not updated. Buy it through `purchaseExtra` with `site_id`. Requires `sites.view`.
45933
46041
  */
45934
46042
  get: operations["getSiteAppAutoUpdate"];
45935
46043
  /**
@@ -64174,6 +64282,77 @@ export interface components {
64174
64282
  /** Format: int64 */
64175
64283
  value_micros: number;
64176
64284
  };
64285
+ AdsReportRows: {
64286
+ /** Format: date */
64287
+ end: string;
64288
+ fields: {
64289
+ name: string;
64290
+ /** @description The Looker Studio semantic type. */
64291
+ type: string;
64292
+ }[];
64293
+ next_offset: number | null;
64294
+ rows: {
64295
+ account: string;
64296
+ campaign: string;
64297
+ campaign_id: string;
64298
+ clicks: number;
64299
+ client: string;
64300
+ /** Format: uuid */
64301
+ client_org_id: string;
64302
+ /** Format: uuid */
64303
+ connection_id: string;
64304
+ conversions_milli: number;
64305
+ cost_micros: number;
64306
+ currency: string;
64307
+ /** Format: date */
64308
+ day: string;
64309
+ impressions: number;
64310
+ platform: string;
64311
+ value_micros: number;
64312
+ }[];
64313
+ /** Format: date */
64314
+ start: string;
64315
+ };
64316
+ AdsReportSchedule: {
64317
+ /** @enum {string} */
64318
+ cadence: "weekly" | "monthly";
64319
+ enabled: boolean;
64320
+ /** Format: uuid */
64321
+ id: string;
64322
+ /** @description `notInGoodStanding`, `mailRefused`, `renderFailed` or empty. */
64323
+ last_error: string;
64324
+ /** Format: date-time */
64325
+ last_sent_at: string | null;
64326
+ locale: string;
64327
+ /** Format: date-time */
64328
+ next_run_at: string | null;
64329
+ /** Format: uuid */
64330
+ org_id: string;
64331
+ recipients: string[];
64332
+ window_days: number;
64333
+ };
64334
+ AdsReportScheduleInput: {
64335
+ /** @enum {string} */
64336
+ cadence: "weekly" | "monthly";
64337
+ /** @default true */
64338
+ enabled: boolean;
64339
+ /**
64340
+ * @description One of the 58 platform languages.
64341
+ * @default en
64342
+ */
64343
+ locale: string;
64344
+ /**
64345
+ * Format: uuid
64346
+ * @description The client organisation the report is about.
64347
+ */
64348
+ org_id?: string;
64349
+ recipients: string[];
64350
+ /**
64351
+ * @description Default 7 (weekly) or 30 (monthly).
64352
+ * @enum {integer}
64353
+ */
64354
+ window_days?: 7 | 30 | 90;
64355
+ };
64177
64356
  /** @description A scheduled review (AUTOREVIEW1). `figures` are the measurements the verdict rests on: the judged window (`after`) and the same length before it (`before`) with impressions, clicks, cost in the account's integer micros and conversions in thousandths (plus our own first-party `outcomes` on the house account), per campaign; a funnel's `idle` campaigns; a Quality Score review's `now` and `before` (`qs_x10`, `lp_below`, `keywords`); `stale` when the stored figures could not be read. */
64178
64357
  AdsReview: {
64179
64358
  campaign_ids: string[];
@@ -95693,7 +95872,7 @@ export interface components {
95693
95872
  total_ms: number;
95694
95873
  transaction: string;
95695
95874
  };
95696
- /** @description The paid automatic app updates add-on for one site (s1014 row 41): the code that applies (`wordpress_auto_updates`, `woocommerce_auto_updates`, `joomla_auto_updates` or `nextcloud_auto_updates`), the window and the last run's outcome. */
95875
+ /** @description The paid automatic app updates add-on for one site (s1014 row 41): the code that applies (`wordpress_auto_updates`, `woocommerce_auto_updates`, `joomla_auto_updates`, `nextcloud_auto_updates` or `drupal_auto_updates`), the window and the last run's outcome. */
95697
95876
  SiteAppAutoUpdate: {
95698
95877
  /** @description Whether the add-on is on and in good standing now. */
95699
95878
  active: boolean;
@@ -95701,7 +95880,7 @@ export interface components {
95701
95880
  * @description The app the add-on serves on this site, or null when none is sold for it.
95702
95881
  * @enum {string|null}
95703
95882
  */
95704
- app_key: "wordpress" | "woocommerce" | "joomla" | "nextcloud" | null;
95883
+ app_key: "wordpress" | "woocommerce" | "joomla" | "nextcloud" | "drupal" | null;
95705
95884
  can_buy: boolean;
95706
95885
  /** @description The catalogue code to buy (`<app_key>_auto_updates`). */
95707
95886
  code: string | null;
@@ -141206,6 +141385,233 @@ export interface operations {
141206
141385
  429: components["responses"]["TooManyRequests"];
141207
141386
  };
141208
141387
  };
141388
+ getAdsReportPdf: {
141389
+ parameters: {
141390
+ query?: {
141391
+ days?: 7 | 30 | 90;
141392
+ locale?: string;
141393
+ org_id?: string;
141394
+ };
141395
+ header?: never;
141396
+ path?: never;
141397
+ cookie?: never;
141398
+ };
141399
+ requestBody?: never;
141400
+ responses: {
141401
+ /** @description The PDF. */
141402
+ 200: {
141403
+ headers: {
141404
+ [name: string]: unknown;
141405
+ };
141406
+ content: {
141407
+ "application/pdf": string;
141408
+ };
141409
+ };
141410
+ 401: components["responses"]["Unauthorized"];
141411
+ 403: components["responses"]["Forbidden"];
141412
+ 404: components["responses"]["NotFound"];
141413
+ 422: components["responses"]["UnprocessableEntity"];
141414
+ 429: components["responses"]["TooManyRequests"];
141415
+ };
141416
+ };
141417
+ listAdsReportRows: {
141418
+ parameters: {
141419
+ query: {
141420
+ end: string;
141421
+ offset?: number;
141422
+ org_id?: string;
141423
+ start: string;
141424
+ };
141425
+ header?: never;
141426
+ path?: never;
141427
+ cookie?: never;
141428
+ };
141429
+ requestBody?: never;
141430
+ responses: {
141431
+ /** @description One page of rows. */
141432
+ 200: {
141433
+ headers: {
141434
+ [name: string]: unknown;
141435
+ };
141436
+ content: {
141437
+ "application/json": {
141438
+ data: components["schemas"]["AdsReportRows"];
141439
+ };
141440
+ };
141441
+ };
141442
+ 401: components["responses"]["Unauthorized"];
141443
+ 403: components["responses"]["Forbidden"];
141444
+ 404: components["responses"]["NotFound"];
141445
+ 422: components["responses"]["UnprocessableEntity"];
141446
+ 429: components["responses"]["TooManyRequests"];
141447
+ };
141448
+ };
141449
+ listAdsReportSchedules: {
141450
+ parameters: {
141451
+ query?: {
141452
+ org_id?: string;
141453
+ };
141454
+ header?: never;
141455
+ path?: never;
141456
+ cookie?: never;
141457
+ };
141458
+ requestBody?: never;
141459
+ responses: {
141460
+ /** @description The schedules. */
141461
+ 200: {
141462
+ headers: {
141463
+ [name: string]: unknown;
141464
+ };
141465
+ content: {
141466
+ "application/json": {
141467
+ data: components["schemas"]["AdsReportSchedule"][];
141468
+ };
141469
+ };
141470
+ };
141471
+ 401: components["responses"]["Unauthorized"];
141472
+ 403: components["responses"]["Forbidden"];
141473
+ 404: components["responses"]["NotFound"];
141474
+ 429: components["responses"]["TooManyRequests"];
141475
+ };
141476
+ };
141477
+ saveAdsReportSchedule: {
141478
+ parameters: {
141479
+ query?: never;
141480
+ header?: never;
141481
+ path?: never;
141482
+ cookie?: never;
141483
+ };
141484
+ requestBody: {
141485
+ content: {
141486
+ "application/json": components["schemas"]["AdsReportScheduleInput"];
141487
+ };
141488
+ };
141489
+ responses: {
141490
+ /** @description The replaced schedule. */
141491
+ 200: {
141492
+ headers: {
141493
+ [name: string]: unknown;
141494
+ };
141495
+ content: {
141496
+ "application/json": {
141497
+ data: components["schemas"]["AdsReportSchedule"];
141498
+ };
141499
+ };
141500
+ };
141501
+ /** @description The new schedule. */
141502
+ 201: {
141503
+ headers: {
141504
+ [name: string]: unknown;
141505
+ };
141506
+ content: {
141507
+ "application/json": {
141508
+ data: components["schemas"]["AdsReportSchedule"];
141509
+ };
141510
+ };
141511
+ };
141512
+ 401: components["responses"]["Unauthorized"];
141513
+ 403: components["responses"]["Forbidden"];
141514
+ 404: components["responses"]["NotFound"];
141515
+ 422: components["responses"]["UnprocessableEntity"];
141516
+ 429: components["responses"]["TooManyRequests"];
141517
+ };
141518
+ };
141519
+ deleteAdsReportSchedule: {
141520
+ parameters: {
141521
+ query?: never;
141522
+ header?: never;
141523
+ path: {
141524
+ schedule_id: string;
141525
+ };
141526
+ cookie?: never;
141527
+ };
141528
+ requestBody?: never;
141529
+ responses: {
141530
+ /** @description Removed. */
141531
+ 204: {
141532
+ headers: {
141533
+ [name: string]: unknown;
141534
+ };
141535
+ content?: never;
141536
+ };
141537
+ 401: components["responses"]["Unauthorized"];
141538
+ 403: components["responses"]["Forbidden"];
141539
+ 404: components["responses"]["NotFound"];
141540
+ 429: components["responses"]["TooManyRequests"];
141541
+ };
141542
+ };
141543
+ updateAdsReportSchedule: {
141544
+ parameters: {
141545
+ query?: never;
141546
+ header?: never;
141547
+ path: {
141548
+ schedule_id: string;
141549
+ };
141550
+ cookie?: never;
141551
+ };
141552
+ requestBody: {
141553
+ content: {
141554
+ "application/json": {
141555
+ enabled?: boolean;
141556
+ locale?: string;
141557
+ recipients?: string[];
141558
+ /** @enum {integer} */
141559
+ window_days?: 7 | 30 | 90;
141560
+ };
141561
+ };
141562
+ };
141563
+ responses: {
141564
+ /** @description The schedule. */
141565
+ 200: {
141566
+ headers: {
141567
+ [name: string]: unknown;
141568
+ };
141569
+ content: {
141570
+ "application/json": {
141571
+ data: components["schemas"]["AdsReportSchedule"];
141572
+ };
141573
+ };
141574
+ };
141575
+ 401: components["responses"]["Unauthorized"];
141576
+ 403: components["responses"]["Forbidden"];
141577
+ 404: components["responses"]["NotFound"];
141578
+ 422: components["responses"]["UnprocessableEntity"];
141579
+ 429: components["responses"]["TooManyRequests"];
141580
+ };
141581
+ };
141582
+ sendAdsReportScheduleNow: {
141583
+ parameters: {
141584
+ query?: never;
141585
+ header?: never;
141586
+ path: {
141587
+ schedule_id: string;
141588
+ };
141589
+ cookie?: never;
141590
+ };
141591
+ requestBody?: never;
141592
+ responses: {
141593
+ /** @description How many recipients the report went to. */
141594
+ 200: {
141595
+ headers: {
141596
+ [name: string]: unknown;
141597
+ };
141598
+ content: {
141599
+ "application/json": {
141600
+ data: {
141601
+ recipients: number;
141602
+ /** Format: uuid */
141603
+ schedule_id: string;
141604
+ };
141605
+ };
141606
+ };
141607
+ };
141608
+ 401: components["responses"]["Unauthorized"];
141609
+ 403: components["responses"]["Forbidden"];
141610
+ 404: components["responses"]["NotFound"];
141611
+ 422: components["responses"]["UnprocessableEntity"];
141612
+ 429: components["responses"]["TooManyRequests"];
141613
+ };
141614
+ };
141209
141615
  getAdsShield: {
141210
141616
  parameters: {
141211
141617
  query?: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zinn-digital/sdk",
3
- "version": "0.1.1377",
3
+ "version": "0.1.1380",
4
4
  "description": "Typed TypeScript client for the Zinn Digital Platform API, generated from its OpenAPI spec.",
5
5
  "license": "MIT",
6
6
  "author": "Neil Lock \u2014 CEO, Zinn Digital\u00ae Ltd <office@zinndigital.com>",