/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v3"; import { remap as remap$ } from "../../lib/primitives.js"; import { ClosedEnum } from "../../types/enums.js"; import { CredentialsDto, CredentialsDto$Outbound, CredentialsDto$outboundSchema, } from "./credentialsdto.js"; import { StepFilterDto, StepFilterDto$Outbound, StepFilterDto$outboundSchema, } from "./stepfilterdto.js"; /** * The channel type for the integration. Not required for agent-kind integrations. */ export const CreateIntegrationRequestDtoChannel = { InApp: "in_app", Email: "email", Sms: "sms", Chat: "chat", Push: "push", } as const; /** * The channel type for the integration. Not required for agent-kind integrations. */ export type CreateIntegrationRequestDtoChannel = ClosedEnum< typeof CreateIntegrationRequestDtoChannel >; /** * Distinguishes delivery integrations from agent-runtime integrations. Defaults to "delivery". Agent integrations do not require a channel. */ export const CreateIntegrationRequestDtoKind = { Delivery: "delivery", Agent: "agent", } as const; /** * Distinguishes delivery integrations from agent-runtime integrations. Defaults to "delivery". Agent integrations do not require a channel. */ export type CreateIntegrationRequestDtoKind = ClosedEnum< typeof CreateIntegrationRequestDtoKind >; /** * Configurations for the integration */ export type Configurations = {}; export type CreateIntegrationRequestDto = { /** * The name of the integration */ name?: string | undefined; /** * The unique identifier for the integration */ identifier?: string | undefined; /** * The ID of the associated environment */ environmentId?: string | undefined; /** * The provider ID for the integration */ providerId?: string | undefined; /** * The channel type for the integration. Not required for agent-kind integrations. */ channel?: CreateIntegrationRequestDtoChannel | undefined; /** * Distinguishes delivery integrations from agent-runtime integrations. Defaults to "delivery". Agent integrations do not require a channel. */ kind?: CreateIntegrationRequestDtoKind | undefined; /** * The credentials for the integration */ credentials?: CredentialsDto | undefined; /** * If the integration is active, the validation on the credentials field will run */ active?: boolean | undefined; /** * Flag to check the integration status */ check?: boolean | undefined; /** * Conditions for the integration */ conditions?: Array | undefined; /** * Configurations for the integration */ configurations?: Configurations | undefined; }; /** @internal */ export const CreateIntegrationRequestDtoChannel$outboundSchema: z.ZodNativeEnum< typeof CreateIntegrationRequestDtoChannel > = z.nativeEnum(CreateIntegrationRequestDtoChannel); /** @internal */ export const CreateIntegrationRequestDtoKind$outboundSchema: z.ZodNativeEnum< typeof CreateIntegrationRequestDtoKind > = z.nativeEnum(CreateIntegrationRequestDtoKind); /** @internal */ export type Configurations$Outbound = {}; /** @internal */ export const Configurations$outboundSchema: z.ZodType< Configurations$Outbound, z.ZodTypeDef, Configurations > = z.object({}); export function configurationsToJSON(configurations: Configurations): string { return JSON.stringify(Configurations$outboundSchema.parse(configurations)); } /** @internal */ export type CreateIntegrationRequestDto$Outbound = { name?: string | undefined; identifier?: string | undefined; _environmentId?: string | undefined; providerId?: string | undefined; channel?: string | undefined; kind?: string | undefined; credentials?: CredentialsDto$Outbound | undefined; active?: boolean | undefined; check?: boolean | undefined; conditions?: Array | undefined; configurations?: Configurations$Outbound | undefined; }; /** @internal */ export const CreateIntegrationRequestDto$outboundSchema: z.ZodType< CreateIntegrationRequestDto$Outbound, z.ZodTypeDef, CreateIntegrationRequestDto > = z.object({ name: z.string().optional(), identifier: z.string().optional(), environmentId: z.string().optional(), providerId: z.string().optional(), channel: CreateIntegrationRequestDtoChannel$outboundSchema.optional(), kind: CreateIntegrationRequestDtoKind$outboundSchema.optional(), credentials: CredentialsDto$outboundSchema.optional(), active: z.boolean().optional(), check: z.boolean().optional(), conditions: z.array(StepFilterDto$outboundSchema).optional(), configurations: z.lazy(() => Configurations$outboundSchema).optional(), }).transform((v) => { return remap$(v, { environmentId: "_environmentId", }); }); export function createIntegrationRequestDtoToJSON( createIntegrationRequestDto: CreateIntegrationRequestDto, ): string { return JSON.stringify( CreateIntegrationRequestDto$outboundSchema.parse( createIntegrationRequestDto, ), ); }