From 23de2f8398c5e4cefb4ff1b95cd198e0e380a63f Mon Sep 17 00:00:00 2001 From: pierreh <550177+pierreh@users.noreply.github.com> Date: Tue, 7 Jul 2026 09:21:23 +0000 Subject: [PATCH] chore: sync OpenAPI spec from upstream --- .changeset/updated-api-spec.md | 6 + packages/api-client/src/generated/crm/crm.ts | 21 +- .../api-client/src/generated/email/email.ts | 534 +++++++++++++- .../models/dripCampaignAddDripCampaignBody.ts | 7 + .../dripCampaignAddDripCampaignMessageBody.ts | 7 + .../dripCampaignSendTestCampaignEmailBody.ts | 7 + .../dripCampaignUpdateDripCampaignBody.ts | 7 + ...ipCampaignUpdateDripCampaignMessageBody.ts | 7 + .../api-client/src/generated/models/index.ts | 5 + packages/react/src/generated/crm/crm.ts | 29 +- packages/react/src/generated/email/email.ts | 690 +++++++++++++++++- .../react/src/generated/outsetaAPI.schemas.ts | 25 + 12 files changed, 1319 insertions(+), 26 deletions(-) create mode 100644 .changeset/updated-api-spec.md create mode 100644 packages/api-client/src/generated/models/dripCampaignAddDripCampaignBody.ts create mode 100644 packages/api-client/src/generated/models/dripCampaignAddDripCampaignMessageBody.ts create mode 100644 packages/api-client/src/generated/models/dripCampaignSendTestCampaignEmailBody.ts create mode 100644 packages/api-client/src/generated/models/dripCampaignUpdateDripCampaignBody.ts create mode 100644 packages/api-client/src/generated/models/dripCampaignUpdateDripCampaignMessageBody.ts diff --git a/.changeset/updated-api-spec.md b/.changeset/updated-api-spec.md new file mode 100644 index 0000000..e1ed3c4 --- /dev/null +++ b/.changeset/updated-api-spec.md @@ -0,0 +1,6 @@ +--- +"@outseta/api-client": patch +"@outseta/react": patch +--- + +Update API spec. diff --git a/packages/api-client/src/generated/crm/crm.ts b/packages/api-client/src/generated/crm/crm.ts index 8b81003..9a84063 100644 --- a/packages/api-client/src/generated/crm/crm.ts +++ b/packages/api-client/src/generated/crm/crm.ts @@ -673,7 +673,10 @@ export const accountAddPersonToAccount = async (accountUid: string | null, /** - * @summary Update an account membership. This is the method by which you can change the primary contact of an account. + * Update the membership that links a person to an account — for example, to make a different +person the account's primary contact. The membershipUid identifies which membership to update; +send the changed PersonAccount fields (such as IsPrimary) in the request body. + * @summary Update an account membership. */ export type accountUpdateMembershipResponse200 = { data: Blob @@ -729,7 +732,8 @@ export const accountUpdateMembership = async (accountUid: string | null, /** - * @summary Remove a person from an account. Note that you cannot remove the primary contact of an account. + * Note that you cannot remove the primary contact of an account. + * @summary Remove a person from an account. */ export type accountDeleteMembershipResponse200 = { data: Blob @@ -1255,7 +1259,8 @@ export const personDeletePerson = async (personUid: string | null, options?: Req /** - * @summary Set a temporary password for a user. The user needs to update the password with the next login. + * The user needs to update the password with the next login. + * @summary Set a temporary password for a user. */ export type personSetTemporaryPasswordResponse200 = { data: Blob @@ -1309,11 +1314,11 @@ export const personSetTemporaryPassword = async (personUid: string | null, /** - * All prior recovery codes are invalidated. Existing TOTP/Email mechanisms are intentionally -left in place — the admin returns the new codes to the user out of band, the user logs in -with one, then re-enrolls their device. Mirrors the temporary-password flow at -SetTemporaryPassword. - * @summary Regenerate 2FA recovery codes for a user locked out of their authenticator. + * Use this when a user is locked out of their authenticator. All prior recovery codes are +invalidated. Existing TOTP/Email mechanisms are intentionally left in place — the admin +returns the new codes to the user out of band, the user logs in with one, then re-enrolls +their device. Mirrors the temporary-password flow at SetTemporaryPassword. + * @summary Regenerate 2FA recovery codes for a user. */ export type personRegenerateTwoFactorRecoveryCodesResponse200 = { data: Blob diff --git a/packages/api-client/src/generated/email/email.ts b/packages/api-client/src/generated/email/email.ts index 765e2f3..59825cd 100644 --- a/packages/api-client/src/generated/email/email.ts +++ b/packages/api-client/src/generated/email/email.ts @@ -4,6 +4,13 @@ import type { CampaignAddBroadcastEmailBody, CampaignSendTestCampaignEmailBody, CampaignUpdateBroadcastEmailBody, + DripCampaign, + DripCampaignAddDripCampaignBody, + DripCampaignAddDripCampaignMessageBody, + DripCampaignMessage, + DripCampaignSendTestCampaignEmailBody, + DripCampaignUpdateDripCampaignBody, + DripCampaignUpdateDripCampaignMessageBody, EmailListAddSubscriptionBody, EmailListGetAllSubscriptionsParams, EmailListPerson @@ -38,6 +45,527 @@ type NonReadonly = [T] extends [UnionToIntersection] ? { } : DistributeReadOnlyOverUnions; +/** + * @summary Retrieve all drip campaigns. + */ +export type dripCampaignGetAllDripCampaignsResponse200 = { + data: DripCampaign[] + status: 200 +} + +export type dripCampaignGetAllDripCampaignsResponse401 = { + data: void + status: 401 +} + +export type dripCampaignGetAllDripCampaignsResponseSuccess = (dripCampaignGetAllDripCampaignsResponse200) & { + headers: Headers; +}; +export type dripCampaignGetAllDripCampaignsResponseError = (dripCampaignGetAllDripCampaignsResponse401) & { + headers: Headers; +}; + +export type dripCampaignGetAllDripCampaignsResponse = (dripCampaignGetAllDripCampaignsResponseSuccess | dripCampaignGetAllDripCampaignsResponseError) + +export const getDripCampaignGetAllDripCampaignsUrl = () => { + + + + + return `/api/v1/email/campaigns/drips` +} + +export const dripCampaignGetAllDripCampaigns = async ( options?: RequestInit): Promise => { + + return customFetch(getDripCampaignGetAllDripCampaignsUrl(), + { + ...options, + method: 'GET' + + + } +);} + + +/** + * To copy an existing drip campaign, retrieve it and pass its data as the request body — the +Uid and per-message counts are automatically reset. Messages can be supplied inline via +DripCampaignMessages, or added later with the messages endpoint. + * @summary Create a new drip campaign. + */ +export type dripCampaignAddDripCampaignResponse200 = { + data: DripCampaign + status: 200 +} + +export type dripCampaignAddDripCampaignResponse401 = { + data: void + status: 401 +} + +export type dripCampaignAddDripCampaignResponseSuccess = (dripCampaignAddDripCampaignResponse200) & { + headers: Headers; +}; +export type dripCampaignAddDripCampaignResponseError = (dripCampaignAddDripCampaignResponse401) & { + headers: Headers; +}; + +export type dripCampaignAddDripCampaignResponse = (dripCampaignAddDripCampaignResponseSuccess | dripCampaignAddDripCampaignResponseError) + +export const getDripCampaignAddDripCampaignUrl = () => { + + + + + return `/api/v1/email/campaigns/drips` +} + +export const dripCampaignAddDripCampaign = async (dripCampaignAddDripCampaignBody: NonReadonly, options?: RequestInit): Promise => { + + return customFetch(getDripCampaignAddDripCampaignUrl(), + { + ...options, + method: 'POST', + headers: { 'Content-Type': 'application/json', ...options?.headers }, + body: JSON.stringify( + dripCampaignAddDripCampaignBody,) + } +);} + + +/** + * @summary Retrieve a drip campaign. + */ +export type dripCampaignGetDripCampaignResponse200 = { + data: DripCampaign + status: 200 +} + +export type dripCampaignGetDripCampaignResponse400 = { + data: void + status: 400 +} + +export type dripCampaignGetDripCampaignResponse401 = { + data: void + status: 401 +} + +export type dripCampaignGetDripCampaignResponse404 = { + data: void + status: 404 +} + +export type dripCampaignGetDripCampaignResponseSuccess = (dripCampaignGetDripCampaignResponse200) & { + headers: Headers; +}; +export type dripCampaignGetDripCampaignResponseError = (dripCampaignGetDripCampaignResponse400 | dripCampaignGetDripCampaignResponse401 | dripCampaignGetDripCampaignResponse404) & { + headers: Headers; +}; + +export type dripCampaignGetDripCampaignResponse = (dripCampaignGetDripCampaignResponseSuccess | dripCampaignGetDripCampaignResponseError) + +export const getDripCampaignGetDripCampaignUrl = (dripCampaignUid: string | null,) => { + + + + + return `/api/v1/email/campaigns/drips/${dripCampaignUid}` +} + +export const dripCampaignGetDripCampaign = async (dripCampaignUid: string | null, options?: RequestInit): Promise => { + + return customFetch(getDripCampaignGetDripCampaignUrl(dripCampaignUid), + { + ...options, + method: 'GET' + + + } +);} + + +/** + * Activating a drip campaign (setting IsActive) begins sending its messages to members. +StartDripToExistingMembers controls whether members already in the campaign receive the +messages or only members added going forward. + * @summary Update a drip campaign. + */ +export type dripCampaignUpdateDripCampaignResponse200 = { + data: DripCampaign + status: 200 +} + +export type dripCampaignUpdateDripCampaignResponse400 = { + data: void + status: 400 +} + +export type dripCampaignUpdateDripCampaignResponse401 = { + data: void + status: 401 +} + +export type dripCampaignUpdateDripCampaignResponse404 = { + data: void + status: 404 +} + +export type dripCampaignUpdateDripCampaignResponseSuccess = (dripCampaignUpdateDripCampaignResponse200) & { + headers: Headers; +}; +export type dripCampaignUpdateDripCampaignResponseError = (dripCampaignUpdateDripCampaignResponse400 | dripCampaignUpdateDripCampaignResponse401 | dripCampaignUpdateDripCampaignResponse404) & { + headers: Headers; +}; + +export type dripCampaignUpdateDripCampaignResponse = (dripCampaignUpdateDripCampaignResponseSuccess | dripCampaignUpdateDripCampaignResponseError) + +export const getDripCampaignUpdateDripCampaignUrl = (dripCampaignUid: string | null,) => { + + + + + return `/api/v1/email/campaigns/drips/${dripCampaignUid}` +} + +export const dripCampaignUpdateDripCampaign = async (dripCampaignUid: string | null, + dripCampaignUpdateDripCampaignBody: NonReadonly, options?: RequestInit): Promise => { + + return customFetch(getDripCampaignUpdateDripCampaignUrl(dripCampaignUid), + { + ...options, + method: 'PUT', + headers: { 'Content-Type': 'application/json', ...options?.headers }, + body: JSON.stringify( + dripCampaignUpdateDripCampaignBody,) + } +);} + + +/** + * @summary Delete a drip campaign. + */ +export type dripCampaignDeleteDripCampaignResponse200 = { + data: Blob + status: 200 +} + +export type dripCampaignDeleteDripCampaignResponse400 = { + data: void + status: 400 +} + +export type dripCampaignDeleteDripCampaignResponse401 = { + data: void + status: 401 +} + +export type dripCampaignDeleteDripCampaignResponse404 = { + data: void + status: 404 +} + +export type dripCampaignDeleteDripCampaignResponseSuccess = (dripCampaignDeleteDripCampaignResponse200) & { + headers: Headers; +}; +export type dripCampaignDeleteDripCampaignResponseError = (dripCampaignDeleteDripCampaignResponse400 | dripCampaignDeleteDripCampaignResponse401 | dripCampaignDeleteDripCampaignResponse404) & { + headers: Headers; +}; + +export type dripCampaignDeleteDripCampaignResponse = (dripCampaignDeleteDripCampaignResponseSuccess | dripCampaignDeleteDripCampaignResponseError) + +export const getDripCampaignDeleteDripCampaignUrl = (dripCampaignUid: string | null,) => { + + + + + return `/api/v1/email/campaigns/drips/${dripCampaignUid}` +} + +export const dripCampaignDeleteDripCampaign = async (dripCampaignUid: string | null, options?: RequestInit): Promise => { + + return customFetch(getDripCampaignDeleteDripCampaignUrl(dripCampaignUid), + { + ...options, + method: 'DELETE' + + + } +);} + + +/** + * Adding a message deactivates the drip campaign so its schedule can be reviewed before it +resumes sending. Use DelayInHours to control how long after the trigger the message is sent. + * @summary Add a message to a drip campaign. + */ +export type dripCampaignAddDripCampaignMessageResponse200 = { + data: DripCampaignMessage + status: 200 +} + +export type dripCampaignAddDripCampaignMessageResponse400 = { + data: void + status: 400 +} + +export type dripCampaignAddDripCampaignMessageResponse401 = { + data: void + status: 401 +} + +export type dripCampaignAddDripCampaignMessageResponse404 = { + data: void + status: 404 +} + +export type dripCampaignAddDripCampaignMessageResponseSuccess = (dripCampaignAddDripCampaignMessageResponse200) & { + headers: Headers; +}; +export type dripCampaignAddDripCampaignMessageResponseError = (dripCampaignAddDripCampaignMessageResponse400 | dripCampaignAddDripCampaignMessageResponse401 | dripCampaignAddDripCampaignMessageResponse404) & { + headers: Headers; +}; + +export type dripCampaignAddDripCampaignMessageResponse = (dripCampaignAddDripCampaignMessageResponseSuccess | dripCampaignAddDripCampaignMessageResponseError) + +export const getDripCampaignAddDripCampaignMessageUrl = (dripCampaignUid: string | null,) => { + + + + + return `/api/v1/email/campaigns/drips/${dripCampaignUid}/messages` +} + +export const dripCampaignAddDripCampaignMessage = async (dripCampaignUid: string | null, + dripCampaignAddDripCampaignMessageBody: NonReadonly, options?: RequestInit): Promise => { + + return customFetch(getDripCampaignAddDripCampaignMessageUrl(dripCampaignUid), + { + ...options, + method: 'POST', + headers: { 'Content-Type': 'application/json', ...options?.headers }, + body: JSON.stringify( + dripCampaignAddDripCampaignMessageBody,) + } +);} + + +/** + * @summary Retrieve a message from a drip campaign. + */ +export type dripCampaignGetDripCampaignMessageResponse200 = { + data: DripCampaignMessage + status: 200 +} + +export type dripCampaignGetDripCampaignMessageResponse400 = { + data: void + status: 400 +} + +export type dripCampaignGetDripCampaignMessageResponse401 = { + data: void + status: 401 +} + +export type dripCampaignGetDripCampaignMessageResponse404 = { + data: void + status: 404 +} + +export type dripCampaignGetDripCampaignMessageResponseSuccess = (dripCampaignGetDripCampaignMessageResponse200) & { + headers: Headers; +}; +export type dripCampaignGetDripCampaignMessageResponseError = (dripCampaignGetDripCampaignMessageResponse400 | dripCampaignGetDripCampaignMessageResponse401 | dripCampaignGetDripCampaignMessageResponse404) & { + headers: Headers; +}; + +export type dripCampaignGetDripCampaignMessageResponse = (dripCampaignGetDripCampaignMessageResponseSuccess | dripCampaignGetDripCampaignMessageResponseError) + +export const getDripCampaignGetDripCampaignMessageUrl = (dripCampaignUid: string | null, + dripCampaignMessageUid: string | null,) => { + + + + + return `/api/v1/email/campaigns/drips/${dripCampaignUid}/messages/${dripCampaignMessageUid}` +} + +export const dripCampaignGetDripCampaignMessage = async (dripCampaignUid: string | null, + dripCampaignMessageUid: string | null, options?: RequestInit): Promise => { + + return customFetch(getDripCampaignGetDripCampaignMessageUrl(dripCampaignUid,dripCampaignMessageUid), + { + ...options, + method: 'GET' + + + } +);} + + +/** + * Changing DelayInHours on an active drip campaign reschedules the drip for its existing +members. The DripCampaign Uid on the body, if supplied, must match the dripCampaignUid in +the URL, and the message Uid on the body must match the dripCampaignMessageUid in the URL. + * @summary Update a message in a drip campaign. + */ +export type dripCampaignUpdateDripCampaignMessageResponse200 = { + data: DripCampaignMessage + status: 200 +} + +export type dripCampaignUpdateDripCampaignMessageResponse400 = { + data: void + status: 400 +} + +export type dripCampaignUpdateDripCampaignMessageResponse401 = { + data: void + status: 401 +} + +export type dripCampaignUpdateDripCampaignMessageResponse404 = { + data: void + status: 404 +} + +export type dripCampaignUpdateDripCampaignMessageResponseSuccess = (dripCampaignUpdateDripCampaignMessageResponse200) & { + headers: Headers; +}; +export type dripCampaignUpdateDripCampaignMessageResponseError = (dripCampaignUpdateDripCampaignMessageResponse400 | dripCampaignUpdateDripCampaignMessageResponse401 | dripCampaignUpdateDripCampaignMessageResponse404) & { + headers: Headers; +}; + +export type dripCampaignUpdateDripCampaignMessageResponse = (dripCampaignUpdateDripCampaignMessageResponseSuccess | dripCampaignUpdateDripCampaignMessageResponseError) + +export const getDripCampaignUpdateDripCampaignMessageUrl = (dripCampaignUid: string | null, + dripCampaignMessageUid: string | null,) => { + + + + + return `/api/v1/email/campaigns/drips/${dripCampaignUid}/messages/${dripCampaignMessageUid}` +} + +export const dripCampaignUpdateDripCampaignMessage = async (dripCampaignUid: string | null, + dripCampaignMessageUid: string | null, + dripCampaignUpdateDripCampaignMessageBody: NonReadonly, options?: RequestInit): Promise => { + + return customFetch(getDripCampaignUpdateDripCampaignMessageUrl(dripCampaignUid,dripCampaignMessageUid), + { + ...options, + method: 'PUT', + headers: { 'Content-Type': 'application/json', ...options?.headers }, + body: JSON.stringify( + dripCampaignUpdateDripCampaignMessageBody,) + } +);} + + +/** + * If the drip campaign is active, the drip is rescheduled for its existing members after the +message is removed. + * @summary Delete a message from a drip campaign. + */ +export type dripCampaignDeleteDripCampaignMessageResponse200 = { + data: Blob + status: 200 +} + +export type dripCampaignDeleteDripCampaignMessageResponse400 = { + data: void + status: 400 +} + +export type dripCampaignDeleteDripCampaignMessageResponse401 = { + data: void + status: 401 +} + +export type dripCampaignDeleteDripCampaignMessageResponse404 = { + data: void + status: 404 +} + +export type dripCampaignDeleteDripCampaignMessageResponseSuccess = (dripCampaignDeleteDripCampaignMessageResponse200) & { + headers: Headers; +}; +export type dripCampaignDeleteDripCampaignMessageResponseError = (dripCampaignDeleteDripCampaignMessageResponse400 | dripCampaignDeleteDripCampaignMessageResponse401 | dripCampaignDeleteDripCampaignMessageResponse404) & { + headers: Headers; +}; + +export type dripCampaignDeleteDripCampaignMessageResponse = (dripCampaignDeleteDripCampaignMessageResponseSuccess | dripCampaignDeleteDripCampaignMessageResponseError) + +export const getDripCampaignDeleteDripCampaignMessageUrl = (dripCampaignUid: string | null, + dripCampaignMessageUid: string | null,) => { + + + + + return `/api/v1/email/campaigns/drips/${dripCampaignUid}/messages/${dripCampaignMessageUid}` +} + +export const dripCampaignDeleteDripCampaignMessage = async (dripCampaignUid: string | null, + dripCampaignMessageUid: string | null, options?: RequestInit): Promise => { + + return customFetch(getDripCampaignDeleteDripCampaignMessageUrl(dripCampaignUid,dripCampaignMessageUid), + { + ...options, + method: 'DELETE' + + + } +);} + + +/** + * Sends the drip campaign to the logged-in user and optionally to additional recipients. +Additional recipients are specified as a list of person Uids and must belong to the same +account as the logged-in user. Sending is skipped when the account is restricted due to +unpaid invoices. + * @summary Send a test email for a drip campaign. + */ +export type dripCampaignSendTestCampaignEmailResponse200 = { + data: Blob + status: 200 +} + +export type dripCampaignSendTestCampaignEmailResponse401 = { + data: void + status: 401 +} + +export type dripCampaignSendTestCampaignEmailResponseSuccess = (dripCampaignSendTestCampaignEmailResponse200) & { + headers: Headers; +}; +export type dripCampaignSendTestCampaignEmailResponseError = (dripCampaignSendTestCampaignEmailResponse401) & { + headers: Headers; +}; + +export type dripCampaignSendTestCampaignEmailResponse = (dripCampaignSendTestCampaignEmailResponseSuccess | dripCampaignSendTestCampaignEmailResponseError) + +export const getDripCampaignSendTestCampaignEmailUrl = () => { + + + + + return `/api/v1/email/campaigns/drips/sendtestemail` +} + +export const dripCampaignSendTestCampaignEmail = async (dripCampaignSendTestCampaignEmailBody: DripCampaignSendTestCampaignEmailBody, options?: RequestInit): Promise => { + + return customFetch(getDripCampaignSendTestCampaignEmailUrl(), + { + ...options, + method: 'POST', + headers: { 'Content-Type': 'application/json', ...options?.headers }, + body: JSON.stringify( + dripCampaignSendTestCampaignEmailBody,) + } +);} + + /** * Archived campaigns are excluded. * @summary Retrieve all broadcast campaigns. @@ -293,7 +821,8 @@ export const campaignDeleteBroadcastCampaign = async (broadcastCampaignUid: stri /** - * @summary Unschedules a pending broadcast campaign, reverting its status to Draft. + * Unschedules a pending broadcast campaign, reverting its status to Draft. + * @summary Unschedule a broadcast campaign. */ export type campaignUnscheduleBroadcastEmailResponse200 = { data: BroadcastCampaign @@ -345,7 +874,8 @@ export const campaignUnscheduleBroadcastEmail = async (broadcastCampaignUid: str /** - * @summary Archives a broadcast campaign. Archived campaigns are excluded from the default list results. + * Archived campaigns are excluded from the default list results. + * @summary Archive a broadcast campaign. */ export type campaignArchiveBroadcastCampaignResponse200 = { data: Blob diff --git a/packages/api-client/src/generated/models/dripCampaignAddDripCampaignBody.ts b/packages/api-client/src/generated/models/dripCampaignAddDripCampaignBody.ts new file mode 100644 index 0000000..f3cadc3 --- /dev/null +++ b/packages/api-client/src/generated/models/dripCampaignAddDripCampaignBody.ts @@ -0,0 +1,7 @@ +// @ts-nocheck +import type { DripCampaign } from './dripCampaign'; + +/** + * @nullable + */ +export type DripCampaignAddDripCampaignBody = DripCampaign | null; diff --git a/packages/api-client/src/generated/models/dripCampaignAddDripCampaignMessageBody.ts b/packages/api-client/src/generated/models/dripCampaignAddDripCampaignMessageBody.ts new file mode 100644 index 0000000..1af2a8f --- /dev/null +++ b/packages/api-client/src/generated/models/dripCampaignAddDripCampaignMessageBody.ts @@ -0,0 +1,7 @@ +// @ts-nocheck +import type { DripCampaignMessage } from './dripCampaignMessage'; + +/** + * @nullable + */ +export type DripCampaignAddDripCampaignMessageBody = DripCampaignMessage | null; diff --git a/packages/api-client/src/generated/models/dripCampaignSendTestCampaignEmailBody.ts b/packages/api-client/src/generated/models/dripCampaignSendTestCampaignEmailBody.ts new file mode 100644 index 0000000..64f7ac8 --- /dev/null +++ b/packages/api-client/src/generated/models/dripCampaignSendTestCampaignEmailBody.ts @@ -0,0 +1,7 @@ +// @ts-nocheck +import type { SendTestEmailRequest } from './sendTestEmailRequest'; + +/** + * @nullable + */ +export type DripCampaignSendTestCampaignEmailBody = SendTestEmailRequest | null; diff --git a/packages/api-client/src/generated/models/dripCampaignUpdateDripCampaignBody.ts b/packages/api-client/src/generated/models/dripCampaignUpdateDripCampaignBody.ts new file mode 100644 index 0000000..638707a --- /dev/null +++ b/packages/api-client/src/generated/models/dripCampaignUpdateDripCampaignBody.ts @@ -0,0 +1,7 @@ +// @ts-nocheck +import type { DripCampaign } from './dripCampaign'; + +/** + * @nullable + */ +export type DripCampaignUpdateDripCampaignBody = DripCampaign | null; diff --git a/packages/api-client/src/generated/models/dripCampaignUpdateDripCampaignMessageBody.ts b/packages/api-client/src/generated/models/dripCampaignUpdateDripCampaignMessageBody.ts new file mode 100644 index 0000000..1668ca2 --- /dev/null +++ b/packages/api-client/src/generated/models/dripCampaignUpdateDripCampaignMessageBody.ts @@ -0,0 +1,7 @@ +// @ts-nocheck +import type { DripCampaignMessage } from './dripCampaignMessage'; + +/** + * @nullable + */ +export type DripCampaignUpdateDripCampaignMessageBody = DripCampaignMessage | null; diff --git a/packages/api-client/src/generated/models/index.ts b/packages/api-client/src/generated/models/index.ts index 448d16a..8bc32e5 100644 --- a/packages/api-client/src/generated/models/index.ts +++ b/packages/api-client/src/generated/models/index.ts @@ -1048,12 +1048,17 @@ export * from './discountCouponSubscriptionAllOfSubscription'; export * from './discountCouponUpdateDiscountCouponBody'; export * from './dnsEntry'; export * from './dripCampaign'; +export * from './dripCampaignAddDripCampaignBody'; +export * from './dripCampaignAddDripCampaignMessageBody'; export * from './dripCampaignAllOf'; export * from './dripCampaignAllOfCampaign'; export * from './dripCampaignMessage'; export * from './dripCampaignMessageAllOf'; export * from './dripCampaignMessageAllOfDripCampaign'; export * from './dripCampaignMessageAllOfMessage'; +export * from './dripCampaignSendTestCampaignEmailBody'; +export * from './dripCampaignUpdateDripCampaignBody'; +export * from './dripCampaignUpdateDripCampaignMessageBody'; export * from './emailLink'; export * from './emailLinkAllOf'; export * from './emailList'; diff --git a/packages/react/src/generated/crm/crm.ts b/packages/react/src/generated/crm/crm.ts index 04d5c41..5f7cdc8 100644 --- a/packages/react/src/generated/crm/crm.ts +++ b/packages/react/src/generated/crm/crm.ts @@ -870,7 +870,10 @@ export const useAccountAddPersonToAccount = (options?: { mutation?:UseMutationOptions>, TError,{accountUid: string | null;membershipUid: string | null;data: NonReadonly}, TContext>, request?: SecondParameter} @@ -936,7 +939,8 @@ export const useAccountUpdateMembership = (options?: { mutation?:UseMutationOptions>, TError,{accountUid: string | null;membershipUid: string | null}, TContext>, request?: SecondParameter} @@ -1590,7 +1594,8 @@ export const usePersonDeletePerson = (options?: { mutation?:UseMutationOptions>, TError,{personUid: string | null;data: PersonSetTemporaryPasswordBody}, TContext>, request?: SecondParameter} @@ -1655,11 +1660,11 @@ export const usePersonSetTemporaryPassword = (options?: { mutation?:UseMutationOptions>, TError,{personUid: string | null}, TContext>, request?: SecondParameter} diff --git a/packages/react/src/generated/email/email.ts b/packages/react/src/generated/email/email.ts index 563b1a4..f9d2bba 100644 --- a/packages/react/src/generated/email/email.ts +++ b/packages/react/src/generated/email/email.ts @@ -18,6 +18,13 @@ import type { CampaignAddBroadcastEmailBody, CampaignSendTestCampaignEmailBody, CampaignUpdateBroadcastEmailBody, + DripCampaign, + DripCampaignAddDripCampaignBody, + DripCampaignAddDripCampaignMessageBody, + DripCampaignMessage, + DripCampaignSendTestCampaignEmailBody, + DripCampaignUpdateDripCampaignBody, + DripCampaignUpdateDripCampaignMessageBody, EmailListAddSubscriptionBody, EmailListGetAllSubscriptionsParams, EmailListPerson @@ -58,6 +65,679 @@ type SecondParameter unknown> = Parameters[1]; /** + * @summary Retrieve all drip campaigns. + */ +export const dripCampaignGetAllDripCampaigns = ( + + options?: SecondParameter,signal?: AbortSignal +) => { + + + return customFetch( + {url: `/api/v1/email/campaigns/drips`, method: 'GET', signal + }, + options); + } + + + + +export const getDripCampaignGetAllDripCampaignsQueryKey = () => { + return [ + `/api/v1/email/campaigns/drips` + ] as const; + } + + +export const getDripCampaignGetAllDripCampaignsQueryOptions = >, TError = void>( options?: { query?:UseQueryOptions>, TError, TData>, request?: SecondParameter} +) => { + +const {query: queryOptions, request: requestOptions} = options ?? {}; + + const queryKey = queryOptions?.queryKey ?? getDripCampaignGetAllDripCampaignsQueryKey(); + + + + const queryFn: QueryFunction>> = ({ signal }) => dripCampaignGetAllDripCampaigns(requestOptions, signal); + + + + + + return { queryKey, queryFn, ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: QueryKey } +} + +export type DripCampaignGetAllDripCampaignsQueryResult = NonNullable>> +export type DripCampaignGetAllDripCampaignsQueryError = void + + +/** + * @summary Retrieve all drip campaigns. + */ + +export function useDripCampaignGetAllDripCampaigns>, TError = void>( + options?: { query?:UseQueryOptions>, TError, TData>, request?: SecondParameter} + + ): UseQueryResult & { queryKey: QueryKey } { + + const queryOptions = getDripCampaignGetAllDripCampaignsQueryOptions(options) + + const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey }; + + query.queryKey = queryOptions.queryKey ; + + return query; +} + + + + +/** + * To copy an existing drip campaign, retrieve it and pass its data as the request body — the +Uid and per-message counts are automatically reset. Messages can be supplied inline via +DripCampaignMessages, or added later with the messages endpoint. + * @summary Create a new drip campaign. + */ +export const dripCampaignAddDripCampaign = ( + dripCampaignAddDripCampaignBody: NonReadonly, + options?: SecondParameter,signal?: AbortSignal +) => { + + + return customFetch( + {url: `/api/v1/email/campaigns/drips`, method: 'POST', + headers: {'Content-Type': 'application/json', }, + data: dripCampaignAddDripCampaignBody, signal + }, + options); + } + + + +export const getDripCampaignAddDripCampaignMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{data: NonReadonly}, TContext>, request?: SecondParameter} +): UseMutationOptions>, TError,{data: NonReadonly}, TContext> => { + +const mutationKey = ['dripCampaignAddDripCampaign']; +const {mutation: mutationOptions, request: requestOptions} = options ? + options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? + options + : {...options, mutation: {...options.mutation, mutationKey}} + : {mutation: { mutationKey, }, request: undefined}; + + + + + const mutationFn: MutationFunction>, {data: NonReadonly}> = (props) => { + const {data} = props ?? {}; + + return dripCampaignAddDripCampaign(data,requestOptions) + } + + + + + return { mutationFn, ...mutationOptions }} + + export type DripCampaignAddDripCampaignMutationResult = NonNullable>> + export type DripCampaignAddDripCampaignMutationBody = NonReadonly + export type DripCampaignAddDripCampaignMutationError = void + + /** + * @summary Create a new drip campaign. + */ +export const useDripCampaignAddDripCampaign = (options?: { mutation?:UseMutationOptions>, TError,{data: NonReadonly}, TContext>, request?: SecondParameter} + ): UseMutationResult< + Awaited>, + TError, + {data: NonReadonly}, + TContext + > => { + + const mutationOptions = getDripCampaignAddDripCampaignMutationOptions(options); + + return useMutation(mutationOptions); + } + /** + * @summary Retrieve a drip campaign. + */ +export const dripCampaignGetDripCampaign = ( + dripCampaignUid: string | null, + options?: SecondParameter,signal?: AbortSignal +) => { + + + return customFetch( + {url: `/api/v1/email/campaigns/drips/${dripCampaignUid}`, method: 'GET', signal + }, + options); + } + + + + +export const getDripCampaignGetDripCampaignQueryKey = (dripCampaignUid?: string | null,) => { + return [ + `/api/v1/email/campaigns/drips/${dripCampaignUid}` + ] as const; + } + + +export const getDripCampaignGetDripCampaignQueryOptions = >, TError = void>(dripCampaignUid: string | null, options?: { query?:UseQueryOptions>, TError, TData>, request?: SecondParameter} +) => { + +const {query: queryOptions, request: requestOptions} = options ?? {}; + + const queryKey = queryOptions?.queryKey ?? getDripCampaignGetDripCampaignQueryKey(dripCampaignUid); + + + + const queryFn: QueryFunction>> = ({ signal }) => dripCampaignGetDripCampaign(dripCampaignUid, requestOptions, signal); + + + + + + return { queryKey, queryFn, enabled: !!(dripCampaignUid), ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: QueryKey } +} + +export type DripCampaignGetDripCampaignQueryResult = NonNullable>> +export type DripCampaignGetDripCampaignQueryError = void + + +/** + * @summary Retrieve a drip campaign. + */ + +export function useDripCampaignGetDripCampaign>, TError = void>( + dripCampaignUid: string | null, options?: { query?:UseQueryOptions>, TError, TData>, request?: SecondParameter} + + ): UseQueryResult & { queryKey: QueryKey } { + + const queryOptions = getDripCampaignGetDripCampaignQueryOptions(dripCampaignUid,options) + + const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey }; + + query.queryKey = queryOptions.queryKey ; + + return query; +} + + + + +/** + * Activating a drip campaign (setting IsActive) begins sending its messages to members. +StartDripToExistingMembers controls whether members already in the campaign receive the +messages or only members added going forward. + * @summary Update a drip campaign. + */ +export const dripCampaignUpdateDripCampaign = ( + dripCampaignUid: string | null, + dripCampaignUpdateDripCampaignBody: NonReadonly, + options?: SecondParameter,) => { + + + return customFetch( + {url: `/api/v1/email/campaigns/drips/${dripCampaignUid}`, method: 'PUT', + headers: {'Content-Type': 'application/json', }, + data: dripCampaignUpdateDripCampaignBody + }, + options); + } + + + +export const getDripCampaignUpdateDripCampaignMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{dripCampaignUid: string | null;data: NonReadonly}, TContext>, request?: SecondParameter} +): UseMutationOptions>, TError,{dripCampaignUid: string | null;data: NonReadonly}, TContext> => { + +const mutationKey = ['dripCampaignUpdateDripCampaign']; +const {mutation: mutationOptions, request: requestOptions} = options ? + options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? + options + : {...options, mutation: {...options.mutation, mutationKey}} + : {mutation: { mutationKey, }, request: undefined}; + + + + + const mutationFn: MutationFunction>, {dripCampaignUid: string | null;data: NonReadonly}> = (props) => { + const {dripCampaignUid,data} = props ?? {}; + + return dripCampaignUpdateDripCampaign(dripCampaignUid,data,requestOptions) + } + + + + + return { mutationFn, ...mutationOptions }} + + export type DripCampaignUpdateDripCampaignMutationResult = NonNullable>> + export type DripCampaignUpdateDripCampaignMutationBody = NonReadonly + export type DripCampaignUpdateDripCampaignMutationError = void + + /** + * @summary Update a drip campaign. + */ +export const useDripCampaignUpdateDripCampaign = (options?: { mutation?:UseMutationOptions>, TError,{dripCampaignUid: string | null;data: NonReadonly}, TContext>, request?: SecondParameter} + ): UseMutationResult< + Awaited>, + TError, + {dripCampaignUid: string | null;data: NonReadonly}, + TContext + > => { + + const mutationOptions = getDripCampaignUpdateDripCampaignMutationOptions(options); + + return useMutation(mutationOptions); + } + /** + * @summary Delete a drip campaign. + */ +export const dripCampaignDeleteDripCampaign = ( + dripCampaignUid: string | null, + options?: SecondParameter,) => { + + + return customFetch( + {url: `/api/v1/email/campaigns/drips/${dripCampaignUid}`, method: 'DELETE', + responseType: 'blob' + }, + options); + } + + + +export const getDripCampaignDeleteDripCampaignMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{dripCampaignUid: string | null}, TContext>, request?: SecondParameter} +): UseMutationOptions>, TError,{dripCampaignUid: string | null}, TContext> => { + +const mutationKey = ['dripCampaignDeleteDripCampaign']; +const {mutation: mutationOptions, request: requestOptions} = options ? + options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? + options + : {...options, mutation: {...options.mutation, mutationKey}} + : {mutation: { mutationKey, }, request: undefined}; + + + + + const mutationFn: MutationFunction>, {dripCampaignUid: string | null}> = (props) => { + const {dripCampaignUid} = props ?? {}; + + return dripCampaignDeleteDripCampaign(dripCampaignUid,requestOptions) + } + + + + + return { mutationFn, ...mutationOptions }} + + export type DripCampaignDeleteDripCampaignMutationResult = NonNullable>> + + export type DripCampaignDeleteDripCampaignMutationError = void + + /** + * @summary Delete a drip campaign. + */ +export const useDripCampaignDeleteDripCampaign = (options?: { mutation?:UseMutationOptions>, TError,{dripCampaignUid: string | null}, TContext>, request?: SecondParameter} + ): UseMutationResult< + Awaited>, + TError, + {dripCampaignUid: string | null}, + TContext + > => { + + const mutationOptions = getDripCampaignDeleteDripCampaignMutationOptions(options); + + return useMutation(mutationOptions); + } + /** + * Adding a message deactivates the drip campaign so its schedule can be reviewed before it +resumes sending. Use DelayInHours to control how long after the trigger the message is sent. + * @summary Add a message to a drip campaign. + */ +export const dripCampaignAddDripCampaignMessage = ( + dripCampaignUid: string | null, + dripCampaignAddDripCampaignMessageBody: NonReadonly, + options?: SecondParameter,signal?: AbortSignal +) => { + + + return customFetch( + {url: `/api/v1/email/campaigns/drips/${dripCampaignUid}/messages`, method: 'POST', + headers: {'Content-Type': 'application/json', }, + data: dripCampaignAddDripCampaignMessageBody, signal + }, + options); + } + + + +export const getDripCampaignAddDripCampaignMessageMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{dripCampaignUid: string | null;data: NonReadonly}, TContext>, request?: SecondParameter} +): UseMutationOptions>, TError,{dripCampaignUid: string | null;data: NonReadonly}, TContext> => { + +const mutationKey = ['dripCampaignAddDripCampaignMessage']; +const {mutation: mutationOptions, request: requestOptions} = options ? + options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? + options + : {...options, mutation: {...options.mutation, mutationKey}} + : {mutation: { mutationKey, }, request: undefined}; + + + + + const mutationFn: MutationFunction>, {dripCampaignUid: string | null;data: NonReadonly}> = (props) => { + const {dripCampaignUid,data} = props ?? {}; + + return dripCampaignAddDripCampaignMessage(dripCampaignUid,data,requestOptions) + } + + + + + return { mutationFn, ...mutationOptions }} + + export type DripCampaignAddDripCampaignMessageMutationResult = NonNullable>> + export type DripCampaignAddDripCampaignMessageMutationBody = NonReadonly + export type DripCampaignAddDripCampaignMessageMutationError = void + + /** + * @summary Add a message to a drip campaign. + */ +export const useDripCampaignAddDripCampaignMessage = (options?: { mutation?:UseMutationOptions>, TError,{dripCampaignUid: string | null;data: NonReadonly}, TContext>, request?: SecondParameter} + ): UseMutationResult< + Awaited>, + TError, + {dripCampaignUid: string | null;data: NonReadonly}, + TContext + > => { + + const mutationOptions = getDripCampaignAddDripCampaignMessageMutationOptions(options); + + return useMutation(mutationOptions); + } + /** + * @summary Retrieve a message from a drip campaign. + */ +export const dripCampaignGetDripCampaignMessage = ( + dripCampaignUid: string | null, + dripCampaignMessageUid: string | null, + options?: SecondParameter,signal?: AbortSignal +) => { + + + return customFetch( + {url: `/api/v1/email/campaigns/drips/${dripCampaignUid}/messages/${dripCampaignMessageUid}`, method: 'GET', signal + }, + options); + } + + + + +export const getDripCampaignGetDripCampaignMessageQueryKey = (dripCampaignUid?: string | null, + dripCampaignMessageUid?: string | null,) => { + return [ + `/api/v1/email/campaigns/drips/${dripCampaignUid}/messages/${dripCampaignMessageUid}` + ] as const; + } + + +export const getDripCampaignGetDripCampaignMessageQueryOptions = >, TError = void>(dripCampaignUid: string | null, + dripCampaignMessageUid: string | null, options?: { query?:UseQueryOptions>, TError, TData>, request?: SecondParameter} +) => { + +const {query: queryOptions, request: requestOptions} = options ?? {}; + + const queryKey = queryOptions?.queryKey ?? getDripCampaignGetDripCampaignMessageQueryKey(dripCampaignUid,dripCampaignMessageUid); + + + + const queryFn: QueryFunction>> = ({ signal }) => dripCampaignGetDripCampaignMessage(dripCampaignUid,dripCampaignMessageUid, requestOptions, signal); + + + + + + return { queryKey, queryFn, enabled: !!(dripCampaignUid && dripCampaignMessageUid), ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: QueryKey } +} + +export type DripCampaignGetDripCampaignMessageQueryResult = NonNullable>> +export type DripCampaignGetDripCampaignMessageQueryError = void + + +/** + * @summary Retrieve a message from a drip campaign. + */ + +export function useDripCampaignGetDripCampaignMessage>, TError = void>( + dripCampaignUid: string | null, + dripCampaignMessageUid: string | null, options?: { query?:UseQueryOptions>, TError, TData>, request?: SecondParameter} + + ): UseQueryResult & { queryKey: QueryKey } { + + const queryOptions = getDripCampaignGetDripCampaignMessageQueryOptions(dripCampaignUid,dripCampaignMessageUid,options) + + const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey }; + + query.queryKey = queryOptions.queryKey ; + + return query; +} + + + + +/** + * Changing DelayInHours on an active drip campaign reschedules the drip for its existing +members. The DripCampaign Uid on the body, if supplied, must match the dripCampaignUid in +the URL, and the message Uid on the body must match the dripCampaignMessageUid in the URL. + * @summary Update a message in a drip campaign. + */ +export const dripCampaignUpdateDripCampaignMessage = ( + dripCampaignUid: string | null, + dripCampaignMessageUid: string | null, + dripCampaignUpdateDripCampaignMessageBody: NonReadonly, + options?: SecondParameter,) => { + + + return customFetch( + {url: `/api/v1/email/campaigns/drips/${dripCampaignUid}/messages/${dripCampaignMessageUid}`, method: 'PUT', + headers: {'Content-Type': 'application/json', }, + data: dripCampaignUpdateDripCampaignMessageBody + }, + options); + } + + + +export const getDripCampaignUpdateDripCampaignMessageMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{dripCampaignUid: string | null;dripCampaignMessageUid: string | null;data: NonReadonly}, TContext>, request?: SecondParameter} +): UseMutationOptions>, TError,{dripCampaignUid: string | null;dripCampaignMessageUid: string | null;data: NonReadonly}, TContext> => { + +const mutationKey = ['dripCampaignUpdateDripCampaignMessage']; +const {mutation: mutationOptions, request: requestOptions} = options ? + options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? + options + : {...options, mutation: {...options.mutation, mutationKey}} + : {mutation: { mutationKey, }, request: undefined}; + + + + + const mutationFn: MutationFunction>, {dripCampaignUid: string | null;dripCampaignMessageUid: string | null;data: NonReadonly}> = (props) => { + const {dripCampaignUid,dripCampaignMessageUid,data} = props ?? {}; + + return dripCampaignUpdateDripCampaignMessage(dripCampaignUid,dripCampaignMessageUid,data,requestOptions) + } + + + + + return { mutationFn, ...mutationOptions }} + + export type DripCampaignUpdateDripCampaignMessageMutationResult = NonNullable>> + export type DripCampaignUpdateDripCampaignMessageMutationBody = NonReadonly + export type DripCampaignUpdateDripCampaignMessageMutationError = void + + /** + * @summary Update a message in a drip campaign. + */ +export const useDripCampaignUpdateDripCampaignMessage = (options?: { mutation?:UseMutationOptions>, TError,{dripCampaignUid: string | null;dripCampaignMessageUid: string | null;data: NonReadonly}, TContext>, request?: SecondParameter} + ): UseMutationResult< + Awaited>, + TError, + {dripCampaignUid: string | null;dripCampaignMessageUid: string | null;data: NonReadonly}, + TContext + > => { + + const mutationOptions = getDripCampaignUpdateDripCampaignMessageMutationOptions(options); + + return useMutation(mutationOptions); + } + /** + * If the drip campaign is active, the drip is rescheduled for its existing members after the +message is removed. + * @summary Delete a message from a drip campaign. + */ +export const dripCampaignDeleteDripCampaignMessage = ( + dripCampaignUid: string | null, + dripCampaignMessageUid: string | null, + options?: SecondParameter,) => { + + + return customFetch( + {url: `/api/v1/email/campaigns/drips/${dripCampaignUid}/messages/${dripCampaignMessageUid}`, method: 'DELETE', + responseType: 'blob' + }, + options); + } + + + +export const getDripCampaignDeleteDripCampaignMessageMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{dripCampaignUid: string | null;dripCampaignMessageUid: string | null}, TContext>, request?: SecondParameter} +): UseMutationOptions>, TError,{dripCampaignUid: string | null;dripCampaignMessageUid: string | null}, TContext> => { + +const mutationKey = ['dripCampaignDeleteDripCampaignMessage']; +const {mutation: mutationOptions, request: requestOptions} = options ? + options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? + options + : {...options, mutation: {...options.mutation, mutationKey}} + : {mutation: { mutationKey, }, request: undefined}; + + + + + const mutationFn: MutationFunction>, {dripCampaignUid: string | null;dripCampaignMessageUid: string | null}> = (props) => { + const {dripCampaignUid,dripCampaignMessageUid} = props ?? {}; + + return dripCampaignDeleteDripCampaignMessage(dripCampaignUid,dripCampaignMessageUid,requestOptions) + } + + + + + return { mutationFn, ...mutationOptions }} + + export type DripCampaignDeleteDripCampaignMessageMutationResult = NonNullable>> + + export type DripCampaignDeleteDripCampaignMessageMutationError = void + + /** + * @summary Delete a message from a drip campaign. + */ +export const useDripCampaignDeleteDripCampaignMessage = (options?: { mutation?:UseMutationOptions>, TError,{dripCampaignUid: string | null;dripCampaignMessageUid: string | null}, TContext>, request?: SecondParameter} + ): UseMutationResult< + Awaited>, + TError, + {dripCampaignUid: string | null;dripCampaignMessageUid: string | null}, + TContext + > => { + + const mutationOptions = getDripCampaignDeleteDripCampaignMessageMutationOptions(options); + + return useMutation(mutationOptions); + } + /** + * Sends the drip campaign to the logged-in user and optionally to additional recipients. +Additional recipients are specified as a list of person Uids and must belong to the same +account as the logged-in user. Sending is skipped when the account is restricted due to +unpaid invoices. + * @summary Send a test email for a drip campaign. + */ +export const dripCampaignSendTestCampaignEmail = ( + dripCampaignSendTestCampaignEmailBody: DripCampaignSendTestCampaignEmailBody, + options?: SecondParameter,signal?: AbortSignal +) => { + + + return customFetch( + {url: `/api/v1/email/campaigns/drips/sendtestemail`, method: 'POST', + headers: {'Content-Type': 'application/json', }, + data: dripCampaignSendTestCampaignEmailBody, + responseType: 'blob', signal + }, + options); + } + + + +export const getDripCampaignSendTestCampaignEmailMutationOptions = (options?: { mutation?:UseMutationOptions>, TError,{data: DripCampaignSendTestCampaignEmailBody}, TContext>, request?: SecondParameter} +): UseMutationOptions>, TError,{data: DripCampaignSendTestCampaignEmailBody}, TContext> => { + +const mutationKey = ['dripCampaignSendTestCampaignEmail']; +const {mutation: mutationOptions, request: requestOptions} = options ? + options.mutation && 'mutationKey' in options.mutation && options.mutation.mutationKey ? + options + : {...options, mutation: {...options.mutation, mutationKey}} + : {mutation: { mutationKey, }, request: undefined}; + + + + + const mutationFn: MutationFunction>, {data: DripCampaignSendTestCampaignEmailBody}> = (props) => { + const {data} = props ?? {}; + + return dripCampaignSendTestCampaignEmail(data,requestOptions) + } + + + + + return { mutationFn, ...mutationOptions }} + + export type DripCampaignSendTestCampaignEmailMutationResult = NonNullable>> + export type DripCampaignSendTestCampaignEmailMutationBody = DripCampaignSendTestCampaignEmailBody + export type DripCampaignSendTestCampaignEmailMutationError = void + + /** + * @summary Send a test email for a drip campaign. + */ +export const useDripCampaignSendTestCampaignEmail = (options?: { mutation?:UseMutationOptions>, TError,{data: DripCampaignSendTestCampaignEmailBody}, TContext>, request?: SecondParameter} + ): UseMutationResult< + Awaited>, + TError, + {data: DripCampaignSendTestCampaignEmailBody}, + TContext + > => { + + const mutationOptions = getDripCampaignSendTestCampaignEmailMutationOptions(options); + + return useMutation(mutationOptions); + } + /** * Archived campaigns are excluded. * @summary Retrieve all broadcast campaigns. */ @@ -395,7 +1075,8 @@ export const useCampaignDeleteBroadcastCampaign = (options?: { mutation?:UseMutationOptions>, TError,{broadcastCampaignUid: string | null}, TContext>, request?: SecondParameter} @@ -457,7 +1138,8 @@ export const useCampaignUnscheduleBroadcastEmail = (options?: { mutation?:UseMutationOptions>, TError,{broadcastCampaignUid: string | null}, TContext>, request?: SecondParameter} diff --git a/packages/react/src/generated/outsetaAPI.schemas.ts b/packages/react/src/generated/outsetaAPI.schemas.ts index 1cf646c..9e6793e 100644 --- a/packages/react/src/generated/outsetaAPI.schemas.ts +++ b/packages/react/src/generated/outsetaAPI.schemas.ts @@ -41598,6 +41598,31 @@ export type ArticleGetAllArticlesParams = { q?: string | null; }; +/** + * @nullable + */ +export type DripCampaignAddDripCampaignBody = DripCampaign | null; + +/** + * @nullable + */ +export type DripCampaignUpdateDripCampaignBody = DripCampaign | null; + +/** + * @nullable + */ +export type DripCampaignAddDripCampaignMessageBody = DripCampaignMessage | null; + +/** + * @nullable + */ +export type DripCampaignUpdateDripCampaignMessageBody = DripCampaignMessage | null; + +/** + * @nullable + */ +export type DripCampaignSendTestCampaignEmailBody = SendTestEmailRequest | null; + /** * @nullable */