ai_api / src /shared /validation /schemas /pricing.ts
Yogesh
initial deploy
cd8bd0a
Raw
History Blame Contribute Delete
1.4 kB
import { z } from "zod";
import {
ACCOUNT_FALLBACK_STRATEGY_VALUES,
ROUTING_STRATEGY_VALUES,
} from "@/shared/constants/routingStrategies";
import { SUPPORTED_BATCH_ENDPOINTS } from "@/shared/constants/batchEndpoints";
import { MAX_REQUEST_BODY_LIMIT_MB, MIN_REQUEST_BODY_LIMIT_MB } from "@/shared/constants/bodySize";
import { COMBO_CONFIG_MODES } from "@/shared/constants/comboConfigMode";
import { providerAllowsOptionalApiKey } from "@/shared/constants/providers";
import { HIDEABLE_SIDEBAR_ITEM_IDS } from "@/shared/constants/sidebarVisibility";
import {
isForbiddenUpstreamHeaderName,
isForbiddenCustomHeaderName,
} from "@/shared/constants/upstreamHeaders";
import { MAX_TIMER_TIMEOUT_MS } from "@/shared/utils/runtimeTimeouts";
export const pricingFieldsSchema = z
.object({
input: z.number().min(0).optional(),
output: z.number().min(0).optional(),
cached: z.number().min(0).optional(),
reasoning: z.number().min(0).optional(),
cache_creation: z.number().min(0).optional(),
})
.strict();
export const updatePricingSchema = z.record(
z.string().trim().min(1),
z.record(z.string().trim().min(1), pricingFieldsSchema)
);
export const pricingSyncSourceSchema = z.enum(["litellm"]);
export const pricingSyncRequestSchema = z
.object({
sources: z.array(pricingSyncSourceSchema).min(1).optional(),
dryRun: z.boolean().optional(),
})
.strict();