/* * 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"; export type CreateDocumentRawParamsMetadata = | string | number | number | boolean | Array; /** * Document data in a text or JSON format. */ export type Data = string | { [k: string]: any }; export type CreateDocumentRawParams = { /** * An optional name for the document. If set, the document will have this name. Otherwise it will default to the current timestamp. */ name?: string | undefined; /** * Metadata for the document. Keys must be strings. Values may be strings, numbers, booleans, or lists of strings. Numbers may be integers or floating point and will be converted to 64 bit floating point. 1000 total values are allowed. Each item in an array counts towards the total. The following keys are reserved for internal use: `document_id`, `document_type`, `document_source`, `document_name`, `document_uploaded_at`, `start_time`, `end_time`, `chunk_content_type`. */ metadata?: | { [k: string]: string | number | number | boolean | Array } | undefined; /** * An optional identifier for the document. A common value might be an id in an external system or the URL where the source file may be found. */ externalId?: string | null | undefined; /** * An optional partition identifier. Documents can be scoped to a partition. Partitions must be lowercase alphanumeric and may only include the special characters `_` and `-`. A partition is created any time a document is created. */ partition?: string | undefined; /** * Document data in a text or JSON format. */ data: string | { [k: string]: any }; }; /** @internal */ export const CreateDocumentRawParamsMetadata$inboundSchema: z.ZodType< CreateDocumentRawParamsMetadata, z.ZodTypeDef, unknown > = z.union([ z.string(), z.number().int(), z.number(), z.boolean(), z.array(z.string()), ]); /** @internal */ export type CreateDocumentRawParamsMetadata$Outbound = | string | number | number | boolean | Array; /** @internal */ export const CreateDocumentRawParamsMetadata$outboundSchema: z.ZodType< CreateDocumentRawParamsMetadata$Outbound, z.ZodTypeDef, CreateDocumentRawParamsMetadata > = z.union([ z.string(), z.number().int(), z.number(), z.boolean(), z.array(z.string()), ]); export function createDocumentRawParamsMetadataToJSON( createDocumentRawParamsMetadata: CreateDocumentRawParamsMetadata, ): string { return JSON.stringify( CreateDocumentRawParamsMetadata$outboundSchema.parse( createDocumentRawParamsMetadata, ), ); } export function createDocumentRawParamsMetadataFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => CreateDocumentRawParamsMetadata$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'CreateDocumentRawParamsMetadata' from JSON`, ); } /** @internal */ export const Data$inboundSchema: z.ZodType = z .union([z.string(), z.record(z.any())]); /** @internal */ export type Data$Outbound = string | { [k: string]: any }; /** @internal */ export const Data$outboundSchema: z.ZodType = z.union([z.string(), z.record(z.any())]); export function dataToJSON(data: Data): string { return JSON.stringify(Data$outboundSchema.parse(data)); } export function dataFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => Data$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'Data' from JSON`, ); } /** @internal */ export const CreateDocumentRawParams$inboundSchema: z.ZodType< CreateDocumentRawParams, z.ZodTypeDef, unknown > = z.object({ name: z.string().optional(), metadata: z.record( z.union([ z.string(), z.number().int(), z.number(), z.boolean(), z.array(z.string()), ]), ).optional(), external_id: z.nullable(z.string()).optional(), partition: z.string().optional(), data: z.union([z.string(), z.record(z.any())]), }).transform((v) => { return remap$(v, { "external_id": "externalId", }); }); /** @internal */ export type CreateDocumentRawParams$Outbound = { name?: string | undefined; metadata?: | { [k: string]: string | number | number | boolean | Array } | undefined; external_id?: string | null | undefined; partition?: string | undefined; data: string | { [k: string]: any }; }; /** @internal */ export const CreateDocumentRawParams$outboundSchema: z.ZodType< CreateDocumentRawParams$Outbound, z.ZodTypeDef, CreateDocumentRawParams > = z.object({ name: z.string().optional(), metadata: z.record( z.union([ z.string(), z.number().int(), z.number(), z.boolean(), z.array(z.string()), ]), ).optional(), externalId: z.nullable(z.string()).optional(), partition: z.string().optional(), data: z.union([z.string(), z.record(z.any())]), }).transform((v) => { return remap$(v, { externalId: "external_id", }); }); export function createDocumentRawParamsToJSON( createDocumentRawParams: CreateDocumentRawParams, ): string { return JSON.stringify( CreateDocumentRawParams$outboundSchema.parse(createDocumentRawParams), ); } export function createDocumentRawParamsFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => CreateDocumentRawParams$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'CreateDocumentRawParams' from JSON`, ); }