@zinn-digital/sdk 0.1.1421 → 0.1.1424

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.
@@ -5479,6 +5479,8 @@ export interface paths {
5479
5479
  *
5480
5480
  * **Written for every box the automation REACHED, before its outcome is judged**, so a box that fails every time still shows a recent attempt rather than looking untouched. `ok` and `failed` are both recorded; only *never attempted* leaves the fields empty, and that is the state worth seeing.
5481
5481
  *
5482
+ * A note of exactly `ok` also resolves the OPEN converge ops alerts (`box-job:fleet-apply`, `box-job:worker-converge`) whose only failing box is this one, whichever converge path raised them (s1014 CONVERGECLEAR).
5483
+ *
5482
5484
  * A hostname the engine does not know is a **404**, never a quiet 200 — the automation reporting about a box the fleet registry has never heard of is a real disagreement between the two, and swallowing it would re-create the divergence this pair exists to remove.
5483
5485
  *
5484
5486
  * **Auth: a GitHub Actions OIDC token from `worker-converge.yml`, or a staff member with `fleet.manage`** — the converge runs on the platform's own box since 2026-10-15 and reports as the staff verification identity; a staff write is audited (`fleet.converge_result.recorded`). This writes, so it is a separate grant from the read-only freshness view (`fleet.view` is refused).
@@ -15967,6 +15969,66 @@ export interface paths {
15967
15969
  patch?: never;
15968
15970
  trace?: never;
15969
15971
  };
15972
+ "/v1/ads/analytics/breakdown": {
15973
+ parameters: {
15974
+ query?: never;
15975
+ header?: never;
15976
+ path?: never;
15977
+ cookie?: never;
15978
+ };
15979
+ /**
15980
+ * Zinn® Ads analytics leaderboard by network, account, campaign, country or product/site (za-280).
15981
+ * @description Rows sorted by spend, paged with `offset` and `limit` (`total` counts every row), each with its comparison figures and a spend sparkline. Gated on `ads.view` over the organisations the person can view; `org_id` narrows to that organisation and its client organisations. Stored rows only (the daily audit's figures), never a network call. Money is integer micros of the reporting `currency`: each account's currency is converted at the CURRENT stored rate, named in `fx`; a currency with no rate is left out of the blended figures and listed in `unconverted`. Conversions are thousandths; ROAS, CTR and conversion rate are basis points; CPA and CPC are micros; a ratio with no denominator is null (za-280).
15982
+ */
15983
+ get: operations["getAdsAnalyticsBreakdown"];
15984
+ put?: never;
15985
+ post?: never;
15986
+ delete?: never;
15987
+ options?: never;
15988
+ head?: never;
15989
+ patch?: never;
15990
+ trace?: never;
15991
+ };
15992
+ "/v1/ads/analytics/summary": {
15993
+ parameters: {
15994
+ query?: never;
15995
+ header?: never;
15996
+ path?: never;
15997
+ cookie?: never;
15998
+ };
15999
+ /**
16000
+ * Zinn® Ads analytics KPI tiles for a period and its comparison (za-280).
16001
+ * @description The period and comparison-period totals with a sparkline per figure, and the totals per account currency. Gated on `ads.view` over the organisations the person can view; `org_id` narrows to that organisation and its client organisations. Stored rows only (the daily audit's figures), never a network call. Money is integer micros of the reporting `currency`: each account's currency is converted at the CURRENT stored rate, named in `fx`; a currency with no rate is left out of the blended figures and listed in `unconverted`. Conversions are thousandths; ROAS, CTR and conversion rate are basis points; CPA and CPC are micros; a ratio with no denominator is null (za-280).
16002
+ */
16003
+ get: operations["getAdsAnalyticsSummary"];
16004
+ put?: never;
16005
+ post?: never;
16006
+ delete?: never;
16007
+ options?: never;
16008
+ head?: never;
16009
+ patch?: never;
16010
+ trace?: never;
16011
+ };
16012
+ "/v1/ads/analytics/timeseries": {
16013
+ parameters: {
16014
+ query?: never;
16015
+ header?: never;
16016
+ path?: never;
16017
+ cookie?: never;
16018
+ };
16019
+ /**
16020
+ * Zinn® Ads analytics trend per day, week or month (za-280).
16021
+ * @description Every bucket of the period (zero-filled) with all figures, the comparison period bucket by bucket, and spend and value per network for the stacked network share. Gated on `ads.view` over the organisations the person can view; `org_id` narrows to that organisation and its client organisations. Stored rows only (the daily audit's figures), never a network call. Money is integer micros of the reporting `currency`: each account's currency is converted at the CURRENT stored rate, named in `fx`; a currency with no rate is left out of the blended figures and listed in `unconverted`. Conversions are thousandths; ROAS, CTR and conversion rate are basis points; CPA and CPC are micros; a ratio with no denominator is null (za-280).
16022
+ */
16023
+ get: operations["getAdsAnalyticsTimeseries"];
16024
+ put?: never;
16025
+ post?: never;
16026
+ delete?: never;
16027
+ options?: never;
16028
+ head?: never;
16029
+ patch?: never;
16030
+ trace?: never;
16031
+ };
15970
16032
  "/v1/ads/asks": {
15971
16033
  parameters: {
15972
16034
  query?: never;
@@ -62306,6 +62368,113 @@ export interface components {
62306
62368
  connection_id: string;
62307
62369
  data: components["schemas"]["AdsAllowedTerm"][];
62308
62370
  };
62371
+ AdsAnalyticsBreakdown: components["schemas"]["AdsAnalyticsFrame"] & {
62372
+ /** @enum {string} */
62373
+ by: "network" | "connection" | "campaign" | "country" | "offering";
62374
+ limit: number;
62375
+ offset: number;
62376
+ rows: components["schemas"]["AdsAnalyticsRow"][];
62377
+ total: number;
62378
+ };
62379
+ AdsAnalyticsFigures: {
62380
+ /** Format: int64 */
62381
+ clicks: number;
62382
+ /** Format: int64 */
62383
+ conv_rate_bp: number | null;
62384
+ /** Format: int64 */
62385
+ conversions_milli: number;
62386
+ /** Format: int64 */
62387
+ cost_micros: number;
62388
+ /** Format: int64 */
62389
+ cpa_micros: number | null;
62390
+ /** Format: int64 */
62391
+ cpc_micros: number | null;
62392
+ /** Format: int64 */
62393
+ ctr_bp: number | null;
62394
+ /** Format: int64 */
62395
+ impressions: number;
62396
+ /** Format: int64 */
62397
+ roas_bp: number | null;
62398
+ /** Format: int64 */
62399
+ value_micros: number;
62400
+ };
62401
+ AdsAnalyticsFrame: {
62402
+ accounts: number;
62403
+ /** @enum {string} */
62404
+ compare: "previous" | "year" | "none";
62405
+ /** Format: date */
62406
+ compare_first_day: string | null;
62407
+ /** Format: date */
62408
+ compare_last_day: string | null;
62409
+ currency: string;
62410
+ /** Format: date */
62411
+ first_day: string;
62412
+ fx: components["schemas"]["AdsAnalyticsFx"][];
62413
+ /** @enum {string} */
62414
+ grain: "day" | "week" | "month";
62415
+ /** Format: date */
62416
+ last_day: string;
62417
+ range: string;
62418
+ /** @description Currencies left out of the blended figures for want of a stored rate; `???` stands for accounts whose currency is not known. */
62419
+ unconverted: string[];
62420
+ };
62421
+ AdsAnalyticsFx: {
62422
+ /** @description When the stored rate was fetched (ISO 8601). */
62423
+ as_of: string;
62424
+ from: string;
62425
+ /** @description Major-unit multiplier */
62426
+ rate: string;
62427
+ to: string;
62428
+ };
62429
+ AdsAnalyticsPoint: components["schemas"]["AdsAnalyticsFigures"] & {
62430
+ /** Format: date */
62431
+ bucket: string;
62432
+ };
62433
+ AdsAnalyticsRow: components["schemas"]["AdsAnalyticsFigures"] & {
62434
+ account?: string;
62435
+ assigned?: boolean;
62436
+ campaign_id?: string;
62437
+ /** Format: uuid */
62438
+ connection_id?: string;
62439
+ country?: string;
62440
+ currencies: string[];
62441
+ key: string;
62442
+ kind?: string;
62443
+ label: string;
62444
+ network?: string;
62445
+ /** Format: uuid */
62446
+ offering_id?: string | null;
62447
+ /** Format: uuid */
62448
+ org_id?: string;
62449
+ previous: components["schemas"]["AdsAnalyticsFigures"] | null;
62450
+ spark_cost_micros: number[];
62451
+ };
62452
+ AdsAnalyticsSeries: {
62453
+ buckets?: string[];
62454
+ clicks: number[];
62455
+ conversions_milli: number[];
62456
+ cost_micros: number[];
62457
+ impressions: number[];
62458
+ value_micros: number[];
62459
+ };
62460
+ AdsAnalyticsSummary: components["schemas"]["AdsAnalyticsFrame"] & {
62461
+ by_currency: (components["schemas"]["AdsAnalyticsFigures"] & {
62462
+ currency: string;
62463
+ })[];
62464
+ current: components["schemas"]["AdsAnalyticsFigures"];
62465
+ previous: components["schemas"]["AdsAnalyticsFigures"] | null;
62466
+ previous_sparklines: components["schemas"]["AdsAnalyticsSeries"] | null;
62467
+ sparklines: components["schemas"]["AdsAnalyticsSeries"];
62468
+ };
62469
+ AdsAnalyticsTimeseries: components["schemas"]["AdsAnalyticsFrame"] & {
62470
+ networks: {
62471
+ cost_micros: number[];
62472
+ network: string;
62473
+ value_micros: number[];
62474
+ }[];
62475
+ points: components["schemas"]["AdsAnalyticsPoint"][];
62476
+ previous: components["schemas"]["AdsAnalyticsPoint"][] | null;
62477
+ };
62309
62478
  /** @description One "Ask your ads" question and its checked answer (za-N7, docs/1006 §ASKADS). */
62310
62479
  AdsAsk: {
62311
62480
  /** @description Empty unless `answered`. Fact ids appear in square brackets after the figures they back. */
@@ -110694,6 +110863,25 @@ export interface components {
110694
110863
  * ⚠️ A value that is not a UUID is **ignored**, not refused — the answer is exactly what you would get with no header at all.
110695
110864
  */
110696
110865
  ActiveOrg: string;
110866
+ /** @description Comma-separated `<connection_id>:<campaign_id>` tokens. */
110867
+ AdsAnalyticsCampaign: string;
110868
+ AdsAnalyticsCompare: "previous" | "year" | "none";
110869
+ /** @description Comma-separated ad-account connection ids. */
110870
+ AdsAnalyticsConnection: string;
110871
+ /** @description Comma-separated ISO 3166-1 alpha-2 codes. Reads the country-level figures. */
110872
+ AdsAnalyticsCountry: string;
110873
+ /** @description Reporting currency (ISO 4217). Default the one currency in play, else the organisation's. */
110874
+ AdsAnalyticsCurrency: string;
110875
+ AdsAnalyticsFrom: string;
110876
+ /** @description Bucket size. Default day up to 92 days, week up to 366, month beyond. */
110877
+ AdsAnalyticsGrain: "day" | "week" | "month";
110878
+ /** @description Comma-separated networks (google, microsoft, meta, linkedin, tiktok, x, pinterest, amazon). */
110879
+ AdsAnalyticsNetwork: string;
110880
+ /** @description Comma-separated product/site ids (za-290), or `unassigned`. */
110881
+ AdsAnalyticsOffering: string;
110882
+ /** @description The period. `custom` takes `from` and `to`. */
110883
+ AdsAnalyticsRange: "7d" | "30d" | "90d" | "ytd" | "12m" | "custom";
110884
+ AdsAnalyticsTo: string;
110697
110885
  /** @description Board card attachment ID (UUIDv7). */
110698
110886
  AgencyBoardAttachmentId: components["schemas"]["Uuid"];
110699
110887
  /** @description Board card ID (UUIDv7). */
@@ -135984,6 +136172,153 @@ export interface operations {
135984
136172
  429: components["responses"]["TooManyRequests"];
135985
136173
  };
135986
136174
  };
136175
+ getAdsAnalyticsBreakdown: {
136176
+ parameters: {
136177
+ query?: {
136178
+ by?: "network" | "connection" | "campaign" | "country" | "offering";
136179
+ /** @description Comma-separated `<connection_id>:<campaign_id>` tokens. */
136180
+ campaign?: components["parameters"]["AdsAnalyticsCampaign"];
136181
+ compare?: components["parameters"]["AdsAnalyticsCompare"];
136182
+ /** @description Comma-separated ad-account connection ids. */
136183
+ connection?: components["parameters"]["AdsAnalyticsConnection"];
136184
+ /** @description Comma-separated ISO 3166-1 alpha-2 codes. Reads the country-level figures. */
136185
+ country?: components["parameters"]["AdsAnalyticsCountry"];
136186
+ /** @description Reporting currency (ISO 4217). Default the one currency in play, else the organisation's. */
136187
+ currency?: components["parameters"]["AdsAnalyticsCurrency"];
136188
+ from?: components["parameters"]["AdsAnalyticsFrom"];
136189
+ /** @description Bucket size. Default day up to 92 days, week up to 366, month beyond. */
136190
+ grain?: components["parameters"]["AdsAnalyticsGrain"];
136191
+ limit?: number;
136192
+ /** @description Comma-separated networks (google, microsoft, meta, linkedin, tiktok, x, pinterest, amazon). */
136193
+ network?: components["parameters"]["AdsAnalyticsNetwork"];
136194
+ /** @description Comma-separated product/site ids (za-290), or `unassigned`. */
136195
+ offering?: components["parameters"]["AdsAnalyticsOffering"];
136196
+ offset?: number;
136197
+ org_id?: string;
136198
+ /** @description The period. `custom` takes `from` and `to`. */
136199
+ range?: components["parameters"]["AdsAnalyticsRange"];
136200
+ to?: components["parameters"]["AdsAnalyticsTo"];
136201
+ };
136202
+ header?: never;
136203
+ path?: never;
136204
+ cookie?: never;
136205
+ };
136206
+ requestBody?: never;
136207
+ responses: {
136208
+ /** @description The figures. */
136209
+ 200: {
136210
+ headers: {
136211
+ [name: string]: unknown;
136212
+ };
136213
+ content: {
136214
+ "application/json": {
136215
+ data: components["schemas"]["AdsAnalyticsBreakdown"];
136216
+ };
136217
+ };
136218
+ };
136219
+ 401: components["responses"]["Unauthorized"];
136220
+ 403: components["responses"]["Forbidden"];
136221
+ 404: components["responses"]["NotFound"];
136222
+ 422: components["responses"]["UnprocessableEntity"];
136223
+ 429: components["responses"]["TooManyRequests"];
136224
+ };
136225
+ };
136226
+ getAdsAnalyticsSummary: {
136227
+ parameters: {
136228
+ query?: {
136229
+ /** @description Comma-separated `<connection_id>:<campaign_id>` tokens. */
136230
+ campaign?: components["parameters"]["AdsAnalyticsCampaign"];
136231
+ compare?: components["parameters"]["AdsAnalyticsCompare"];
136232
+ /** @description Comma-separated ad-account connection ids. */
136233
+ connection?: components["parameters"]["AdsAnalyticsConnection"];
136234
+ /** @description Comma-separated ISO 3166-1 alpha-2 codes. Reads the country-level figures. */
136235
+ country?: components["parameters"]["AdsAnalyticsCountry"];
136236
+ /** @description Reporting currency (ISO 4217). Default the one currency in play, else the organisation's. */
136237
+ currency?: components["parameters"]["AdsAnalyticsCurrency"];
136238
+ from?: components["parameters"]["AdsAnalyticsFrom"];
136239
+ /** @description Bucket size. Default day up to 92 days, week up to 366, month beyond. */
136240
+ grain?: components["parameters"]["AdsAnalyticsGrain"];
136241
+ /** @description Comma-separated networks (google, microsoft, meta, linkedin, tiktok, x, pinterest, amazon). */
136242
+ network?: components["parameters"]["AdsAnalyticsNetwork"];
136243
+ /** @description Comma-separated product/site ids (za-290), or `unassigned`. */
136244
+ offering?: components["parameters"]["AdsAnalyticsOffering"];
136245
+ org_id?: string;
136246
+ /** @description The period. `custom` takes `from` and `to`. */
136247
+ range?: components["parameters"]["AdsAnalyticsRange"];
136248
+ to?: components["parameters"]["AdsAnalyticsTo"];
136249
+ };
136250
+ header?: never;
136251
+ path?: never;
136252
+ cookie?: never;
136253
+ };
136254
+ requestBody?: never;
136255
+ responses: {
136256
+ /** @description The figures. */
136257
+ 200: {
136258
+ headers: {
136259
+ [name: string]: unknown;
136260
+ };
136261
+ content: {
136262
+ "application/json": {
136263
+ data: components["schemas"]["AdsAnalyticsSummary"];
136264
+ };
136265
+ };
136266
+ };
136267
+ 401: components["responses"]["Unauthorized"];
136268
+ 403: components["responses"]["Forbidden"];
136269
+ 404: components["responses"]["NotFound"];
136270
+ 422: components["responses"]["UnprocessableEntity"];
136271
+ 429: components["responses"]["TooManyRequests"];
136272
+ };
136273
+ };
136274
+ getAdsAnalyticsTimeseries: {
136275
+ parameters: {
136276
+ query?: {
136277
+ /** @description Comma-separated `<connection_id>:<campaign_id>` tokens. */
136278
+ campaign?: components["parameters"]["AdsAnalyticsCampaign"];
136279
+ compare?: components["parameters"]["AdsAnalyticsCompare"];
136280
+ /** @description Comma-separated ad-account connection ids. */
136281
+ connection?: components["parameters"]["AdsAnalyticsConnection"];
136282
+ /** @description Comma-separated ISO 3166-1 alpha-2 codes. Reads the country-level figures. */
136283
+ country?: components["parameters"]["AdsAnalyticsCountry"];
136284
+ /** @description Reporting currency (ISO 4217). Default the one currency in play, else the organisation's. */
136285
+ currency?: components["parameters"]["AdsAnalyticsCurrency"];
136286
+ from?: components["parameters"]["AdsAnalyticsFrom"];
136287
+ /** @description Bucket size. Default day up to 92 days, week up to 366, month beyond. */
136288
+ grain?: components["parameters"]["AdsAnalyticsGrain"];
136289
+ /** @description Comma-separated networks (google, microsoft, meta, linkedin, tiktok, x, pinterest, amazon). */
136290
+ network?: components["parameters"]["AdsAnalyticsNetwork"];
136291
+ /** @description Comma-separated product/site ids (za-290), or `unassigned`. */
136292
+ offering?: components["parameters"]["AdsAnalyticsOffering"];
136293
+ org_id?: string;
136294
+ /** @description The period. `custom` takes `from` and `to`. */
136295
+ range?: components["parameters"]["AdsAnalyticsRange"];
136296
+ to?: components["parameters"]["AdsAnalyticsTo"];
136297
+ };
136298
+ header?: never;
136299
+ path?: never;
136300
+ cookie?: never;
136301
+ };
136302
+ requestBody?: never;
136303
+ responses: {
136304
+ /** @description The figures. */
136305
+ 200: {
136306
+ headers: {
136307
+ [name: string]: unknown;
136308
+ };
136309
+ content: {
136310
+ "application/json": {
136311
+ data: components["schemas"]["AdsAnalyticsTimeseries"];
136312
+ };
136313
+ };
136314
+ };
136315
+ 401: components["responses"]["Unauthorized"];
136316
+ 403: components["responses"]["Forbidden"];
136317
+ 404: components["responses"]["NotFound"];
136318
+ 422: components["responses"]["UnprocessableEntity"];
136319
+ 429: components["responses"]["TooManyRequests"];
136320
+ };
136321
+ };
135987
136322
  listAdsAsks: {
135988
136323
  parameters: {
135989
136324
  query?: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zinn-digital/sdk",
3
- "version": "0.1.1421",
3
+ "version": "0.1.1424",
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>",