@lessly/sdk-app 83.1.0 → 83.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.
@@ -96072,332 +96072,6 @@ export interface OrganizationYoutubeInstallInput {
96072
96072
  export interface OrganizationYoutubeInstallOutput {
96073
96073
  url: string;
96074
96074
  }
96075
- export interface PlaygroundAnalyticsOverviewInput {
96076
- /**
96077
- * Max records per entity in recent[]; omit for the endpoint default
96078
- */
96079
- limit?: number;
96080
- }
96081
- export interface PlaygroundAnalyticsOverviewOutput {
96082
- ok: boolean;
96083
- minted: boolean;
96084
- overview?: unknown;
96085
- http_status: number;
96086
- }
96087
- export interface PlaygroundBillingEntitlementsInput {
96088
- }
96089
- export interface PlaygroundBillingEntitlementsOutput {
96090
- ok: boolean;
96091
- minted: boolean;
96092
- http_status: number;
96093
- entitlements?: unknown;
96094
- }
96095
- export interface PlaygroundBillingRecordUsageInput {
96096
- /**
96097
- * Quantity of events to record against playground-events (SUM); defaults to 1
96098
- */
96099
- value?: number;
96100
- }
96101
- export interface PlaygroundBillingRecordUsageOutput {
96102
- minted: boolean;
96103
- accepted: (number | null);
96104
- recorded: boolean;
96105
- duplicates: (number | null);
96106
- http_status: number;
96107
- }
96108
- export interface PlaygroundClickupCreateTaskInput {
96109
- /**
96110
- * Task title; defaults to a fixture label
96111
- */
96112
- name?: string;
96113
- /**
96114
- * ClickUp list id; falls back to CLICKUP_TEST_LIST_ID
96115
- */
96116
- listId?: string;
96117
- }
96118
- export interface PlaygroundClickupCreateTaskOutput {
96119
- minted: boolean;
96120
- task_id: (string | null);
96121
- list_status: number;
96122
- vend_status: number;
96123
- clickup_status: number;
96124
- installation_count: number;
96125
- }
96126
- export interface PlaygroundClickupGetLastWebhookInput {
96127
- }
96128
- export type PlaygroundClickupGetLastWebhookOutput = ({
96129
- payload: string;
96130
- event_id: string;
96131
- provider: string;
96132
- verified: boolean;
96133
- product_id: string;
96134
- occurred_at: string;
96135
- connector_id: string;
96136
- clickup_event: (string | null);
96137
- receipt_count: number;
96138
- } | {
96139
- found: false;
96140
- });
96141
- export interface PlaygroundClickupGetOverviewInput {
96142
- }
96143
- export interface PlaygroundClickupGetOverviewOutput {
96144
- team: ({
96145
- teamId: string;
96146
- teamName: string;
96147
- } | null);
96148
- lists: PlaygroundClickupGetOverviewOutputItems[];
96149
- tasks: {
96150
- id: string;
96151
- name: string;
96152
- status: (string | null);
96153
- }[];
96154
- minted: boolean;
96155
- spaces: PlaygroundClickupGetOverviewOutputItems[];
96156
- list_status: number;
96157
- vend_status: number;
96158
- lists_status: number;
96159
- tasks_status: number;
96160
- spaces_status: number;
96161
- folders_status: number;
96162
- installation_count: number;
96163
- }
96164
- export interface PlaygroundClickupGetOverviewOutputItems {
96165
- id: string;
96166
- name: string;
96167
- }
96168
- export interface PlaygroundEchoPingInput {
96169
- /**
96170
- * The text to echo back, 1–1024 characters
96171
- */
96172
- message: string;
96173
- }
96174
- export interface PlaygroundEchoPingOutput {
96175
- /**
96176
- * The message exactly as it was received
96177
- */
96178
- message: string;
96179
- /**
96180
- * The product the call was resolved to
96181
- */
96182
- productId: string;
96183
- /**
96184
- * ISO-8601 instant (UTC) at which the call reached the service
96185
- */
96186
- receivedAt: string;
96187
- }
96188
- export interface PlaygroundGdriveGetLastChangeInput {
96189
- }
96190
- export type PlaygroundGdriveGetLastChangeOutput = ({
96191
- file_id: string;
96192
- removed: boolean;
96193
- file_name: (string | null);
96194
- mime_type: (string | null);
96195
- product_id: string;
96196
- occurred_at: string;
96197
- connector_id: string;
96198
- resource_state: string;
96199
- } | {
96200
- found: false;
96201
- });
96202
- export interface PlaygroundGdriveReadFileInput {
96203
- /**
96204
- * Drive file id; falls back to GDRIVE_TEST_FILE_ID, then the first picked file
96205
- */
96206
- fileId?: string;
96207
- }
96208
- export interface PlaygroundGdriveReadFileOutput {
96209
- minted: boolean;
96210
- file_id: (string | null);
96211
- file_name: (string | null);
96212
- mime_type: (string | null);
96213
- file_count: number;
96214
- get_status: number;
96215
- list_status: number;
96216
- vend_status: number;
96217
- content_bytes: (number | null);
96218
- }
96219
- export interface PlaygroundGoogleadsReadCustomerInput {
96220
- }
96221
- export interface PlaygroundGoogleadsReadCustomerOutput {
96222
- minted: boolean;
96223
- vended: boolean;
96224
- customer_id: (string | null);
96225
- vend_status: number;
96226
- result_count: number;
96227
- search_status: number;
96228
- login_customer_id: (string | null);
96229
- }
96230
- export interface PlaygroundLifecycleGetStateInput {
96231
- }
96232
- export interface PlaygroundLifecycleGetStateOutput {
96233
- blocked: boolean;
96234
- archived: boolean;
96235
- productId: string;
96236
- lastBlockTransition: ({
96237
- eventId: string;
96238
- eventName: string;
96239
- productId: string;
96240
- occurredAt: string;
96241
- recordedAt: string;
96242
- receiptCount: number;
96243
- organizationId: string;
96244
- cascadedFromOrg: boolean;
96245
- } | null);
96246
- lastArchiveTransition: ({
96247
- eventId: string;
96248
- eventName: string;
96249
- productId: string;
96250
- occurredAt: string;
96251
- recordedAt: string;
96252
- receiptCount: number;
96253
- organizationId: string;
96254
- cascadedFromOrg: boolean;
96255
- } | null);
96256
- }
96257
- export interface PlaygroundLifecycleListEventsInput {
96258
- }
96259
- export type PlaygroundLifecycleListEventsOutput = {
96260
- eventId: string;
96261
- eventName: string;
96262
- productId: string;
96263
- occurredAt: string;
96264
- recordedAt: string;
96265
- receiptCount: number;
96266
- organizationId: string;
96267
- cascadedFromOrg: boolean;
96268
- }[];
96269
- export interface PlaygroundWebhookGetLastInput {
96270
- }
96271
- export type PlaygroundWebhookGetLastOutput = ({
96272
- payload?: unknown;
96273
- event_id: string;
96274
- provider: string;
96275
- verified: boolean;
96276
- product_id: string;
96277
- occurred_at: string;
96278
- connector_id: string;
96279
- delivery_count: number;
96280
- } | {
96281
- found: false;
96282
- });
96283
- export interface PlaygroundWorkflowEchoInput {
96284
- /**
96285
- * The text to store, 1–1024 characters
96286
- */
96287
- note: string;
96288
- /**
96289
- * Optional labels stored alongside the note, at most 20
96290
- *
96291
- * @maxItems 20
96292
- */
96293
- tags?: [] | [string] | [string, string] | [string, string, string] | [string, string, string, string] | [string, string, string, string, string] | [string, string, string, string, string, string] | [string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string] | [string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string];
96294
- }
96295
- export interface PlaygroundWorkflowEchoOutput {
96296
- /**
96297
- * Identifier of the stored echo
96298
- */
96299
- id: string;
96300
- /**
96301
- * The note exactly as it was received
96302
- */
96303
- note: string;
96304
- /**
96305
- * The tags exactly as they were received
96306
- */
96307
- tags: string[];
96308
- /**
96309
- * Correlation id for this echo. The playground/workflow.echoed event published about two seconds later repeats it, which is how a composer matches the completion back to this step.
96310
- */
96311
- echo_id: string;
96312
- /**
96313
- * ISO-8601 instant (UTC) at which the echo was stored
96314
- */
96315
- received_at: string;
96316
- }
96317
- export interface PlaygroundWorkflowEchoListInput {
96318
- }
96319
- export type PlaygroundWorkflowEchoListOutput = {
96320
- /**
96321
- * Identifier of the stored echo
96322
- */
96323
- id: string;
96324
- /**
96325
- * The note exactly as it was received
96326
- */
96327
- note: string;
96328
- /**
96329
- * The tags exactly as they were received
96330
- */
96331
- tags: string[];
96332
- /**
96333
- * ISO-8601 instant (UTC) at which the echo was stored
96334
- */
96335
- received_at: string;
96336
- }[];
96337
- export interface PlaygroundWorkflowPingInput {
96338
- /**
96339
- * Class of ping, echoed on the emitted event and filterable on the trigger. Defaults to 'manual'.
96340
- */
96341
- kind?: string;
96342
- }
96343
- export interface PlaygroundWorkflowPingOutput {
96344
- /**
96345
- * Correlation id for this ping. The emitted playground/workflow.ping event repeats it, which is how a composer matches the event back to this step.
96346
- */
96347
- id: string;
96348
- /**
96349
- * The name of the event that was published
96350
- */
96351
- event: string;
96352
- }
96353
- export interface PlaygroundWorkflowSubjectsListInput {
96354
- /**
96355
- * How many subjects to return, 1–100. Defaults to 25.
96356
- */
96357
- limit?: number;
96358
- /**
96359
- * The next_cursor of the previous page. Opaque — pass it back unchanged. Omit for the first page.
96360
- */
96361
- cursor?: string;
96362
- /**
96363
- * ISO-8601 UTC instant. Return only subjects whose last_activity_at is AT OR AFTER this — the opposite question, the recently active population. Omit for no lower bound.
96364
- */
96365
- last_activity_after?: string;
96366
- /**
96367
- * ISO-8601 UTC instant. Return only subjects whose last_activity_at is AT OR BEFORE this — the "inactive for N days" question: pass now minus N days. Omit for no upper bound.
96368
- */
96369
- last_activity_before?: string;
96370
- }
96371
- export interface PlaygroundWorkflowSubjectsListOutput {
96372
- /**
96373
- * This page of subjects, most recently active first
96374
- */
96375
- items: {
96376
- /**
96377
- * Stable identifier for the subject. This is the field a batch trigger keys on, so a subject already served in an earlier run is skipped rather than served twice.
96378
- */
96379
- subject_key: string;
96380
- /**
96381
- * Human-readable name of the subject
96382
- */
96383
- display_name: string;
96384
- /**
96385
- * ISO-8601 instant (UTC) of the subject last activity
96386
- */
96387
- last_activity_at: string;
96388
- }[];
96389
- /**
96390
- * Whether another page follows. False and a null next_cursor both mark the last page, so a consumer that loops on either terminates.
96391
- */
96392
- has_more: boolean;
96393
- /**
96394
- * Pass back as `cursor` to fetch the next page; null on the last page. Always null when has_more is false.
96395
- */
96396
- next_cursor: (string | null);
96397
- }
96398
- export interface PlaygroundWsEchoInput {
96399
- }
96400
- export type PlaygroundWsEchoOutput = unknown;
96401
96075
  export interface RealtimeArchiveExportInput {
96402
96076
  /**
96403
96077
  * Only entries with ts <= to_ts (epoch ms)
@@ -119010,267 +118684,87 @@ export interface SupportWebhookUpdateOutput {
119010
118684
  secretPrefix: string;
119011
118685
  }
119012
118686
  export interface TrackingDomainsCreateInput {
119013
- /**
119014
- * Bare hostname to serve tracking from, which must sit under the chosen domain (e.g. analytics.example.com); a suggestion is used when omitted
119015
- */
119016
118687
  host?: string;
119017
- /**
119018
- * DNS records to request instead of the default CNAME to the tracking edge; leave unset unless the domain needs custom records
119019
- */
119020
118688
  records?: {
119021
- /**
119022
- * Time-to-live in seconds the record should be published with; the platform picks one when omitted
119023
- */
119024
118689
  ttl?: number;
119025
- /**
119026
- * Fully-qualified host the record is published at; defaults to the claimed tracking host
119027
- */
119028
118690
  name?: string;
119029
- /**
119030
- * Value the record points at — the edge hostname for a CNAME, the proof string for a TXT
119031
- */
119032
118691
  target: string;
119033
- /**
119034
- * DNS record type to publish, e.g. CNAME or TXT
119035
- */
119036
118692
  recordType: string;
119037
118693
  }[];
119038
- /**
119039
- * Product domain to claim the tracking host under, as listed in `domains[].domainId` by tracking_domains_list
119040
- */
119041
118694
  domainId: string;
119042
118695
  }
119043
118696
  export interface TrackingDomainsCreateOutput {
119044
- /**
119045
- * The binding as just claimed; it starts `pending` and goes `active` once the DNS is observed live
119046
- */
119047
118697
  binding: {
119048
- /**
119049
- * Fully-qualified tracking host this binding serves, e.g. analytics.example.com
119050
- */
119051
118698
  host: string;
119052
- /**
119053
- * Where the claim stands: `pending` while DNS has not been observed live, `active` once it serves, `failed` when the check gave up
119054
- */
119055
118699
  status: ("pending" | "active" | "failed");
119056
- /**
119057
- * DNS records the platform expects to see published for this host, as returned when the binding was claimed
119058
- */
119059
118700
  records: unknown[];
119060
- /**
119061
- * Product domain this tracking host sits under
119062
- */
119063
118701
  domainId: string;
119064
- /**
119065
- * Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
119066
- */
119067
118702
  bindingId: string;
119068
- /**
119069
- * When the binding was claimed
119070
- */
119071
118703
  createdAt: string;
119072
- /**
119073
- * Product the binding belongs to
119074
- */
119075
118704
  productId: string;
119076
- /**
119077
- * When the binding last changed status or records
119078
- */
119079
118705
  updatedAt: string;
119080
- /**
119081
- * Human-readable reason behind the current status, such as the DNS error that made it fail; null while there is nothing to report
119082
- */
119083
118706
  statusDetail: (string | null);
119084
- /**
119085
- * Extension that claimed the binding; tracking bindings are owned by this toolkit
119086
- */
119087
118707
  ownerExtension: string;
119088
118708
  };
119089
- /**
119090
- * Ordered, human-readable steps for publishing the DNS the claim needs; empty when the platform manages the domain itself
119091
- */
119092
118709
  instructions: string[];
119093
118710
  }
119094
118711
  export interface TrackingDomainsDeleteInput {
119095
- /**
119096
- * Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
119097
- */
119098
118712
  bindingId: string;
119099
118713
  }
119100
118714
  export interface TrackingDomainsDeleteOutput {
119101
- /**
119102
- * Always true — the release succeeded; a failure arrives as an error, not as false
119103
- */
119104
118715
  ok: true;
119105
118716
  }
119106
118717
  export interface TrackingDomainsGetInput {
119107
- /**
119108
- * Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
119109
- */
119110
118718
  bindingId: string;
119111
118719
  }
119112
118720
  export interface TrackingDomainsGetOutput {
119113
- /**
119114
- * Fully-qualified tracking host this binding serves, e.g. analytics.example.com
119115
- */
119116
118721
  host: string;
119117
- /**
119118
- * Where the claim stands: `pending` while DNS has not been observed live, `active` once it serves, `failed` when the check gave up
119119
- */
119120
118722
  status: ("pending" | "active" | "failed");
119121
- /**
119122
- * DNS records the platform expects to see published for this host, as returned when the binding was claimed
119123
- */
119124
118723
  records: unknown[];
119125
- /**
119126
- * Product domain this tracking host sits under
119127
- */
119128
118724
  domainId: string;
119129
- /**
119130
- * Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
119131
- */
119132
118725
  bindingId: string;
119133
- /**
119134
- * When the binding was claimed
119135
- */
119136
118726
  createdAt: string;
119137
- /**
119138
- * Product the binding belongs to
119139
- */
119140
118727
  productId: string;
119141
- /**
119142
- * When the binding last changed status or records
119143
- */
119144
118728
  updatedAt: string;
119145
- /**
119146
- * Human-readable reason behind the current status, such as the DNS error that made it fail; null while there is nothing to report
119147
- */
119148
118729
  statusDetail: (string | null);
119149
- /**
119150
- * Extension that claimed the binding; tracking bindings are owned by this toolkit
119151
- */
119152
118730
  ownerExtension: string;
119153
118731
  }
119154
118732
  export interface TrackingDomainsListInput {
119155
118733
  }
119156
118734
  export interface TrackingDomainsListOutput {
119157
- /**
119158
- * The product's domains as the platform vouches for them — the set a new tracking host may be claimed under
119159
- */
119160
118735
  domains: {
119161
- /**
119162
- * Who runs the DNS: `managed` means the platform publishes records for you, `external` means you publish them yourself
119163
- */
119164
118736
  mode: ("external" | "managed");
119165
- /**
119166
- * Apex domain name the product owns, e.g. example.com
119167
- */
119168
118737
  domain: string;
119169
- /**
119170
- * Stable platform id of the product domain, and what a claim takes as its `domainId`
119171
- */
119172
118738
  domainId: string;
119173
- /**
119174
- * ISO-8601 timestamp of when the domain was added to the product
119175
- */
119176
118739
  createdAt: string;
119177
- /**
119178
- * How many extensions currently hold a host binding under this domain
119179
- */
119180
118740
  extensionCount: number;
119181
118741
  }[];
119182
- /**
119183
- * Tracking-host bindings this toolkit currently holds across those domains
119184
- */
119185
118742
  bindings: {
119186
- /**
119187
- * Fully-qualified tracking host this binding serves, e.g. analytics.example.com
119188
- */
119189
118743
  host: string;
119190
- /**
119191
- * Where the claim stands: `pending` while DNS has not been observed live, `active` once it serves, `failed` when the check gave up
119192
- */
119193
118744
  status: ("pending" | "active" | "failed");
119194
- /**
119195
- * DNS records the platform expects to see published for this host, as returned when the binding was claimed
119196
- */
119197
118745
  records: unknown[];
119198
- /**
119199
- * Product domain this tracking host sits under
119200
- */
119201
118746
  domainId: string;
119202
- /**
119203
- * Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
119204
- */
119205
118747
  bindingId: string;
119206
- /**
119207
- * When the binding was claimed
119208
- */
119209
118748
  createdAt: string;
119210
- /**
119211
- * Product the binding belongs to
119212
- */
119213
118749
  productId: string;
119214
- /**
119215
- * When the binding last changed status or records
119216
- */
119217
118750
  updatedAt: string;
119218
- /**
119219
- * Human-readable reason behind the current status, such as the DNS error that made it fail; null while there is nothing to report
119220
- */
119221
118751
  statusDetail: (string | null);
119222
- /**
119223
- * Extension that claimed the binding; tracking bindings are owned by this toolkit
119224
- */
119225
118752
  ownerExtension: string;
119226
118753
  }[];
119227
118754
  }
119228
118755
  export interface TrackingDomainsVerifyInput {
119229
- /**
119230
- * Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
119231
- */
119232
118756
  bindingId: string;
119233
118757
  }
119234
118758
  export interface TrackingDomainsVerifyOutput {
119235
- /**
119236
- * Fully-qualified tracking host this binding serves, e.g. analytics.example.com
119237
- */
119238
118759
  host: string;
119239
- /**
119240
- * Where the claim stands: `pending` while DNS has not been observed live, `active` once it serves, `failed` when the check gave up
119241
- */
119242
118760
  status: ("pending" | "active" | "failed");
119243
- /**
119244
- * DNS records the platform expects to see published for this host, as returned when the binding was claimed
119245
- */
119246
118761
  records: unknown[];
119247
- /**
119248
- * Product domain this tracking host sits under
119249
- */
119250
118762
  domainId: string;
119251
- /**
119252
- * Id of the tracking-host binding to act on, as returned in `bindings[].bindingId` by tracking_domains_list
119253
- */
119254
118763
  bindingId: string;
119255
- /**
119256
- * When the binding was claimed
119257
- */
119258
118764
  createdAt: string;
119259
- /**
119260
- * Product the binding belongs to
119261
- */
119262
118765
  productId: string;
119263
- /**
119264
- * When the binding last changed status or records
119265
- */
119266
118766
  updatedAt: string;
119267
- /**
119268
- * Human-readable reason behind the current status, such as the DNS error that made it fail; null while there is nothing to report
119269
- */
119270
118767
  statusDetail: (string | null);
119271
- /**
119272
- * Extension that claimed the binding; tracking bindings are owned by this toolkit
119273
- */
119274
118768
  ownerExtension: string;
119275
118769
  }
119276
118770
  export interface TrackingEventNamesArchiveInput {
@@ -119280,13 +118774,7 @@ export interface TrackingEventNamesArchiveInput {
119280
118774
  name: string;
119281
118775
  }
119282
118776
  export interface TrackingEventNamesArchiveOutput {
119283
- /**
119284
- * Event name whose status was changed
119285
- */
119286
118777
  name: string;
119287
- /**
119288
- * The status as it now stands: `archived` hides the name from pickers and reports, `active` restores it
119289
- */
119290
118778
  status: ("active" | "archived");
119291
118779
  }
119292
118780
  export interface TrackingEventNamesListInput {
@@ -119308,37 +118796,13 @@ export interface TrackingEventNamesListInput {
119308
118796
  status?: ("active" | "archived");
119309
118797
  }
119310
118798
  export interface TrackingEventNamesListOutput {
119311
- /**
119312
- * The matching catalogue entries, ordered by the requested sort
119313
- */
119314
118799
  names: {
119315
- /**
119316
- * Event name exactly as the tracking script sends it — the string other tools take as their `event`
119317
- */
119318
118800
  name: string;
119319
- /**
119320
- * How many events with this name have been received in total
119321
- */
119322
118801
  count: number;
119323
- /**
119324
- * `active` for a name in use, `archived` for one hidden from pickers and reports
119325
- */
119326
118802
  status: string;
119327
- /**
119328
- * ISO-8601 timestamp of the most recent event received under this name
119329
- */
119330
118803
  lastSeen: string;
119331
- /**
119332
- * ISO-8601 timestamp of the first event ever received under this name
119333
- */
119334
118804
  firstSeen: string;
119335
- /**
119336
- * Property keys sampled from recent events with this name, so you can see what the payload carries
119337
- */
119338
118805
  propsKeys: string[];
119339
- /**
119340
- * Whether this name is marked a conversion, which is what makes it available as a workflow trigger
119341
- */
119342
118806
  isConversion: boolean;
119343
118807
  }[];
119344
118808
  }
@@ -119353,13 +118817,7 @@ export interface TrackingEventNamesSetConversionInput {
119353
118817
  isConversion: boolean;
119354
118818
  }
119355
118819
  export interface TrackingEventNamesSetConversionOutput {
119356
- /**
119357
- * Event name the conversion flag was applied to
119358
- */
119359
118820
  name: string;
119360
- /**
119361
- * The flag as it now stands after the change
119362
- */
119363
118821
  isConversion: boolean;
119364
118822
  }
119365
118823
  export interface TrackingEventNamesUnarchiveInput {
@@ -119369,44 +118827,20 @@ export interface TrackingEventNamesUnarchiveInput {
119369
118827
  name: string;
119370
118828
  }
119371
118829
  export interface TrackingEventNamesUnarchiveOutput {
119372
- /**
119373
- * Event name whose status was changed
119374
- */
119375
118830
  name: string;
119376
- /**
119377
- * The status as it now stands: `archived` hides the name from pickers and reports, `active` restores it
119378
- */
119379
118831
  status: ("active" | "archived");
119380
118832
  }
119381
118833
  export interface TrackingGoogleadsConnectionStatusInput {
119382
118834
  }
119383
118835
  export type TrackingGoogleadsConnectionStatusOutput = ({
119384
- /**
119385
- * Where the Google Ads connection stands: connected means an account is chosen and its credential works, so the other tools will run.
119386
- */
119387
118836
  state: "connected";
119388
- /**
119389
- * The Google Ads account the data is read from and conversions are written to, as a customer id. Only present while connected.
119390
- */
119391
118837
  customerId: string;
119392
- /**
119393
- * The manager account the connection authenticates through, as a Google customer id. Same as customerId when the account is not managed. Only present while connected.
119394
- */
119395
118838
  loginCustomerId: string;
119396
118839
  } | {
119397
- /**
119398
- * Google is authorised but nobody has picked which Google Ads account to use yet, so nothing can run until someone does.
119399
- */
119400
118840
  state: "pending_account_selection";
119401
118841
  } | {
119402
- /**
119403
- * The Google authorisation expired or was revoked and has to be granted again before anything can run.
119404
- */
119405
118842
  state: "reauth_required";
119406
118843
  } | {
119407
- /**
119408
- * No Google Ads connection has been set up for this product at all.
119409
- */
119410
118844
  state: "not_connected";
119411
118845
  });
119412
118846
  export interface TrackingGoogleadsConversionActionsInput {
@@ -119421,77 +118855,26 @@ export type TrackingGoogleadsConversionActionsOutput = {
119421
118855
  export interface TrackingGoogleadsFeedbackConfigGetInput {
119422
118856
  }
119423
118857
  export interface TrackingGoogleadsFeedbackConfigGetOutput {
119424
- /**
119425
- * How the uploads coexist with the account's own tag: existing_pixel means the Google tag also records these conversions, so send only to actions the tag does not already cover; fresh_pixel means these uploads are the only source.
119426
- */
119427
118858
  mode: ("existing_pixel" | "fresh_pixel");
119428
- /**
119429
- * Which tracked events become which Google Ads conversion action, and where each one takes its money value from. Disabled rules stay listed.
119430
- */
119431
118859
  rules: {
119432
- /**
119433
- * Tracked event-name this rule uploads, as listed by tracking_event-names_list
119434
- */
119435
118860
  event: string;
119436
- /**
119437
- * What monetary value is reported to Google for each conversion this rule uploads
119438
- */
119439
118861
  value: ({
119440
- /**
119441
- * Where the conversion value comes from: `revenue` uses the net revenue of the subscription, `dynamic` reads the amount carried by the occurrence itself, `fixed` always sends the same amount
119442
- */
119443
118862
  source: "revenue";
119444
118863
  } | {
119445
- /**
119446
- * Where the conversion value comes from: `revenue` uses the net revenue of the subscription, `dynamic` reads the amount carried by the occurrence itself, `fixed` always sends the same amount
119447
- */
119448
118864
  source: "dynamic";
119449
118865
  } | {
119450
- /**
119451
- * Where the conversion value comes from: `revenue` uses the net revenue of the subscription, `dynamic` reads the amount carried by the occurrence itself, `fixed` always sends the same amount
119452
- */
119453
118866
  source: "fixed";
119454
- /**
119455
- * ISO-4217 currency the fixed amount is denominated in, e.g. USD
119456
- */
119457
118867
  currency: string;
119458
- /**
119459
- * The fixed value in minor units (e.g. cents); 0 means a value-less lead conversion
119460
- */
119461
118868
  amountMinor: number;
119462
118869
  });
119463
- /**
119464
- * Whether this single mapping is live; a disabled rule is kept but uploads nothing
119465
- */
119466
118870
  enabled: boolean;
119467
- /**
119468
- * Google conversion action the event is reported as, in the form customers/<cid>/conversionActions/<id>
119469
- */
119470
118871
  conversionAction: string;
119471
118872
  }[];
119472
- /**
119473
- * Whether conversions are being sent to Google Ads at all. False leaves every rule below in place but uploads nothing.
119474
- */
119475
118873
  enabled: boolean;
119476
- /**
119477
- * The tenant this configuration belongs to. Never supplied by a caller — it comes from the authenticated identity.
119478
- */
119479
118874
  productId: string;
119480
- /**
119481
- * How many days back each pass looks for conversions to send, and how far back a click may be matched. Google rejects clicks older than about 90 days.
119482
- */
119483
118875
  lookbackDays: number;
119484
- /**
119485
- * Currency of the connected Google Ads account, as a three-letter ISO 4217 code such as EUR. Null when the account could not be read.
119486
- */
119487
118876
  accountCurrency: (string | null);
119488
- /**
119489
- * The event names that may use the Dynamic value source, because revenue is known for them. Any other event needs a fixed amount.
119490
- */
119491
118877
  dynamicValueEvents: string[];
119492
- /**
119493
- * Whether a stored email or phone number is sent alongside the click, so Google can match conversions the click id alone would miss.
119494
- */
119495
118878
  enhancedConversions: boolean;
119496
118879
  }
119497
118880
  export interface TrackingGoogleadsFeedbackConfigSetInput {
@@ -119507,23 +118890,11 @@ export interface TrackingGoogleadsFeedbackConfigSetInput {
119507
118890
  * Any tracked event-name for this product (validated against the event-name catalog)
119508
118891
  */
119509
118892
  event: string;
119510
- /**
119511
- * What monetary value to report to Google for each conversion this rule uploads
119512
- */
119513
118893
  value: ({
119514
- /**
119515
- * Where the conversion value comes from: `revenue` uses the net revenue of the subscription, `dynamic` reads the amount carried by the occurrence itself, `fixed` always sends the same amount
119516
- */
119517
118894
  source: "revenue";
119518
118895
  } | {
119519
- /**
119520
- * Where the conversion value comes from: `revenue` uses the net revenue of the subscription, `dynamic` reads the amount carried by the occurrence itself, `fixed` always sends the same amount
119521
- */
119522
118896
  source: "dynamic";
119523
118897
  } | {
119524
- /**
119525
- * Where the conversion value comes from: `revenue` uses the net revenue of the subscription, `dynamic` reads the amount carried by the occurrence itself, `fixed` always sends the same amount
119526
- */
119527
118898
  source: "fixed";
119528
118899
  /**
119529
118900
  * ISO-4217 currency code, e.g. USD
@@ -119534,9 +118905,6 @@ export interface TrackingGoogleadsFeedbackConfigSetInput {
119534
118905
  */
119535
118906
  amountMinor?: number;
119536
118907
  });
119537
- /**
119538
- * Whether this single mapping is live; a disabled rule is kept but uploads nothing
119539
- */
119540
118908
  enabled: boolean;
119541
118909
  /**
119542
118910
  * Google conversion action resource: customers/<cid>/conversionActions/<id>
@@ -119557,209 +118925,65 @@ export interface TrackingGoogleadsFeedbackConfigSetInput {
119557
118925
  enhancedConversions?: boolean;
119558
118926
  }
119559
118927
  export interface TrackingGoogleadsFeedbackConfigSetOutput {
119560
- /**
119561
- * The config as it now stands after the write, with server-side normalisation applied
119562
- */
119563
118928
  config: {
119564
- /**
119565
- * How our uploads sit beside your own tag: `existing_pixel` only fills gaps it left, `fresh_pixel` reports our data alone
119566
- */
119567
118929
  mode: ("existing_pixel" | "fresh_pixel");
119568
- /**
119569
- * The event-to-conversion-action mappings, each with its own value source
119570
- */
119571
118930
  rules: {
119572
- /**
119573
- * Tracked event-name this rule uploads, as listed by tracking_event-names_list
119574
- */
119575
118931
  event: string;
119576
- /**
119577
- * What monetary value is reported to Google for each conversion this rule uploads
119578
- */
119579
118932
  value: ({
119580
- /**
119581
- * Where the conversion value comes from: `revenue` uses the net revenue of the subscription, `dynamic` reads the amount carried by the occurrence itself, `fixed` always sends the same amount
119582
- */
119583
118933
  source: "revenue";
119584
118934
  } | {
119585
- /**
119586
- * Where the conversion value comes from: `revenue` uses the net revenue of the subscription, `dynamic` reads the amount carried by the occurrence itself, `fixed` always sends the same amount
119587
- */
119588
118935
  source: "dynamic";
119589
118936
  } | {
119590
- /**
119591
- * Where the conversion value comes from: `revenue` uses the net revenue of the subscription, `dynamic` reads the amount carried by the occurrence itself, `fixed` always sends the same amount
119592
- */
119593
118937
  source: "fixed";
119594
- /**
119595
- * ISO-4217 currency the fixed amount is denominated in, e.g. USD
119596
- */
119597
118938
  currency: string;
119598
- /**
119599
- * The fixed value in minor units (e.g. cents); 0 means a value-less lead conversion
119600
- */
119601
118939
  amountMinor: number;
119602
118940
  });
119603
- /**
119604
- * Whether this single mapping is live; a disabled rule is kept but uploads nothing
119605
- */
119606
118941
  enabled: boolean;
119607
- /**
119608
- * Google conversion action the event is reported as, in the form customers/<cid>/conversionActions/<id>
119609
- */
119610
118942
  conversionAction: string;
119611
118943
  }[];
119612
- /**
119613
- * Master switch: with it off no rule uploads anything, however the individual rules are set
119614
- */
119615
118944
  enabled: boolean;
119616
- /**
119617
- * Product this conversion-feedback config belongs to
119618
- */
119619
118945
  productId: string;
119620
- /**
119621
- * How many days back a click may have happened and still be matched to a conversion (max 90)
119622
- */
119623
118946
  lookbackDays: number;
119624
- /**
119625
- * The connected Google Ads account's currency, best-effort; null or absent when it could not be read
119626
- */
119627
118947
  accountCurrency?: (string | null);
119628
- /**
119629
- * Whether hashed email and phone are sent alongside gclid as additional match keys, which raises match rates
119630
- */
119631
118948
  enhancedConversions: boolean;
119632
118949
  };
119633
- /**
119634
- * Plain-language safety notes about what this combination of mode and match keys will do to the connected account
119635
- */
119636
118950
  guidance: string[];
119637
118951
  }
119638
118952
  export interface TrackingGoogleadsFeedbackRunInput {
119639
118953
  }
119640
118954
  export interface TrackingGoogleadsFeedbackRunOutput {
119641
- /**
119642
- * This one upload pass. Match the completion event back to this step on it, not on productId: the daily cron pass and a manual run on the same day are two passes of the same product.
119643
- */
119644
- runId: string;
119645
- /**
119646
- * Rows Google rejected in this pass.
119647
- */
119648
118955
  failed: number;
119649
- /**
119650
- * Of those, the ones that had a usable click id and a value, so a payload was actually built for them.
119651
- */
119652
118956
  matched: number;
119653
- /**
119654
- * Conversions dropped because no Google click could be tied to the person. A high count here is a tagging problem, not a Google one.
119655
- */
119656
118957
  noGclid: number;
119657
- /**
119658
- * Present only when the pass did no work, and says why: feedback is switched off, no rule is enabled, or no Google Ads account is connected. Absent on a pass that ran.
119659
- */
119660
118958
  skipped?: ("disabled" | "no_rules" | "not_connected");
119661
- /**
119662
- * Conversions in the lookback window that an enabled rule applied to.
119663
- */
119664
118959
  selected: number;
119665
- /**
119666
- * Rows Google accepted in this pass.
119667
- */
119668
118960
  uploaded: number;
119669
- /**
119670
- * The tenant whose conversions this pass uploaded.
119671
- */
119672
118961
  productId: string;
119673
- /**
119674
- * Conversions held back because their money value had not landed yet. They are retried on a later pass.
119675
- */
119676
118962
  zeroValue: number;
119677
- /**
119678
- * Google's own rejection detail, passed through unchanged, when it refused part of the batch. Absent when it accepted everything.
119679
- */
119680
- partialFailureError?: {
119681
- [k: string]: unknown;
119682
- };
118963
+ partialFailureError?: unknown;
119683
118964
  }
119684
118965
  export interface TrackingGoogleadsFeedbackStatusInput {
119685
118966
  }
119686
118967
  export interface TrackingGoogleadsFeedbackStatusOutput {
119687
- /**
119688
- * How the uploads coexist with the account's own tag: existing_pixel means the Google tag also records these conversions; fresh_pixel means these uploads are the only source.
119689
- */
119690
118968
  mode: ("existing_pixel" | "fresh_pixel");
119691
- /**
119692
- * Rows Google has rejected since this product was connected, across every pass.
119693
- */
119694
118969
  failed: number;
119695
- /**
119696
- * Whether conversions are being sent to Google Ads at all.
119697
- */
119698
118970
  enabled: boolean;
119699
- /**
119700
- * Coverage of the most recent pass. Null when no pass has run for this product yet.
119701
- */
119702
118971
  lastRun: ({
119703
- /**
119704
- * When the last pass finished. Null when the stored summary predates this field.
119705
- */
119706
118972
  ranAt: (string | null);
119707
- /**
119708
- * Rows Google rejected. Anything above zero is what makes the status partial.
119709
- */
119710
118973
  failed: number;
119711
- /**
119712
- * How the pass ended: ok is a clean pass, partial means Google rejected some rows and accepted others, not_connected means no Google Ads account was reachable and nothing was sent.
119713
- */
119714
118974
  status: ("ok" | "partial" | "not_connected");
119715
- /**
119716
- * Of those, the ones that had a usable click id and a value, so a payload was actually built for them.
119717
- */
119718
118975
  matched: number;
119719
- /**
119720
- * Conversions dropped because no Google click could be tied to the person. A high count here is a tagging problem, not a Google one.
119721
- */
119722
118976
  noGclid: number;
119723
- /**
119724
- * Conversions in the lookback window that an enabled rule applied to.
119725
- */
119726
118977
  selected: number;
119727
- /**
119728
- * Rows Google accepted.
119729
- */
119730
118978
  uploaded: number;
119731
- /**
119732
- * Conversions held back because their money value had not landed yet. They are retried on a later pass.
119733
- */
119734
118979
  zeroValue: number;
119735
118980
  } | null);
119736
- /**
119737
- * Plain-language warnings about the current setup, such as double counting when the Google tag already records the same conversion. Empty when nothing needs saying.
119738
- */
119739
118981
  guidance: string[];
119740
- /**
119741
- * Rows Google has accepted since this product was connected, across every pass.
119742
- */
119743
118982
  uploaded: number;
119744
- /**
119745
- * How many event-to-conversion-action rules are configured, enabled or not.
119746
- */
119747
118983
  ruleCount: number;
119748
- /**
119749
- * How many days back each pass looks for conversions to send, and how far back a click may be matched.
119750
- */
119751
118984
  lookbackDays: number;
119752
- /**
119753
- * Currency of the connected Google Ads account, as a three-letter ISO 4217 code such as EUR. Null when the account could not be read.
119754
- */
119755
118985
  accountCurrency: (string | null);
119756
- /**
119757
- * The event names that may use the Dynamic value source, because revenue is known for them.
119758
- */
119759
118986
  dynamicValueEvents: string[];
119760
- /**
119761
- * Whether a stored email or phone number is sent alongside the click, so Google can match conversions the click id alone would miss.
119762
- */
119763
118987
  enhancedConversions: boolean;
119764
118988
  }
119765
118989
  export interface TrackingGoogleadsFeedbackUploadsInput {
@@ -119778,293 +119002,84 @@ export type TrackingGoogleadsFeedbackUploadsOutput = {
119778
119002
  conversionDatetime: string;
119779
119003
  }[];
119780
119004
  export interface TrackingGoogleadsRoasReportInput {
119781
- /**
119782
- * End of the reporting window, inclusive. ISO-8601 date or timestamp; a date-only value covers that whole day, so revenue after midnight is not cut off. Omit to end now.
119783
- */
119784
- to?: string;
119785
- /**
119786
- * Start of the reporting window, inclusive. ISO-8601 date or timestamp, e.g. 2026-01-01. Omit to start 30 days before the end of the window.
119787
- */
119788
- from?: string;
119789
- /**
119790
- * Which touchpoint gets the credit for a conversion: the last paid click before it, or the first. Defaults to last_click.
119791
- */
119005
+ to: string;
119006
+ from: string;
119792
119007
  model?: ("last_click" | "first_click");
119793
- /**
119794
- * Restrict to conversions tracked on this installed site, e.g. acme.com. Omit to cover every domain of the product.
119795
- */
119796
119008
  domain?: string;
119797
- /**
119798
- * Restrict to one Google Ads account, by its customer id without dashes. Omit to cover every connected account.
119799
- */
119800
119009
  customerId?: string;
119801
- /**
119802
- * How far back before a conversion a paid click may sit and still earn the credit, in days. 1-365, silently clamped into that range; defaults to 30.
119803
- */
119804
119010
  lookbackDays?: number;
119805
119011
  }
119806
119012
  export interface TrackingGoogleadsRoasReportOutput {
119807
- /**
119808
- * End of the window this report covers, echoed back as an ISO-8601 UTC timestamp.
119809
- */
119810
119013
  to: string;
119811
- /**
119812
- * Start of the window this report covers, echoed back as an ISO-8601 UTC timestamp.
119813
- */
119814
119014
  from: string;
119815
- /**
119816
- * Which touchpoint earned the credit in these numbers: the last paid click before the conversion, or the first.
119817
- */
119818
119015
  model: ("last_click" | "first_click");
119819
- /**
119820
- * True when any account below is running on cost older than the freshness threshold, or on no cost at all — read this before acting on the numbers.
119821
- */
119822
- stale: boolean;
119823
- /**
119824
- * The installed site this report was restricted to; null when it covers every domain of the product.
119825
- */
119826
119016
  domain: (string | null);
119827
- /**
119828
- * One entry per Google Ads account and currency. Kept apart on purpose: amounts in different currencies are never added together.
119829
- */
119830
119017
  accounts: {
119831
- /**
119832
- * True when this account's cost is older than the freshness threshold, or was never pulled — the ROAS below is then built on outdated spend.
119833
- */
119834
119018
  stale: boolean;
119835
- /**
119836
- * ISO-4217 code every amount under this account is expressed in, e.g. USD. One account appears once per currency its cost was booked in.
119837
- */
119838
119019
  currency: string;
119839
- /**
119840
- * This account's campaigns, each with its ad groups and ads nested underneath.
119841
- */
119842
119020
  campaigns: TrackingGoogleadsRoasReportOutputItems[];
119843
- /**
119844
- * Google Ads account these campaigns belong to, by customer id without dashes.
119845
- */
119846
119021
  customerId: string;
119847
- /**
119848
- * When cost was last pulled from Google Ads for this account (ISO-8601 UTC); null when it has never been pulled.
119849
- */
119850
119022
  costLastSyncedAt: (string | null);
119851
119023
  }[];
119852
- /**
119853
- * ISO-4217 code every amount in this report is expressed in, when all accounts share one; null when the report spans several currencies.
119854
- */
119855
- currency: (string | null);
119856
- /**
119857
- * When this report was calculated (ISO-8601 UTC). The figures are a snapshot at this moment, not live.
119858
- */
119859
119024
  computedAt: string;
119860
- /**
119861
- * Google Ads account this whole report covers, when it covers exactly one; null when it spans several accounts.
119862
- */
119863
- customerId: (string | null);
119864
- /**
119865
- * How far back before a conversion a paid click was allowed to sit and still earn the credit, in days.
119866
- */
119867
119025
  lookbackDays: number;
119868
- /**
119869
- * Oldest moment cost was pulled from Google Ads across the accounts below (ISO-8601 UTC); null when any account has never synced.
119870
- */
119871
- costLastSyncedAt: (string | null);
119872
- /**
119873
- * Revenue we tracked but could not tie to any Google Ads campaign, grouped by the utm_campaign we saw. A long list here means the ad tagging needs fixing, not that the ads failed.
119874
- */
119875
119026
  unmatchedAttributed: {
119876
- /**
119877
- * Revenue that stayed outside every campaign, one row per currency. Never cross-summed.
119878
- */
119879
119027
  revenue: TrackingGoogleadsRoasReportOutputItems1[];
119880
- /**
119881
- * How many distinct customers paid but could not be traced to any Google Ads campaign.
119882
- */
119883
119028
  conversions: number;
119884
- /**
119885
- * The utm_campaign value we saw on the visit, which matched no Google Ads campaign; null when the visit carried none. This is the diagnostic: fix the tagging and the revenue moves into a campaign.
119886
- */
119887
119029
  utmCampaign: (string | null);
119888
119030
  }[];
119889
119031
  }
119890
119032
  export interface TrackingGoogleadsRoasReportOutputItems {
119891
- /**
119892
- * What one attributed customer cost: cost divided by attributed conversions, in minor units of the account currency. null when there were no attributed conversions.
119893
- */
119894
119033
  cpa: (number | null);
119895
- /**
119896
- * Google Ads ad this node is, by its numeric id; null on a campaign or ad group node.
119897
- */
119898
119034
  adId: (string | null);
119899
- /**
119900
- * What Google charged and what Google itself counted for this node over the window.
119901
- */
119902
119035
  cost: {
119903
- /**
119904
- * How many times someone clicked through from Google over the window.
119905
- */
119906
119036
  clicks: number;
119907
- /**
119908
- * ISO-4217 code of the Google Ads account these numbers come from, e.g. USD. Fixed per account.
119909
- */
119910
119037
  currency: string;
119911
- /**
119912
- * What Google charged for this campaign, ad group or ad over the window, in minor units (1250 = 12.50).
119913
- */
119914
119038
  costMinor: number;
119915
- /**
119916
- * How many times Google showed this ad over the window.
119917
- */
119918
119039
  impressions: number;
119919
- /**
119920
- * Conversions GOOGLE counted for this node — its own attribution, not ours. May be fractional, because Google splits credit across touchpoints.
119921
- */
119922
119040
  platformConversions: number;
119923
- /**
119924
- * Conversion value GOOGLE reports for this node, in minor units of the account currency. Compare it with our attributed revenue; the two rarely agree.
119925
- */
119926
119041
  platformConversionsValueMinor: number;
119927
119042
  };
119928
- /**
119929
- * What this campaign, ad group or ad is called in Google Ads; null when the name has not been synced.
119930
- */
119931
119043
  name: (string | null);
119932
- /**
119933
- * Return on ad spend: our net attributed revenue divided by cost, both in the account currency. A plain ratio, not a percentage — 2.4 means 2.40 back per 1.00 spent. null when cost is 0 or nothing was attributed.
119934
- */
119935
119044
  roas: (number | null);
119936
- /**
119937
- * How deep in the Google Ads hierarchy this node sits. Attributed revenue, ROAS and CPA exist at campaign level only; cost exists at all three.
119938
- */
119939
119045
  level: ("campaign" | "ad_group" | "ad");
119940
- /**
119941
- * Google Ads campaign state, passed through raw: ENABLED, PAUSED, REMOVED. Present on campaign nodes only — the key is absent below.
119942
- */
119943
119046
  status?: string;
119944
- /**
119945
- * The level below this one: ad groups under a campaign, ads under an ad group, empty on an ad.
119946
- */
119947
119047
  children: TrackingGoogleadsRoasReportOutputItems[];
119948
- /**
119949
- * Google Ads ad group this node belongs to, by its numeric id; null on a campaign node.
119950
- */
119951
119048
  adGroupId: (string | null);
119952
- /**
119953
- * What WE traced back to this node from our own tracking. null below campaign level, and null on a campaign nothing was traced to.
119954
- */
119955
119049
  attributed: ({
119956
- /**
119957
- * What WE traced back to this campaign, one row per currency the customers paid in. Never cross-summed — use accountCurrencyNetMinor for a single figure.
119958
- */
119959
119050
  revenue: TrackingGoogleadsRoasReportOutputItems1[];
119960
- /**
119961
- * Which key actually joined this revenue to the Google campaign, strongest first: lt_campaign_id (the id our own tracking template stamps on the landing URL), campaign_id (the id inside utm_campaign), campaign_name (the campaign name inside utm_campaign, a guess), gclid (the click id). null means the join key is unknown; treat campaign_name as the weakest evidence.
119962
- */
119963
- matchedBy: (("lt_campaign_id" | "campaign_id" | "campaign_name" | "gclid") | null);
119964
- /**
119965
- * How many distinct customers we traced back to this campaign over the window. Whole numbers: we give a conversion to one campaign, we never split it.
119966
- */
119051
+ matchedBy: (("campaign_id" | "campaign_name" | "gclid") | null);
119967
119052
  conversions: number;
119968
- /**
119969
- * Our net attributed revenue in the account currency alone, in minor units. 0 when nobody paid in that currency. This is the ROAS numerator, and the single-value answer beside the revenue list.
119970
- */
119971
119053
  accountCurrencyNetMinor: number;
119972
119054
  } | null);
119973
- /**
119974
- * Google Ads campaign this node belongs to, by its numeric id. Set at every level.
119975
- */
119976
119055
  campaignId: string;
119977
- /**
119978
- * Google Ads account this node belongs to, by customer id without dashes.
119979
- */
119980
119056
  customerId: string;
119981
- /**
119982
- * Where Google ran the campaign, passed through raw: SEARCH, DISPLAY, VIDEO, PERFORMANCE_MAX and so on. Present on campaign nodes only, and may be null there.
119983
- */
119984
119057
  channelType?: (string | null);
119985
119058
  }
119986
119059
  export interface TrackingGoogleadsRoasReportOutputItems1 {
119987
- /**
119988
- * ISO-4217 code the three amounts on this row are denominated in, e.g. USD. One row per currency; rows are never added together.
119989
- */
119990
119060
  currency: string;
119991
- /**
119992
- * Money kept after refunds (gross minus refunded), in minor units of this row's currency. This is what ROAS is calculated from.
119993
- */
119994
119061
  netMinor: number;
119995
- /**
119996
- * Money taken before refunds, in minor units of this row's currency (1250 = 12.50).
119997
- */
119998
119062
  grossMinor: number;
119999
- /**
120000
- * Money given back within the window, in minor units of this row's currency; already subtracted from netMinor.
120001
- */
120002
119063
  refundedMinor: number;
120003
119064
  }
120004
119065
  export interface TrackingGoogleadsSyncNowInput {
120005
119066
  }
120006
119067
  export interface TrackingGoogleadsSyncNowOutput {
120007
- /**
120008
- * How much this sweep wrote, split by what it wrote. Re-running the same window updates rows in place rather than adding, so these are rows touched, not rows gained. All zero when the status is skipped.
120009
- */
120010
119068
  rows: {
120011
- /**
120012
- * Ads written.
120013
- */
120014
119069
  ads: number;
120015
- /**
120016
- * Day-by-day ad spend and metric rows written.
120017
- */
120018
119070
  adDaily: number;
120019
- /**
120020
- * Ad groups written.
120021
- */
120022
119071
  adGroups: number;
120023
- /**
120024
- * Campaigns written, names and status included.
120025
- */
120026
119072
  campaigns: number;
120027
- /**
120028
- * Day-by-day ad-group spend and metric rows written.
120029
- */
120030
119073
  adGroupDaily: number;
120031
- /**
120032
- * Day-by-day campaign spend and metric rows written.
120033
- */
120034
119074
  campaignDaily: number;
120035
119075
  };
120036
- /**
120037
- * This one sync run. Match the completion event back to this step on it, not on productId: a product syncs many times, and the daily cron run and a manual one are different runs.
120038
- */
120039
- runId: string;
120040
- /**
120041
- * Why nothing was written, when the status is skipped: the account is not chosen yet, the authorisation expired, or Google was unavailable. Absent on a sweep that ran.
120042
- */
120043
119076
  reason?: string;
120044
- /**
120045
- * Whether the sweep ran. skipped means the Google Ads account could not be reached and nothing at all was written.
120046
- */
120047
119077
  status: ("ok" | "skipped");
120048
- /**
120049
- * The range of days this sweep read spend and metrics for.
120050
- */
120051
119078
  window: {
120052
- /**
120053
- * Last day covered, inclusive, as YYYY-MM-DD.
120054
- */
120055
119079
  end: string;
120056
- /**
120057
- * First day covered, inclusive, as YYYY-MM-DD.
120058
- */
120059
119080
  start: string;
120060
119081
  };
120061
- /**
120062
- * The tenant whose Google Ads account was swept.
120063
- */
120064
119082
  productId: string;
120065
- /**
120066
- * When the sweep finished. Null when nothing was written.
120067
- */
120068
119083
  lastSyncedAt: (string | null);
120069
119084
  }
120070
119085
  export interface TrackingGoogleadsTrackingHealthInput {
@@ -120078,212 +119093,61 @@ export interface TrackingGoogleadsTrackingHealthInput {
120078
119093
  from?: string;
120079
119094
  }
120080
119095
  export interface TrackingGoogleadsTrackingHealthOutput {
120081
- /**
120082
- * End of the range these figures cover, as an instant.
120083
- */
120084
119096
  to: string;
120085
- /**
120086
- * Start of the range these figures cover, as an instant. Echoes back the range that was asked for.
120087
- */
120088
119097
  from: string;
120089
- /**
120090
- * Whether the tracking template has been seen working live: true once at least one tagged click has arrived.
120091
- */
120092
119098
  installed: boolean;
120093
- /**
120094
- * Whether the sample above was cut short. True means more untagged URLs exist than are listed.
120095
- */
120096
119099
  truncated: boolean;
120097
- /**
120098
- * Google paid clicks that arrived on the site in this range. The denominator for everything below.
120099
- */
120100
119100
  paidClicks: number;
120101
- /**
120102
- * How complete the figures above are. Holds no metric of its own — it exists so the breakage rate is not read as one uniform population.
120103
- */
120104
119101
  dataQuality: {
120105
- /**
120106
- * Paid clicks from visitors who declined consent. Counted inside paidClicks, never added to it — a cookieless click is a real click. Clicks from sites running no consent banner are not counted here: nobody was asked, which is not the same as being told no.
120107
- */
120108
119102
  cookielessPaidClicks: number;
120109
119103
  };
120110
- /**
120111
- * Share of paid clicks that arrived untagged, between 0 and 1. Anything much above zero means the tracking template needs fixing.
120112
- */
120113
119104
  breakageRate: number;
120114
- /**
120115
- * Of those, the ones that arrived carrying our URL tracking parameters, so the campaign behind them is known.
120116
- */
120117
119105
  taggedClicks: number;
120118
- /**
120119
- * When the most recent untagged click arrived. Close to now means the breakage is still live. Null when none did.
120120
- */
120121
119106
  lastUntaggedAt: (string | null);
120122
- /**
120123
- * Of those, the ones that arrived without our parameters, so the money spent on them cannot be attributed. This is what the tracking template being missing or broken looks like.
120124
- */
120125
119107
  untaggedClicks: number;
120126
- /**
120127
- * When the first untagged click of the range arrived — roughly when the breakage started. Null when none did.
120128
- */
120129
119108
  firstUntaggedAt: (string | null);
120130
- /**
120131
- * A handful of the actual landing URLs that arrived untagged, to paste into a browser while fixing the template. Real customer URLs, query strings included.
120132
- */
120133
119109
  sampleUntaggedUrls: string[];
120134
119110
  }
120135
119111
  export interface TrackingGoogleadsUsVsPlatformInput {
120136
- /**
120137
- * End of the reporting window, inclusive. ISO-8601 date or timestamp; a date-only value covers that whole day, so revenue after midnight is not cut off. Omit to end now.
120138
- */
120139
- to?: string;
120140
- /**
120141
- * Start of the reporting window, inclusive. ISO-8601 date or timestamp, e.g. 2026-01-01. Omit to start 30 days before the end of the window.
120142
- */
120143
- from?: string;
120144
- /**
120145
- * Which touchpoint gets the credit for a conversion: the last paid click before it, or the first. Defaults to last_click.
120146
- */
119112
+ to: string;
119113
+ from: string;
120147
119114
  model?: ("last_click" | "first_click");
120148
- /**
120149
- * Restrict to conversions tracked on this installed site, e.g. acme.com. Omit to cover every domain of the product.
120150
- */
120151
119115
  domain?: string;
120152
- /**
120153
- * Restrict to one Google Ads account, by its customer id without dashes. Omit to cover every connected account.
120154
- */
120155
119116
  customerId?: string;
120156
- /**
120157
- * How far back before a conversion a paid click may sit and still earn the credit, in days. 1-365, silently clamped into that range; defaults to 30.
120158
- */
120159
119117
  lookbackDays?: number;
120160
119118
  }
120161
119119
  export interface TrackingGoogleadsUsVsPlatformOutput {
120162
- /**
120163
- * End of the window this comparison covers, echoed back as an ISO-8601 UTC timestamp.
120164
- */
120165
119120
  to: string;
120166
- /**
120167
- * Start of the window this comparison covers, echoed back as an ISO-8601 UTC timestamp.
120168
- */
120169
119121
  from: string;
120170
- /**
120171
- * Which touchpoint earned the credit on OUR side of the comparison: the last paid click before the conversion, or the first. Google always uses its own model.
120172
- */
120173
119122
  model: ("last_click" | "first_click");
120174
- /**
120175
- * True when any account below is running on cost older than the freshness threshold, or on no cost at all — read this before acting on the numbers.
120176
- */
120177
- stale: boolean;
120178
- /**
120179
- * The installed site this comparison was restricted to; null when it covers every domain of the product.
120180
- */
120181
119123
  domain: (string | null);
120182
- /**
120183
- * One entry per Google Ads account and currency, each holding its per-campaign comparison rows. Currencies are never added together.
120184
- */
120185
119124
  accounts: {
120186
- /**
120187
- * One row per campaign in this account, ours beside Google's.
120188
- */
120189
119125
  rows: {
120190
- /**
120191
- * What this campaign is called in Google Ads; null when the name has not been synced.
120192
- */
120193
119126
  name: (string | null);
120194
- /**
120195
- * ISO-4217 code both sides of this comparison are expressed in, e.g. USD. Ours and Google's are never converted.
120196
- */
120197
119127
  currency: string;
120198
- /**
120199
- * The Google Ads campaign this row compares, by its numeric id.
120200
- */
120201
119128
  campaignId: string;
120202
- /**
120203
- * Google Ads account this campaign belongs to, by customer id without dashes.
120204
- */
120205
119129
  customerId: string;
120206
- /**
120207
- * How many distinct customers WE traced to this campaign. A whole number: we never split a customer across campaigns.
120208
- */
120209
119130
  ourConversions: number;
120210
- /**
120211
- * Net revenue WE traced to this campaign, in minor units of the account currency (1250 = 12.50). 0 when we traced none.
120212
- */
120213
119131
  ourRevenueNetMinor: number;
120214
- /**
120215
- * Conversions GOOGLE counted for the same campaign. May be fractional, because Google splits credit across touchpoints — which is the usual reason the two sides disagree.
120216
- */
120217
119132
  platformConversions: number;
120218
- /**
120219
- * Conversion value GOOGLE reports for the same campaign, in minor units of the account currency. The counterpart of ourRevenueNetMinor.
120220
- */
120221
119133
  platformConversionsValueMinor: number;
120222
119134
  }[];
120223
- /**
120224
- * True when this account's Google-side numbers are older than the freshness threshold, or were never pulled — the comparison is then unfair to one side.
120225
- */
120226
119135
  stale: boolean;
120227
- /**
120228
- * ISO-4217 code every amount under this account is expressed in, e.g. USD. One account appears once per currency its cost was booked in.
120229
- */
120230
119136
  currency: string;
120231
- /**
120232
- * Google Ads account these comparison rows belong to, by customer id without dashes.
120233
- */
120234
119137
  customerId: string;
120235
- /**
120236
- * When cost was last pulled from Google Ads for this account (ISO-8601 UTC); null when it has never been pulled.
120237
- */
120238
119138
  costLastSyncedAt: (string | null);
120239
119139
  }[];
120240
- /**
120241
- * ISO-4217 code every amount in this report is expressed in, when all accounts share one; null when the report spans several currencies.
120242
- */
120243
- currency: (string | null);
120244
- /**
120245
- * When this comparison was calculated (ISO-8601 UTC). The figures are a snapshot at this moment, not live.
120246
- */
120247
119140
  computedAt: string;
120248
- /**
120249
- * Google Ads account this whole report covers, when it covers exactly one; null when it spans several accounts.
120250
- */
120251
- customerId: (string | null);
120252
- /**
120253
- * How far back before a conversion a paid click was allowed to sit and still earn the credit on our side, in days.
120254
- */
120255
119141
  lookbackDays: number;
120256
- /**
120257
- * Oldest moment cost was pulled from Google Ads across the accounts below (ISO-8601 UTC); null when any account has never synced.
120258
- */
120259
- costLastSyncedAt: (string | null);
120260
119142
  }
120261
119143
  export interface TrackingIdentityHealthInput {
120262
119144
  }
120263
119145
  export interface TrackingIdentityHealthOutput {
120264
- /**
120265
- * When these numbers were computed, ISO 8601 UTC. They are a live count, so this is effectively the moment of the call.
120266
- */
120267
119146
  computedAt: string;
120268
- /**
120269
- * How many people the product holds in total, anonymous ones included. The denominator of both rates below.
120270
- */
120271
119147
  totalProfiles: number;
120272
- /**
120273
- * Identified people as a share of the total, normally 0 to 1 (0.42 is 42%). A drop here usually means a broken identify() call, not fewer visitors.
120274
- */
120275
119148
  identifiedRate: number;
120276
- /**
120277
- * People with an ad touchpoint as a share of the total, normally 0 to 1. It counts click-id identifiers, so an identifier outliving its profile can push it just above 1 — read it as an indicator, not as a proportion to assert on.
120278
- */
120279
119149
  adTouchpointRate: number;
120280
- /**
120281
- * How many of them an email or phone is known for — the people a message can actually be sent to.
120282
- */
120283
119150
  identifiedProfiles: number;
120284
- /**
120285
- * How many people arrived carrying an ad click id. A proxy for paid reach: it counts anyone with at least one click id on record.
120286
- */
120287
119151
  adTouchpointProfiles: number;
120288
119152
  }
120289
119153
  export interface TrackingInstallDomainsCreateInput {
@@ -120293,9 +119157,6 @@ export interface TrackingInstallDomainsCreateInput {
120293
119157
  domain: string;
120294
119158
  }
120295
119159
  export interface TrackingInstallDomainsCreateOutput {
120296
- /**
120297
- * The domain as stored after normalisation, which may differ from what was submitted
120298
- */
120299
119160
  domain: string;
120300
119161
  }
120301
119162
  export interface TrackingInstallDomainsDeleteInput {
@@ -120305,43 +119166,19 @@ export interface TrackingInstallDomainsDeleteInput {
120305
119166
  domain: string;
120306
119167
  }
120307
119168
  export interface TrackingInstallDomainsDeleteOutput {
120308
- /**
120309
- * Always true — the domain was removed; a failure arrives as an error, not as false
120310
- */
120311
119169
  ok: true;
120312
119170
  }
120313
119171
  export interface TrackingInstallDomainsListInput {
120314
119172
  }
120315
119173
  export interface TrackingInstallDomainsListOutput {
120316
- /**
120317
- * Domains sending events that nobody registered — usually a staging host, a typo, or an install worth adding
120318
- */
120319
119174
  discovered: TrackingInstallDomainsListOutputItems[];
120320
- /**
120321
- * Domains deliberately put on the install checklist, each with whether its script has been seen
120322
- */
120323
119175
  registered: TrackingInstallDomainsListOutputItems[];
120324
- /**
120325
- * Length in days of the lookback window the `seen` and `lastSeen` figures are measured over
120326
- */
120327
119176
  windowDays: number;
120328
119177
  }
120329
119178
  export interface TrackingInstallDomainsListOutputItems {
120330
- /**
120331
- * Whether the tracking script actually sent an event from this domain inside the lookback window
120332
- */
120333
119179
  seen: boolean;
120334
- /**
120335
- * Normalised domain name the status is reported for
120336
- */
120337
119180
  domain: string;
120338
- /**
120339
- * ISO-8601 timestamp of the most recent event from this domain, or null if none arrived in the window
120340
- */
120341
119181
  lastSeen: (string | null);
120342
- /**
120343
- * Whether the domain is on the install checklist on purpose, as opposed to merely observed sending events
120344
- */
120345
119182
  registered: boolean;
120346
119183
  }
120347
119184
  export interface TrackingLinkDomainsCreateInput {
@@ -120351,9 +119188,6 @@ export interface TrackingLinkDomainsCreateInput {
120351
119188
  domain: string;
120352
119189
  }
120353
119190
  export interface TrackingLinkDomainsCreateOutput {
120354
- /**
120355
- * The domain as stored after normalisation, which may differ from what was submitted
120356
- */
120357
119191
  domain: string;
120358
119192
  }
120359
119193
  export interface TrackingLinkDomainsDeleteInput {
@@ -120363,17 +119197,11 @@ export interface TrackingLinkDomainsDeleteInput {
120363
119197
  domain: string;
120364
119198
  }
120365
119199
  export interface TrackingLinkDomainsDeleteOutput {
120366
- /**
120367
- * Always true — the domain left the linking group; a failure arrives as an error, not as false
120368
- */
120369
119200
  ok: true;
120370
119201
  }
120371
119202
  export interface TrackingLinkDomainsListInput {
120372
119203
  }
120373
119204
  export interface TrackingLinkDomainsListOutput {
120374
- /**
120375
- * Root domains in the linking group; the tracking script decorates links between any two of them so one visitor stays one visitor
120376
- */
120377
119205
  domains: string[];
120378
119206
  }
120379
119207
  export interface TrackingLiveEventsListInput {
@@ -120391,70 +119219,22 @@ export interface TrackingLiveEventsListInput {
120391
119219
  domain?: string;
120392
119220
  }
120393
119221
  export interface TrackingLiveEventsListOutput {
120394
- /**
120395
- * Pass back as `since` to fetch what arrived after this page. Null when there is nothing older to page into.
120396
- */
120397
119222
  cursor: (string | null);
120398
- /**
120399
- * The page of events, newest first.
120400
- */
120401
119223
  events: {
120402
- /**
120403
- * Stable identifier of this single event; unique within the product and safe to deduplicate on across polls.
120404
- */
120405
119224
  id: string;
120406
- /**
120407
- * When the event happened, as reported by the tracker (ISO 8601, UTC).
120408
- */
120409
119225
  ts: string;
120410
- /**
120411
- * Page address the event fired on, query string included. Free text from the customer site, so it can carry personal data.
120412
- */
120413
119226
  url: (string | null);
120414
- /**
120415
- * Event name as sent by the site, e.g. 'pageview' or a custom conversion name.
120416
- */
120417
119227
  name: string;
120418
- /**
120419
- * Document title of that page at the time. Free text from the customer site, so it can carry personal data.
120420
- */
120421
119228
  title: (string | null);
120422
- /**
120423
- * Site the event came from; null when the tracker could not determine one.
120424
- */
120425
119229
  domain: (string | null);
120426
- /**
120427
- * Where this visit came from, as read off the landing URL and referrer. Every field is null when the visit carried nothing.
120428
- */
120429
119230
  source: {
120430
- /**
120431
- * Address the visitor arrived from; null on a direct visit. Free text from the customer site, so it can carry personal data.
120432
- */
120433
119231
  referrer: (string | null);
120434
- /**
120435
- * utm_medium of the landing URL, e.g. cpc; null when absent.
120436
- */
120437
119232
  utmMedium: (string | null);
120438
- /**
120439
- * utm_source of the landing URL, e.g. newsletter; null when absent.
120440
- */
120441
119233
  utmSource: (string | null);
120442
- /**
120443
- * Which ad-network click id was present on the landing URL, e.g. 'gclid'. Null when the visit carried none.
120444
- */
120445
119234
  clickIdType: (string | null);
120446
- /**
120447
- * utm_campaign of the landing URL; null when absent.
120448
- */
120449
119235
  utmCampaign: (string | null);
120450
119236
  };
120451
- /**
120452
- * Two-letter ISO 3166-1 alpha-2 country resolved from the request, e.g. DE; null when it could not be resolved.
120453
- */
120454
119237
  country: (string | null);
120455
- /**
120456
- * Pseudonymous visitor id the person graph joins on. Null for a visitor who declined statistics consent or was never asked — those events arrive cookieless and carry no identifier at all.
120457
- */
120458
119238
  anonymousId: (string | null);
120459
119239
  }[];
120460
119240
  }
@@ -120465,52 +119245,18 @@ export interface TrackingProfilesDeleteInput {
120465
119245
  profileId: string;
120466
119246
  }
120467
119247
  export interface TrackingProfilesDeleteOutput {
120468
- /**
120469
- * Always true: the response only exists when the erasure ran. A failure arrives as an error, not as ok=false.
120470
- */
120471
119248
  ok: true;
120472
- /**
120473
- * What happened to the archived copy of the events. Postgres is erased synchronously; the archive is not, and this says so out loud.
120474
- */
120475
119249
  archive: {
120476
- /**
120477
- * Plain-language reason the archived copy could not be deleted in the same breath — text meant to be quoted into a compliance record.
120478
- */
120479
119250
  note: string;
120480
- /**
120481
- * Always gap_flagged: the archived copy is known to still hold this person and the gap has been recorded rather than silently ignored.
120482
- */
120483
119251
  status: "gap_flagged";
120484
119252
  };
120485
- /**
120486
- * How much was actually destroyed, by kind. Worth recording: it is the evidence that the erasure did something.
120487
- */
120488
119253
  deleted: {
120489
- /**
120490
- * Tracked events removed, found through the anonymous ids this person browsed under.
120491
- */
120492
119254
  events: number;
120493
- /**
120494
- * Merge records removed — the history of this person having been joined with another.
120495
- */
120496
119255
  merges: number;
120497
- /**
120498
- * Profile rows removed: 1 in practice, and 0 only if the row vanished between the lookup and the delete.
120499
- */
120500
119256
  profile: number;
120501
- /**
120502
- * Emails, phones, anonymous ids and click ids removed for this person.
120503
- */
120504
119257
  identifiers: number;
120505
119258
  };
120506
- /**
120507
- * The person who was erased. Nothing else of them remains, so this is all there is left to name them by.
120508
- */
120509
119259
  profileId: string;
120510
- /**
120511
- * This erasure attempt. The completion event carries the same value under the same name, so a step recognises its own completion even when another workflow is erasing the same person at the same moment.
120512
- */
120513
- requestId: string;
120514
119260
  }
120515
119261
  export interface TrackingProfilesExportInput {
120516
119262
  /**
@@ -120519,172 +119265,52 @@ export interface TrackingProfilesExportInput {
120519
119265
  profileId: string;
120520
119266
  }
120521
119267
  export interface TrackingProfilesExportOutput {
120522
- /**
120523
- * The complete history, newest event first, capped at 50000 events — check `truncated` before treating it as complete.
120524
- */
120525
119268
  journey: {
120526
- /**
120527
- * When the event happened, ISO 8601 UTC. The journey is ordered by this, newest first.
120528
- */
120529
119269
  ts: string;
120530
- /**
120531
- * Opaque handle for this one event, unique inside the product. Use it to deduplicate, not to sort — it carries no order.
120532
- */
120533
119270
  ref: string;
120534
- /**
120535
- * Full address of the page, query string included. Personal data — it can carry an email in a link. Null off-page.
120536
- */
120537
119271
  url: (string | null);
120538
- /**
120539
- * What happened, as the tracking snippet named it: page_view, signup, purchase, or any custom name the product sends.
120540
- */
120541
119272
  name: string;
120542
- /**
120543
- * Custom properties the product attached to this event. Free-form: the keys are whatever the snippet sent, and they differ by event name.
120544
- */
120545
119273
  props: {
120546
119274
  [k: string]: unknown;
120547
119275
  };
120548
- /**
120549
- * Title of the page as the browser reported it. Null off-page.
120550
- */
120551
119276
  title: (string | null);
120552
- /**
120553
- * Hostname the event was sent from. Null for an event with no page behind it, such as a server-side call.
120554
- */
120555
119277
  domain: (string | null);
120556
- /**
120557
- * Campaign tags and ad click carried by this event, as they were on the URL at the time.
120558
- */
120559
119278
  source: {
120560
- /**
120561
- * The ad click identifier on this URL, raw. Personal data: it resolves to one individual inside the ad network.
120562
- */
120563
119279
  clickId: (string | null);
120564
- /**
120565
- * utm_term on the URL of this event — the keyword bought, on a paid-search arrival.
120566
- */
120567
119280
  utmTerm: (string | null);
120568
- /**
120569
- * utm_medium on the URL of this event.
120570
- */
120571
119281
  utmMedium: (string | null);
120572
- /**
120573
- * utm_source on the URL of THIS event — the campaign at this moment, not the one that first acquired the person.
120574
- */
120575
119282
  utmSource: (string | null);
120576
- /**
120577
- * utm_content on the URL of this event — which creative or link variant was clicked.
120578
- */
120579
119283
  utmContent: (string | null);
120580
- /**
120581
- * Which ad network stamped the click id below: gclid for Google Ads, fbclid for Meta. Null on a non-ad arrival.
120582
- */
120583
119284
  clickIdType: (string | null);
120584
- /**
120585
- * utm_campaign on the URL of this event.
120586
- */
120587
119285
  utmCampaign: (string | null);
120588
119286
  };
120589
- /**
120590
- * Two-letter ISO 3166-1 country the request came from, resolved from the IP at collection time. Null when it could not be resolved.
120591
- */
120592
119287
  country: (string | null);
120593
- /**
120594
- * Where the person came from immediately before this event. Null on a direct arrival or off-page.
120595
- */
120596
119288
  referrer: (string | null);
120597
- /**
120598
- * Handle for the browsing session this event belongs to; events sharing it happened in one sitting. Null for an event collected outside a session.
120599
- */
120600
119289
  sessionId: (string | null);
120601
119290
  }[];
120602
- /**
120603
- * The person themselves: their handle, how far they have come, and when they were seen.
120604
- */
120605
119291
  profile: {
120606
- /**
120607
- * How far the person has come: anonymous = only a browser behind them, identified = an email or phone is known, customer = they have paid at least once.
120608
- */
120609
119292
  status: ("anonymous" | "identified" | "customer");
120610
- /**
120611
- * When this product first created the profile row, ISO 8601 UTC. Later than firstSeenAt when events were backfilled.
120612
- */
120613
119293
  createdAt: string;
120614
- /**
120615
- * Stable handle for this person inside the product. Pass it to any other people step; it survives identity merges.
120616
- */
120617
119294
  profileId: string;
120618
- /**
120619
- * Timestamp of their most recent event, ISO 8601 UTC — the freshness of everything else here.
120620
- */
120621
119295
  lastSeenAt: string;
120622
- /**
120623
- * Timestamp of the earliest event on record for this person, ISO 8601 UTC.
120624
- */
120625
119296
  firstSeenAt: string;
120626
119297
  };
120627
- /**
120628
- * Everything known about who this person is: the addresses they have been identified by, the ad clicks they arrived by, and the sites they were seen on. Every part of it is a list, and none of the lists names a primary.
120629
- */
120630
119298
  signals: {
120631
- /**
120632
- * Every email this person has ever been identified by. Stably ordered for display and diffing — the position of an address says NOTHING about which one to contact, and this toolkit holds no primary. Usually one entry; a person who signed up twice has several.
120633
- */
120634
119299
  emails: string[];
120635
- /**
120636
- * Every phone number this person has been identified by. Stably ordered for display and diffing only, with no primary among them.
120637
- */
120638
119300
  phones: string[];
120639
- /**
120640
- * Distinct hostnames this person browsed, taken from their events — not an identifier type, just where they were.
120641
- */
120642
119301
  domains: string[];
120643
- /**
120644
- * Every ad click this person arrived by, stably ordered and with no primary among them. Personal data: a click id resolves to one individual inside the ad network.
120645
- */
120646
119302
  clickIds: {
120647
- /**
120648
- * Which ad network the click came from — gclid for Google Ads, fbclid for Meta. Open set.
120649
- */
120650
119303
  type: string;
120651
- /**
120652
- * The click identifier itself, raw, as the network stamped it on the landing URL.
120653
- */
120654
119304
  value: string;
120655
119305
  }[];
120656
119306
  };
120657
- /**
120658
- * True when the history hit the 50000-event cap and older events were left out. False means this export is everything held.
120659
- */
120660
119307
  truncated: boolean;
120661
- /**
120662
- * When this export was produced, ISO 8601 UTC — the as-of date to put on a subject-access response.
120663
- */
120664
119308
  exportedAt: string;
120665
- /**
120666
- * First touch: the campaign that brought this person in, frozen at their earliest event and never overwritten by later visits. Null for a person with no events at all.
120667
- */
120668
119309
  acquisition: ({
120669
- /**
120670
- * Channel of that same first visit (utm_medium): cpc, email, social, and so on. Null when untagged.
120671
- */
120672
119310
  utmMedium: (string | null);
120673
- /**
120674
- * Where the person came from on their very first visit — the utm_source of their earliest event. Null when they arrived with no campaign tags.
120675
- */
120676
119311
  utmSource: (string | null);
120677
- /**
120678
- * Which ad network stamped the click that brought them in — gclid for Google Ads, fbclid for Meta. Null for a non-ad arrival. Open set: new networks appear without a release here.
120679
- */
120680
119312
  clickIdType: (string | null);
120681
- /**
120682
- * When that first visit happened, ISO 8601 UTC. This is the timestamp of the earliest event, not when the profile row was written.
120683
- */
120684
119313
  firstSeenAt: string;
120685
- /**
120686
- * Campaign of that same first visit (utm_campaign). Null when untagged.
120687
- */
120688
119314
  utmCampaign: (string | null);
120689
119315
  } | null);
120690
119316
  }
@@ -120698,226 +119324,76 @@ export interface TrackingProfilesGetInput {
120698
119324
  */
120699
119325
  journeyLimit?: number;
120700
119326
  /**
120701
- * Continue paging back through the journey: pass the cursor the previous page returned. Omit to start at the most recent event.
119327
+ * Opaque cursor to page further back through the journey
120702
119328
  */
120703
119329
  journeyCursor?: string;
120704
119330
  }
120705
119331
  export interface TrackingProfilesGetOutput {
120706
- /**
120707
- * Lifetime value of this person, per currency. Null when revenue tracking is not in use for the product.
120708
- */
120709
119332
  ltv: ({
120710
- /**
120711
- * One row per currency this person has paid in. Empty for someone who never paid; there is no cross-currency total, because converting would need a rate this toolkit does not hold.
120712
- */
120713
119333
  entries: {
120714
- /**
120715
- * ISO 4217 code the amounts beside it are denominated in, e.g. EUR. One entry per code the person ever paid in.
120716
- */
120717
119334
  currency: string;
120718
- /**
120719
- * What the business actually kept: gross minus refunded, in minor units. This is the number to rank customers by.
120720
- */
120721
119335
  netMinor: number;
120722
- /**
120723
- * Everything the person was ever charged, in minor units (1250 = 12.50 EUR). Refunds are not subtracted here.
120724
- */
120725
119336
  grossMinor: number;
120726
- /**
120727
- * Their most recent payment in this currency, ISO 8601 UTC — how live the relationship is.
120728
- */
120729
119337
  lastPaymentAt: (string | null);
120730
- /**
120731
- * How much of the gross went back to them, in minor units. Zero for a person who never had a refund.
120732
- */
120733
119338
  refundedMinor: number;
120734
- /**
120735
- * When this person first paid in this currency, ISO 8601 UTC. Null when the totals were computed without a dated payment.
120736
- */
120737
119339
  firstPaymentAt: (string | null);
120738
119340
  }[];
120739
- /**
120740
- * The person these totals belong to — the same handle as profile.profileId.
120741
- */
120742
119341
  profileId: string;
120743
- /**
120744
- * When these totals were last recomputed, ISO 8601 UTC. Null when they have never been computed.
120745
- */
120746
119342
  computedAt: (string | null);
120747
119343
  } | null);
120748
- /**
120749
- * What this person did, newest first, one page at a time. Use the export step instead when the whole history is wanted in one go.
120750
- */
120751
119344
  journey: {
120752
- /**
120753
- * Pass back as `journeyCursor` to page further back in time. Null once the journey is exhausted.
120754
- */
120755
119345
  cursor: (string | null);
120756
- /**
120757
- * This page of the journey, newest event first.
120758
- */
120759
119346
  events: {
120760
- /**
120761
- * When the event happened, ISO 8601 UTC. The journey is ordered by this, newest first.
120762
- */
120763
119347
  ts: string;
120764
- /**
120765
- * Opaque handle for this one event, unique inside the product. Use it to deduplicate, not to sort — it carries no order.
120766
- */
120767
119348
  ref: string;
120768
- /**
120769
- * Full address of the page, query string included. Personal data — it can carry an email in a link. Null off-page.
120770
- */
120771
119349
  url: (string | null);
120772
- /**
120773
- * What happened, as the tracking snippet named it: page_view, signup, purchase, or any custom name the product sends.
120774
- */
120775
119350
  name: string;
120776
- /**
120777
- * Custom properties the product attached to this event. Free-form: the keys are whatever the snippet sent, and they differ by event name.
120778
- */
120779
119351
  props: {
120780
119352
  [k: string]: unknown;
120781
119353
  };
120782
- /**
120783
- * Title of the page as the browser reported it. Null off-page.
120784
- */
120785
119354
  title: (string | null);
120786
- /**
120787
- * Hostname the event was sent from. Null for an event with no page behind it, such as a server-side call.
120788
- */
120789
119355
  domain: (string | null);
120790
- /**
120791
- * Campaign tags and ad click carried by this event, as they were on the URL at the time.
120792
- */
120793
119356
  source: {
120794
- /**
120795
- * The ad click identifier on this URL, raw. Personal data: it resolves to one individual inside the ad network.
120796
- */
120797
119357
  clickId: (string | null);
120798
- /**
120799
- * utm_term on the URL of this event — the keyword bought, on a paid-search arrival.
120800
- */
120801
119358
  utmTerm: (string | null);
120802
- /**
120803
- * utm_medium on the URL of this event.
120804
- */
120805
119359
  utmMedium: (string | null);
120806
- /**
120807
- * utm_source on the URL of THIS event — the campaign at this moment, not the one that first acquired the person.
120808
- */
120809
119360
  utmSource: (string | null);
120810
- /**
120811
- * utm_content on the URL of this event — which creative or link variant was clicked.
120812
- */
120813
119361
  utmContent: (string | null);
120814
- /**
120815
- * Which ad network stamped the click id below: gclid for Google Ads, fbclid for Meta. Null on a non-ad arrival.
120816
- */
120817
119362
  clickIdType: (string | null);
120818
- /**
120819
- * utm_campaign on the URL of this event.
120820
- */
120821
119363
  utmCampaign: (string | null);
120822
119364
  };
120823
- /**
120824
- * Two-letter ISO 3166-1 country the request came from, resolved from the IP at collection time. Null when it could not be resolved.
120825
- */
120826
119365
  country: (string | null);
120827
- /**
120828
- * Where the person came from immediately before this event. Null on a direct arrival or off-page.
120829
- */
120830
119366
  referrer: (string | null);
120831
- /**
120832
- * Handle for the browsing session this event belongs to; events sharing it happened in one sitting. Null for an event collected outside a session.
120833
- */
120834
119367
  sessionId: (string | null);
120835
119368
  }[];
120836
119369
  };
120837
- /**
120838
- * The person themselves: their handle, how far they have come, and when they were seen.
120839
- */
120840
119370
  profile: {
120841
- /**
120842
- * How far the person has come: anonymous = only a browser behind them, identified = an email or phone is known, customer = they have paid at least once.
120843
- */
120844
119371
  status: ("anonymous" | "identified" | "customer");
120845
- /**
120846
- * When this product first created the profile row, ISO 8601 UTC. Later than firstSeenAt when events were backfilled.
120847
- */
120848
119372
  createdAt: string;
120849
- /**
120850
- * Stable handle for this person inside the product. Pass it to any other people step; it survives identity merges.
120851
- */
120852
119373
  profileId: string;
120853
- /**
120854
- * Timestamp of their most recent event, ISO 8601 UTC — the freshness of everything else here.
120855
- */
120856
119374
  lastSeenAt: string;
120857
- /**
120858
- * Timestamp of the earliest event on record for this person, ISO 8601 UTC.
120859
- */
120860
119375
  firstSeenAt: string;
120861
119376
  };
120862
- /**
120863
- * Everything known about who this person is: the addresses they have been identified by, the ad clicks they arrived by, and the sites they were seen on. Every part of it is a list, and none of the lists names a primary.
120864
- */
120865
119377
  signals: {
120866
- /**
120867
- * Every email this person has ever been identified by. Stably ordered for display and diffing — the position of an address says NOTHING about which one to contact, and this toolkit holds no primary. Usually one entry; a person who signed up twice has several.
120868
- */
120869
119378
  emails: string[];
120870
- /**
120871
- * Every phone number this person has been identified by. Stably ordered for display and diffing only, with no primary among them.
120872
- */
120873
119379
  phones: string[];
120874
- /**
120875
- * Distinct hostnames this person browsed, taken from their events — not an identifier type, just where they were.
120876
- */
120877
119380
  domains: string[];
120878
- /**
120879
- * Every ad click this person arrived by, stably ordered and with no primary among them. Personal data: a click id resolves to one individual inside the ad network.
120880
- */
120881
119381
  clickIds: {
120882
- /**
120883
- * Which ad network the click came from — gclid for Google Ads, fbclid for Meta. Open set.
120884
- */
120885
119382
  type: string;
120886
- /**
120887
- * The click identifier itself, raw, as the network stamped it on the landing URL.
120888
- */
120889
119383
  value: string;
120890
119384
  }[];
120891
119385
  };
120892
- /**
120893
- * First touch: the campaign that brought this person in, frozen at their earliest event and never overwritten by later visits. Null for a person with no events at all.
120894
- */
120895
119386
  acquisition: ({
120896
- /**
120897
- * Channel of that same first visit (utm_medium): cpc, email, social, and so on. Null when untagged.
120898
- */
120899
119387
  utmMedium: (string | null);
120900
- /**
120901
- * Where the person came from on their very first visit — the utm_source of their earliest event. Null when they arrived with no campaign tags.
120902
- */
120903
119388
  utmSource: (string | null);
120904
- /**
120905
- * Which ad network stamped the click that brought them in — gclid for Google Ads, fbclid for Meta. Null for a non-ad arrival. Open set: new networks appear without a release here.
120906
- */
120907
119389
  clickIdType: (string | null);
120908
- /**
120909
- * When that first visit happened, ISO 8601 UTC. This is the timestamp of the earliest event, not when the profile row was written.
120910
- */
120911
119390
  firstSeenAt: string;
120912
- /**
120913
- * Campaign of that same first visit (utm_campaign). Null when untagged.
120914
- */
120915
119391
  utmCampaign: (string | null);
120916
119392
  } | null);
120917
119393
  }
120918
119394
  export interface TrackingProfilesListInput {
120919
119395
  /**
120920
- * Email to search people by — the whole address by default, or its beginning when emailMatch is prefix. Omit to search across everyone.
119396
+ * Exact email to find (case-insensitive), or a prefix when emailMatch=prefix
120921
119397
  */
120922
119398
  email?: string;
120923
119399
  /**
@@ -120925,357 +119401,126 @@ export interface TrackingProfilesListInput {
120925
119401
  */
120926
119402
  limit?: number;
120927
119403
  /**
120928
- * Continue a previous page: pass the cursor that page returned. Omit to start from the most recently seen person.
119404
+ * Opaque pagination cursor from a previous response
120929
119405
  */
120930
119406
  cursor?: string;
120931
119407
  /**
120932
- * Keep only people at this stage — anonymous, identified or customer. Omit to get all three.
119408
+ * Filter by profile status
120933
119409
  */
120934
119410
  status?: ("anonymous" | "identified" | "customer");
120935
119411
  /**
120936
- * How the email filter is matched: exact (default) compares the whole address case-insensitively, prefix matches everyone whose address starts with what you typed.
119412
+ * How to match the email filter
120937
119413
  */
120938
119414
  emailMatch?: ("exact" | "prefix");
120939
119415
  }
120940
119416
  export interface TrackingProfilesListOutput {
120941
- /**
120942
- * Pass this back as `cursor` to fetch the next page. Null on the last page — that null is how a loop knows to stop.
120943
- */
120944
119417
  cursor: (string | null);
120945
- /**
120946
- * The page of people, most recently seen first. Shorter than the requested limit on the last page.
120947
- */
120948
119418
  profiles: {
120949
- /**
120950
- * Every email this person has been identified by. Stably ordered for display, with no primary among them — position 0 is not the address to contact.
120951
- */
120952
119419
  emails: string[];
120953
- /**
120954
- * How far this person has come: anonymous = only a browser, identified = an email or phone is known, customer = they have paid.
120955
- */
120956
119420
  status: ("anonymous" | "identified" | "customer");
120957
- /**
120958
- * Stable handle for this person. Feed it to a get, export or erase step.
120959
- */
120960
119421
  profileId: string;
120961
- /**
120962
- * Timestamp of their most recent event, ISO 8601 UTC. The page is ordered by this, newest first.
120963
- */
120964
119422
  lastSeenAt: string;
120965
- /**
120966
- * First touch: the campaign that brought this person in, frozen at their earliest event and never overwritten by later visits. Null for a person with no events at all.
120967
- */
120968
119423
  acquisition: ({
120969
- /**
120970
- * Channel of that same first visit (utm_medium): cpc, email, social, and so on. Null when untagged.
120971
- */
120972
119424
  utmMedium: (string | null);
120973
- /**
120974
- * Where the person came from on their very first visit — the utm_source of their earliest event. Null when they arrived with no campaign tags.
120975
- */
120976
119425
  utmSource: (string | null);
120977
- /**
120978
- * Which ad network stamped the click that brought them in — gclid for Google Ads, fbclid for Meta. Null for a non-ad arrival. Open set: new networks appear without a release here.
120979
- */
120980
119426
  clickIdType: (string | null);
120981
- /**
120982
- * When that first visit happened, ISO 8601 UTC. This is the timestamp of the earliest event, not when the profile row was written.
120983
- */
120984
119427
  firstSeenAt: string;
120985
- /**
120986
- * Campaign of that same first visit (utm_campaign). Null when untagged.
120987
- */
120988
119428
  utmCampaign: (string | null);
120989
119429
  } | null);
120990
- /**
120991
- * Timestamp of their earliest event, ISO 8601 UTC.
120992
- */
120993
119430
  firstSeenAt: string;
120994
119431
  }[];
120995
119432
  }
120996
119433
  export interface TrackingReportsAttributedJourneyInput {
120997
- /**
120998
- * Show only journey events at or before this instant (ISO). Omit for the whole history.
120999
- */
121000
119434
  to?: string;
121001
- /**
121002
- * Show only journey events at or after this instant (ISO). Omit for the whole history.
121003
- */
121004
119435
  from?: string;
121005
- /**
121006
- * Attribution model to explain the decision under; re-reads the same history, so switching it is free (default 'last_click').
121007
- */
121008
119436
  model?: ("last_click" | "first_click");
121009
119437
  /**
121010
119438
  * The profile id (uuid)
121011
119439
  */
121012
119440
  profileId: string;
121013
- /**
121014
- * How far back before the conversion a touchpoint may be credited, in days (default 30).
121015
- */
121016
119441
  lookbackDays?: number;
121017
119442
  }
121018
119443
  export interface TrackingReportsAttributedJourneyOutput {
121019
- /**
121020
- * What this person actually did, in order.
121021
- */
121022
119444
  journey: {
121023
- /**
121024
- * Every tracked event for this person inside the requested window, oldest first.
121025
- */
121026
119445
  events: {
121027
- /**
121028
- * When the event happened (ISO 8601, UTC). Events are ordered oldest first.
121029
- */
121030
119446
  ts: string;
121031
- /**
121032
- * Handle for this event within the journey; `decisions[].winnerRef` points back at one of these to name the winning touchpoint.
121033
- */
121034
119447
  ref: string;
121035
- /**
121036
- * Page address the event fired on. Free text from the customer site, so it can carry personal data.
121037
- */
121038
119448
  url: (string | null);
121039
- /**
121040
- * Event name as sent by the site, e.g. 'pageview' or a custom conversion name.
121041
- */
121042
119449
  name: string;
121043
- /**
121044
- * Custom properties the site attached to this event. Shape is the customer's, so it can carry anything, personal data included.
121045
- */
121046
119450
  props: {
121047
119451
  [k: string]: unknown;
121048
119452
  };
121049
- /**
121050
- * Document title of that page. Free text from the customer site, so it can carry personal data.
121051
- */
121052
119453
  title: (string | null);
121053
- /**
121054
- * Site the event came from; null when the tracker could not determine one.
121055
- */
121056
119454
  domain: (string | null);
121057
- /**
121058
- * Where this event's visit came from, as read off the landing URL. Every field is null when the visit carried nothing.
121059
- */
121060
119455
  source: {
121061
- /**
121062
- * The click id value itself. Identifies one ad click by this person, so treat it as personal data.
121063
- */
121064
119456
  clickId: (string | null);
121065
- /**
121066
- * utm_term of the landing URL, the paid keyword; null when absent.
121067
- */
121068
119457
  utmTerm: (string | null);
121069
- /**
121070
- * utm_medium of the landing URL; null when absent.
121071
- */
121072
119458
  utmMedium: (string | null);
121073
- /**
121074
- * utm_source of the landing URL; null when absent.
121075
- */
121076
119459
  utmSource: (string | null);
121077
- /**
121078
- * utm_content of the landing URL, the creative variant; null when absent.
121079
- */
121080
119460
  utmContent: (string | null);
121081
- /**
121082
- * Which ad-network click id was present, e.g. 'gclid'; null when the visit carried none.
121083
- */
121084
119461
  clickIdType: (string | null);
121085
- /**
121086
- * utm_campaign of the landing URL; null when absent.
121087
- */
121088
119462
  utmCampaign: (string | null);
121089
119463
  };
121090
- /**
121091
- * Two-letter ISO 3166-1 alpha-2 country resolved from the request, e.g. DE; null when it could not be resolved.
121092
- */
121093
119464
  country: (string | null);
121094
- /**
121095
- * Address the visitor arrived from; null on a direct visit. Free text from the customer site, so it can carry personal data.
121096
- */
121097
119465
  referrer: (string | null);
121098
- /**
121099
- * Visit this event belongs to; events sharing one happened in the same sitting. Null when no session could be established.
121100
- */
121101
119466
  sessionId: (string | null);
121102
119467
  }[];
121103
119468
  };
121104
- /**
121105
- * Holds at most one entry: the decision for this person's originating conversion, present only when that conversion falls inside the requested window. Kept as a list for callers that already read it; `originatingDecision` is the same value at a bindable path.
121106
- */
121107
- decisions: TrackingReportsAttributedJourneyOutputItems[];
121108
- /**
121109
- * The person this journey belongs to, echoed back from the request.
121110
- */
121111
- profileId: string;
121112
- /**
121113
- * The attribution decision for this person's originating conversion — the same value as `decisions[0]`, at a path a workflow can bind. Null means the decision is not in THIS window, not that the person never converted: a conversion before `from` or after `to` is excluded here while still being their originating one. Widen the window to see it.
121114
- */
121115
- originatingDecision: (TrackingReportsAttributedJourneyOutputItems | null);
121116
- }
121117
- export interface TrackingReportsAttributedJourneyOutputItems {
121118
- /**
121119
- * Attribution model the winner was picked under, echoed back from the request.
121120
- */
121121
- model: ("last_click" | "first_click");
121122
- /**
121123
- * Why this touchpoint won, or why nothing did, in a sentence a person can read.
121124
- */
121125
- reason: string;
121126
- /**
121127
- * Revenue of that conversion, one row per currency.
121128
- */
121129
- revenue: {
121130
- /**
121131
- * ISO 4217 code the amounts below are denominated in, e.g. EUR.
121132
- */
121133
- currency: string;
121134
- /**
121135
- * `grossMinor` minus `refundedMinor`, in minor units of `currency`. This is the figure to report.
121136
- */
121137
- netMinor: number;
121138
- /**
121139
- * Billed amount before refunds, in minor units of `currency` (cents for EUR).
121140
- */
121141
- grossMinor: number;
121142
- /**
121143
- * Amount refunded out of `grossMinor`, in minor units of `currency`.
121144
- */
121145
- refundedMinor: number;
119469
+ decisions: {
119470
+ model: ("last_click" | "first_click");
119471
+ reason: string;
119472
+ revenue: {
119473
+ currency: string;
119474
+ netMinor: number;
119475
+ grossMinor: number;
119476
+ refundedMinor: number;
119477
+ }[];
119478
+ winnerRef: (string | null);
119479
+ conversionTs: string;
119480
+ lookbackDays: number;
119481
+ winningTouchpoint: ({
119482
+ ts: string;
119483
+ channel: ("paid" | "organic" | "direct" | "email");
119484
+ utmMedium: (string | null);
119485
+ utmSource: (string | null);
119486
+ clickIdType: (string | null);
119487
+ utmCampaign: (string | null);
119488
+ } | null);
121146
119489
  }[];
121147
- /**
121148
- * `journey.events[].ref` of the touchpoint that won the credit. Null when nothing inside the window qualified.
121149
- */
121150
- winnerRef: (string | null);
121151
- /**
121152
- * When the conversion this decision explains happened (ISO 8601, UTC).
121153
- */
121154
- conversionTs: string;
121155
- /**
121156
- * How far back before `conversionTs` a touchpoint was allowed to be credited, in days; echoed back.
121157
- */
121158
- lookbackDays: number;
121159
- /**
121160
- * The winning touchpoint spelled out, so a reader need not resolve `winnerRef`. Null exactly when `winnerRef` is null.
121161
- */
121162
- winningTouchpoint: ({
121163
- /**
121164
- * When the winning touchpoint happened (ISO 8601, UTC).
121165
- */
121166
- ts: string;
121167
- /**
121168
- * Channel the winning touchpoint belongs to.
121169
- */
121170
- channel: ("paid" | "organic" | "direct" | "email");
121171
- /**
121172
- * utm_medium of the winning touchpoint; null when it carried none.
121173
- */
121174
- utmMedium: (string | null);
121175
- /**
121176
- * utm_source of the winning touchpoint; null when it carried none.
121177
- */
121178
- utmSource: (string | null);
121179
- /**
121180
- * Campaign id carried by our own `_lt_campaign` landing-URL parameter; null when the visit carried none.
121181
- */
121182
- ltCampaign?: (string | null);
121183
- /**
121184
- * Ad-network click id present on the winning touchpoint, e.g. 'gclid'; null when it carried none.
121185
- */
121186
- clickIdType: (string | null);
121187
- /**
121188
- * utm_campaign of the winning touchpoint; null when it carried none.
121189
- */
121190
- utmCampaign: (string | null);
121191
- } | null);
119490
+ profileId: string;
121192
119491
  }
121193
119492
  export interface TrackingReportsEventVolumeInput {
121194
- /**
121195
- * End of the range to count, inclusive (ISO 8601). Optional — defaults to the moment of the call.
121196
- */
121197
- to?: string;
121198
- /**
121199
- * Start of the range to count, inclusive (ISO 8601). Optional — defaults to 30 days back, the start of that UTC day.
121200
- */
121201
- from?: string;
121202
- /**
121203
- * Count only this site. Omit to count every site the product sends from.
121204
- */
119493
+ to: string;
119494
+ from: string;
121205
119495
  domain?: string;
121206
119496
  }
121207
119497
  export interface TrackingReportsEventVolumeOutput {
121208
- /**
121209
- * End of the range the figures cover, echoed back (ISO 8601, UTC).
121210
- */
121211
119498
  to: string;
121212
- /**
121213
- * Start of the range the figures cover, echoed back (ISO 8601, UTC).
121214
- */
121215
119499
  from: string;
121216
- /**
121217
- * Site the figures were restricted to; null when every site of the product is included.
121218
- */
121219
119500
  domain: (string | null);
121220
- /**
121221
- * When this report was computed (ISO 8601, UTC).
121222
- */
121223
119501
  computedAt: string;
121224
- /**
121225
- * How COMPLETE the two headline figures above are. Contains no metric of its own — never present a field of it as a headline number and never add it to anything. consentGrantedEvents + cookielessEvents + noBannerEvents = totalEvents.
121226
- */
121227
119502
  dataQuality: {
121228
- /**
121229
- * Fraction of `totalEvents` (0..1) that came from sites running no consent banner, where nobody was ever asked.
121230
- */
121231
119503
  noBannerShare: number;
121232
- /**
121233
- * Events from sites with no consent banner. Kept apart from `cookielessEvents` on purpose: nobody refused here, nobody was asked.
121234
- */
121235
119504
  noBannerEvents: number;
121236
- /**
121237
- * How many UTC days the range spans; each one re-counts a returning declining visitor.
121238
- */
121239
119505
  utcDaysInRange: number;
121240
- /**
121241
- * Fraction of `totalEvents` (0..1) that came from visitors who declined statistics consent.
121242
- */
121243
119506
  cookielessShare: number;
121244
- /**
121245
- * Events from visitors who declined; no cookie was written and no identifier sent.
121246
- */
121247
119507
  cookielessEvents: number;
121248
- /**
121249
- * Events carrying an anonymous id. A different cut that overlaps the three consent buckets — it is not the complement of `cookielessEvents` and must never be added to it.
121250
- */
121251
119508
  identifiedEvents: number;
121252
- /**
121253
- * True when `visitorsDeduplicatedPerUtcDay` over-counts for this range: the range spans more than one UTC day and there is declining traffic in it.
121254
- */
121255
119509
  visitorsOverstated: boolean;
121256
- /**
121257
- * Events from visitors who granted statistics consent.
121258
- */
121259
119510
  consentGrantedEvents: number;
121260
119511
  };
121261
- /**
121262
- * How many events arrived in the range, across every consent state.
121263
- */
121264
119512
  totalEvents: number;
121265
- /**
121266
- * How many PEOPLE those events came from: one COUNT DISTINCT over consenting visitors (by anonymous id) and declining visitors (by a daily key destroyed each UTC midnight) at once. Over a range longer than one UTC day this is an OVER-count of the declining half — read `dataQuality.visitorsOverstated` before reporting it.
121267
- */
121268
119513
  visitorsDeduplicatedPerUtcDay: number;
121269
119514
  }
121270
119515
  export interface TrackingReportsRevenueBySourceInput {
121271
119516
  /**
121272
- * Cohort window end (ISO). Optional — defaults to the moment of the call.
119517
+ * Cohort window end (ISO)
121273
119518
  */
121274
- to?: string;
119519
+ to: string;
121275
119520
  /**
121276
- * Cohort window start (ISO); selects conversions by subscription start. Optional — defaults to 30 days back, the start of that UTC day.
119521
+ * Cohort window start (ISO); selects conversions by subscription start
121277
119522
  */
121278
- from?: string;
119523
+ from: string;
121279
119524
  /**
121280
119525
  * Attribution model
121281
119526
  */
@@ -121290,149 +119535,53 @@ export interface TrackingReportsRevenueBySourceInput {
121290
119535
  lookbackDays?: number;
121291
119536
  }
121292
119537
  export interface TrackingReportsRevenueBySourceOutput {
121293
- /**
121294
- * End of the cohort window the figures cover, echoed back (ISO 8601, UTC).
121295
- */
121296
119538
  to: string;
121297
- /**
121298
- * Start of the cohort window the figures cover, echoed back (ISO 8601, UTC).
121299
- */
121300
119539
  from: string;
121301
- /**
121302
- * Attribution model the credit was assigned under, echoed back. Pass the same value to `tracking_reports_source_people` to drill into a row.
121303
- */
121304
119540
  model: ("last_click" | "first_click");
121305
- /**
121306
- * Site touchpoints were restricted to; null when every site of the product was considered.
121307
- */
121308
119541
  domain: (string | null);
121309
- /**
121310
- * Every channel plus `unattributed`. This is the whole window, not the attributed part of it.
121311
- */
121312
119542
  totals: {
121313
- /**
121314
- * Revenue over every channel plus `unattributed`, one row per currency.
121315
- */
121316
119543
  revenue: TrackingReportsRevenueBySourceOutputItems[];
121317
- /**
121318
- * Distinct paying people over every channel plus `unattributed`.
121319
- */
121320
119544
  customers: number;
121321
119545
  };
121322
- /**
121323
- * One row per channel that earned revenue in the window. Channels with none are omitted.
121324
- */
121325
119546
  channels: {
121326
- /**
121327
- * Which acquisition channel this row aggregates.
121328
- */
121329
119547
  channel: ("paid" | "organic" | "direct" | "email");
121330
- /**
121331
- * Revenue credited to this channel, one row per currency, ordered by currency code. Currencies are never summed, so there is no single figure here: a product trading in two currencies has two rows and both must be reported.
121332
- */
121333
119548
  revenue: TrackingReportsRevenueBySourceOutputItems[];
121334
- /**
121335
- * Distinct paying people credited to this channel.
121336
- */
121337
119549
  customers: number;
121338
- /**
121339
- * The channel split by UTM combination. Each row is a drill-down target for `tracking_reports_source_people`.
121340
- */
121341
119550
  utmBreakdown: {
121342
- /**
121343
- * Revenue credited to this UTM combination, one row per currency.
121344
- */
121345
119551
  revenue: TrackingReportsRevenueBySourceOutputItems[];
121346
- /**
121347
- * Distinct paying people credited to this UTM combination.
121348
- */
121349
119552
  customers: number;
121350
- /**
121351
- * utm_medium of this row; null when the visit carried none.
121352
- */
121353
119553
  utmMedium: (string | null);
121354
- /**
121355
- * utm_source of this row; null when the visit carried none.
121356
- */
121357
119554
  utmSource: (string | null);
121358
- /**
121359
- * Ad-network click id present on the visit, e.g. 'gclid'; null when it carried none.
121360
- */
121361
119555
  clickIdType: (string | null);
121362
- /**
121363
- * utm_campaign of this row; null when the visit carried none.
121364
- */
121365
119556
  utmCampaign: (string | null);
121366
119557
  }[];
121367
119558
  }[];
121368
- /**
121369
- * Fraction of paying people (0..1) a touchpoint could be found for: attributed customers over `totals.customers`. Count-based, never revenue-weighted.
121370
- */
121371
119559
  matchRate: number;
121372
- /**
121373
- * When this report was computed (ISO 8601, UTC).
121374
- */
121375
119560
  computedAt: string;
121376
- /**
121377
- * How far back before a conversion a touchpoint was allowed to be credited, in days; echoed back.
121378
- */
121379
119561
  lookbackDays: number;
121380
- /**
121381
- * Revenue that reached no channel — kept as its own row so the channel rows are never quietly inflated to cover it.
121382
- */
121383
119562
  unattributed: {
121384
- /**
121385
- * Revenue no touchpoint could be credited for, one row per currency.
121386
- */
121387
119563
  revenue: TrackingReportsRevenueBySourceOutputItems[];
121388
- /**
121389
- * Distinct paying people no touchpoint could be credited for.
121390
- */
121391
119564
  customers: number;
121392
119565
  };
121393
119566
  }
121394
119567
  export interface TrackingReportsRevenueBySourceOutputItems {
121395
- /**
121396
- * ISO 4217 code the amounts below are denominated in, e.g. EUR.
121397
- */
121398
119568
  currency: string;
121399
- /**
121400
- * `grossMinor` minus `refundedMinor`, in minor units of `currency`. This is the figure to report.
121401
- */
121402
119569
  netMinor: number;
121403
- /**
121404
- * Billed amount before refunds, in minor units of `currency` (cents for EUR).
121405
- */
121406
119570
  grossMinor: number;
121407
- /**
121408
- * Amount refunded out of `grossMinor`, in minor units of `currency`.
121409
- */
121410
119571
  refundedMinor: number;
121411
119572
  }
121412
119573
  export interface TrackingReportsSourcePeopleInput {
121413
- /**
121414
- * Cohort window end (ISO); must match the report this row came from. Optional — defaults to the moment of the call.
121415
- */
121416
- to?: string;
121417
- /**
121418
- * Cohort window start (ISO); must match the report this row came from. Optional — defaults to 30 days back, the start of that UTC day.
121419
- */
121420
- from?: string;
119574
+ to: string;
119575
+ from: string;
121421
119576
  /**
121422
119577
  * People per page (default 50, max 200)
121423
119578
  */
121424
119579
  limit?: number;
121425
- /**
121426
- * Attribution model to credit the touchpoint under; must match the report this row came from (default 'last_click').
121427
- */
121428
119580
  model?: ("last_click" | "first_click");
121429
119581
  /**
121430
119582
  * Opaque keyset cursor from a previous page
121431
119583
  */
121432
119584
  cursor?: string;
121433
- /**
121434
- * Only consider touchpoints on this domain; must match the report this row came from. Omit for no restriction.
121435
- */
121436
119585
  domain?: string;
121437
119586
  /**
121438
119587
  * Channel to drill into
@@ -121442,71 +119591,26 @@ export interface TrackingReportsSourcePeopleInput {
121442
119591
  * Comma-separated dimension names (utmSource,utmMedium,utmCampaign,clickIdType) that must be IS NULL
121443
119592
  */
121444
119593
  utmNulls?: string;
121445
- /**
121446
- * utm_medium of the breakdown row to drill into. Omit for no filter; to match the IS-NULL row, list it in utmNulls instead.
121447
- */
121448
119594
  utmMedium?: string;
121449
- /**
121450
- * utm_source of the breakdown row to drill into. Omit for no filter; to match the IS-NULL row, list it in utmNulls instead.
121451
- */
121452
119595
  utmSource?: string;
121453
119596
  /**
121454
119597
  * Native click-id type of the breakdown row to drill into (e.g. 'gclid'). Tri-state: omit for no filter (all click ids), pass a value to match it, or list 'clickIdType' in utmNulls to match the IS-NULL row.
121455
119598
  */
121456
119599
  clickIdType?: string;
121457
- /**
121458
- * utm_campaign of the breakdown row to drill into. Omit for no filter; to match the IS-NULL row, list it in utmNulls instead.
121459
- */
121460
119600
  utmCampaign?: string;
121461
- /**
121462
- * How far back before a conversion a touchpoint may be credited, in days; must match the report this row came from (default 30).
121463
- */
121464
119601
  lookbackDays?: number;
121465
119602
  }
121466
119603
  export interface TrackingReportsSourcePeopleOutput {
121467
- /**
121468
- * Pass back as `cursor` for the next page. Null on the last page.
121469
- */
121470
119604
  cursor: (string | null);
121471
- /**
121472
- * The page of people behind the requested row, ordered by the keyset the cursor walks.
121473
- */
121474
119605
  people: {
121475
- /**
121476
- * Where this person stands in their subscription lifecycle, e.g. active or churned.
121477
- */
121478
119606
  status: string;
121479
- /**
121480
- * Identifier of this person; pass it to `tracking_reports_attributed_journey` to see why they were credited here.
121481
- */
121482
119607
  profileId: string;
121483
- /**
121484
- * Most recent tracked activity for this person (ISO 8601, UTC); null when none was recorded.
121485
- */
121486
119608
  lastSeenAt: (string | null);
121487
- /**
121488
- * Earliest tracked activity for this person (ISO 8601, UTC); null when none was recorded.
121489
- */
121490
119609
  firstSeenAt: (string | null);
121491
- /**
121492
- * Lifetime revenue credited to this person under the requested model, one row per currency.
121493
- */
121494
119610
  attributedRevenue: {
121495
- /**
121496
- * ISO 4217 code the amounts below are denominated in, e.g. EUR.
121497
- */
121498
119611
  currency: string;
121499
- /**
121500
- * `grossMinor` minus `refundedMinor`, in minor units of `currency`. This is the figure to report.
121501
- */
121502
119612
  netMinor: number;
121503
- /**
121504
- * Billed amount before refunds, in minor units of `currency` (cents for EUR).
121505
- */
121506
119613
  grossMinor: number;
121507
- /**
121508
- * Amount refunded out of `grossMinor`, in minor units of `currency`.
121509
- */
121510
119614
  refundedMinor: number;
121511
119615
  }[];
121512
119616
  }[];
@@ -121514,21 +119618,9 @@ export interface TrackingReportsSourcePeopleOutput {
121514
119618
  export interface TrackingSnippetsGetInput {
121515
119619
  }
121516
119620
  export interface TrackingSnippetsGetOutput {
121517
- /**
121518
- * Tracking host the snippet sends to — the customer-facing domain events and the bundle are served from.
121519
- */
121520
119621
  host: string;
121521
- /**
121522
- * The tag to paste into every page, verbatim, before </head>. Includes the consent-aware bootstrap; install it unconditionally rather than behind a consent gate.
121523
- */
121524
119622
  snippet: string;
121525
- /**
121526
- * Absolute URL of the tracker bundle the snippet loads; already points at this product's own tracking host.
121527
- */
121528
119623
  scriptUrl: string;
121529
- /**
121530
- * The same tag stripped to the bare script element, for tag managers and CMS fields that reject anything else. Behaves identically; use it only when the full snippet will not fit.
121531
- */
121532
119624
  minimalSnippet: string;
121533
119625
  }
121534
119626
  export interface UsersApikeysCreateInput {
@@ -121542,106 +119634,25 @@ export interface UsersApikeysCreateInput {
121542
119634
  type: ("server" | "publishable");
121543
119635
  }
121544
119636
  export interface UsersApikeysCreateOutput {
121545
- /**
121546
- * Id of the key. Pass it to users_apikeys_revoke.
121547
- */
121548
119637
  id: string;
121549
- /**
121550
- * The full secret key, shown ONCE. Store it now — it is never returned again, and a lost key is replaced by minting a new one.
121551
- */
121552
119638
  key: string;
121553
- /**
121554
- * The label a human gave this key — which backend or environment holds it.
121555
- */
121556
- name: string;
121557
- /**
121558
- * `server` for a secret backend key (usk_…), `publishable` for a browser-safe one (upk_…).
121559
- */
121560
- type: ("server" | "publishable");
121561
- /**
121562
- * The full value of a publishable key, which is not a secret. Null for a server key — that value exists in exactly one response, ever.
121563
- */
121564
- value: (string | null);
121565
- /**
121566
- * `usk_`/`upk_` plus six characters — enough to recognise a key, never to use one.
121567
- */
121568
- prefix: string;
121569
- /**
121570
- * When the key was issued (ISO 8601).
121571
- */
121572
- createdAt: string;
121573
- /**
121574
- * When the key was revoked (ISO 8601). Null while it still works.
121575
- */
121576
- revokedAt: (string | null);
121577
- }
121578
- export interface UsersApikeysGetInput {
121579
- /**
121580
- * Id of the key to read — the `id` from users_apikeys_list.
121581
- */
121582
- id: string;
121583
- }
121584
- export interface UsersApikeysGetOutput {
121585
- /**
121586
- * Id of the key. Pass it to users_apikeys_revoke.
121587
- */
121588
- id: string;
121589
- /**
121590
- * The label a human gave this key — which backend or environment holds it.
121591
- */
121592
119639
  name: string;
121593
- /**
121594
- * `server` for a secret backend key (usk_…), `publishable` for a browser-safe one (upk_…).
121595
- */
121596
119640
  type: ("server" | "publishable");
121597
- /**
121598
- * The full value of a publishable key, which is not a secret. Null for a server key — that value exists in exactly one response, ever.
121599
- */
121600
119641
  value: (string | null);
121601
- /**
121602
- * `usk_`/`upk_` plus six characters — enough to recognise a key, never to use one.
121603
- */
121604
119642
  prefix: string;
121605
- /**
121606
- * When the key was issued (ISO 8601).
121607
- */
121608
119643
  createdAt: string;
121609
- /**
121610
- * When the key was revoked (ISO 8601). Null while it still works.
121611
- */
121612
119644
  revokedAt: (string | null);
121613
119645
  }
121614
119646
  export interface UsersApikeysListInput {
121615
119647
  }
121616
119648
  export interface UsersApikeysListOutput {
121617
119649
  keys: {
121618
- /**
121619
- * Id of the key. Pass it to users_apikeys_revoke.
121620
- */
121621
119650
  id: string;
121622
- /**
121623
- * The label a human gave this key — which backend or environment holds it.
121624
- */
121625
119651
  name: string;
121626
- /**
121627
- * `server` for a secret backend key (usk_…), `publishable` for a browser-safe one (upk_…).
121628
- */
121629
119652
  type: ("server" | "publishable");
121630
- /**
121631
- * The full value of a publishable key, which is not a secret. Null for a server key — that value exists in exactly one response, ever.
121632
- */
121633
119653
  value: (string | null);
121634
- /**
121635
- * `usk_`/`upk_` plus six characters — enough to recognise a key, never to use one.
121636
- */
121637
119654
  prefix: string;
121638
- /**
121639
- * When the key was issued (ISO 8601).
121640
- */
121641
119655
  createdAt: string;
121642
- /**
121643
- * When the key was revoked (ISO 8601). Null while it still works.
121644
- */
121645
119656
  revokedAt: (string | null);
121646
119657
  }[];
121647
119658
  }
@@ -121652,13 +119663,7 @@ export interface UsersApikeysRevokeInput {
121652
119663
  id: string;
121653
119664
  }
121654
119665
  export interface UsersApikeysRevokeOutput {
121655
- /**
121656
- * Id of the key that was revoked.
121657
- */
121658
119666
  id: string;
121659
- /**
121660
- * Always true — revocation is immediate and final.
121661
- */
121662
119667
  revoked: true;
121663
119668
  }
121664
119669
  export interface UsersAuditListInput {
@@ -121692,60 +119697,21 @@ export interface UsersAuditListInput {
121692
119697
  targetType?: string;
121693
119698
  }
121694
119699
  export interface UsersAuditListOutput {
121695
- /**
121696
- * The page of audit events, newest first.
121697
- */
121698
119700
  events: {
121699
- /**
121700
- * Id of this audit row.
121701
- */
121702
119701
  id: string;
121703
- /**
121704
- * IP the action came from. Null when it was not an HTTP action.
121705
- */
121706
119702
  ip: (string | null);
121707
- /**
121708
- * What happened, as a dotted name — `user.created`, `passkey.deleted`, `email_change.override_applied`.
121709
- */
121710
119703
  action: string;
121711
- /**
121712
- * Id of the actor. Null for a system action.
121713
- */
121714
119704
  actorId: (string | null);
121715
- /**
121716
- * Action-specific detail — the reason text, counts, whatever the action recorded.
121717
- */
121718
119705
  metadata: {
121719
119706
  [k: string]: unknown;
121720
- };
121721
- /**
121722
- * Id of the row the action was about. Null when there was none.
121723
- */
119707
+ };
121724
119708
  targetId: (string | null);
121725
- /**
121726
- * Who acted: `operator` (a human or agent on the management plane), `end_user`, or `system`.
121727
- */
121728
119709
  actorType: ("operator" | "system" | "end_user");
121729
- /**
121730
- * When the action happened (ISO 8601).
121731
- */
121732
119710
  createdAt: string;
121733
- /**
121734
- * Product the audited action happened in.
121735
- */
121736
119711
  productId: string;
121737
- /**
121738
- * User agent the action came from. Null when none was sent.
121739
- */
121740
119712
  userAgent: (string | null);
121741
- /**
121742
- * What kind of row the action was about — `user` or `product`. Null when it was about nothing in particular.
121743
- */
121744
119713
  targetType: (string | null);
121745
119714
  }[];
121746
- /**
121747
- * Pass back as `cursor` to fetch the next page. Null when this page is the last.
121748
- */
121749
119715
  nextCursor: (string | null);
121750
119716
  }
121751
119717
  export interface UsersConfigGetInput {
@@ -122721,33 +120687,12 @@ export interface UsersFactorsListInput {
122721
120687
  userId: string;
122722
120688
  }
122723
120689
  export interface UsersFactorsListOutput {
122724
- /**
122725
- * Every second factor this user has — types and status only, never material.
122726
- */
122727
120690
  factors: {
122728
- /**
122729
- * Kind of second factor: `totp` or `backup_codes`. No key material is ever returned.
122730
- */
122731
120691
  type: ("totp" | "backup_codes" | "webauthn");
122732
- /**
122733
- * Whether this factor is enrolled and usable, or still pending verification.
122734
- */
122735
120692
  status: ("unverified" | "verified");
122736
- /**
122737
- * When the factor was enrolled (ISO 8601).
122738
- */
122739
120693
  createdAt: string;
122740
- /**
122741
- * `backup_codes` only: how many of the batch are still unspent. Null for any other factor type.
122742
- */
122743
120694
  remaining: (number | null);
122744
- /**
122745
- * When the factor was last used to sign in (ISO 8601). Null if it never was.
122746
- */
122747
120695
  lastUsedAt: (string | null);
122748
- /**
122749
- * When the user first proved the factor works (ISO 8601). Null while it is unverified.
122750
- */
122751
120696
  verifiedAt: (string | null);
122752
120697
  }[];
122753
120698
  }
@@ -122762,13 +120707,7 @@ export interface UsersFactorsResetInput {
122762
120707
  userId: string;
122763
120708
  }
122764
120709
  export interface UsersFactorsResetOutput {
122765
- /**
122766
- * Id of the scheduled reset. The same value arrives on `users/mfa.reset-settled`, which is what finishes this step.
122767
- */
122768
120710
  requestId: string;
122769
- /**
122770
- * When the removal happens, if nobody aborts it first (ISO 8601). The delay is this product's, not a fixed one.
122771
- */
122772
120711
  scheduledFor: string;
122773
120712
  }
122774
120713
  export interface UsersKeysListInput {
@@ -123049,50 +120988,6 @@ export interface UsersOpsSloGetOutput {
123049
120988
  signInFailureBaseline: (number | null);
123050
120989
  };
123051
120990
  }
123052
- export interface UsersPasskeysGetInput {
123053
- /**
123054
- * The end user the credential belongs to.
123055
- */
123056
- userId: string;
123057
- /**
123058
- * Which credential to read — the `id` from `users_passkeys_list`.
123059
- */
123060
- passkeyId: string;
123061
- }
123062
- export interface UsersPasskeysGetOutput {
123063
- /**
123064
- * Id of the credential. Pass it to users_passkeys_revoke.
123065
- */
123066
- id: string;
123067
- /**
123068
- * The name the user gave this credential, so a person can tell their devices apart. Null when they never named it.
123069
- */
123070
- name: (string | null);
123071
- /**
123072
- * The authenticator MODEL’s identifier, which says what kind of device this is, never which one. Null when the authenticator withheld it.
123073
- */
123074
- aaguid: (string | null);
123075
- /**
123076
- * True when the platform syncs this credential, so it survives losing the device. False means it lives on that device alone.
123077
- */
123078
- backedUp: boolean;
123079
- /**
123080
- * When the credential was registered (ISO 8601).
123081
- */
123082
- createdAt: string;
123083
- /**
123084
- * The authenticator’s own counter as of the last assertion. 0 when the authenticator does not count.
123085
- */
123086
- signCount: number;
123087
- /**
123088
- * When it last signed in (ISO 8601). Null when it never has.
123089
- */
123090
- lastUsedAt: (string | null);
123091
- /**
123092
- * How this authenticator can be reached. Empty when the browser reported nothing — the vocabulary is the platform’s and grows, so it is not an enum.
123093
- */
123094
- transports: string[];
123095
- }
123096
120991
  export interface UsersPasskeysListInput {
123097
120992
  /**
123098
120993
  * The end user whose passkeys to list.
@@ -123100,41 +120995,14 @@ export interface UsersPasskeysListInput {
123100
120995
  userId: string;
123101
120996
  }
123102
120997
  export interface UsersPasskeysListOutput {
123103
- /**
123104
- * The credentials this user has registered, newest first. Empty when they have none.
123105
- */
123106
120998
  passkeys: {
123107
- /**
123108
- * Id of the credential. Pass it to users_passkeys_revoke.
123109
- */
123110
120999
  id: string;
123111
- /**
123112
- * The name the user gave this credential, so a person can tell their devices apart. Null when they never named it.
123113
- */
123114
121000
  name: (string | null);
123115
- /**
123116
- * The authenticator MODEL’s identifier, which says what kind of device this is, never which one. Null when the authenticator withheld it.
123117
- */
123118
121001
  aaguid: (string | null);
123119
- /**
123120
- * True when the platform syncs this credential, so it survives losing the device. False means it lives on that device alone.
123121
- */
123122
121002
  backedUp: boolean;
123123
- /**
123124
- * When the credential was registered (ISO 8601).
123125
- */
123126
121003
  createdAt: string;
123127
- /**
123128
- * The authenticator’s own counter as of the last assertion. 0 when the authenticator does not count.
123129
- */
123130
121004
  signCount: number;
123131
- /**
123132
- * When it last signed in (ISO 8601). Null when it never has.
123133
- */
123134
121005
  lastUsedAt: (string | null);
123135
- /**
123136
- * How this authenticator can be reached. Empty when the browser reported nothing — the vocabulary is the platform’s and grows, so it is not an enum.
123137
- */
123138
121006
  transports: string[];
123139
121007
  }[];
123140
121008
  }
@@ -123157,18 +121025,9 @@ export interface UsersPasskeysRevokeOutput {
123157
121025
  * Present when the revoke was refused — today, only because it was the last way in.
123158
121026
  */
123159
121027
  error: ({
123160
- /**
123161
- * Why it was refused. Today only `passkey_last_way_in`.
123162
- */
123163
121028
  code: string;
123164
- /**
123165
- * The refusal in a sentence, safe to show a human.
123166
- */
123167
121029
  message: string;
123168
121030
  } | null);
123169
- /**
123170
- * `deleted` when the credential is gone, `failed` when the revoke was refused.
123171
- */
123172
121031
  status: ("deleted" | "failed");
123173
121032
  }
123174
121033
  export interface UsersSessionsGetInput {
@@ -123178,13 +121037,7 @@ export interface UsersSessionsGetInput {
123178
121037
  sessionId: string;
123179
121038
  }
123180
121039
  export interface UsersSessionsGetOutput {
123181
- /**
123182
- * Id of this session. Pass it to users_sessions_revoke.
123183
- */
123184
121040
  id: string;
123185
- /**
123186
- * IP the session was opened from. Null when it was not recorded.
123187
- */
123188
121041
  ip: (string | null);
123189
121042
  /**
123190
121043
  * `aal2` only if a verified second factor completed.
@@ -123194,45 +121047,18 @@ export interface UsersSessionsGetOutput {
123194
121047
  * The factors this session was established with.
123195
121048
  */
123196
121049
  amr: string[];
123197
- /**
123198
- * Whether the session is still usable, expired, or revoked.
123199
- */
123200
121050
  status: ("active" | "revoked");
123201
- /**
123202
- * The end user this session belongs to.
123203
- */
123204
121051
  userId: string;
123205
- /**
123206
- * When the session was opened (ISO 8601).
123207
- */
123208
121052
  createdAt: string;
123209
- /**
123210
- * When the current token stops working unless refreshed (ISO 8601).
123211
- */
123212
121053
  expiresAt: string;
123213
- /**
123214
- * When the session was revoked (ISO 8601). Null while it is live.
123215
- */
123216
121054
  revokedAt: (string | null);
123217
- /**
123218
- * User agent the session was opened from. Null when none was sent.
123219
- */
123220
121055
  userAgent: (string | null);
123221
- /**
123222
- * Why the session ended, when it was revoked — e.g. `signout`, `ban`, `mfa_reset`. Null while it is live. The vocabulary is additive, so it is not an enum.
123223
- */
123224
121056
  revokedReason: (string | null);
123225
121057
  /**
123226
121058
  * The operator behind an impersonated session, or null for an ordinary one.
123227
121059
  */
123228
121060
  impersonatedBy: (string | null);
123229
- /**
123230
- * When the session last refreshed its tokens (ISO 8601). Null if it never has.
123231
- */
123232
121061
  lastRefreshedAt: (string | null);
123233
- /**
123234
- * When the session ends no matter how often it refreshes (ISO 8601).
123235
- */
123236
121062
  absoluteExpiresAt: string;
123237
121063
  }
123238
121064
  export interface UsersSessionsImpersonateInput {
@@ -123268,49 +121094,16 @@ export interface UsersSessionsListInput {
123268
121094
  userId: string;
123269
121095
  }
123270
121096
  export interface UsersSessionsListOutput {
123271
- /**
123272
- * The sessions matching the filter, newest first.
123273
- */
123274
121097
  sessions: {
123275
- /**
123276
- * Id of this session. Pass it to users_sessions_revoke.
123277
- */
123278
121098
  id: string;
123279
- /**
123280
- * IP the session was opened from. Null when it was not recorded.
123281
- */
123282
121099
  ip: (string | null);
123283
- /**
123284
- * Whether the session is still usable, expired, or revoked.
123285
- */
123286
121100
  status: ("active" | "revoked");
123287
- /**
123288
- * The end user this session belongs to.
123289
- */
123290
121101
  userId: string;
123291
- /**
123292
- * When the session was opened (ISO 8601).
123293
- */
123294
121102
  createdAt: string;
123295
- /**
123296
- * When the current token stops working unless refreshed (ISO 8601).
123297
- */
123298
121103
  expiresAt: string;
123299
- /**
123300
- * When the session was revoked (ISO 8601). Null while it is live.
123301
- */
123302
121104
  revokedAt: (string | null);
123303
- /**
123304
- * User agent the session was opened from. Null when none was sent.
123305
- */
123306
121105
  userAgent: (string | null);
123307
- /**
123308
- * When the session last refreshed its tokens (ISO 8601). Null if it never has.
123309
- */
123310
121106
  lastRefreshedAt: (string | null);
123311
- /**
123312
- * When the session ends no matter how often it refreshes (ISO 8601).
123313
- */
123314
121107
  absoluteExpiresAt: string;
123315
121108
  }[];
123316
121109
  }
@@ -123325,9 +121118,6 @@ export interface UsersSessionsRevokeInput {
123325
121118
  sessionId?: string;
123326
121119
  }
123327
121120
  export interface UsersSessionsRevokeOutput {
123328
- /**
123329
- * How many sessions were revoked. Zero when there was nothing live to revoke.
123330
- */
123331
121121
  revoked: number;
123332
121122
  }
123333
121123
  export interface UsersStatsGetInput {
@@ -123450,126 +121240,37 @@ export interface UsersUsersBanInput {
123450
121240
  userId: string;
123451
121241
  }
123452
121242
  export interface UsersUsersBanOutput {
123453
- /**
123454
- * Id of this end user. Pass it to any users_users_* tool.
123455
- */
123456
121243
  id: string;
123457
- /**
123458
- * The user's display name. Null when nobody set one.
123459
- */
123460
121244
  name: (string | null);
123461
- /**
123462
- * When the user was banned (ISO 8601). Null while they are not banned.
123463
- */
123464
121245
  bannedAt: (string | null);
123465
- /**
123466
- * When this user's personal data was purged for good (ISO 8601). Null while it is intact.
123467
- */
123468
121246
  erasedAt: (string | null);
123469
- /**
123470
- * URL of the user's avatar. Null when there is none.
123471
- */
123472
121247
  imageUrl: (string | null);
123473
- /**
123474
- * Whether this is a test fixture — excluded from metering and from the default listing.
123475
- */
123476
121248
  testUser: boolean;
123477
- /**
123478
- * When the user was created (ISO 8601).
123479
- */
123480
121249
  createdAt: string;
123481
- /**
123482
- * When the user was soft-deleted (ISO 8601). Null while the account is live.
123483
- */
123484
121250
  deletedAt: (string | null);
123485
- /**
123486
- * Product this user belongs to. Never an input — it comes from the calling identity.
123487
- */
123488
121251
  productId: string;
123489
- /**
123490
- * When the user was last changed (ISO 8601).
123491
- */
123492
121252
  updatedAt: string;
123493
- /**
123494
- * Whether this user is still on the waitlist and cannot sign in yet.
123495
- */
123496
121253
  waitlisted: boolean;
123497
- /**
123498
- * Every identifier of this user, the primary one flagged. To bind the primary address itself, use `primaryEmail` — `identifiers.0` means "the first", not "the primary".
123499
- */
123500
121254
  identifiers: {
123501
- /**
123502
- * Id of this identifier row.
123503
- */
123504
121255
  id: string;
123505
- /**
123506
- * What kind of identifier this is. Today always `email`.
123507
- */
123508
121256
  type: "email";
123509
- /**
123510
- * The address as the user typed it, for display.
123511
- */
123512
121257
  value: string;
123513
- /**
123514
- * Whether this is the identifier the user signs in with and is contacted at.
123515
- */
123516
121258
  isPrimary: boolean;
123517
- /**
123518
- * When this address was verified (ISO 8601). Null while it never was.
123519
- */
123520
121259
  verifiedAt: (string | null);
123521
- /**
123522
- * The address lowercased and NFC-normalised — what uniqueness is checked against.
123523
- */
123524
121260
  valueCanonical: string;
123525
- /**
123526
- * `unverified`, `verified`, or `expired` when a verification link ran out before it was used.
123527
- */
123528
121261
  verificationStatus: ("unverified" | "verified" | "expired");
123529
121262
  }[];
123530
- /**
123531
- * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
123532
- */
123533
121263
  lockedUntil: (string | null);
123534
- /**
123535
- * When the user last signed in (ISO 8601). Null if they never have.
123536
- */
123537
121264
  lastSignInAt: (string | null);
123538
- /**
123539
- * The user's primary email address, as typed. Null when they have no primary identifier. Bind this rather than `identifiers.0.value`.
123540
- */
123541
- primaryEmail: (string | null);
123542
- /**
123543
- * Whether the user must set a new password at their next sign-in.
123544
- */
123545
121265
  requiresReset: boolean;
123546
- /**
123547
- * Metadata the end user may read; the only bag projected into their access token. Capped at 1.2 KB.
123548
- */
123549
- publicMetadata: {
123550
- [k: string]: unknown;
123551
- };
123552
- /**
123553
- * Metadata the end user may write themselves. Treat it as untrusted.
123554
- */
123555
- unsafeMetadata: {
123556
- [k: string]: unknown;
123557
- };
123558
- /**
123559
- * Metadata for the management plane only. Never reaches the end user or a token.
123560
- */
123561
- privateMetadata: {
123562
- [k: string]: unknown;
123563
- };
123564
- /**
123565
- * Id of the primary identifier row. Null when there is no primary identifier.
123566
- */
123567
- primaryIdentifierId: (string | null);
123568
- /**
123569
- * Until this instant the user may not start another email change, because somebody reverted one (ISO 8601). Null for a user who never reverted one.
123570
- */
121266
+ publicMetadata: UsersUsersBanOutputPublicMetadata;
121267
+ unsafeMetadata: UsersUsersBanOutputPublicMetadata;
121268
+ privateMetadata: UsersUsersBanOutputPublicMetadata;
123571
121269
  emailChangeLockedUntil: (string | null);
123572
121270
  }
121271
+ export interface UsersUsersBanOutputPublicMetadata {
121272
+ [k: string]: unknown;
121273
+ }
123573
121274
  export interface UsersUsersCreateInput {
123574
121275
  /**
123575
121276
  * The user's display name.
@@ -123673,126 +121374,37 @@ export interface UsersUsersCreateInputPublicMetadata1 {
123673
121374
  [k: string]: unknown;
123674
121375
  }
123675
121376
  export interface UsersUsersCreateOutput {
123676
- /**
123677
- * Id of this end user. Pass it to any users_users_* tool.
123678
- */
123679
121377
  id: string;
123680
- /**
123681
- * The user's display name. Null when nobody set one.
123682
- */
123683
121378
  name: (string | null);
123684
- /**
123685
- * When the user was banned (ISO 8601). Null while they are not banned.
123686
- */
123687
121379
  bannedAt: (string | null);
123688
- /**
123689
- * When this user's personal data was purged for good (ISO 8601). Null while it is intact.
123690
- */
123691
121380
  erasedAt: (string | null);
123692
- /**
123693
- * URL of the user's avatar. Null when there is none.
123694
- */
123695
121381
  imageUrl: (string | null);
123696
- /**
123697
- * Whether this is a test fixture — excluded from metering and from the default listing.
123698
- */
123699
121382
  testUser: boolean;
123700
- /**
123701
- * When the user was created (ISO 8601).
123702
- */
123703
121383
  createdAt: string;
123704
- /**
123705
- * When the user was soft-deleted (ISO 8601). Null while the account is live.
123706
- */
123707
121384
  deletedAt: (string | null);
123708
- /**
123709
- * Product this user belongs to. Never an input — it comes from the calling identity.
123710
- */
123711
121385
  productId: string;
123712
- /**
123713
- * When the user was last changed (ISO 8601).
123714
- */
123715
121386
  updatedAt: string;
123716
- /**
123717
- * Whether this user is still on the waitlist and cannot sign in yet.
123718
- */
123719
121387
  waitlisted: boolean;
123720
- /**
123721
- * Every identifier of this user, the primary one flagged. To bind the primary address itself, use `primaryEmail` — `identifiers.0` means "the first", not "the primary".
123722
- */
123723
121388
  identifiers: {
123724
- /**
123725
- * Id of this identifier row.
123726
- */
123727
121389
  id: string;
123728
- /**
123729
- * What kind of identifier this is. Today always `email`.
123730
- */
123731
121390
  type: "email";
123732
- /**
123733
- * The address as the user typed it, for display.
123734
- */
123735
121391
  value: string;
123736
- /**
123737
- * Whether this is the identifier the user signs in with and is contacted at.
123738
- */
123739
121392
  isPrimary: boolean;
123740
- /**
123741
- * When this address was verified (ISO 8601). Null while it never was.
123742
- */
123743
121393
  verifiedAt: (string | null);
123744
- /**
123745
- * The address lowercased and NFC-normalised — what uniqueness is checked against.
123746
- */
123747
121394
  valueCanonical: string;
123748
- /**
123749
- * `unverified`, `verified`, or `expired` when a verification link ran out before it was used.
123750
- */
123751
121395
  verificationStatus: ("unverified" | "verified" | "expired");
123752
121396
  }[];
123753
- /**
123754
- * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
123755
- */
123756
121397
  lockedUntil: (string | null);
123757
- /**
123758
- * When the user last signed in (ISO 8601). Null if they never have.
123759
- */
123760
121398
  lastSignInAt: (string | null);
123761
- /**
123762
- * The user's primary email address, as typed. Null when they have no primary identifier. Bind this rather than `identifiers.0.value`.
123763
- */
123764
- primaryEmail: (string | null);
123765
- /**
123766
- * Whether the user must set a new password at their next sign-in.
123767
- */
123768
- requiresReset: boolean;
123769
- /**
123770
- * Metadata the end user may read; the only bag projected into their access token. Capped at 1.2 KB.
123771
- */
123772
- publicMetadata: {
123773
- [k: string]: unknown;
123774
- };
123775
- /**
123776
- * Metadata the end user may write themselves. Treat it as untrusted.
123777
- */
123778
- unsafeMetadata: {
123779
- [k: string]: unknown;
123780
- };
123781
- /**
123782
- * Metadata for the management plane only. Never reaches the end user or a token.
123783
- */
123784
- privateMetadata: {
123785
- [k: string]: unknown;
123786
- };
123787
- /**
123788
- * Id of the primary identifier row. Null when there is no primary identifier.
123789
- */
123790
- primaryIdentifierId: (string | null);
123791
- /**
123792
- * Until this instant the user may not start another email change, because somebody reverted one (ISO 8601). Null for a user who never reverted one.
123793
- */
121399
+ requiresReset: boolean;
121400
+ publicMetadata: UsersUsersCreateOutputPublicMetadata;
121401
+ unsafeMetadata: UsersUsersCreateOutputPublicMetadata;
121402
+ privateMetadata: UsersUsersCreateOutputPublicMetadata;
123794
121403
  emailChangeLockedUntil: (string | null);
123795
121404
  }
121405
+ export interface UsersUsersCreateOutputPublicMetadata {
121406
+ [k: string]: unknown;
121407
+ }
123796
121408
  export interface UsersUsersDeleteInput {
123797
121409
  /**
123798
121410
  * The opaque user id returned by users_users_create or _list.
@@ -123800,126 +121412,37 @@ export interface UsersUsersDeleteInput {
123800
121412
  userId: string;
123801
121413
  }
123802
121414
  export interface UsersUsersDeleteOutput {
123803
- /**
123804
- * Id of this end user. Pass it to any users_users_* tool.
123805
- */
123806
121415
  id: string;
123807
- /**
123808
- * The user's display name. Null when nobody set one.
123809
- */
123810
121416
  name: (string | null);
123811
- /**
123812
- * When the user was banned (ISO 8601). Null while they are not banned.
123813
- */
123814
121417
  bannedAt: (string | null);
123815
- /**
123816
- * When this user's personal data was purged for good (ISO 8601). Null while it is intact.
123817
- */
123818
121418
  erasedAt: (string | null);
123819
- /**
123820
- * URL of the user's avatar. Null when there is none.
123821
- */
123822
121419
  imageUrl: (string | null);
123823
- /**
123824
- * Whether this is a test fixture — excluded from metering and from the default listing.
123825
- */
123826
121420
  testUser: boolean;
123827
- /**
123828
- * When the user was created (ISO 8601).
123829
- */
123830
121421
  createdAt: string;
123831
- /**
123832
- * When the user was soft-deleted (ISO 8601). Null while the account is live.
123833
- */
123834
121422
  deletedAt: (string | null);
123835
- /**
123836
- * Product this user belongs to. Never an input — it comes from the calling identity.
123837
- */
123838
121423
  productId: string;
123839
- /**
123840
- * When the user was last changed (ISO 8601).
123841
- */
123842
121424
  updatedAt: string;
123843
- /**
123844
- * Whether this user is still on the waitlist and cannot sign in yet.
123845
- */
123846
121425
  waitlisted: boolean;
123847
- /**
123848
- * Every identifier of this user, the primary one flagged. To bind the primary address itself, use `primaryEmail` — `identifiers.0` means "the first", not "the primary".
123849
- */
123850
121426
  identifiers: {
123851
- /**
123852
- * Id of this identifier row.
123853
- */
123854
121427
  id: string;
123855
- /**
123856
- * What kind of identifier this is. Today always `email`.
123857
- */
123858
121428
  type: "email";
123859
- /**
123860
- * The address as the user typed it, for display.
123861
- */
123862
121429
  value: string;
123863
- /**
123864
- * Whether this is the identifier the user signs in with and is contacted at.
123865
- */
123866
121430
  isPrimary: boolean;
123867
- /**
123868
- * When this address was verified (ISO 8601). Null while it never was.
123869
- */
123870
121431
  verifiedAt: (string | null);
123871
- /**
123872
- * The address lowercased and NFC-normalised — what uniqueness is checked against.
123873
- */
123874
121432
  valueCanonical: string;
123875
- /**
123876
- * `unverified`, `verified`, or `expired` when a verification link ran out before it was used.
123877
- */
123878
121433
  verificationStatus: ("unverified" | "verified" | "expired");
123879
121434
  }[];
123880
- /**
123881
- * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
123882
- */
123883
121435
  lockedUntil: (string | null);
123884
- /**
123885
- * When the user last signed in (ISO 8601). Null if they never have.
123886
- */
123887
121436
  lastSignInAt: (string | null);
123888
- /**
123889
- * The user's primary email address, as typed. Null when they have no primary identifier. Bind this rather than `identifiers.0.value`.
123890
- */
123891
- primaryEmail: (string | null);
123892
- /**
123893
- * Whether the user must set a new password at their next sign-in.
123894
- */
123895
121437
  requiresReset: boolean;
123896
- /**
123897
- * Metadata the end user may read; the only bag projected into their access token. Capped at 1.2 KB.
123898
- */
123899
- publicMetadata: {
123900
- [k: string]: unknown;
123901
- };
123902
- /**
123903
- * Metadata the end user may write themselves. Treat it as untrusted.
123904
- */
123905
- unsafeMetadata: {
123906
- [k: string]: unknown;
123907
- };
123908
- /**
123909
- * Metadata for the management plane only. Never reaches the end user or a token.
123910
- */
123911
- privateMetadata: {
123912
- [k: string]: unknown;
123913
- };
123914
- /**
123915
- * Id of the primary identifier row. Null when there is no primary identifier.
123916
- */
123917
- primaryIdentifierId: (string | null);
123918
- /**
123919
- * Until this instant the user may not start another email change, because somebody reverted one (ISO 8601). Null for a user who never reverted one.
123920
- */
121438
+ publicMetadata: UsersUsersDeleteOutputPublicMetadata;
121439
+ unsafeMetadata: UsersUsersDeleteOutputPublicMetadata;
121440
+ privateMetadata: UsersUsersDeleteOutputPublicMetadata;
123921
121441
  emailChangeLockedUntil: (string | null);
123922
121442
  }
121443
+ export interface UsersUsersDeleteOutputPublicMetadata {
121444
+ [k: string]: unknown;
121445
+ }
123923
121446
  export interface UsersUsersExportInput {
123924
121447
  /**
123925
121448
  * Rows per page, 1-500. Default 100.
@@ -123945,129 +121468,40 @@ export interface UsersUsersExportInput {
123945
121468
  export interface UsersUsersExportOutput {
123946
121469
  count: number;
123947
121470
  users: {
123948
- /**
123949
- * Id of this end user. Pass it to any users_users_* tool.
123950
- */
123951
121471
  id: string;
123952
- /**
123953
- * The user's display name. Null when nobody set one.
123954
- */
123955
121472
  name: (string | null);
123956
- /**
123957
- * When the user was banned (ISO 8601). Null while they are not banned.
123958
- */
123959
121473
  bannedAt: (string | null);
123960
- /**
123961
- * When this user's personal data was purged for good (ISO 8601). Null while it is intact.
123962
- */
123963
121474
  erasedAt: (string | null);
123964
- /**
123965
- * URL of the user's avatar. Null when there is none.
123966
- */
123967
121475
  imageUrl: (string | null);
123968
- /**
123969
- * Whether this is a test fixture — excluded from metering and from the default listing.
123970
- */
123971
121476
  testUser: boolean;
123972
- /**
123973
- * When the user was created (ISO 8601).
123974
- */
123975
121477
  createdAt: string;
123976
- /**
123977
- * When the user was soft-deleted (ISO 8601). Null while the account is live.
123978
- */
123979
121478
  deletedAt: (string | null);
123980
- /**
123981
- * Product this user belongs to. Never an input — it comes from the calling identity.
123982
- */
123983
121479
  productId: string;
123984
- /**
123985
- * When the user was last changed (ISO 8601).
123986
- */
123987
121480
  updatedAt: string;
123988
- /**
123989
- * Whether this user is still on the waitlist and cannot sign in yet.
123990
- */
123991
121481
  waitlisted: boolean;
123992
- /**
123993
- * Every identifier of this user, the primary one flagged. To bind the primary address itself, use `primaryEmail` — `identifiers.0` means "the first", not "the primary".
123994
- */
123995
121482
  identifiers: {
123996
- /**
123997
- * Id of this identifier row.
123998
- */
123999
121483
  id: string;
124000
- /**
124001
- * What kind of identifier this is. Today always `email`.
124002
- */
124003
121484
  type: "email";
124004
- /**
124005
- * The address as the user typed it, for display.
124006
- */
124007
121485
  value: string;
124008
- /**
124009
- * Whether this is the identifier the user signs in with and is contacted at.
124010
- */
124011
121486
  isPrimary: boolean;
124012
- /**
124013
- * When this address was verified (ISO 8601). Null while it never was.
124014
- */
124015
121487
  verifiedAt: (string | null);
124016
- /**
124017
- * The address lowercased and NFC-normalised — what uniqueness is checked against.
124018
- */
124019
121488
  valueCanonical: string;
124020
- /**
124021
- * `unverified`, `verified`, or `expired` when a verification link ran out before it was used.
124022
- */
124023
121489
  verificationStatus: ("unverified" | "verified" | "expired");
124024
121490
  }[];
124025
- /**
124026
- * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
124027
- */
124028
121491
  lockedUntil: (string | null);
124029
- /**
124030
- * When the user last signed in (ISO 8601). Null if they never have.
124031
- */
124032
121492
  lastSignInAt: (string | null);
124033
- /**
124034
- * The user's primary email address, as typed. Null when they have no primary identifier. Bind this rather than `identifiers.0.value`.
124035
- */
124036
- primaryEmail: (string | null);
124037
- /**
124038
- * Whether the user must set a new password at their next sign-in.
124039
- */
124040
121493
  requiresReset: boolean;
124041
- /**
124042
- * Metadata the end user may read; the only bag projected into their access token. Capped at 1.2 KB.
124043
- */
124044
- publicMetadata: {
124045
- [k: string]: unknown;
124046
- };
124047
- /**
124048
- * Metadata the end user may write themselves. Treat it as untrusted.
124049
- */
124050
- unsafeMetadata: {
124051
- [k: string]: unknown;
124052
- };
124053
- /**
124054
- * Metadata for the management plane only. Never reaches the end user or a token.
124055
- */
124056
- privateMetadata: {
124057
- [k: string]: unknown;
124058
- };
124059
- /**
124060
- * Id of the primary identifier row. Null when there is no primary identifier.
124061
- */
124062
- primaryIdentifierId: (string | null);
124063
- /**
124064
- * Until this instant the user may not start another email change, because somebody reverted one (ISO 8601). Null for a user who never reverted one.
124065
- */
121494
+ publicMetadata: UsersUsersExportOutputPublicMetadata;
121495
+ unsafeMetadata: UsersUsersExportOutputPublicMetadata;
121496
+ privateMetadata: UsersUsersExportOutputPublicMetadata;
124066
121497
  emailChangeLockedUntil: (string | null);
124067
121498
  }[];
124068
121499
  exportedAt: string;
124069
121500
  nextCursor: (string | null);
124070
121501
  }
121502
+ export interface UsersUsersExportOutputPublicMetadata {
121503
+ [k: string]: unknown;
121504
+ }
124071
121505
  export interface UsersUsersGetInput {
124072
121506
  /**
124073
121507
  * The opaque user id returned by users_users_create or _list.
@@ -124075,126 +121509,37 @@ export interface UsersUsersGetInput {
124075
121509
  userId: string;
124076
121510
  }
124077
121511
  export interface UsersUsersGetOutput {
124078
- /**
124079
- * Id of this end user. Pass it to any users_users_* tool.
124080
- */
124081
121512
  id: string;
124082
- /**
124083
- * The user's display name. Null when nobody set one.
124084
- */
124085
121513
  name: (string | null);
124086
- /**
124087
- * When the user was banned (ISO 8601). Null while they are not banned.
124088
- */
124089
121514
  bannedAt: (string | null);
124090
- /**
124091
- * When this user's personal data was purged for good (ISO 8601). Null while it is intact.
124092
- */
124093
121515
  erasedAt: (string | null);
124094
- /**
124095
- * URL of the user's avatar. Null when there is none.
124096
- */
124097
121516
  imageUrl: (string | null);
124098
- /**
124099
- * Whether this is a test fixture — excluded from metering and from the default listing.
124100
- */
124101
121517
  testUser: boolean;
124102
- /**
124103
- * When the user was created (ISO 8601).
124104
- */
124105
121518
  createdAt: string;
124106
- /**
124107
- * When the user was soft-deleted (ISO 8601). Null while the account is live.
124108
- */
124109
121519
  deletedAt: (string | null);
124110
- /**
124111
- * Product this user belongs to. Never an input — it comes from the calling identity.
124112
- */
124113
121520
  productId: string;
124114
- /**
124115
- * When the user was last changed (ISO 8601).
124116
- */
124117
121521
  updatedAt: string;
124118
- /**
124119
- * Whether this user is still on the waitlist and cannot sign in yet.
124120
- */
124121
121522
  waitlisted: boolean;
124122
- /**
124123
- * Every identifier of this user, the primary one flagged. To bind the primary address itself, use `primaryEmail` — `identifiers.0` means "the first", not "the primary".
124124
- */
124125
121523
  identifiers: {
124126
- /**
124127
- * Id of this identifier row.
124128
- */
124129
121524
  id: string;
124130
- /**
124131
- * What kind of identifier this is. Today always `email`.
124132
- */
124133
121525
  type: "email";
124134
- /**
124135
- * The address as the user typed it, for display.
124136
- */
124137
121526
  value: string;
124138
- /**
124139
- * Whether this is the identifier the user signs in with and is contacted at.
124140
- */
124141
121527
  isPrimary: boolean;
124142
- /**
124143
- * When this address was verified (ISO 8601). Null while it never was.
124144
- */
124145
121528
  verifiedAt: (string | null);
124146
- /**
124147
- * The address lowercased and NFC-normalised — what uniqueness is checked against.
124148
- */
124149
121529
  valueCanonical: string;
124150
- /**
124151
- * `unverified`, `verified`, or `expired` when a verification link ran out before it was used.
124152
- */
124153
121530
  verificationStatus: ("unverified" | "verified" | "expired");
124154
121531
  }[];
124155
- /**
124156
- * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
124157
- */
124158
121532
  lockedUntil: (string | null);
124159
- /**
124160
- * When the user last signed in (ISO 8601). Null if they never have.
124161
- */
124162
121533
  lastSignInAt: (string | null);
124163
- /**
124164
- * The user's primary email address, as typed. Null when they have no primary identifier. Bind this rather than `identifiers.0.value`.
124165
- */
124166
- primaryEmail: (string | null);
124167
- /**
124168
- * Whether the user must set a new password at their next sign-in.
124169
- */
124170
121534
  requiresReset: boolean;
124171
- /**
124172
- * Metadata the end user may read; the only bag projected into their access token. Capped at 1.2 KB.
124173
- */
124174
- publicMetadata: {
124175
- [k: string]: unknown;
124176
- };
124177
- /**
124178
- * Metadata the end user may write themselves. Treat it as untrusted.
124179
- */
124180
- unsafeMetadata: {
124181
- [k: string]: unknown;
124182
- };
124183
- /**
124184
- * Metadata for the management plane only. Never reaches the end user or a token.
124185
- */
124186
- privateMetadata: {
124187
- [k: string]: unknown;
124188
- };
124189
- /**
124190
- * Id of the primary identifier row. Null when there is no primary identifier.
124191
- */
124192
- primaryIdentifierId: (string | null);
124193
- /**
124194
- * Until this instant the user may not start another email change, because somebody reverted one (ISO 8601). Null for a user who never reverted one.
124195
- */
121535
+ publicMetadata: UsersUsersGetOutputPublicMetadata;
121536
+ unsafeMetadata: UsersUsersGetOutputPublicMetadata;
121537
+ privateMetadata: UsersUsersGetOutputPublicMetadata;
124196
121538
  emailChangeLockedUntil: (string | null);
124197
121539
  }
121540
+ export interface UsersUsersGetOutputPublicMetadata {
121541
+ [k: string]: unknown;
121542
+ }
124198
121543
  export interface UsersUsersImportInput {
124199
121544
  /**
124200
121545
  * The users to import, at most 500 per call — batch client-side beyond that. Each row: identifiers (email), optional profile, optional password HASH, optional flags.
@@ -124205,42 +121550,15 @@ export interface UsersUsersImportInput {
124205
121550
  users: [unknown, ...(unknown)[]];
124206
121551
  }
124207
121552
  export interface UsersUsersImportOutput {
124208
- /**
124209
- * How many rows could not be imported at all.
124210
- */
124211
121553
  failed: number;
124212
- /**
124213
- * How many users were created.
124214
- */
124215
121554
  created: number;
124216
- /**
124217
- * One row per submitted row, in the order you sent them.
124218
- */
124219
121555
  results: {
124220
- /**
124221
- * Zero-based index of the row in the `users` array you sent.
124222
- */
124223
121556
  row: number;
124224
- /**
124225
- * Why it was skipped, or what went wrong. Null for a created row.
124226
- */
124227
121557
  reason: (string | null);
124228
- /**
124229
- * What happened to this row.
124230
- */
124231
121558
  status: ("created" | "skipped" | "failed");
124232
- /**
124233
- * The created user's id. Null for skipped and failed rows.
124234
- */
124235
121559
  userId: (string | null);
124236
121560
  }[];
124237
- /**
124238
- * How many rows were passed over — an address already in the directory, typically.
124239
- */
124240
121561
  skipped: number;
124241
- /**
124242
- * How many rows you submitted.
124243
- */
124244
121562
  requested: number;
124245
121563
  }
124246
121564
  export interface UsersUsersInviteInput {
@@ -124266,21 +121584,9 @@ export interface UsersUsersInviteInput {
124266
121584
  };
124267
121585
  }
124268
121586
  export interface UsersUsersInviteOutput {
124269
- /**
124270
- * False when the re-invite cooldown or the mail toolkit refused the send. The invite is still live.
124271
- */
124272
121587
  mailed: boolean;
124273
- /**
124274
- * The invited user, created immediately and listed straight away — they simply cannot sign in until they accept.
124275
- */
124276
121588
  userId: string;
124277
- /**
124278
- * False when this address had already been invited; the same user is returned.
124279
- */
124280
121589
  created: boolean;
124281
- /**
124282
- * When the invite link stops working (ISO 8601).
124283
- */
124284
121590
  expiresAt: string;
124285
121591
  }
124286
121592
  export interface UsersUsersListInput {
@@ -124314,135 +121620,40 @@ export interface UsersUsersListInput {
124314
121620
  includeWaitlisted?: boolean;
124315
121621
  }
124316
121622
  export interface UsersUsersListOutput {
124317
- /**
124318
- * The page of users, newest first.
124319
- */
124320
121623
  users: {
124321
- /**
124322
- * Id of this end user. Pass it to any users_users_* tool.
124323
- */
124324
121624
  id: string;
124325
- /**
124326
- * The user's display name. Null when nobody set one.
124327
- */
124328
121625
  name: (string | null);
124329
- /**
124330
- * When the user was banned (ISO 8601). Null while they are not banned.
124331
- */
124332
121626
  bannedAt: (string | null);
124333
- /**
124334
- * When this user's personal data was purged for good (ISO 8601). Null while it is intact.
124335
- */
124336
121627
  erasedAt: (string | null);
124337
- /**
124338
- * URL of the user's avatar. Null when there is none.
124339
- */
124340
121628
  imageUrl: (string | null);
124341
- /**
124342
- * Whether this is a test fixture — excluded from metering and from the default listing.
124343
- */
124344
121629
  testUser: boolean;
124345
- /**
124346
- * When the user was created (ISO 8601).
124347
- */
124348
121630
  createdAt: string;
124349
- /**
124350
- * When the user was soft-deleted (ISO 8601). Null while the account is live.
124351
- */
124352
121631
  deletedAt: (string | null);
124353
- /**
124354
- * Product this user belongs to. Never an input — it comes from the calling identity.
124355
- */
124356
121632
  productId: string;
124357
- /**
124358
- * When the user was last changed (ISO 8601).
124359
- */
124360
121633
  updatedAt: string;
124361
- /**
124362
- * Whether this user is still on the waitlist and cannot sign in yet.
124363
- */
124364
121634
  waitlisted: boolean;
124365
- /**
124366
- * Every identifier of this user, the primary one flagged. To bind the primary address itself, use `primaryEmail` — `identifiers.0` means "the first", not "the primary".
124367
- */
124368
121635
  identifiers: {
124369
- /**
124370
- * Id of this identifier row.
124371
- */
124372
121636
  id: string;
124373
- /**
124374
- * What kind of identifier this is. Today always `email`.
124375
- */
124376
121637
  type: "email";
124377
- /**
124378
- * The address as the user typed it, for display.
124379
- */
124380
- value: string;
124381
- /**
124382
- * Whether this is the identifier the user signs in with and is contacted at.
124383
- */
121638
+ value: string;
124384
121639
  isPrimary: boolean;
124385
- /**
124386
- * When this address was verified (ISO 8601). Null while it never was.
124387
- */
124388
121640
  verifiedAt: (string | null);
124389
- /**
124390
- * The address lowercased and NFC-normalised — what uniqueness is checked against.
124391
- */
124392
121641
  valueCanonical: string;
124393
- /**
124394
- * `unverified`, `verified`, or `expired` when a verification link ran out before it was used.
124395
- */
124396
121642
  verificationStatus: ("unverified" | "verified" | "expired");
124397
121643
  }[];
124398
- /**
124399
- * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
124400
- */
124401
121644
  lockedUntil: (string | null);
124402
- /**
124403
- * When the user last signed in (ISO 8601). Null if they never have.
124404
- */
124405
121645
  lastSignInAt: (string | null);
124406
- /**
124407
- * The user's primary email address, as typed. Null when they have no primary identifier. Bind this rather than `identifiers.0.value`.
124408
- */
124409
- primaryEmail: (string | null);
124410
- /**
124411
- * Whether the user must set a new password at their next sign-in.
124412
- */
124413
121646
  requiresReset: boolean;
124414
- /**
124415
- * Metadata the end user may read; the only bag projected into their access token. Capped at 1.2 KB.
124416
- */
124417
- publicMetadata: {
124418
- [k: string]: unknown;
124419
- };
124420
- /**
124421
- * Metadata the end user may write themselves. Treat it as untrusted.
124422
- */
124423
- unsafeMetadata: {
124424
- [k: string]: unknown;
124425
- };
124426
- /**
124427
- * Metadata for the management plane only. Never reaches the end user or a token.
124428
- */
124429
- privateMetadata: {
124430
- [k: string]: unknown;
124431
- };
124432
- /**
124433
- * Id of the primary identifier row. Null when there is no primary identifier.
124434
- */
124435
- primaryIdentifierId: (string | null);
124436
- /**
124437
- * Until this instant the user may not start another email change, because somebody reverted one (ISO 8601). Null for a user who never reverted one.
124438
- */
121647
+ publicMetadata: UsersUsersListOutputPublicMetadata;
121648
+ unsafeMetadata: UsersUsersListOutputPublicMetadata;
121649
+ privateMetadata: UsersUsersListOutputPublicMetadata;
124439
121650
  emailChangeLockedUntil: (string | null);
124440
121651
  }[];
124441
- /**
124442
- * Pass back as `cursor` to fetch the next page. Null when this page is the last.
124443
- */
124444
121652
  nextCursor: (string | null);
124445
121653
  }
121654
+ export interface UsersUsersListOutputPublicMetadata {
121655
+ [k: string]: unknown;
121656
+ }
124446
121657
  export interface UsersUsersSetPrimaryIdentifierInput {
124447
121658
  /**
124448
121659
  * The address to make primary. Must not already belong, verified, to another user of this product.
@@ -124458,13 +121669,7 @@ export interface UsersUsersSetPrimaryIdentifierInput {
124458
121669
  userId: string;
124459
121670
  }
124460
121671
  export interface UsersUsersSetPrimaryIdentifierOutput {
124461
- /**
124462
- * Id of the scheduled change. It appears in the audit rows and in the abort link mailed to the old address.
124463
- */
124464
121672
  requestId: string;
124465
- /**
124466
- * When the swap becomes applicable, if nobody aborts it first (ISO 8601). The delay is this product's `emailChange.overrideDelayHours`, 72 by default.
124467
- */
124468
121673
  scheduledFor: string;
124469
121674
  }
124470
121675
  export interface UsersUsersUnbanInput {
@@ -124474,126 +121679,37 @@ export interface UsersUsersUnbanInput {
124474
121679
  userId: string;
124475
121680
  }
124476
121681
  export interface UsersUsersUnbanOutput {
124477
- /**
124478
- * Id of this end user. Pass it to any users_users_* tool.
124479
- */
124480
121682
  id: string;
124481
- /**
124482
- * The user's display name. Null when nobody set one.
124483
- */
124484
121683
  name: (string | null);
124485
- /**
124486
- * When the user was banned (ISO 8601). Null while they are not banned.
124487
- */
124488
121684
  bannedAt: (string | null);
124489
- /**
124490
- * When this user's personal data was purged for good (ISO 8601). Null while it is intact.
124491
- */
124492
121685
  erasedAt: (string | null);
124493
- /**
124494
- * URL of the user's avatar. Null when there is none.
124495
- */
124496
121686
  imageUrl: (string | null);
124497
- /**
124498
- * Whether this is a test fixture — excluded from metering and from the default listing.
124499
- */
124500
121687
  testUser: boolean;
124501
- /**
124502
- * When the user was created (ISO 8601).
124503
- */
124504
121688
  createdAt: string;
124505
- /**
124506
- * When the user was soft-deleted (ISO 8601). Null while the account is live.
124507
- */
124508
121689
  deletedAt: (string | null);
124509
- /**
124510
- * Product this user belongs to. Never an input — it comes from the calling identity.
124511
- */
124512
121690
  productId: string;
124513
- /**
124514
- * When the user was last changed (ISO 8601).
124515
- */
124516
121691
  updatedAt: string;
124517
- /**
124518
- * Whether this user is still on the waitlist and cannot sign in yet.
124519
- */
124520
121692
  waitlisted: boolean;
124521
- /**
124522
- * Every identifier of this user, the primary one flagged. To bind the primary address itself, use `primaryEmail` — `identifiers.0` means "the first", not "the primary".
124523
- */
124524
121693
  identifiers: {
124525
- /**
124526
- * Id of this identifier row.
124527
- */
124528
121694
  id: string;
124529
- /**
124530
- * What kind of identifier this is. Today always `email`.
124531
- */
124532
121695
  type: "email";
124533
- /**
124534
- * The address as the user typed it, for display.
124535
- */
124536
121696
  value: string;
124537
- /**
124538
- * Whether this is the identifier the user signs in with and is contacted at.
124539
- */
124540
121697
  isPrimary: boolean;
124541
- /**
124542
- * When this address was verified (ISO 8601). Null while it never was.
124543
- */
124544
121698
  verifiedAt: (string | null);
124545
- /**
124546
- * The address lowercased and NFC-normalised — what uniqueness is checked against.
124547
- */
124548
121699
  valueCanonical: string;
124549
- /**
124550
- * `unverified`, `verified`, or `expired` when a verification link ran out before it was used.
124551
- */
124552
121700
  verificationStatus: ("unverified" | "verified" | "expired");
124553
121701
  }[];
124554
- /**
124555
- * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
124556
- */
124557
121702
  lockedUntil: (string | null);
124558
- /**
124559
- * When the user last signed in (ISO 8601). Null if they never have.
124560
- */
124561
121703
  lastSignInAt: (string | null);
124562
- /**
124563
- * The user's primary email address, as typed. Null when they have no primary identifier. Bind this rather than `identifiers.0.value`.
124564
- */
124565
- primaryEmail: (string | null);
124566
- /**
124567
- * Whether the user must set a new password at their next sign-in.
124568
- */
124569
121704
  requiresReset: boolean;
124570
- /**
124571
- * Metadata the end user may read; the only bag projected into their access token. Capped at 1.2 KB.
124572
- */
124573
- publicMetadata: {
124574
- [k: string]: unknown;
124575
- };
124576
- /**
124577
- * Metadata the end user may write themselves. Treat it as untrusted.
124578
- */
124579
- unsafeMetadata: {
124580
- [k: string]: unknown;
124581
- };
124582
- /**
124583
- * Metadata for the management plane only. Never reaches the end user or a token.
124584
- */
124585
- privateMetadata: {
124586
- [k: string]: unknown;
124587
- };
124588
- /**
124589
- * Id of the primary identifier row. Null when there is no primary identifier.
124590
- */
124591
- primaryIdentifierId: (string | null);
124592
- /**
124593
- * Until this instant the user may not start another email change, because somebody reverted one (ISO 8601). Null for a user who never reverted one.
124594
- */
121705
+ publicMetadata: UsersUsersUnbanOutputPublicMetadata;
121706
+ unsafeMetadata: UsersUsersUnbanOutputPublicMetadata;
121707
+ privateMetadata: UsersUsersUnbanOutputPublicMetadata;
124595
121708
  emailChangeLockedUntil: (string | null);
124596
121709
  }
121710
+ export interface UsersUsersUnbanOutputPublicMetadata {
121711
+ [k: string]: unknown;
121712
+ }
124597
121713
  export interface UsersUsersUpdateInput {
124598
121714
  /**
124599
121715
  * The user's display name. Pass null to clear.
@@ -124641,126 +121757,37 @@ export interface UsersUsersUpdateInputPublicMetadata1 {
124641
121757
  [k: string]: unknown;
124642
121758
  }
124643
121759
  export interface UsersUsersUpdateOutput {
124644
- /**
124645
- * Id of this end user. Pass it to any users_users_* tool.
124646
- */
124647
121760
  id: string;
124648
- /**
124649
- * The user's display name. Null when nobody set one.
124650
- */
124651
121761
  name: (string | null);
124652
- /**
124653
- * When the user was banned (ISO 8601). Null while they are not banned.
124654
- */
124655
121762
  bannedAt: (string | null);
124656
- /**
124657
- * When this user's personal data was purged for good (ISO 8601). Null while it is intact.
124658
- */
124659
121763
  erasedAt: (string | null);
124660
- /**
124661
- * URL of the user's avatar. Null when there is none.
124662
- */
124663
121764
  imageUrl: (string | null);
124664
- /**
124665
- * Whether this is a test fixture — excluded from metering and from the default listing.
124666
- */
124667
121765
  testUser: boolean;
124668
- /**
124669
- * When the user was created (ISO 8601).
124670
- */
124671
121766
  createdAt: string;
124672
- /**
124673
- * When the user was soft-deleted (ISO 8601). Null while the account is live.
124674
- */
124675
121767
  deletedAt: (string | null);
124676
- /**
124677
- * Product this user belongs to. Never an input — it comes from the calling identity.
124678
- */
124679
121768
  productId: string;
124680
- /**
124681
- * When the user was last changed (ISO 8601).
124682
- */
124683
121769
  updatedAt: string;
124684
- /**
124685
- * Whether this user is still on the waitlist and cannot sign in yet.
124686
- */
124687
121770
  waitlisted: boolean;
124688
- /**
124689
- * Every identifier of this user, the primary one flagged. To bind the primary address itself, use `primaryEmail` — `identifiers.0` means "the first", not "the primary".
124690
- */
124691
121771
  identifiers: {
124692
- /**
124693
- * Id of this identifier row.
124694
- */
124695
121772
  id: string;
124696
- /**
124697
- * What kind of identifier this is. Today always `email`.
124698
- */
124699
121773
  type: "email";
124700
- /**
124701
- * The address as the user typed it, for display.
124702
- */
124703
121774
  value: string;
124704
- /**
124705
- * Whether this is the identifier the user signs in with and is contacted at.
124706
- */
124707
121775
  isPrimary: boolean;
124708
- /**
124709
- * When this address was verified (ISO 8601). Null while it never was.
124710
- */
124711
121776
  verifiedAt: (string | null);
124712
- /**
124713
- * The address lowercased and NFC-normalised — what uniqueness is checked against.
124714
- */
124715
121777
  valueCanonical: string;
124716
- /**
124717
- * `unverified`, `verified`, or `expired` when a verification link ran out before it was used.
124718
- */
124719
121778
  verificationStatus: ("unverified" | "verified" | "expired");
124720
121779
  }[];
124721
- /**
124722
- * When a failed-attempt lockout expires (ISO 8601). Null when the user is not locked out.
124723
- */
124724
121780
  lockedUntil: (string | null);
124725
- /**
124726
- * When the user last signed in (ISO 8601). Null if they never have.
124727
- */
124728
121781
  lastSignInAt: (string | null);
124729
- /**
124730
- * The user's primary email address, as typed. Null when they have no primary identifier. Bind this rather than `identifiers.0.value`.
124731
- */
124732
- primaryEmail: (string | null);
124733
- /**
124734
- * Whether the user must set a new password at their next sign-in.
124735
- */
124736
121782
  requiresReset: boolean;
124737
- /**
124738
- * Metadata the end user may read; the only bag projected into their access token. Capped at 1.2 KB.
124739
- */
124740
- publicMetadata: {
124741
- [k: string]: unknown;
124742
- };
124743
- /**
124744
- * Metadata the end user may write themselves. Treat it as untrusted.
124745
- */
124746
- unsafeMetadata: {
124747
- [k: string]: unknown;
124748
- };
124749
- /**
124750
- * Metadata for the management plane only. Never reaches the end user or a token.
124751
- */
124752
- privateMetadata: {
124753
- [k: string]: unknown;
124754
- };
124755
- /**
124756
- * Id of the primary identifier row. Null when there is no primary identifier.
124757
- */
124758
- primaryIdentifierId: (string | null);
124759
- /**
124760
- * Until this instant the user may not start another email change, because somebody reverted one (ISO 8601). Null for a user who never reverted one.
124761
- */
121783
+ publicMetadata: UsersUsersUpdateOutputPublicMetadata;
121784
+ unsafeMetadata: UsersUsersUpdateOutputPublicMetadata;
121785
+ privateMetadata: UsersUsersUpdateOutputPublicMetadata;
124762
121786
  emailChangeLockedUntil: (string | null);
124763
121787
  }
121788
+ export interface UsersUsersUpdateOutputPublicMetadata {
121789
+ [k: string]: unknown;
121790
+ }
124764
121791
  export interface UsersWaitlistFunnelInput {
124765
121792
  }
124766
121793
  export interface UsersWaitlistFunnelOutput {
@@ -124771,62 +121798,6 @@ export interface UsersWaitlistFunnelOutput {
124771
121798
  registered: number;
124772
121799
  unconfirmed: number;
124773
121800
  }
124774
- export interface UsersWaitlistGetInput {
124775
- /**
124776
- * The waitlisted user to read — the `userId` from `users_waitlist_list`.
124777
- */
124778
- userId: string;
124779
- }
124780
- export interface UsersWaitlistGetOutput {
124781
- /**
124782
- * Where in the funnel this entry is: `pending`, `invited`, `registered` or `withdrawn`.
124783
- */
124784
- status: ("pending" | "invited" | "registered" | "withdrawn");
124785
- /**
124786
- * The waitlisted user. Every users_users_* tool takes this id.
124787
- */
124788
- userId: string;
124789
- /**
124790
- * When the entry joined the waitlist (ISO 8601).
124791
- */
124792
- createdAt: string;
124793
- /**
124794
- * When the invite was sent (ISO 8601). Null while the entry is pending.
124795
- */
124796
- invitedAt: (string | null);
124797
- /**
124798
- * The email address that signed up.
124799
- */
124800
- identifier: string;
124801
- /**
124802
- * Where the signup came from — the campaign, referrer and landing page recorded at the time.
124803
- */
124804
- attribution: {
124805
- [k: string]: unknown;
124806
- };
124807
- /**
124808
- * When the address confirmed a double opt-in (ISO 8601). Null when it never did.
124809
- */
124810
- confirmedAt: (string | null);
124811
- /**
124812
- * When the address asked to be taken off the list (ISO 8601). Null when it did not.
124813
- */
124814
- withdrawnAt: (string | null);
124815
- /**
124816
- * What was recorded to show this address consented: when, from where, and under which wording.
124817
- */
124818
- consentProof: {
124819
- [k: string]: unknown;
124820
- };
124821
- /**
124822
- * When the invitee finished signing up (ISO 8601). Null until they do.
124823
- */
124824
- registeredAt: (string | null);
124825
- /**
124826
- * Id of the live invite token. Null while the entry has not been invited.
124827
- */
124828
- inviteTokenId: (string | null);
124829
- }
124830
121801
  export interface UsersWaitlistImportInput {
124831
121802
  /**
124832
121803
  * The legacy signups to import, at most 500 per call — batch client-side beyond that.
@@ -124994,42 +121965,15 @@ export interface UsersWaitlistImportInput {
124994
121965
  ];
124995
121966
  }
124996
121967
  export interface UsersWaitlistImportOutput {
124997
- /**
124998
- * How many could not be imported at all.
124999
- */
125000
121968
  failed: number;
125001
- /**
125002
- * One row per submitted row, in the order you sent them.
125003
- */
125004
121969
  results: {
125005
- /**
125006
- * Zero-based index of the row in the array you sent.
125007
- */
125008
121970
  row: number;
125009
- /**
125010
- * Why it was skipped, or what went wrong. Null for an imported row.
125011
- */
125012
121971
  reason: (string | null);
125013
- /**
125014
- * What happened to this row.
125015
- */
125016
121972
  status: ("imported" | "skipped" | "failed");
125017
- /**
125018
- * The waitlisted user this row created. Null for skipped and failed rows.
125019
- */
125020
121973
  userId: (string | null);
125021
121974
  }[];
125022
- /**
125023
- * How many were already on the list or otherwise passed over.
125024
- */
125025
121975
  skipped: number;
125026
- /**
125027
- * How many became waitlist entries.
125028
- */
125029
121976
  imported: number;
125030
- /**
125031
- * How many rows you submitted.
125032
- */
125033
121977
  requested: number;
125034
121978
  }
125035
121979
  export interface UsersWaitlistInviteInput {
@@ -125042,30 +121986,12 @@ export interface UsersWaitlistInviteInput {
125042
121986
  userIds: [string, ...(string)[]];
125043
121987
  }
125044
121988
  export interface UsersWaitlistInviteOutput {
125045
- /**
125046
- * How many of the requested users were invited.
125047
- */
125048
121989
  invited: number;
125049
- /**
125050
- * One row per user you asked for, in the order you sent them.
125051
- */
125052
121990
  results: {
125053
- /**
125054
- * Why this user was skipped. Null for an invited row.
125055
- */
125056
121991
  reason: (("suppressed" | "not_found" | "already_registered") | null);
125057
- /**
125058
- * Whether this user was invited or passed over.
125059
- */
125060
121992
  status: ("invited" | "skipped");
125061
- /**
125062
- * The user this row is about.
125063
- */
125064
121993
  userId: string;
125065
121994
  }[];
125066
- /**
125067
- * How many were passed over — see each row's `reason`.
125068
- */
125069
121995
  skipped: number;
125070
121996
  }
125071
121997
  export interface UsersWaitlistListInput {
@@ -125087,62 +122013,23 @@ export interface UsersWaitlistListInput {
125087
122013
  confirmed?: boolean;
125088
122014
  }
125089
122015
  export interface UsersWaitlistListOutput {
125090
- /**
125091
- * The page of waitlist entries, newest first.
125092
- */
125093
122016
  entries: {
125094
- /**
125095
- * Where in the funnel this entry is: `pending`, `invited`, `registered` or `withdrawn`.
125096
- */
125097
122017
  status: ("pending" | "invited" | "registered" | "withdrawn");
125098
- /**
125099
- * The waitlisted user. Every users_users_* tool takes this id.
125100
- */
125101
122018
  userId: string;
125102
- /**
125103
- * When the entry joined the waitlist (ISO 8601).
125104
- */
125105
122019
  createdAt: string;
125106
- /**
125107
- * When the invite was sent (ISO 8601). Null while the entry is pending.
125108
- */
125109
122020
  invitedAt: (string | null);
125110
- /**
125111
- * The email address that signed up.
125112
- */
125113
122021
  identifier: string;
125114
- /**
125115
- * Where the signup came from — the campaign, referrer and landing page recorded at the time.
125116
- */
125117
122022
  attribution: {
125118
122023
  [k: string]: unknown;
125119
122024
  };
125120
- /**
125121
- * When the address confirmed a double opt-in (ISO 8601). Null when it never did.
125122
- */
125123
122025
  confirmedAt: (string | null);
125124
- /**
125125
- * When the address asked to be taken off the list (ISO 8601). Null when it did not.
125126
- */
125127
122026
  withdrawnAt: (string | null);
125128
- /**
125129
- * What was recorded to show this address consented: when, from where, and under which wording.
125130
- */
125131
122027
  consentProof: {
125132
122028
  [k: string]: unknown;
125133
122029
  };
125134
- /**
125135
- * When the invitee finished signing up (ISO 8601). Null until they do.
125136
- */
125137
122030
  registeredAt: (string | null);
125138
- /**
125139
- * Id of the live invite token. Null while the entry has not been invited.
125140
- */
125141
122031
  inviteTokenId: (string | null);
125142
122032
  }[];
125143
- /**
125144
- * Pass back as `cursor` to fetch the next page. Null when this page is the last.
125145
- */
125146
122033
  nextCursor: (string | null);
125147
122034
  }
125148
122035
  export interface UsersWebhooksCreateInput {