svix
Version:
Svix webhooks API client and webhook verification library
354 lines (322 loc) • 10.3 kB
text/typescript
// this file is @generated
/* eslint @typescript-eslint/no-explicit-any: 0 */
import { AdobeSignConfigOut, AdobeSignConfigOutSerializer } from "./adobeSignConfigOut";
import { CronConfig, CronConfigSerializer } from "./cronConfig";
import { DocusignConfigOut, DocusignConfigOutSerializer } from "./docusignConfigOut";
import { GithubConfigOut, GithubConfigOutSerializer } from "./githubConfigOut";
import { HubspotConfigOut, HubspotConfigOutSerializer } from "./hubspotConfigOut";
import { PandaDocConfigOut, PandaDocConfigOutSerializer } from "./pandaDocConfigOut";
import { SegmentConfigOut, SegmentConfigOutSerializer } from "./segmentConfigOut";
import { ShopifyConfigOut, ShopifyConfigOutSerializer } from "./shopifyConfigOut";
import { SlackConfigOut, SlackConfigOutSerializer } from "./slackConfigOut";
import { StripeConfigOut, StripeConfigOutSerializer } from "./stripeConfigOut";
import { SvixConfigOut, SvixConfigOutSerializer } from "./svixConfigOut";
import { ZoomConfigOut, ZoomConfigOutSerializer } from "./zoomConfigOut";
interface _IngestSourceOutFields {
createdAt: Date;
/** The Source's ID. */
id: string;
ingestUrl?: string | null;
name: string;
/** The Source's UID. */
uid?: string | null;
updatedAt: Date;
}
interface IngestSourceOutGenericWebhook {
type: "generic-webhook";
}
interface IngestSourceOutCron {
type: "cron";
config: CronConfig;
}
interface IngestSourceOutAdobeSign {
type: "adobe-sign";
config: AdobeSignConfigOut;
}
interface IngestSourceOutBeehiiv {
type: "beehiiv";
config: SvixConfigOut;
}
interface IngestSourceOutBrex {
type: "brex";
config: SvixConfigOut;
}
interface IngestSourceOutClerk {
type: "clerk";
config: SvixConfigOut;
}
interface IngestSourceOutDocusign {
type: "docusign";
config: DocusignConfigOut;
}
interface IngestSourceOutGithub {
type: "github";
config: GithubConfigOut;
}
interface IngestSourceOutGuesty {
type: "guesty";
config: SvixConfigOut;
}
interface IngestSourceOutHubspot {
type: "hubspot";
config: HubspotConfigOut;
}
interface IngestSourceOutIncidentIo {
type: "incident-io";
config: SvixConfigOut;
}
interface IngestSourceOutLithic {
type: "lithic";
config: SvixConfigOut;
}
interface IngestSourceOutNash {
type: "nash";
config: SvixConfigOut;
}
interface IngestSourceOutPandaDoc {
type: "panda-doc";
config: PandaDocConfigOut;
}
interface IngestSourceOutPleo {
type: "pleo";
config: SvixConfigOut;
}
interface IngestSourceOutReplicate {
type: "replicate";
config: SvixConfigOut;
}
interface IngestSourceOutResend {
type: "resend";
config: SvixConfigOut;
}
interface IngestSourceOutSafebase {
type: "safebase";
config: SvixConfigOut;
}
interface IngestSourceOutSardine {
type: "sardine";
config: SvixConfigOut;
}
interface IngestSourceOutSegment {
type: "segment";
config: SegmentConfigOut;
}
interface IngestSourceOutShopify {
type: "shopify";
config: ShopifyConfigOut;
}
interface IngestSourceOutSlack {
type: "slack";
config: SlackConfigOut;
}
interface IngestSourceOutStripe {
type: "stripe";
config: StripeConfigOut;
}
interface IngestSourceOutStych {
type: "stych";
config: SvixConfigOut;
}
interface IngestSourceOutSvix {
type: "svix";
config: SvixConfigOut;
}
interface IngestSourceOutZoom {
type: "zoom";
config: ZoomConfigOut;
}
export type IngestSourceOut = _IngestSourceOutFields &
(
| IngestSourceOutGenericWebhook
| IngestSourceOutCron
| IngestSourceOutAdobeSign
| IngestSourceOutBeehiiv
| IngestSourceOutBrex
| IngestSourceOutClerk
| IngestSourceOutDocusign
| IngestSourceOutGithub
| IngestSourceOutGuesty
| IngestSourceOutHubspot
| IngestSourceOutIncidentIo
| IngestSourceOutLithic
| IngestSourceOutNash
| IngestSourceOutPandaDoc
| IngestSourceOutPleo
| IngestSourceOutReplicate
| IngestSourceOutResend
| IngestSourceOutSafebase
| IngestSourceOutSardine
| IngestSourceOutSegment
| IngestSourceOutShopify
| IngestSourceOutSlack
| IngestSourceOutStripe
| IngestSourceOutStych
| IngestSourceOutSvix
| IngestSourceOutZoom
);
export const IngestSourceOutSerializer = {
_fromJsonObject(object: any): IngestSourceOut {
const type = object["type"];
function getConfig(type: string): any {
switch (type) {
case "generic-webhook":
return {};
case "cron":
return CronConfigSerializer._fromJsonObject(object["config"]);
case "adobe-sign":
return AdobeSignConfigOutSerializer._fromJsonObject(object["config"]);
case "beehiiv":
return SvixConfigOutSerializer._fromJsonObject(object["config"]);
case "brex":
return SvixConfigOutSerializer._fromJsonObject(object["config"]);
case "clerk":
return SvixConfigOutSerializer._fromJsonObject(object["config"]);
case "docusign":
return DocusignConfigOutSerializer._fromJsonObject(object["config"]);
case "github":
return GithubConfigOutSerializer._fromJsonObject(object["config"]);
case "guesty":
return SvixConfigOutSerializer._fromJsonObject(object["config"]);
case "hubspot":
return HubspotConfigOutSerializer._fromJsonObject(object["config"]);
case "incident-io":
return SvixConfigOutSerializer._fromJsonObject(object["config"]);
case "lithic":
return SvixConfigOutSerializer._fromJsonObject(object["config"]);
case "nash":
return SvixConfigOutSerializer._fromJsonObject(object["config"]);
case "panda-doc":
return PandaDocConfigOutSerializer._fromJsonObject(object["config"]);
case "pleo":
return SvixConfigOutSerializer._fromJsonObject(object["config"]);
case "replicate":
return SvixConfigOutSerializer._fromJsonObject(object["config"]);
case "resend":
return SvixConfigOutSerializer._fromJsonObject(object["config"]);
case "safebase":
return SvixConfigOutSerializer._fromJsonObject(object["config"]);
case "sardine":
return SvixConfigOutSerializer._fromJsonObject(object["config"]);
case "segment":
return SegmentConfigOutSerializer._fromJsonObject(object["config"]);
case "shopify":
return ShopifyConfigOutSerializer._fromJsonObject(object["config"]);
case "slack":
return SlackConfigOutSerializer._fromJsonObject(object["config"]);
case "stripe":
return StripeConfigOutSerializer._fromJsonObject(object["config"]);
case "stych":
return SvixConfigOutSerializer._fromJsonObject(object["config"]);
case "svix":
return SvixConfigOutSerializer._fromJsonObject(object["config"]);
case "zoom":
return ZoomConfigOutSerializer._fromJsonObject(object["config"]);
default:
throw new Error(`Unexpected type: ${type}`);
}
}
return {
type,
config: getConfig(type),
createdAt: new Date(object["createdAt"]),
id: object["id"],
ingestUrl: object["ingestUrl"],
name: object["name"],
uid: object["uid"],
updatedAt: new Date(object["updatedAt"]),
};
},
_toJsonObject(self: IngestSourceOut): any {
let config;
switch (self.type) {
case "generic-webhook":
config = {};
break;
case "cron":
config = CronConfigSerializer._toJsonObject(self.config);
break;
case "adobe-sign":
config = AdobeSignConfigOutSerializer._toJsonObject(self.config);
break;
case "beehiiv":
config = SvixConfigOutSerializer._toJsonObject(self.config);
break;
case "brex":
config = SvixConfigOutSerializer._toJsonObject(self.config);
break;
case "clerk":
config = SvixConfigOutSerializer._toJsonObject(self.config);
break;
case "docusign":
config = DocusignConfigOutSerializer._toJsonObject(self.config);
break;
case "github":
config = GithubConfigOutSerializer._toJsonObject(self.config);
break;
case "guesty":
config = SvixConfigOutSerializer._toJsonObject(self.config);
break;
case "hubspot":
config = HubspotConfigOutSerializer._toJsonObject(self.config);
break;
case "incident-io":
config = SvixConfigOutSerializer._toJsonObject(self.config);
break;
case "lithic":
config = SvixConfigOutSerializer._toJsonObject(self.config);
break;
case "nash":
config = SvixConfigOutSerializer._toJsonObject(self.config);
break;
case "panda-doc":
config = PandaDocConfigOutSerializer._toJsonObject(self.config);
break;
case "pleo":
config = SvixConfigOutSerializer._toJsonObject(self.config);
break;
case "replicate":
config = SvixConfigOutSerializer._toJsonObject(self.config);
break;
case "resend":
config = SvixConfigOutSerializer._toJsonObject(self.config);
break;
case "safebase":
config = SvixConfigOutSerializer._toJsonObject(self.config);
break;
case "sardine":
config = SvixConfigOutSerializer._toJsonObject(self.config);
break;
case "segment":
config = SegmentConfigOutSerializer._toJsonObject(self.config);
break;
case "shopify":
config = ShopifyConfigOutSerializer._toJsonObject(self.config);
break;
case "slack":
config = SlackConfigOutSerializer._toJsonObject(self.config);
break;
case "stripe":
config = StripeConfigOutSerializer._toJsonObject(self.config);
break;
case "stych":
config = SvixConfigOutSerializer._toJsonObject(self.config);
break;
case "svix":
config = SvixConfigOutSerializer._toJsonObject(self.config);
break;
case "zoom":
config = ZoomConfigOutSerializer._toJsonObject(self.config);
break;
}
return {
type: self.type,
config: config,
createdAt: self.createdAt,
id: self.id,
ingestUrl: self.ingestUrl,
name: self.name,
uid: self.uid,
updatedAt: self.updatedAt,
};
},
};