@zinn-digital/sdk 0.1.1402 → 0.1.1405
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.
- package/dist/generated/schema.d.ts +351 -2
- package/package.json +1 -1
|
@@ -15972,6 +15972,54 @@ export interface paths {
|
|
|
15972
15972
|
patch: operations["updateAdsAutopilotDecisions"];
|
|
15973
15973
|
trace?: never;
|
|
15974
15974
|
};
|
|
15975
|
+
"/v1/ads/brief": {
|
|
15976
|
+
parameters: {
|
|
15977
|
+
query?: never;
|
|
15978
|
+
header?: never;
|
|
15979
|
+
path?: never;
|
|
15980
|
+
cookie?: never;
|
|
15981
|
+
};
|
|
15982
|
+
/**
|
|
15983
|
+
* The one brief across every ad network, and the split it drives.
|
|
15984
|
+
* @description Gated on `ads.view`. Read from our own rows (no network call): the objective (`leads` or `revenue`), the monthly budget, the optional target and the test share, and per network its current and proposed monthly ceiling and `why` (`bestReturn`, `offTarget`, `testShare`, `held`, `unreadable`, `otherCurrency`, `noReturn`), plus the versions saved in the last 30 days. The split is the cross-network budget's proposal (docs/1006 §113, §67), measured daily by a Temporal workflow and applied with `applyAdsCrossBudget`.
|
|
15985
|
+
*/
|
|
15986
|
+
get: operations["getAdsBrief"];
|
|
15987
|
+
/**
|
|
15988
|
+
* State the objective and the budget once, for every network.
|
|
15989
|
+
* @description Gated on `ads.manage`; audit action `ads.brief_set`. Sets the cross-network monthly ceiling to `budget_minor` and ranks the split by `objective`; the brief it replaces is kept 30 days for `undoAdsBrief`. Measured again now by a Temporal workflow, never in the request; nothing is applied (approve-first unless `mode: auto`). Refusals `refusal.adsconnect.briefBadObjective`, `briefBadBudget`, `briefBadCurrency`, `briefBadTarget`, `briefBadTestShare`, `briefBadMode`.
|
|
15990
|
+
*/
|
|
15991
|
+
put: operations["setAdsBrief"];
|
|
15992
|
+
post?: never;
|
|
15993
|
+
/**
|
|
15994
|
+
* Remove the brief (the budget stays, split by conversions per spend).
|
|
15995
|
+
* @description Gated on `ads.manage`; audit action `ads.brief_clear`. Kept as a version, so it can be undone within 30 days.
|
|
15996
|
+
*/
|
|
15997
|
+
delete: operations["clearAdsBrief"];
|
|
15998
|
+
options?: never;
|
|
15999
|
+
head?: never;
|
|
16000
|
+
patch?: never;
|
|
16001
|
+
trace?: never;
|
|
16002
|
+
};
|
|
16003
|
+
"/v1/ads/brief/undo": {
|
|
16004
|
+
parameters: {
|
|
16005
|
+
query?: never;
|
|
16006
|
+
header?: never;
|
|
16007
|
+
path?: never;
|
|
16008
|
+
cookie?: never;
|
|
16009
|
+
};
|
|
16010
|
+
get?: never;
|
|
16011
|
+
put?: never;
|
|
16012
|
+
/**
|
|
16013
|
+
* Put back the brief the last save replaced.
|
|
16014
|
+
* @description Gated on `ads.manage`; audit action `ads.brief_undo`. Refused with `refusal.adsconnect.briefNothingToUndo` when no version from the last 30 days is left.
|
|
16015
|
+
*/
|
|
16016
|
+
post: operations["undoAdsBrief"];
|
|
16017
|
+
delete?: never;
|
|
16018
|
+
options?: never;
|
|
16019
|
+
head?: never;
|
|
16020
|
+
patch?: never;
|
|
16021
|
+
trace?: never;
|
|
16022
|
+
};
|
|
15975
16023
|
"/v1/ads/builds": {
|
|
15976
16024
|
parameters: {
|
|
15977
16025
|
query?: never;
|
|
@@ -20141,6 +20189,26 @@ export interface paths {
|
|
|
20141
20189
|
patch?: never;
|
|
20142
20190
|
trace?: never;
|
|
20143
20191
|
};
|
|
20192
|
+
"/v1/ads/shield/claims/{claim_id}/outcome": {
|
|
20193
|
+
parameters: {
|
|
20194
|
+
query?: never;
|
|
20195
|
+
header?: never;
|
|
20196
|
+
path?: never;
|
|
20197
|
+
cookie?: never;
|
|
20198
|
+
};
|
|
20199
|
+
get?: never;
|
|
20200
|
+
put?: never;
|
|
20201
|
+
/**
|
|
20202
|
+
* Record Google's answer to a sent pack (credit received or none).
|
|
20203
|
+
* @description Gated on `ads.manage`; audit action `ads.shield_claim_outcome` (za-22, za-N8). For a pack marked sent, a person records the credit Google gave (integer minor units, §2.8) or that Google gave none: card-paying accounts have no invoices to read, so Google's reply is the only answer. Zinn® never moves money here; this is a record of a credit Google gave the ad account. 409 when the pack is not sent yet, or when its answer was read from the account's invoices (those are never overwritten). A person-recorded answer can be corrected; the write is conditional, so an invoice answer landing while the request runs is a 409, never overwritten.
|
|
20204
|
+
*/
|
|
20205
|
+
post: operations["recordAdsShieldClaimOutcome"];
|
|
20206
|
+
delete?: never;
|
|
20207
|
+
options?: never;
|
|
20208
|
+
head?: never;
|
|
20209
|
+
patch?: never;
|
|
20210
|
+
trace?: never;
|
|
20211
|
+
};
|
|
20144
20212
|
"/v1/ads/shield/claims/{claim_id}/sent": {
|
|
20145
20213
|
parameters: {
|
|
20146
20214
|
query?: never;
|
|
@@ -29908,6 +29976,26 @@ export interface paths {
|
|
|
29908
29976
|
patch?: never;
|
|
29909
29977
|
trace?: never;
|
|
29910
29978
|
};
|
|
29979
|
+
"/v1/databases/my-address": {
|
|
29980
|
+
parameters: {
|
|
29981
|
+
query?: never;
|
|
29982
|
+
header?: never;
|
|
29983
|
+
path?: never;
|
|
29984
|
+
cookie?: never;
|
|
29985
|
+
};
|
|
29986
|
+
/**
|
|
29987
|
+
* The address this request came from, to suggest for a database allow-list.
|
|
29988
|
+
* @description Gated on `databases.view`. A database hostname publishes both an A and an AAAA record, so a client that prefers IPv6 connects from its IPv6 address and is refused if only its IPv4 address is listed. The dashboard offers this address (and the one its own origin sees, which may be the other family) so the customer can add both. Read from the forwarding header our own ingress writes, never from a value the caller supplies; `address` is null when it cannot be resolved.
|
|
29989
|
+
*/
|
|
29990
|
+
get: operations["getManagedDatabaseClientAddress"];
|
|
29991
|
+
put?: never;
|
|
29992
|
+
post?: never;
|
|
29993
|
+
delete?: never;
|
|
29994
|
+
options?: never;
|
|
29995
|
+
head?: never;
|
|
29996
|
+
patch?: never;
|
|
29997
|
+
trace?: never;
|
|
29998
|
+
};
|
|
29911
29999
|
"/v1/domain-alerts": {
|
|
29912
30000
|
parameters: {
|
|
29913
30001
|
query?: never;
|
|
@@ -62230,6 +62318,64 @@ export interface components {
|
|
|
62230
62318
|
/** @description Our absolute-top share on the brand keywords below this (with rank loss) means someone is placed above us. */
|
|
62231
62319
|
top_floor_pct: number;
|
|
62232
62320
|
};
|
|
62321
|
+
AdsBrief: {
|
|
62322
|
+
/** @enum {string} */
|
|
62323
|
+
blocked: "" | "noReturnYet";
|
|
62324
|
+
brief: {
|
|
62325
|
+
/** @description Integer minor units (§2.8). */
|
|
62326
|
+
budget_minor: number | null;
|
|
62327
|
+
currency: string;
|
|
62328
|
+
/** @enum {string} */
|
|
62329
|
+
mode: "suggest" | "auto";
|
|
62330
|
+
/** @enum {string} */
|
|
62331
|
+
objective: "leads" | "revenue";
|
|
62332
|
+
target: number | null;
|
|
62333
|
+
test_share_pct: number;
|
|
62334
|
+
} | null;
|
|
62335
|
+
can_undo_brief: boolean;
|
|
62336
|
+
keep_days: number;
|
|
62337
|
+
last_apply: {
|
|
62338
|
+
at: string | null;
|
|
62339
|
+
by: string | null;
|
|
62340
|
+
can_undo: boolean;
|
|
62341
|
+
moves: components["schemas"]["AdsCrossBudgetMove"][];
|
|
62342
|
+
undone_at: string | null;
|
|
62343
|
+
} | null;
|
|
62344
|
+
/** Format: date-time */
|
|
62345
|
+
measured_at: string | null;
|
|
62346
|
+
moves: components["schemas"]["AdsCrossBudgetMove"][];
|
|
62347
|
+
/** Format: uuid */
|
|
62348
|
+
org_id: string;
|
|
62349
|
+
split: {
|
|
62350
|
+
/** Format: uuid */
|
|
62351
|
+
connection_id: string;
|
|
62352
|
+
conversions_milli: number;
|
|
62353
|
+
cost_minor: number;
|
|
62354
|
+
current_minor: number | null;
|
|
62355
|
+
label: string;
|
|
62356
|
+
platform: string;
|
|
62357
|
+
proposed_minor: number | null;
|
|
62358
|
+
value_minor: number;
|
|
62359
|
+
why: components["schemas"]["AdsBriefWhy"];
|
|
62360
|
+
}[];
|
|
62361
|
+
test_share_max: number;
|
|
62362
|
+
test_share_min: number;
|
|
62363
|
+
test_share_recommended: number;
|
|
62364
|
+
versions: {
|
|
62365
|
+
/** Format: date-time */
|
|
62366
|
+
at: string;
|
|
62367
|
+
brief: {
|
|
62368
|
+
[key: string]: unknown;
|
|
62369
|
+
};
|
|
62370
|
+
by: string;
|
|
62371
|
+
/** Format: uuid */
|
|
62372
|
+
id: string;
|
|
62373
|
+
/** Format: date-time */
|
|
62374
|
+
undone_at: string | null;
|
|
62375
|
+
}[];
|
|
62376
|
+
};
|
|
62377
|
+
/** @enum {string} */
|
|
62378
|
+
AdsBriefWhy: "bestReturn" | "offTarget" | "testShare" | "held" | "unreadable" | "otherCurrency" | "noReturn";
|
|
62233
62379
|
/** @description The customer's own budget for one campaign (za-84, docs/1006 §84). */
|
|
62234
62380
|
AdsBudgetDecision: {
|
|
62235
62381
|
/** Format: int64 */
|
|
@@ -63141,6 +63287,10 @@ export interface components {
|
|
|
63141
63287
|
targets: {
|
|
63142
63288
|
[key: string]: number;
|
|
63143
63289
|
};
|
|
63290
|
+
/** @description za-208 — per connection id, why it gets what it gets (absent on a proposal made before the brief existed). */
|
|
63291
|
+
why?: {
|
|
63292
|
+
[key: string]: components["schemas"]["AdsBriefWhy"];
|
|
63293
|
+
};
|
|
63144
63294
|
};
|
|
63145
63295
|
};
|
|
63146
63296
|
AdsCrossBudgetMove: {
|
|
@@ -65420,9 +65570,9 @@ export interface components {
|
|
|
65420
65570
|
connection_id: string;
|
|
65421
65571
|
/** Format: date-time */
|
|
65422
65572
|
credit_checked_at: string | null;
|
|
65423
|
-
/** @description `no_monthly_invoicing` when the account has no invoices to read. */
|
|
65573
|
+
/** @description `no_monthly_invoicing` when the account has no invoices to read (record Google's answer by hand); `no_credit_on_invoices` when the three invoices after the month closed with no credit (declined); `recorded_by_person` when a person recorded it. */
|
|
65424
65574
|
credit_note: string;
|
|
65425
|
-
/** @description
|
|
65575
|
+
/** @description Google's invalid-activity credit for the month, integer minor units of `currency`: read from the account's invoices, or recorded by a person from Google's answer (`credit_note` = `recorded_by_person`). `0` once declined; null = no answer yet. */
|
|
65426
65576
|
credited_minor: number | null;
|
|
65427
65577
|
currency: string;
|
|
65428
65578
|
estimated_cost_minor: number;
|
|
@@ -82690,6 +82840,12 @@ export interface components {
|
|
|
82690
82840
|
*/
|
|
82691
82841
|
sizes: components["schemas"]["ManagedDatabaseSize"][];
|
|
82692
82842
|
};
|
|
82843
|
+
ManagedDatabaseClientAddress: {
|
|
82844
|
+
/** @description The caller's public IP address, or null when it cannot be resolved. */
|
|
82845
|
+
address: string | null;
|
|
82846
|
+
/** @enum {string|null} */
|
|
82847
|
+
family: "ipv4" | "ipv6" | null;
|
|
82848
|
+
};
|
|
82693
82849
|
ManagedDatabaseCreate: {
|
|
82694
82850
|
/**
|
|
82695
82851
|
* @description Optional. Omitted uses PostgreSQL. ⛔ Must match the engine the `size` code belongs to — a MySQL request carrying a `db_pg_*` size is refused, because it would run one engine and bill the other.
|
|
@@ -134949,6 +135105,136 @@ export interface operations {
|
|
|
134949
135105
|
429: components["responses"]["TooManyRequests"];
|
|
134950
135106
|
};
|
|
134951
135107
|
};
|
|
135108
|
+
getAdsBrief: {
|
|
135109
|
+
parameters: {
|
|
135110
|
+
query?: {
|
|
135111
|
+
org_id?: string;
|
|
135112
|
+
};
|
|
135113
|
+
header?: never;
|
|
135114
|
+
path?: never;
|
|
135115
|
+
cookie?: never;
|
|
135116
|
+
};
|
|
135117
|
+
requestBody?: never;
|
|
135118
|
+
responses: {
|
|
135119
|
+
/** @description The brief and the split it drives. */
|
|
135120
|
+
200: {
|
|
135121
|
+
headers: {
|
|
135122
|
+
[name: string]: unknown;
|
|
135123
|
+
};
|
|
135124
|
+
content: {
|
|
135125
|
+
"application/json": components["schemas"]["AdsBrief"];
|
|
135126
|
+
};
|
|
135127
|
+
};
|
|
135128
|
+
401: components["responses"]["Unauthorized"];
|
|
135129
|
+
403: components["responses"]["Forbidden"];
|
|
135130
|
+
404: components["responses"]["NotFound"];
|
|
135131
|
+
422: components["responses"]["UnprocessableEntity"];
|
|
135132
|
+
429: components["responses"]["TooManyRequests"];
|
|
135133
|
+
};
|
|
135134
|
+
};
|
|
135135
|
+
setAdsBrief: {
|
|
135136
|
+
parameters: {
|
|
135137
|
+
query?: never;
|
|
135138
|
+
header?: never;
|
|
135139
|
+
path?: never;
|
|
135140
|
+
cookie?: never;
|
|
135141
|
+
};
|
|
135142
|
+
requestBody: {
|
|
135143
|
+
content: {
|
|
135144
|
+
"application/json": {
|
|
135145
|
+
/** @description The monthly budget, integer minor units of `currency` (§2.8). */
|
|
135146
|
+
budget_minor: number;
|
|
135147
|
+
/** @description ISO 4217 */
|
|
135148
|
+
currency: string;
|
|
135149
|
+
/** @enum {string} */
|
|
135150
|
+
mode?: "suggest" | "auto";
|
|
135151
|
+
/** @enum {string} */
|
|
135152
|
+
objective: "leads" | "revenue";
|
|
135153
|
+
/** Format: uuid */
|
|
135154
|
+
org_id?: string;
|
|
135155
|
+
/** @description `leads` — a cost per conversion in minor units; `revenue` — a ROAS in %. */
|
|
135156
|
+
target?: number | null;
|
|
135157
|
+
/** @description The share the networks with no measured return test with (recommended 10). */
|
|
135158
|
+
test_share_pct?: number;
|
|
135159
|
+
};
|
|
135160
|
+
};
|
|
135161
|
+
};
|
|
135162
|
+
responses: {
|
|
135163
|
+
/** @description The brief and the split it drives. */
|
|
135164
|
+
200: {
|
|
135165
|
+
headers: {
|
|
135166
|
+
[name: string]: unknown;
|
|
135167
|
+
};
|
|
135168
|
+
content: {
|
|
135169
|
+
"application/json": components["schemas"]["AdsBrief"];
|
|
135170
|
+
};
|
|
135171
|
+
};
|
|
135172
|
+
401: components["responses"]["Unauthorized"];
|
|
135173
|
+
403: components["responses"]["Forbidden"];
|
|
135174
|
+
404: components["responses"]["NotFound"];
|
|
135175
|
+
422: components["responses"]["UnprocessableEntity"];
|
|
135176
|
+
429: components["responses"]["TooManyRequests"];
|
|
135177
|
+
};
|
|
135178
|
+
};
|
|
135179
|
+
clearAdsBrief: {
|
|
135180
|
+
parameters: {
|
|
135181
|
+
query?: {
|
|
135182
|
+
org_id?: string;
|
|
135183
|
+
};
|
|
135184
|
+
header?: never;
|
|
135185
|
+
path?: never;
|
|
135186
|
+
cookie?: never;
|
|
135187
|
+
};
|
|
135188
|
+
requestBody?: never;
|
|
135189
|
+
responses: {
|
|
135190
|
+
/** @description The brief and the split it drives. */
|
|
135191
|
+
200: {
|
|
135192
|
+
headers: {
|
|
135193
|
+
[name: string]: unknown;
|
|
135194
|
+
};
|
|
135195
|
+
content: {
|
|
135196
|
+
"application/json": components["schemas"]["AdsBrief"];
|
|
135197
|
+
};
|
|
135198
|
+
};
|
|
135199
|
+
401: components["responses"]["Unauthorized"];
|
|
135200
|
+
403: components["responses"]["Forbidden"];
|
|
135201
|
+
404: components["responses"]["NotFound"];
|
|
135202
|
+
422: components["responses"]["UnprocessableEntity"];
|
|
135203
|
+
429: components["responses"]["TooManyRequests"];
|
|
135204
|
+
};
|
|
135205
|
+
};
|
|
135206
|
+
undoAdsBrief: {
|
|
135207
|
+
parameters: {
|
|
135208
|
+
query?: never;
|
|
135209
|
+
header?: never;
|
|
135210
|
+
path?: never;
|
|
135211
|
+
cookie?: never;
|
|
135212
|
+
};
|
|
135213
|
+
requestBody?: {
|
|
135214
|
+
content: {
|
|
135215
|
+
"application/json": {
|
|
135216
|
+
/** Format: uuid */
|
|
135217
|
+
org_id?: string;
|
|
135218
|
+
};
|
|
135219
|
+
};
|
|
135220
|
+
};
|
|
135221
|
+
responses: {
|
|
135222
|
+
/** @description The brief and the split it drives. */
|
|
135223
|
+
200: {
|
|
135224
|
+
headers: {
|
|
135225
|
+
[name: string]: unknown;
|
|
135226
|
+
};
|
|
135227
|
+
content: {
|
|
135228
|
+
"application/json": components["schemas"]["AdsBrief"];
|
|
135229
|
+
};
|
|
135230
|
+
};
|
|
135231
|
+
401: components["responses"]["Unauthorized"];
|
|
135232
|
+
403: components["responses"]["Forbidden"];
|
|
135233
|
+
404: components["responses"]["NotFound"];
|
|
135234
|
+
422: components["responses"]["UnprocessableEntity"];
|
|
135235
|
+
429: components["responses"]["TooManyRequests"];
|
|
135236
|
+
};
|
|
135237
|
+
};
|
|
134952
135238
|
listAdsBuilds: {
|
|
134953
135239
|
parameters: {
|
|
134954
135240
|
query?: {
|
|
@@ -142981,6 +143267,47 @@ export interface operations {
|
|
|
142981
143267
|
429: components["responses"]["TooManyRequests"];
|
|
142982
143268
|
};
|
|
142983
143269
|
};
|
|
143270
|
+
recordAdsShieldClaimOutcome: {
|
|
143271
|
+
parameters: {
|
|
143272
|
+
query?: never;
|
|
143273
|
+
header?: never;
|
|
143274
|
+
path: {
|
|
143275
|
+
claim_id: string;
|
|
143276
|
+
};
|
|
143277
|
+
cookie?: never;
|
|
143278
|
+
};
|
|
143279
|
+
requestBody: {
|
|
143280
|
+
content: {
|
|
143281
|
+
"application/json": {
|
|
143282
|
+
/** @description Required when `outcome` is `credited`; minor units of the pack's currency. */
|
|
143283
|
+
credited_minor?: number | null;
|
|
143284
|
+
/** @description Only used when neither the pack nor its ad account has a currency yet; 422 when it differs from the pack's (Google credits in the account's currency). */
|
|
143285
|
+
currency?: string;
|
|
143286
|
+
/** Format: uuid */
|
|
143287
|
+
org_id?: string;
|
|
143288
|
+
/** @enum {string} */
|
|
143289
|
+
outcome: "credited" | "declined";
|
|
143290
|
+
};
|
|
143291
|
+
};
|
|
143292
|
+
};
|
|
143293
|
+
responses: {
|
|
143294
|
+
/** @description The pack. */
|
|
143295
|
+
200: {
|
|
143296
|
+
headers: {
|
|
143297
|
+
[name: string]: unknown;
|
|
143298
|
+
};
|
|
143299
|
+
content: {
|
|
143300
|
+
"application/json": components["schemas"]["AdsShieldClaim"];
|
|
143301
|
+
};
|
|
143302
|
+
};
|
|
143303
|
+
401: components["responses"]["Unauthorized"];
|
|
143304
|
+
403: components["responses"]["Forbidden"];
|
|
143305
|
+
404: components["responses"]["NotFound"];
|
|
143306
|
+
409: components["responses"]["Conflict"];
|
|
143307
|
+
422: components["responses"]["UnprocessableEntity"];
|
|
143308
|
+
429: components["responses"]["TooManyRequests"];
|
|
143309
|
+
};
|
|
143310
|
+
};
|
|
142984
143311
|
markAdsShieldClaimSent: {
|
|
142985
143312
|
parameters: {
|
|
142986
143313
|
query?: never;
|
|
@@ -159268,6 +159595,28 @@ export interface operations {
|
|
|
159268
159595
|
403: components["responses"]["Forbidden"];
|
|
159269
159596
|
};
|
|
159270
159597
|
};
|
|
159598
|
+
getManagedDatabaseClientAddress: {
|
|
159599
|
+
parameters: {
|
|
159600
|
+
query?: never;
|
|
159601
|
+
header?: never;
|
|
159602
|
+
path?: never;
|
|
159603
|
+
cookie?: never;
|
|
159604
|
+
};
|
|
159605
|
+
requestBody?: never;
|
|
159606
|
+
responses: {
|
|
159607
|
+
/** @description The caller's public address, or null. */
|
|
159608
|
+
200: {
|
|
159609
|
+
headers: {
|
|
159610
|
+
[name: string]: unknown;
|
|
159611
|
+
};
|
|
159612
|
+
content: {
|
|
159613
|
+
"application/json": components["schemas"]["ManagedDatabaseClientAddress"];
|
|
159614
|
+
};
|
|
159615
|
+
};
|
|
159616
|
+
401: components["responses"]["Unauthorized"];
|
|
159617
|
+
403: components["responses"]["Forbidden"];
|
|
159618
|
+
};
|
|
159619
|
+
};
|
|
159271
159620
|
getDomainAlerts: {
|
|
159272
159621
|
parameters: {
|
|
159273
159622
|
query?: never;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zinn-digital/sdk",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1405",
|
|
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>",
|