/*** * * SaaSquatch Type Definitions * * This file was automatically generated. DO NOT edit it by hand, instead edit the related JSON Schema file. * * Generated on 2026-03-20T21:11:42.771Z * ***/ /*** * IntegrationTemplate.schema.json * Generated on 2026-03-20T21:11:42.968Z * This file was automatically generated. DO NOT edit it by hand, instead edit the related JSON Schema file. ***/ /** * The name of this integration */ export type Name = string /** * The Auth0 client Id corresponding to this integration */ export type ClientId = string /** * A URL to the UI to be presented for configuring this integration */ export type ConfigUrl = string /** * A description of what this integration supports (presented on the integrations page) */ export type Description = string /** * The webhook destination */ export type EndpointUrl = string /** * The name of the webhook (e.g. Stripe Integration Entry Point) */ export type Name1 = string /** * Webhook types accepted by this webhook endpoint */ export type WebhookTypes = ("coupon.created" | "reward.created" | "email.referral.started" | "email.referred.reward.earned" | "email.referral.paid" | "user.created" | "theme.publish.finished" | "email.referral.rewardLimitReached" | "export.created" | "export.completed" | "referral.started" | "referral.converted" | "referral.ended" | "referral.automoderation.complete" | "user.reward.balance.changed")[] /** * A list of webhooks managed by this integration */ export type ManagedWebhooks = ManagedWebhook[] /** * The link interceptor POST endpoint URL */ export type EndpointUrl1 = string /** * The name of the link interceptor */ export type Name2 = string /** * The order of this link interceptor among other link interceptors */ export type Order = number /** * A list of link interceptors managed by this integration */ export type ManagedLinkInterceptors = ManagedLinkInterceptor[] /** * The form handler POST endpoint URL */ export type EndpointUrl2 = string /** * The name of the form handler */ export type Name3 = string /** * The custom field key */ export type Key = string /** * The human readable name of the custom field */ export type Name4 = string /** * A list of custom fields managed by this integration */ export type ManagedCustomFields = ManagedCustomField[] /** * The user event key */ export type Key1 = string /** * The human readable name of the user event key */ export type Name5 = string /** * A list of user events managed by this integration */ export type ManagedUserEvents = ManagedUserEventMeta[] export type RewardUnit = string /** * A list of reward units fulfilled by this integration */ export type FulfilledRewardUnits = RewardUnit[] /** * A logo representing this integration (presented on the integrations page) */ export type Logo = string /** * A descriptive heading title for this integration (presented on the integrations page) */ export type PanelHeading = string /** * Indicates whether this integration can be installed by any tenant */ export type GloballyInstallable = boolean /** * The tenants that can install this integration if it's not globally installable */ export type InstallableByTenants = (TenantAlias[] | null) /** * The tenant alias for a tenant that can install this integration */ export type TenantAlias = string /** * The integration template supported by Contentful */ export interface IntegrationTemplate { name: Name clientId: ClientId configUrl: ConfigUrl description: Description integrationConfig?: IntegrationConfig logo: Logo panelHeading: PanelHeading globallyInstallable?: GloballyInstallable installableByTenants?: InstallableByTenants } /** * Common integration JSON configuration to reflect how this integration interacts with SaaSquatch */ export interface IntegrationConfig { webhooks?: ManagedWebhooks linkInterceptors?: ManagedLinkInterceptors formHandler?: ManagedFormHandler customFields?: ManagedCustomFields userEvents?: ManagedUserEvents fulfilledRewardUnits?: FulfilledRewardUnits } /** * Configuration for setting up a webhook * * This interface was referenced by `IntegrationConfig`'s JSON-Schema * via the `definition` "webhook". */ export interface ManagedWebhook { endpointUrl: EndpointUrl name: Name1 webhookTypes?: WebhookTypes } /** * Configuration for a link interceptor * * This interface was referenced by `IntegrationConfig`'s JSON-Schema * via the `definition` "linkInterceptor". */ export interface ManagedLinkInterceptor { endpointUrl: EndpointUrl1 name: Name2 order: Order } /** * Configuration for a form handler * * This interface was referenced by `IntegrationConfig`'s JSON-Schema * via the `definition` "formHandler". */ export interface ManagedFormHandler { endpointUrl: EndpointUrl2 name: Name3 } /** * Configuration for a custom field * * This interface was referenced by `IntegrationConfig`'s JSON-Schema * via the `definition` "customField". */ export interface ManagedCustomField { key: Key name?: Name4 schema?: Schema } /** * The JSON Schema for the values of this custom field */ export interface Schema { [k: string]: unknown } /** * This interface was referenced by `IntegrationConfig`'s JSON-Schema * via the `definition` "userEventMeta". */ export interface ManagedUserEventMeta { key: Key1 name?: Name5 fieldsSchema?: Schema1 } /** * The JSON Schema for the user event fields */ export interface Schema1 { [k: string]: unknown }