/* * 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 { PartitionLimits, PartitionLimits$inboundSchema, PartitionLimits$Outbound, PartitionLimits$outboundSchema, } from "./partitionlimits.js"; import { PartitionStats, PartitionStats$inboundSchema, PartitionStats$Outbound, PartitionStats$outboundSchema, } from "./partitionstats.js"; export type PartitionDetailMetadataSchema = | string | number | boolean | Array | { [k: string]: any }; export type PartitionDetail = { name: string; isDefault: boolean; /** * Timestamp when the partition exceeded its limits, if applicable. */ limitExceededAt?: Date | null | undefined; description: string | null; contextAware: boolean; metadataSchema: { [k: string]: string | number | boolean | Array | { [k: string]: any; }; } | null; limits: PartitionLimits; stats: PartitionStats; }; /** @internal */ export const PartitionDetailMetadataSchema$inboundSchema: z.ZodType< PartitionDetailMetadataSchema, z.ZodTypeDef, unknown > = z.union([ z.string(), z.number().int(), z.boolean(), z.array(z.string()), z.record(z.any()), ]); /** @internal */ export type PartitionDetailMetadataSchema$Outbound = | string | number | boolean | Array | { [k: string]: any }; /** @internal */ export const PartitionDetailMetadataSchema$outboundSchema: z.ZodType< PartitionDetailMetadataSchema$Outbound, z.ZodTypeDef, PartitionDetailMetadataSchema > = z.union([ z.string(), z.number().int(), z.boolean(), z.array(z.string()), z.record(z.any()), ]); export function partitionDetailMetadataSchemaToJSON( partitionDetailMetadataSchema: PartitionDetailMetadataSchema, ): string { return JSON.stringify( PartitionDetailMetadataSchema$outboundSchema.parse( partitionDetailMetadataSchema, ), ); } export function partitionDetailMetadataSchemaFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => PartitionDetailMetadataSchema$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'PartitionDetailMetadataSchema' from JSON`, ); } /** @internal */ export const PartitionDetail$inboundSchema: z.ZodType< PartitionDetail, z.ZodTypeDef, unknown > = z.object({ name: z.string(), is_default: z.boolean(), limit_exceeded_at: z.nullable( z.string().datetime({ offset: true }).transform(v => new Date(v)), ).optional(), description: z.nullable(z.string()), context_aware: z.boolean(), metadata_schema: z.nullable( z.record( z.union([ z.string(), z.number().int(), z.boolean(), z.array(z.string()), z.record(z.any()), ]), ), ), limits: PartitionLimits$inboundSchema, stats: PartitionStats$inboundSchema, }).transform((v) => { return remap$(v, { "is_default": "isDefault", "limit_exceeded_at": "limitExceededAt", "context_aware": "contextAware", "metadata_schema": "metadataSchema", }); }); /** @internal */ export type PartitionDetail$Outbound = { name: string; is_default: boolean; limit_exceeded_at?: string | null | undefined; description: string | null; context_aware: boolean; metadata_schema: { [k: string]: string | number | boolean | Array | { [k: string]: any; }; } | null; limits: PartitionLimits$Outbound; stats: PartitionStats$Outbound; }; /** @internal */ export const PartitionDetail$outboundSchema: z.ZodType< PartitionDetail$Outbound, z.ZodTypeDef, PartitionDetail > = z.object({ name: z.string(), isDefault: z.boolean(), limitExceededAt: z.nullable(z.date().transform(v => v.toISOString())) .optional(), description: z.nullable(z.string()), contextAware: z.boolean(), metadataSchema: z.nullable( z.record( z.union([ z.string(), z.number().int(), z.boolean(), z.array(z.string()), z.record(z.any()), ]), ), ), limits: PartitionLimits$outboundSchema, stats: PartitionStats$outboundSchema, }).transform((v) => { return remap$(v, { isDefault: "is_default", limitExceededAt: "limit_exceeded_at", contextAware: "context_aware", metadataSchema: "metadata_schema", }); }); export function partitionDetailToJSON( partitionDetail: PartitionDetail, ): string { return JSON.stringify(PartitionDetail$outboundSchema.parse(partitionDetail)); } export function partitionDetailFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => PartitionDetail$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'PartitionDetail' from JSON`, ); }