/* * 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 { safeParse } from "../../lib/schemas.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { AWSKinesisConfig, AWSKinesisConfig$inboundSchema, AWSKinesisConfig$Outbound, AWSKinesisConfig$outboundSchema, } from "./awskinesisconfig.js"; import { AWSKinesisCredentials, AWSKinesisCredentials$inboundSchema, AWSKinesisCredentials$Outbound, AWSKinesisCredentials$outboundSchema, } from "./awskinesiscredentials.js"; import { Topics, Topics$inboundSchema, Topics$Outbound, Topics$outboundSchema, } from "./topics.js"; export type DestinationCreateAWSKinesis = { /** * Optional user-provided ID. A UUID will be generated if empty. */ id?: string | undefined; /** * Type of the destination. Must be 'aws_kinesis'. */ type: "aws_kinesis"; /** * "*" or an array of enabled topics. */ topics: Topics; /** * Optional JSON schema filter for event matching. Events must match this filter to be delivered to this destination. * * @remarks * Supports operators: $eq, $neq, $gt, $gte, $lt, $lte, $in, $nin, $startsWith, $endsWith, $exist, $or, $and, $not. * If null or empty, all events matching the topic filter will be delivered. * To remove an existing filter when updating a destination, set filter to an empty object `{}`. */ filter?: { [k: string]: any } | null | undefined; config: AWSKinesisConfig; credentials: AWSKinesisCredentials; /** * Static key-value pairs merged into event metadata on every attempt. */ deliveryMetadata?: { [k: string]: string } | null | undefined; /** * Arbitrary contextual information stored with the destination. */ metadata?: { [k: string]: string } | null | undefined; }; /** @internal */ export const DestinationCreateAWSKinesis$inboundSchema: z.ZodType< DestinationCreateAWSKinesis, z.ZodTypeDef, unknown > = z.object({ id: z.string().optional(), type: z.literal("aws_kinesis"), topics: Topics$inboundSchema, filter: z.nullable(z.record(z.any())).optional(), config: AWSKinesisConfig$inboundSchema, credentials: AWSKinesisCredentials$inboundSchema, delivery_metadata: z.nullable(z.record(z.string())).optional(), metadata: z.nullable(z.record(z.string())).optional(), }).transform((v) => { return remap$(v, { "delivery_metadata": "deliveryMetadata", }); }); /** @internal */ export type DestinationCreateAWSKinesis$Outbound = { id?: string | undefined; type: "aws_kinesis"; topics: Topics$Outbound; filter?: { [k: string]: any } | null | undefined; config: AWSKinesisConfig$Outbound; credentials: AWSKinesisCredentials$Outbound; delivery_metadata?: { [k: string]: string } | null | undefined; metadata?: { [k: string]: string } | null | undefined; }; /** @internal */ export const DestinationCreateAWSKinesis$outboundSchema: z.ZodType< DestinationCreateAWSKinesis$Outbound, z.ZodTypeDef, DestinationCreateAWSKinesis > = z.object({ id: z.string().optional(), type: z.literal("aws_kinesis"), topics: Topics$outboundSchema, filter: z.nullable(z.record(z.any())).optional(), config: AWSKinesisConfig$outboundSchema, credentials: AWSKinesisCredentials$outboundSchema, deliveryMetadata: z.nullable(z.record(z.string())).optional(), metadata: z.nullable(z.record(z.string())).optional(), }).transform((v) => { return remap$(v, { deliveryMetadata: "delivery_metadata", }); }); export function destinationCreateAWSKinesisToJSON( destinationCreateAWSKinesis: DestinationCreateAWSKinesis, ): string { return JSON.stringify( DestinationCreateAWSKinesis$outboundSchema.parse( destinationCreateAWSKinesis, ), ); } export function destinationCreateAWSKinesisFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => DestinationCreateAWSKinesis$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'DestinationCreateAWSKinesis' from JSON`, ); }