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