hanzoai 8.5.743 → 8.5.755

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.
@@ -42,13 +42,14 @@ import type { MarketingSummary } from '../models';
42
42
  import type { MarketingSuppression } from '../models';
43
43
  import type { MarketingSuppressionList } from '../models';
44
44
  import type { MarketingUnsubscribed } from '../models';
45
+ import type { ProblemDetails } from '../models';
45
46
  /**
46
47
  * MarketingApi - axios parameter creator
47
48
  * @export
48
49
  */
49
50
  export declare const MarketingApiAxiosParamCreator: (configuration?: Configuration) => {
50
51
  /**
51
- * Removes one of the caller org\'s audiences and answers 204. It deletes the saved filter only — no customer, event or enrollment is touched.
52
+ * Removes one of the caller org\'s audiences and answers 204. It deletes the saved filter only — no customer, event or enrollment is touched. Org admin or SuperAdmin only; a member of the org is refused.
52
53
  * @summary Removes one of the caller org\'s audiences and answers 204.
53
54
  * @param {string} id ID is the audience id from the path, as returned by create.
54
55
  * @param {*} [options] Override http request option.
@@ -72,7 +73,7 @@ export declare const MarketingApiAxiosParamCreator: (configuration?: Configurati
72
73
  */
73
74
  deleteMarketingCampaignsById: (id: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
74
75
  /**
75
- * Re-subscribes an address on one channel and answers 204. An address that is not on the list reads as not found.
76
+ * Re-subscribes an address on one channel and answers 204. An address that is not on the list reads as not found. Org admin or SuperAdmin only; a member of the org is refused.
76
77
  * @summary Re-subscribes an address on one channel and answers 204.
77
78
  * @param {string} [channel] Channel is the surface opted out of: email, sms, social, meta, google or tiktok. Empty means email. Opting out of one leaves the others reachable.
78
79
  * @param {string} [address] Address is the recipient, normalized (lower-cased, trimmed) so an opt-out cannot be slipped past on a case or whitespace difference. Required.
@@ -140,6 +141,15 @@ export declare const MarketingApiAxiosParamCreator: (configuration?: Configurati
140
141
  * @throws {RequiredError}
141
142
  */
142
143
  getMarketingCampaignsById: (id: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
144
+ /**
145
+ * Follows a tracked email link. It is public — the person clicking has no session — and the token is its only authority: a token that verifies, for a sequence of one of Hanzo\'s own orgs that still exists, answers 302 to the destination it signs and records one click (time and user-agent family; no IP address), off the request path so the redirect never waits on storage. A token that is missing, altered, signed under another key, older than a year, or for any other org or a deleted sequence answers 302 to the brand\'s home page (https://hanzo.ai/ on Hanzo\'s deployment). The location is only ever a destination a token signs or that page, never a URL the request names.
146
+ * @summary Follows a tracked email link.
147
+ * @param {string} [userAgent] Agent is the clicker\&#39;s User-Agent header. Only its family (chrome, safari, automated, …) is kept.
148
+ * @param {string} [t] T is the click token the send minted for this link and this recipient: base64url, signed under the deployment\&#39;s KMS key marketing/click-hmac. It is the request\&#39;s only authority.
149
+ * @param {*} [options] Override http request option.
150
+ * @throws {RequiredError}
151
+ */
152
+ getMarketingClick: (userAgent?: string, t?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
143
153
  /**
144
154
  * Returns every promo the deployment offers with its live counters: how many orgs have redeemed it and how many redemptions remain under the cap. The promos are fleet-wide, not per-org — only the counters move.
145
155
  * @summary Returns every promo the deployment offers with its live counters: how many orgs have redeemed it and how many redemptions remain under the cap.
@@ -225,7 +235,7 @@ export declare const MarketingApiAxiosParamCreator: (configuration?: Configurati
225
235
  */
226
236
  getMarketingUnsubscribe: (org?: string, channel?: string, address?: string, token?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
227
237
  /**
228
- * Saves a cohort filter for the caller\'s org. Name is required. Omitting event saves the WHOLE-ORG audience — every mailable customer — which needs no analytics warehouse; naming one narrows that roster to the customers who fired it within windowDays.
238
+ * Saves a cohort filter for the caller\'s org. Name is required. Omitting event saves the WHOLE-ORG audience — every mailable customer — which needs no analytics warehouse; naming one narrows that roster to the customers who fired it within windowDays. Org admin or SuperAdmin only; a member of the org is refused.
229
239
  * @summary Saves a cohort filter for the caller\'s org.
230
240
  * @param {MarketingAudience} marketingAudience
231
241
  * @param {*} [options] Override http request option.
@@ -275,7 +285,7 @@ export declare const MarketingApiAxiosParamCreator: (configuration?: Configurati
275
285
  */
276
286
  postMarketingPromosByCodeRedeem: (code: string, marketingRedeemInput: MarketingRedeemInput, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
277
287
  /**
278
- * Registers a drip sequence in the caller\'s org. Name is required; status defaults to draft, and a sequence must be ACTIVE before it will accept enrollments. The id, createdAt and updatedAt of the input are ignored — the server assigns them.
288
+ * Registers a drip sequence in the caller\'s org. Name is required; status defaults to draft, and a sequence must be ACTIVE before it will accept enrollments. The id, createdAt and updatedAt of the input are ignored — the server assigns them. Org admin or SuperAdmin only; a member of the org is refused.
279
289
  * @summary Registers a drip sequence in the caller\'s org.
280
290
  * @param {MarketingSequence} marketingSequence
281
291
  * @param {*} [options] Override http request option.
@@ -283,7 +293,7 @@ export declare const MarketingApiAxiosParamCreator: (configuration?: Configurati
283
293
  */
284
294
  postMarketingSequences: (marketingSequence: MarketingSequence, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
285
295
  /**
286
- * Adds one contact or a whole audience to a sequence and schedules the first step for each. The sequence must be ACTIVE (a draft sends nothing), and the request must name exactly one of address or audienceId. Enrolling is ALL this does: the message itself is sent later by the drip engine, through the suppression gate, so an opted-out customer can be enrolled here and still never be mailed. Re-posting is safe — an address this sequence already took is counted in alreadyEnrolled and never double-dripped — which is what makes retrying a partially-applied announcement a resume rather than a second send.
296
+ * Adds one contact or a whole audience to a sequence and schedules the first step for each. The sequence must be ACTIVE (a draft sends nothing), and the request must name exactly one of address or audienceId. Enrolling is ALL this does: the message itself is sent later by the drip engine, through the suppression gate, so an opted-out customer can be enrolled here and still never be mailed. Re-posting is safe — an address this sequence already took is counted in alreadyEnrolled and never double-dripped — which is what makes retrying a partially-applied announcement a resume rather than a second send. Org admin or SuperAdmin only; a member of the org is refused.
287
297
  * @summary Adds one contact or a whole audience to a sequence and schedules the first step for each.
288
298
  * @param {string} id ID is the sequence id from the path.
289
299
  * @param {MarketingEnrollInput} marketingEnrollInput
@@ -292,7 +302,7 @@ export declare const MarketingApiAxiosParamCreator: (configuration?: Configurati
292
302
  */
293
303
  postMarketingSequencesByIdEnroll: (id: string, marketingEnrollInput: MarketingEnrollInput, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
294
304
  /**
295
- * Stops one walk mid-sequence and answers 204: no further step is sent, and steps already delivered are not recalled. Only an ACTIVE enrollment can be canceled — one already completed or canceled reads as not found.
305
+ * Stops one walk mid-sequence and answers 204: no further step is sent, and steps already delivered are not recalled. Only an ACTIVE enrollment can be canceled — one already completed or canceled reads as not found. Org admin or SuperAdmin only; a member of the org is refused.
296
306
  * @summary Stops one walk mid-sequence and answers 204: no further step is sent, and steps already delivered are not recalled.
297
307
  * @param {string} id ID is the sequence id from the path.
298
308
  * @param {string} eid EID is the enrollment id from the path, as returned by a single-address enroll.
@@ -301,7 +311,7 @@ export declare const MarketingApiAxiosParamCreator: (configuration?: Configurati
301
311
  */
302
312
  postMarketingSequencesByIdEnrollmentsByEidCancel: (id: string, eid: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
303
313
  /**
304
- * Flips draft/active/archived — the activation gate for sending, since only an active sequence accepts enrollments. It does not touch enrollments already walking: archiving stops new ones, not in-flight ones.
314
+ * Flips draft/active/archived — the activation gate for sending, since only an active sequence accepts enrollments. It does not touch enrollments already walking: archiving stops new ones, not in-flight ones. Org admin or SuperAdmin only; a member of the org is refused.
305
315
  * @summary Flips draft/active/archived — the activation gate for sending, since only an active sequence accepts enrollments.
306
316
  * @param {string} id ID is the sequence id from the path.
307
317
  * @param {MarketingSequenceStatus} marketingSequenceStatus
@@ -310,7 +320,7 @@ export declare const MarketingApiAxiosParamCreator: (configuration?: Configurati
310
320
  */
311
321
  postMarketingSequencesByIdStatus: (id: string, marketingSequenceStatus: MarketingSequenceStatus, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
312
322
  /**
313
- * Appends a message to the END of a sequence: the new step\'s idx is one past the last, so steps arrive in the order they are added. Body is required and delaySeconds must be >= 0. Adding a step does not disturb enrollments already walking — one that has passed this index simply never sees it.
323
+ * Appends a message to the END of a sequence: the new step\'s idx is one past the last, so steps arrive in the order they are added. Body is required and delaySeconds must be >= 0. Adding a step does not disturb enrollments already walking — one that has passed this index simply never sees it. Org admin or SuperAdmin only; a member of the org is refused.
314
324
  * @summary Appends a message to the END of a sequence: the new step\'s idx is one past the last, so steps arrive in the order they are added.
315
325
  * @param {string} id SequenceID is the sequence id from the path (the route\&#39;s :id).
316
326
  * @param {MarketingStepInput} marketingStepInput
@@ -319,13 +329,25 @@ export declare const MarketingApiAxiosParamCreator: (configuration?: Configurati
319
329
  */
320
330
  postMarketingSequencesByIdSteps: (id: string, marketingStepInput: MarketingStepInput, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
321
331
  /**
322
- * Records an opt-out for the org (admin / self-service management). Address is required; channel defaults to email. It is idempotent: re-suppressing the same tuple keeps the original record rather than erroring. From here on the ONE send gate refuses that recipient on that channel.
332
+ * Records an opt-out for the org (admin / self-service management). Address is required; channel defaults to email. It is idempotent: re-suppressing the same tuple keeps the original record rather than erroring. From here on the ONE send gate refuses that recipient on that channel. Org admin or SuperAdmin only; a member of the org is refused.
323
333
  * @summary Records an opt-out for the org (admin / self-service management).
324
334
  * @param {MarketingSuppression} marketingSuppression
325
335
  * @param {*} [options] Override http request option.
326
336
  * @throws {RequiredError}
327
337
  */
328
338
  postMarketingSuppressions: (marketingSuppression: MarketingSuppression, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
339
+ /**
340
+ * Is the one-click unsubscribe a mail client sends from the List-Unsubscribe header (RFC 8058): the same signed link the footer carries, POSTed with the form body List-Unsubscribe=One-Click. It opts out exactly what a click on the link does, under the same token check, and is as public.
341
+ * @summary Is the one-click unsubscribe a mail client sends from the List-Unsubscribe header (RFC 8058): the same signed link the footer carries, POSTed with the form body List-Unsubscribe=One-Click.
342
+ * @param {string} [org] Org is the org the link was minted for.
343
+ * @param {string} [channel] Channel is the surface to opt out of.
344
+ * @param {string} [address] Address is the recipient to opt out.
345
+ * @param {string} [token] Token is the HMAC over (org, channel, address), the only authority here.
346
+ * @param {string} [listUnsubscribe] OneClick is the form\\\&#39;s List-Unsubscribe field, \\\&quot;One-Click\\\&quot; from a mail client. The token decides; this field only names the form.
347
+ * @param {*} [options] Override http request option.
348
+ * @throws {RequiredError}
349
+ */
350
+ postMarketingUnsubscribe: (org?: string, channel?: string, address?: string, token?: string, listUnsubscribe?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
329
351
  /**
330
352
  * Replaces a post\'s editable fields. It is a full write, not a patch, and it RESETS the lifecycle from the schedule: a scheduledAt makes the post \"scheduled\" again and none makes it a draft — so editing a failed post requeues it rather than leaving it stuck.
331
353
  * @summary Replaces a post\'s editable fields.
@@ -351,7 +373,7 @@ export declare const MarketingApiAxiosParamCreator: (configuration?: Configurati
351
373
  */
352
374
  export declare const MarketingApiFp: (configuration?: Configuration) => {
353
375
  /**
354
- * Removes one of the caller org\'s audiences and answers 204. It deletes the saved filter only — no customer, event or enrollment is touched.
376
+ * Removes one of the caller org\'s audiences and answers 204. It deletes the saved filter only — no customer, event or enrollment is touched. Org admin or SuperAdmin only; a member of the org is refused.
355
377
  * @summary Removes one of the caller org\'s audiences and answers 204.
356
378
  * @param {string} id ID is the audience id from the path, as returned by create.
357
379
  * @param {*} [options] Override http request option.
@@ -375,7 +397,7 @@ export declare const MarketingApiFp: (configuration?: Configuration) => {
375
397
  */
376
398
  deleteMarketingCampaignsById(id: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
377
399
  /**
378
- * Re-subscribes an address on one channel and answers 204. An address that is not on the list reads as not found.
400
+ * Re-subscribes an address on one channel and answers 204. An address that is not on the list reads as not found. Org admin or SuperAdmin only; a member of the org is refused.
379
401
  * @summary Re-subscribes an address on one channel and answers 204.
380
402
  * @param {string} [channel] Channel is the surface opted out of: email, sms, social, meta, google or tiktok. Empty means email. Opting out of one leaves the others reachable.
381
403
  * @param {string} [address] Address is the recipient, normalized (lower-cased, trimmed) so an opt-out cannot be slipped past on a case or whitespace difference. Required.
@@ -443,6 +465,15 @@ export declare const MarketingApiFp: (configuration?: Configuration) => {
443
465
  * @throws {RequiredError}
444
466
  */
445
467
  getMarketingCampaignsById(id: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<MarketingCampaign>>;
468
+ /**
469
+ * Follows a tracked email link. It is public — the person clicking has no session — and the token is its only authority: a token that verifies, for a sequence of one of Hanzo\'s own orgs that still exists, answers 302 to the destination it signs and records one click (time and user-agent family; no IP address), off the request path so the redirect never waits on storage. A token that is missing, altered, signed under another key, older than a year, or for any other org or a deleted sequence answers 302 to the brand\'s home page (https://hanzo.ai/ on Hanzo\'s deployment). The location is only ever a destination a token signs or that page, never a URL the request names.
470
+ * @summary Follows a tracked email link.
471
+ * @param {string} [userAgent] Agent is the clicker\&#39;s User-Agent header. Only its family (chrome, safari, automated, …) is kept.
472
+ * @param {string} [t] T is the click token the send minted for this link and this recipient: base64url, signed under the deployment\&#39;s KMS key marketing/click-hmac. It is the request\&#39;s only authority.
473
+ * @param {*} [options] Override http request option.
474
+ * @throws {RequiredError}
475
+ */
476
+ getMarketingClick(userAgent?: string, t?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ProblemDetails>>;
446
477
  /**
447
478
  * Returns every promo the deployment offers with its live counters: how many orgs have redeemed it and how many redemptions remain under the cap. The promos are fleet-wide, not per-org — only the counters move.
448
479
  * @summary Returns every promo the deployment offers with its live counters: how many orgs have redeemed it and how many redemptions remain under the cap.
@@ -528,7 +559,7 @@ export declare const MarketingApiFp: (configuration?: Configuration) => {
528
559
  */
529
560
  getMarketingUnsubscribe(org?: string, channel?: string, address?: string, token?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<MarketingUnsubscribed>>;
530
561
  /**
531
- * Saves a cohort filter for the caller\'s org. Name is required. Omitting event saves the WHOLE-ORG audience — every mailable customer — which needs no analytics warehouse; naming one narrows that roster to the customers who fired it within windowDays.
562
+ * Saves a cohort filter for the caller\'s org. Name is required. Omitting event saves the WHOLE-ORG audience — every mailable customer — which needs no analytics warehouse; naming one narrows that roster to the customers who fired it within windowDays. Org admin or SuperAdmin only; a member of the org is refused.
532
563
  * @summary Saves a cohort filter for the caller\'s org.
533
564
  * @param {MarketingAudience} marketingAudience
534
565
  * @param {*} [options] Override http request option.
@@ -578,7 +609,7 @@ export declare const MarketingApiFp: (configuration?: Configuration) => {
578
609
  */
579
610
  postMarketingPromosByCodeRedeem(code: string, marketingRedeemInput: MarketingRedeemInput, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<MarketingRedeemResult>>;
580
611
  /**
581
- * Registers a drip sequence in the caller\'s org. Name is required; status defaults to draft, and a sequence must be ACTIVE before it will accept enrollments. The id, createdAt and updatedAt of the input are ignored — the server assigns them.
612
+ * Registers a drip sequence in the caller\'s org. Name is required; status defaults to draft, and a sequence must be ACTIVE before it will accept enrollments. The id, createdAt and updatedAt of the input are ignored — the server assigns them. Org admin or SuperAdmin only; a member of the org is refused.
582
613
  * @summary Registers a drip sequence in the caller\'s org.
583
614
  * @param {MarketingSequence} marketingSequence
584
615
  * @param {*} [options] Override http request option.
@@ -586,7 +617,7 @@ export declare const MarketingApiFp: (configuration?: Configuration) => {
586
617
  */
587
618
  postMarketingSequences(marketingSequence: MarketingSequence, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<MarketingSequence>>;
588
619
  /**
589
- * Adds one contact or a whole audience to a sequence and schedules the first step for each. The sequence must be ACTIVE (a draft sends nothing), and the request must name exactly one of address or audienceId. Enrolling is ALL this does: the message itself is sent later by the drip engine, through the suppression gate, so an opted-out customer can be enrolled here and still never be mailed. Re-posting is safe — an address this sequence already took is counted in alreadyEnrolled and never double-dripped — which is what makes retrying a partially-applied announcement a resume rather than a second send.
620
+ * Adds one contact or a whole audience to a sequence and schedules the first step for each. The sequence must be ACTIVE (a draft sends nothing), and the request must name exactly one of address or audienceId. Enrolling is ALL this does: the message itself is sent later by the drip engine, through the suppression gate, so an opted-out customer can be enrolled here and still never be mailed. Re-posting is safe — an address this sequence already took is counted in alreadyEnrolled and never double-dripped — which is what makes retrying a partially-applied announcement a resume rather than a second send. Org admin or SuperAdmin only; a member of the org is refused.
590
621
  * @summary Adds one contact or a whole audience to a sequence and schedules the first step for each.
591
622
  * @param {string} id ID is the sequence id from the path.
592
623
  * @param {MarketingEnrollInput} marketingEnrollInput
@@ -595,7 +626,7 @@ export declare const MarketingApiFp: (configuration?: Configuration) => {
595
626
  */
596
627
  postMarketingSequencesByIdEnroll(id: string, marketingEnrollInput: MarketingEnrollInput, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<MarketingEnrollResult>>;
597
628
  /**
598
- * Stops one walk mid-sequence and answers 204: no further step is sent, and steps already delivered are not recalled. Only an ACTIVE enrollment can be canceled — one already completed or canceled reads as not found.
629
+ * Stops one walk mid-sequence and answers 204: no further step is sent, and steps already delivered are not recalled. Only an ACTIVE enrollment can be canceled — one already completed or canceled reads as not found. Org admin or SuperAdmin only; a member of the org is refused.
599
630
  * @summary Stops one walk mid-sequence and answers 204: no further step is sent, and steps already delivered are not recalled.
600
631
  * @param {string} id ID is the sequence id from the path.
601
632
  * @param {string} eid EID is the enrollment id from the path, as returned by a single-address enroll.
@@ -604,7 +635,7 @@ export declare const MarketingApiFp: (configuration?: Configuration) => {
604
635
  */
605
636
  postMarketingSequencesByIdEnrollmentsByEidCancel(id: string, eid: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
606
637
  /**
607
- * Flips draft/active/archived — the activation gate for sending, since only an active sequence accepts enrollments. It does not touch enrollments already walking: archiving stops new ones, not in-flight ones.
638
+ * Flips draft/active/archived — the activation gate for sending, since only an active sequence accepts enrollments. It does not touch enrollments already walking: archiving stops new ones, not in-flight ones. Org admin or SuperAdmin only; a member of the org is refused.
608
639
  * @summary Flips draft/active/archived — the activation gate for sending, since only an active sequence accepts enrollments.
609
640
  * @param {string} id ID is the sequence id from the path.
610
641
  * @param {MarketingSequenceStatus} marketingSequenceStatus
@@ -613,7 +644,7 @@ export declare const MarketingApiFp: (configuration?: Configuration) => {
613
644
  */
614
645
  postMarketingSequencesByIdStatus(id: string, marketingSequenceStatus: MarketingSequenceStatus, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<MarketingSequenceStatus>>;
615
646
  /**
616
- * Appends a message to the END of a sequence: the new step\'s idx is one past the last, so steps arrive in the order they are added. Body is required and delaySeconds must be >= 0. Adding a step does not disturb enrollments already walking — one that has passed this index simply never sees it.
647
+ * Appends a message to the END of a sequence: the new step\'s idx is one past the last, so steps arrive in the order they are added. Body is required and delaySeconds must be >= 0. Adding a step does not disturb enrollments already walking — one that has passed this index simply never sees it. Org admin or SuperAdmin only; a member of the org is refused.
617
648
  * @summary Appends a message to the END of a sequence: the new step\'s idx is one past the last, so steps arrive in the order they are added.
618
649
  * @param {string} id SequenceID is the sequence id from the path (the route\&#39;s :id).
619
650
  * @param {MarketingStepInput} marketingStepInput
@@ -622,13 +653,25 @@ export declare const MarketingApiFp: (configuration?: Configuration) => {
622
653
  */
623
654
  postMarketingSequencesByIdSteps(id: string, marketingStepInput: MarketingStepInput, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<MarketingStep>>;
624
655
  /**
625
- * Records an opt-out for the org (admin / self-service management). Address is required; channel defaults to email. It is idempotent: re-suppressing the same tuple keeps the original record rather than erroring. From here on the ONE send gate refuses that recipient on that channel.
656
+ * Records an opt-out for the org (admin / self-service management). Address is required; channel defaults to email. It is idempotent: re-suppressing the same tuple keeps the original record rather than erroring. From here on the ONE send gate refuses that recipient on that channel. Org admin or SuperAdmin only; a member of the org is refused.
626
657
  * @summary Records an opt-out for the org (admin / self-service management).
627
658
  * @param {MarketingSuppression} marketingSuppression
628
659
  * @param {*} [options] Override http request option.
629
660
  * @throws {RequiredError}
630
661
  */
631
662
  postMarketingSuppressions(marketingSuppression: MarketingSuppression, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<MarketingSuppression>>;
663
+ /**
664
+ * Is the one-click unsubscribe a mail client sends from the List-Unsubscribe header (RFC 8058): the same signed link the footer carries, POSTed with the form body List-Unsubscribe=One-Click. It opts out exactly what a click on the link does, under the same token check, and is as public.
665
+ * @summary Is the one-click unsubscribe a mail client sends from the List-Unsubscribe header (RFC 8058): the same signed link the footer carries, POSTed with the form body List-Unsubscribe=One-Click.
666
+ * @param {string} [org] Org is the org the link was minted for.
667
+ * @param {string} [channel] Channel is the surface to opt out of.
668
+ * @param {string} [address] Address is the recipient to opt out.
669
+ * @param {string} [token] Token is the HMAC over (org, channel, address), the only authority here.
670
+ * @param {string} [listUnsubscribe] OneClick is the form\\\&#39;s List-Unsubscribe field, \\\&quot;One-Click\\\&quot; from a mail client. The token decides; this field only names the form.
671
+ * @param {*} [options] Override http request option.
672
+ * @throws {RequiredError}
673
+ */
674
+ postMarketingUnsubscribe(org?: string, channel?: string, address?: string, token?: string, listUnsubscribe?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<MarketingUnsubscribed>>;
632
675
  /**
633
676
  * Replaces a post\'s editable fields. It is a full write, not a patch, and it RESETS the lifecycle from the schedule: a scheduledAt makes the post \"scheduled\" again and none makes it a draft — so editing a failed post requeues it rather than leaving it stuck.
634
677
  * @summary Replaces a post\'s editable fields.
@@ -654,7 +697,7 @@ export declare const MarketingApiFp: (configuration?: Configuration) => {
654
697
  */
655
698
  export declare const MarketingApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
656
699
  /**
657
- * Removes one of the caller org\'s audiences and answers 204. It deletes the saved filter only — no customer, event or enrollment is touched.
700
+ * Removes one of the caller org\'s audiences and answers 204. It deletes the saved filter only — no customer, event or enrollment is touched. Org admin or SuperAdmin only; a member of the org is refused.
658
701
  * @summary Removes one of the caller org\'s audiences and answers 204.
659
702
  * @param {MarketingApiDeleteMarketingAudiencesByIdRequest} requestParameters Request parameters.
660
703
  * @param {*} [options] Override http request option.
@@ -678,7 +721,7 @@ export declare const MarketingApiFactory: (configuration?: Configuration, basePa
678
721
  */
679
722
  deleteMarketingCampaignsById(requestParameters: MarketingApiDeleteMarketingCampaignsByIdRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
680
723
  /**
681
- * Re-subscribes an address on one channel and answers 204. An address that is not on the list reads as not found.
724
+ * Re-subscribes an address on one channel and answers 204. An address that is not on the list reads as not found. Org admin or SuperAdmin only; a member of the org is refused.
682
725
  * @summary Re-subscribes an address on one channel and answers 204.
683
726
  * @param {MarketingApiDeleteMarketingSuppressionsRequest} requestParameters Request parameters.
684
727
  * @param {*} [options] Override http request option.
@@ -741,6 +784,14 @@ export declare const MarketingApiFactory: (configuration?: Configuration, basePa
741
784
  * @throws {RequiredError}
742
785
  */
743
786
  getMarketingCampaignsById(requestParameters: MarketingApiGetMarketingCampaignsByIdRequest, options?: RawAxiosRequestConfig): AxiosPromise<MarketingCampaign>;
787
+ /**
788
+ * Follows a tracked email link. It is public — the person clicking has no session — and the token is its only authority: a token that verifies, for a sequence of one of Hanzo\'s own orgs that still exists, answers 302 to the destination it signs and records one click (time and user-agent family; no IP address), off the request path so the redirect never waits on storage. A token that is missing, altered, signed under another key, older than a year, or for any other org or a deleted sequence answers 302 to the brand\'s home page (https://hanzo.ai/ on Hanzo\'s deployment). The location is only ever a destination a token signs or that page, never a URL the request names.
789
+ * @summary Follows a tracked email link.
790
+ * @param {MarketingApiGetMarketingClickRequest} requestParameters Request parameters.
791
+ * @param {*} [options] Override http request option.
792
+ * @throws {RequiredError}
793
+ */
794
+ getMarketingClick(requestParameters?: MarketingApiGetMarketingClickRequest, options?: RawAxiosRequestConfig): AxiosPromise<ProblemDetails>;
744
795
  /**
745
796
  * Returns every promo the deployment offers with its live counters: how many orgs have redeemed it and how many redemptions remain under the cap. The promos are fleet-wide, not per-org — only the counters move.
746
797
  * @summary Returns every promo the deployment offers with its live counters: how many orgs have redeemed it and how many redemptions remain under the cap.
@@ -820,7 +871,7 @@ export declare const MarketingApiFactory: (configuration?: Configuration, basePa
820
871
  */
821
872
  getMarketingUnsubscribe(requestParameters?: MarketingApiGetMarketingUnsubscribeRequest, options?: RawAxiosRequestConfig): AxiosPromise<MarketingUnsubscribed>;
822
873
  /**
823
- * Saves a cohort filter for the caller\'s org. Name is required. Omitting event saves the WHOLE-ORG audience — every mailable customer — which needs no analytics warehouse; naming one narrows that roster to the customers who fired it within windowDays.
874
+ * Saves a cohort filter for the caller\'s org. Name is required. Omitting event saves the WHOLE-ORG audience — every mailable customer — which needs no analytics warehouse; naming one narrows that roster to the customers who fired it within windowDays. Org admin or SuperAdmin only; a member of the org is refused.
824
875
  * @summary Saves a cohort filter for the caller\'s org.
825
876
  * @param {MarketingApiPostMarketingAudiencesRequest} requestParameters Request parameters.
826
877
  * @param {*} [options] Override http request option.
@@ -868,7 +919,7 @@ export declare const MarketingApiFactory: (configuration?: Configuration, basePa
868
919
  */
869
920
  postMarketingPromosByCodeRedeem(requestParameters: MarketingApiPostMarketingPromosByCodeRedeemRequest, options?: RawAxiosRequestConfig): AxiosPromise<MarketingRedeemResult>;
870
921
  /**
871
- * Registers a drip sequence in the caller\'s org. Name is required; status defaults to draft, and a sequence must be ACTIVE before it will accept enrollments. The id, createdAt and updatedAt of the input are ignored — the server assigns them.
922
+ * Registers a drip sequence in the caller\'s org. Name is required; status defaults to draft, and a sequence must be ACTIVE before it will accept enrollments. The id, createdAt and updatedAt of the input are ignored — the server assigns them. Org admin or SuperAdmin only; a member of the org is refused.
872
923
  * @summary Registers a drip sequence in the caller\'s org.
873
924
  * @param {MarketingApiPostMarketingSequencesRequest} requestParameters Request parameters.
874
925
  * @param {*} [options] Override http request option.
@@ -876,7 +927,7 @@ export declare const MarketingApiFactory: (configuration?: Configuration, basePa
876
927
  */
877
928
  postMarketingSequences(requestParameters: MarketingApiPostMarketingSequencesRequest, options?: RawAxiosRequestConfig): AxiosPromise<MarketingSequence>;
878
929
  /**
879
- * Adds one contact or a whole audience to a sequence and schedules the first step for each. The sequence must be ACTIVE (a draft sends nothing), and the request must name exactly one of address or audienceId. Enrolling is ALL this does: the message itself is sent later by the drip engine, through the suppression gate, so an opted-out customer can be enrolled here and still never be mailed. Re-posting is safe — an address this sequence already took is counted in alreadyEnrolled and never double-dripped — which is what makes retrying a partially-applied announcement a resume rather than a second send.
930
+ * Adds one contact or a whole audience to a sequence and schedules the first step for each. The sequence must be ACTIVE (a draft sends nothing), and the request must name exactly one of address or audienceId. Enrolling is ALL this does: the message itself is sent later by the drip engine, through the suppression gate, so an opted-out customer can be enrolled here and still never be mailed. Re-posting is safe — an address this sequence already took is counted in alreadyEnrolled and never double-dripped — which is what makes retrying a partially-applied announcement a resume rather than a second send. Org admin or SuperAdmin only; a member of the org is refused.
880
931
  * @summary Adds one contact or a whole audience to a sequence and schedules the first step for each.
881
932
  * @param {MarketingApiPostMarketingSequencesByIdEnrollRequest} requestParameters Request parameters.
882
933
  * @param {*} [options] Override http request option.
@@ -884,7 +935,7 @@ export declare const MarketingApiFactory: (configuration?: Configuration, basePa
884
935
  */
885
936
  postMarketingSequencesByIdEnroll(requestParameters: MarketingApiPostMarketingSequencesByIdEnrollRequest, options?: RawAxiosRequestConfig): AxiosPromise<MarketingEnrollResult>;
886
937
  /**
887
- * Stops one walk mid-sequence and answers 204: no further step is sent, and steps already delivered are not recalled. Only an ACTIVE enrollment can be canceled — one already completed or canceled reads as not found.
938
+ * Stops one walk mid-sequence and answers 204: no further step is sent, and steps already delivered are not recalled. Only an ACTIVE enrollment can be canceled — one already completed or canceled reads as not found. Org admin or SuperAdmin only; a member of the org is refused.
888
939
  * @summary Stops one walk mid-sequence and answers 204: no further step is sent, and steps already delivered are not recalled.
889
940
  * @param {MarketingApiPostMarketingSequencesByIdEnrollmentsByEidCancelRequest} requestParameters Request parameters.
890
941
  * @param {*} [options] Override http request option.
@@ -892,7 +943,7 @@ export declare const MarketingApiFactory: (configuration?: Configuration, basePa
892
943
  */
893
944
  postMarketingSequencesByIdEnrollmentsByEidCancel(requestParameters: MarketingApiPostMarketingSequencesByIdEnrollmentsByEidCancelRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
894
945
  /**
895
- * Flips draft/active/archived — the activation gate for sending, since only an active sequence accepts enrollments. It does not touch enrollments already walking: archiving stops new ones, not in-flight ones.
946
+ * Flips draft/active/archived — the activation gate for sending, since only an active sequence accepts enrollments. It does not touch enrollments already walking: archiving stops new ones, not in-flight ones. Org admin or SuperAdmin only; a member of the org is refused.
896
947
  * @summary Flips draft/active/archived — the activation gate for sending, since only an active sequence accepts enrollments.
897
948
  * @param {MarketingApiPostMarketingSequencesByIdStatusRequest} requestParameters Request parameters.
898
949
  * @param {*} [options] Override http request option.
@@ -900,7 +951,7 @@ export declare const MarketingApiFactory: (configuration?: Configuration, basePa
900
951
  */
901
952
  postMarketingSequencesByIdStatus(requestParameters: MarketingApiPostMarketingSequencesByIdStatusRequest, options?: RawAxiosRequestConfig): AxiosPromise<MarketingSequenceStatus>;
902
953
  /**
903
- * Appends a message to the END of a sequence: the new step\'s idx is one past the last, so steps arrive in the order they are added. Body is required and delaySeconds must be >= 0. Adding a step does not disturb enrollments already walking — one that has passed this index simply never sees it.
954
+ * Appends a message to the END of a sequence: the new step\'s idx is one past the last, so steps arrive in the order they are added. Body is required and delaySeconds must be >= 0. Adding a step does not disturb enrollments already walking — one that has passed this index simply never sees it. Org admin or SuperAdmin only; a member of the org is refused.
904
955
  * @summary Appends a message to the END of a sequence: the new step\'s idx is one past the last, so steps arrive in the order they are added.
905
956
  * @param {MarketingApiPostMarketingSequencesByIdStepsRequest} requestParameters Request parameters.
906
957
  * @param {*} [options] Override http request option.
@@ -908,13 +959,21 @@ export declare const MarketingApiFactory: (configuration?: Configuration, basePa
908
959
  */
909
960
  postMarketingSequencesByIdSteps(requestParameters: MarketingApiPostMarketingSequencesByIdStepsRequest, options?: RawAxiosRequestConfig): AxiosPromise<MarketingStep>;
910
961
  /**
911
- * Records an opt-out for the org (admin / self-service management). Address is required; channel defaults to email. It is idempotent: re-suppressing the same tuple keeps the original record rather than erroring. From here on the ONE send gate refuses that recipient on that channel.
962
+ * Records an opt-out for the org (admin / self-service management). Address is required; channel defaults to email. It is idempotent: re-suppressing the same tuple keeps the original record rather than erroring. From here on the ONE send gate refuses that recipient on that channel. Org admin or SuperAdmin only; a member of the org is refused.
912
963
  * @summary Records an opt-out for the org (admin / self-service management).
913
964
  * @param {MarketingApiPostMarketingSuppressionsRequest} requestParameters Request parameters.
914
965
  * @param {*} [options] Override http request option.
915
966
  * @throws {RequiredError}
916
967
  */
917
968
  postMarketingSuppressions(requestParameters: MarketingApiPostMarketingSuppressionsRequest, options?: RawAxiosRequestConfig): AxiosPromise<MarketingSuppression>;
969
+ /**
970
+ * Is the one-click unsubscribe a mail client sends from the List-Unsubscribe header (RFC 8058): the same signed link the footer carries, POSTed with the form body List-Unsubscribe=One-Click. It opts out exactly what a click on the link does, under the same token check, and is as public.
971
+ * @summary Is the one-click unsubscribe a mail client sends from the List-Unsubscribe header (RFC 8058): the same signed link the footer carries, POSTed with the form body List-Unsubscribe=One-Click.
972
+ * @param {MarketingApiPostMarketingUnsubscribeRequest} requestParameters Request parameters.
973
+ * @param {*} [options] Override http request option.
974
+ * @throws {RequiredError}
975
+ */
976
+ postMarketingUnsubscribe(requestParameters?: MarketingApiPostMarketingUnsubscribeRequest, options?: RawAxiosRequestConfig): AxiosPromise<MarketingUnsubscribed>;
918
977
  /**
919
978
  * Replaces a post\'s editable fields. It is a full write, not a patch, and it RESETS the lifecycle from the schedule: a scheduledAt makes the post \"scheduled\" again and none makes it a draft — so editing a failed post requeues it rather than leaving it stuck.
920
979
  * @summary Replaces a post\'s editable fields.
@@ -1105,6 +1164,25 @@ export interface MarketingApiGetMarketingCampaignsByIdRequest {
1105
1164
  */
1106
1165
  readonly id: string;
1107
1166
  }
1167
+ /**
1168
+ * Request parameters for getMarketingClick operation in MarketingApi.
1169
+ * @export
1170
+ * @interface MarketingApiGetMarketingClickRequest
1171
+ */
1172
+ export interface MarketingApiGetMarketingClickRequest {
1173
+ /**
1174
+ * Agent is the clicker\&#39;s User-Agent header. Only its family (chrome, safari, automated, …) is kept.
1175
+ * @type {string}
1176
+ * @memberof MarketingApiGetMarketingClick
1177
+ */
1178
+ readonly userAgent?: string;
1179
+ /**
1180
+ * T is the click token the send minted for this link and this recipient: base64url, signed under the deployment\&#39;s KMS key marketing/click-hmac. It is the request\&#39;s only authority.
1181
+ * @type {string}
1182
+ * @memberof MarketingApiGetMarketingClick
1183
+ */
1184
+ readonly t?: string;
1185
+ }
1108
1186
  /**
1109
1187
  * Request parameters for getMarketingPromosByCodeEligibility operation in MarketingApi.
1110
1188
  * @export
@@ -1437,6 +1515,43 @@ export interface MarketingApiPostMarketingSuppressionsRequest {
1437
1515
  */
1438
1516
  readonly marketingSuppression: MarketingSuppression;
1439
1517
  }
1518
+ /**
1519
+ * Request parameters for postMarketingUnsubscribe operation in MarketingApi.
1520
+ * @export
1521
+ * @interface MarketingApiPostMarketingUnsubscribeRequest
1522
+ */
1523
+ export interface MarketingApiPostMarketingUnsubscribeRequest {
1524
+ /**
1525
+ * Org is the org the link was minted for.
1526
+ * @type {string}
1527
+ * @memberof MarketingApiPostMarketingUnsubscribe
1528
+ */
1529
+ readonly org?: string;
1530
+ /**
1531
+ * Channel is the surface to opt out of.
1532
+ * @type {string}
1533
+ * @memberof MarketingApiPostMarketingUnsubscribe
1534
+ */
1535
+ readonly channel?: string;
1536
+ /**
1537
+ * Address is the recipient to opt out.
1538
+ * @type {string}
1539
+ * @memberof MarketingApiPostMarketingUnsubscribe
1540
+ */
1541
+ readonly address?: string;
1542
+ /**
1543
+ * Token is the HMAC over (org, channel, address), the only authority here.
1544
+ * @type {string}
1545
+ * @memberof MarketingApiPostMarketingUnsubscribe
1546
+ */
1547
+ readonly token?: string;
1548
+ /**
1549
+ * OneClick is the form\\\&#39;s List-Unsubscribe field, \\\&quot;One-Click\\\&quot; from a mail client. The token decides; this field only names the form.
1550
+ * @type {string}
1551
+ * @memberof MarketingApiPostMarketingUnsubscribe
1552
+ */
1553
+ readonly listUnsubscribe?: string;
1554
+ }
1440
1555
  /**
1441
1556
  * Request parameters for putMarketingCalendarById operation in MarketingApi.
1442
1557
  * @export
@@ -1483,7 +1598,7 @@ export interface MarketingApiPutMarketingCampaignsByIdRequest {
1483
1598
  */
1484
1599
  export declare class MarketingApi extends BaseAPI {
1485
1600
  /**
1486
- * Removes one of the caller org\'s audiences and answers 204. It deletes the saved filter only — no customer, event or enrollment is touched.
1601
+ * Removes one of the caller org\'s audiences and answers 204. It deletes the saved filter only — no customer, event or enrollment is touched. Org admin or SuperAdmin only; a member of the org is refused.
1487
1602
  * @summary Removes one of the caller org\'s audiences and answers 204.
1488
1603
  * @param {MarketingApiDeleteMarketingAudiencesByIdRequest} requestParameters Request parameters.
1489
1604
  * @param {*} [options] Override http request option.
@@ -1510,7 +1625,7 @@ export declare class MarketingApi extends BaseAPI {
1510
1625
  */
1511
1626
  deleteMarketingCampaignsById(requestParameters: MarketingApiDeleteMarketingCampaignsByIdRequest, options?: RawAxiosRequestConfig): Promise<globalAxios.AxiosResponse<void, any, {}>>;
1512
1627
  /**
1513
- * Re-subscribes an address on one channel and answers 204. An address that is not on the list reads as not found.
1628
+ * Re-subscribes an address on one channel and answers 204. An address that is not on the list reads as not found. Org admin or SuperAdmin only; a member of the org is refused.
1514
1629
  * @summary Re-subscribes an address on one channel and answers 204.
1515
1630
  * @param {MarketingApiDeleteMarketingSuppressionsRequest} requestParameters Request parameters.
1516
1631
  * @param {*} [options] Override http request option.
@@ -1581,6 +1696,15 @@ export declare class MarketingApi extends BaseAPI {
1581
1696
  * @memberof MarketingApi
1582
1697
  */
1583
1698
  getMarketingCampaignsById(requestParameters: MarketingApiGetMarketingCampaignsByIdRequest, options?: RawAxiosRequestConfig): Promise<globalAxios.AxiosResponse<MarketingCampaign, any, {}>>;
1699
+ /**
1700
+ * Follows a tracked email link. It is public — the person clicking has no session — and the token is its only authority: a token that verifies, for a sequence of one of Hanzo\'s own orgs that still exists, answers 302 to the destination it signs and records one click (time and user-agent family; no IP address), off the request path so the redirect never waits on storage. A token that is missing, altered, signed under another key, older than a year, or for any other org or a deleted sequence answers 302 to the brand\'s home page (https://hanzo.ai/ on Hanzo\'s deployment). The location is only ever a destination a token signs or that page, never a URL the request names.
1701
+ * @summary Follows a tracked email link.
1702
+ * @param {MarketingApiGetMarketingClickRequest} requestParameters Request parameters.
1703
+ * @param {*} [options] Override http request option.
1704
+ * @throws {RequiredError}
1705
+ * @memberof MarketingApi
1706
+ */
1707
+ getMarketingClick(requestParameters?: MarketingApiGetMarketingClickRequest, options?: RawAxiosRequestConfig): Promise<globalAxios.AxiosResponse<ProblemDetails, any, {}>>;
1584
1708
  /**
1585
1709
  * Returns every promo the deployment offers with its live counters: how many orgs have redeemed it and how many redemptions remain under the cap. The promos are fleet-wide, not per-org — only the counters move.
1586
1710
  * @summary Returns every promo the deployment offers with its live counters: how many orgs have redeemed it and how many redemptions remain under the cap.
@@ -1670,7 +1794,7 @@ export declare class MarketingApi extends BaseAPI {
1670
1794
  */
1671
1795
  getMarketingUnsubscribe(requestParameters?: MarketingApiGetMarketingUnsubscribeRequest, options?: RawAxiosRequestConfig): Promise<globalAxios.AxiosResponse<MarketingUnsubscribed, any, {}>>;
1672
1796
  /**
1673
- * Saves a cohort filter for the caller\'s org. Name is required. Omitting event saves the WHOLE-ORG audience — every mailable customer — which needs no analytics warehouse; naming one narrows that roster to the customers who fired it within windowDays.
1797
+ * Saves a cohort filter for the caller\'s org. Name is required. Omitting event saves the WHOLE-ORG audience — every mailable customer — which needs no analytics warehouse; naming one narrows that roster to the customers who fired it within windowDays. Org admin or SuperAdmin only; a member of the org is refused.
1674
1798
  * @summary Saves a cohort filter for the caller\'s org.
1675
1799
  * @param {MarketingApiPostMarketingAudiencesRequest} requestParameters Request parameters.
1676
1800
  * @param {*} [options] Override http request option.
@@ -1724,7 +1848,7 @@ export declare class MarketingApi extends BaseAPI {
1724
1848
  */
1725
1849
  postMarketingPromosByCodeRedeem(requestParameters: MarketingApiPostMarketingPromosByCodeRedeemRequest, options?: RawAxiosRequestConfig): Promise<globalAxios.AxiosResponse<MarketingRedeemResult, any, {}>>;
1726
1850
  /**
1727
- * Registers a drip sequence in the caller\'s org. Name is required; status defaults to draft, and a sequence must be ACTIVE before it will accept enrollments. The id, createdAt and updatedAt of the input are ignored — the server assigns them.
1851
+ * Registers a drip sequence in the caller\'s org. Name is required; status defaults to draft, and a sequence must be ACTIVE before it will accept enrollments. The id, createdAt and updatedAt of the input are ignored — the server assigns them. Org admin or SuperAdmin only; a member of the org is refused.
1728
1852
  * @summary Registers a drip sequence in the caller\'s org.
1729
1853
  * @param {MarketingApiPostMarketingSequencesRequest} requestParameters Request parameters.
1730
1854
  * @param {*} [options] Override http request option.
@@ -1733,7 +1857,7 @@ export declare class MarketingApi extends BaseAPI {
1733
1857
  */
1734
1858
  postMarketingSequences(requestParameters: MarketingApiPostMarketingSequencesRequest, options?: RawAxiosRequestConfig): Promise<globalAxios.AxiosResponse<MarketingSequence, any, {}>>;
1735
1859
  /**
1736
- * Adds one contact or a whole audience to a sequence and schedules the first step for each. The sequence must be ACTIVE (a draft sends nothing), and the request must name exactly one of address or audienceId. Enrolling is ALL this does: the message itself is sent later by the drip engine, through the suppression gate, so an opted-out customer can be enrolled here and still never be mailed. Re-posting is safe — an address this sequence already took is counted in alreadyEnrolled and never double-dripped — which is what makes retrying a partially-applied announcement a resume rather than a second send.
1860
+ * Adds one contact or a whole audience to a sequence and schedules the first step for each. The sequence must be ACTIVE (a draft sends nothing), and the request must name exactly one of address or audienceId. Enrolling is ALL this does: the message itself is sent later by the drip engine, through the suppression gate, so an opted-out customer can be enrolled here and still never be mailed. Re-posting is safe — an address this sequence already took is counted in alreadyEnrolled and never double-dripped — which is what makes retrying a partially-applied announcement a resume rather than a second send. Org admin or SuperAdmin only; a member of the org is refused.
1737
1861
  * @summary Adds one contact or a whole audience to a sequence and schedules the first step for each.
1738
1862
  * @param {MarketingApiPostMarketingSequencesByIdEnrollRequest} requestParameters Request parameters.
1739
1863
  * @param {*} [options] Override http request option.
@@ -1742,7 +1866,7 @@ export declare class MarketingApi extends BaseAPI {
1742
1866
  */
1743
1867
  postMarketingSequencesByIdEnroll(requestParameters: MarketingApiPostMarketingSequencesByIdEnrollRequest, options?: RawAxiosRequestConfig): Promise<globalAxios.AxiosResponse<MarketingEnrollResult, any, {}>>;
1744
1868
  /**
1745
- * Stops one walk mid-sequence and answers 204: no further step is sent, and steps already delivered are not recalled. Only an ACTIVE enrollment can be canceled — one already completed or canceled reads as not found.
1869
+ * Stops one walk mid-sequence and answers 204: no further step is sent, and steps already delivered are not recalled. Only an ACTIVE enrollment can be canceled — one already completed or canceled reads as not found. Org admin or SuperAdmin only; a member of the org is refused.
1746
1870
  * @summary Stops one walk mid-sequence and answers 204: no further step is sent, and steps already delivered are not recalled.
1747
1871
  * @param {MarketingApiPostMarketingSequencesByIdEnrollmentsByEidCancelRequest} requestParameters Request parameters.
1748
1872
  * @param {*} [options] Override http request option.
@@ -1751,7 +1875,7 @@ export declare class MarketingApi extends BaseAPI {
1751
1875
  */
1752
1876
  postMarketingSequencesByIdEnrollmentsByEidCancel(requestParameters: MarketingApiPostMarketingSequencesByIdEnrollmentsByEidCancelRequest, options?: RawAxiosRequestConfig): Promise<globalAxios.AxiosResponse<void, any, {}>>;
1753
1877
  /**
1754
- * Flips draft/active/archived — the activation gate for sending, since only an active sequence accepts enrollments. It does not touch enrollments already walking: archiving stops new ones, not in-flight ones.
1878
+ * Flips draft/active/archived — the activation gate for sending, since only an active sequence accepts enrollments. It does not touch enrollments already walking: archiving stops new ones, not in-flight ones. Org admin or SuperAdmin only; a member of the org is refused.
1755
1879
  * @summary Flips draft/active/archived — the activation gate for sending, since only an active sequence accepts enrollments.
1756
1880
  * @param {MarketingApiPostMarketingSequencesByIdStatusRequest} requestParameters Request parameters.
1757
1881
  * @param {*} [options] Override http request option.
@@ -1760,7 +1884,7 @@ export declare class MarketingApi extends BaseAPI {
1760
1884
  */
1761
1885
  postMarketingSequencesByIdStatus(requestParameters: MarketingApiPostMarketingSequencesByIdStatusRequest, options?: RawAxiosRequestConfig): Promise<globalAxios.AxiosResponse<MarketingSequenceStatus, any, {}>>;
1762
1886
  /**
1763
- * Appends a message to the END of a sequence: the new step\'s idx is one past the last, so steps arrive in the order they are added. Body is required and delaySeconds must be >= 0. Adding a step does not disturb enrollments already walking — one that has passed this index simply never sees it.
1887
+ * Appends a message to the END of a sequence: the new step\'s idx is one past the last, so steps arrive in the order they are added. Body is required and delaySeconds must be >= 0. Adding a step does not disturb enrollments already walking — one that has passed this index simply never sees it. Org admin or SuperAdmin only; a member of the org is refused.
1764
1888
  * @summary Appends a message to the END of a sequence: the new step\'s idx is one past the last, so steps arrive in the order they are added.
1765
1889
  * @param {MarketingApiPostMarketingSequencesByIdStepsRequest} requestParameters Request parameters.
1766
1890
  * @param {*} [options] Override http request option.
@@ -1769,7 +1893,7 @@ export declare class MarketingApi extends BaseAPI {
1769
1893
  */
1770
1894
  postMarketingSequencesByIdSteps(requestParameters: MarketingApiPostMarketingSequencesByIdStepsRequest, options?: RawAxiosRequestConfig): Promise<globalAxios.AxiosResponse<MarketingStep, any, {}>>;
1771
1895
  /**
1772
- * Records an opt-out for the org (admin / self-service management). Address is required; channel defaults to email. It is idempotent: re-suppressing the same tuple keeps the original record rather than erroring. From here on the ONE send gate refuses that recipient on that channel.
1896
+ * Records an opt-out for the org (admin / self-service management). Address is required; channel defaults to email. It is idempotent: re-suppressing the same tuple keeps the original record rather than erroring. From here on the ONE send gate refuses that recipient on that channel. Org admin or SuperAdmin only; a member of the org is refused.
1773
1897
  * @summary Records an opt-out for the org (admin / self-service management).
1774
1898
  * @param {MarketingApiPostMarketingSuppressionsRequest} requestParameters Request parameters.
1775
1899
  * @param {*} [options] Override http request option.
@@ -1777,6 +1901,15 @@ export declare class MarketingApi extends BaseAPI {
1777
1901
  * @memberof MarketingApi
1778
1902
  */
1779
1903
  postMarketingSuppressions(requestParameters: MarketingApiPostMarketingSuppressionsRequest, options?: RawAxiosRequestConfig): Promise<globalAxios.AxiosResponse<MarketingSuppression, any, {}>>;
1904
+ /**
1905
+ * Is the one-click unsubscribe a mail client sends from the List-Unsubscribe header (RFC 8058): the same signed link the footer carries, POSTed with the form body List-Unsubscribe=One-Click. It opts out exactly what a click on the link does, under the same token check, and is as public.
1906
+ * @summary Is the one-click unsubscribe a mail client sends from the List-Unsubscribe header (RFC 8058): the same signed link the footer carries, POSTed with the form body List-Unsubscribe=One-Click.
1907
+ * @param {MarketingApiPostMarketingUnsubscribeRequest} requestParameters Request parameters.
1908
+ * @param {*} [options] Override http request option.
1909
+ * @throws {RequiredError}
1910
+ * @memberof MarketingApi
1911
+ */
1912
+ postMarketingUnsubscribe(requestParameters?: MarketingApiPostMarketingUnsubscribeRequest, options?: RawAxiosRequestConfig): Promise<globalAxios.AxiosResponse<MarketingUnsubscribed, any, {}>>;
1780
1913
  /**
1781
1914
  * Replaces a post\'s editable fields. It is a full write, not a patch, and it RESETS the lifecycle from the schedule: a scheduledAt makes the post \"scheduled\" again and none makes it a draft — so editing a failed post requeues it rather than leaving it stuck.
1782
1915
  * @summary Replaces a post\'s editable fields.