/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. * @generated-id: 22cc1ff7d2db */ import * as z from "zod/v4"; import { safeParse } from "../../lib/schemas.js"; import { ClosedEnum } from "../../types/enums.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type GetProjectAiUsageGlobals = { /** * Workspace name. Platform API keys already select a workspace; other authentication methods can configure it once on the SDK client. */ workspace?: string | undefined; }; export const GetProjectAiUsageQueryParamRange = { TwentyFourh: "24h", Sevend: "7d", Thirtyd: "30d", } as const; export type GetProjectAiUsageQueryParamRange = ClosedEnum< typeof GetProjectAiUsageQueryParamRange >; export type GetProjectAiUsageRequest = { /** * Project ID or name. */ idOrName: string; range?: GetProjectAiUsageQueryParamRange | undefined; }; export const GetProjectAiUsageRangeResponse = { TwentyFourh: "24h", Sevend: "7d", Thirtyd: "30d", } as const; export type GetProjectAiUsageRangeResponse = ClosedEnum< typeof GetProjectAiUsageRangeResponse >; export const Label = { EstimatedProviderCost: "Estimated provider cost", } as const; export type Label = ClosedEnum; export type Pricing = { label: Label; coverage: number; revision: string | null; }; export type GetProjectAiUsageTotals = { requests: number; successfulRequests: number; errorRequests: number; averageLatencyMs: number | null; p95LatencyMs: number | null; inputTokens: number | null; outputTokens: number | null; estimatedCostMicrousd: number | null; pricedRequests: number; }; export type GetProjectAiUsageTimeSery = { requests: number; successfulRequests: number; errorRequests: number; averageLatencyMs: number | null; p95LatencyMs: number | null; inputTokens: number | null; outputTokens: number | null; estimatedCostMicrousd: number | null; pricedRequests: number; bucket: Date; }; export type GetProjectAiUsageCustomer = { requests: number; successfulRequests: number; errorRequests: number; averageLatencyMs: number | null; p95LatencyMs: number | null; inputTokens: number | null; outputTokens: number | null; estimatedCostMicrousd: number | null; pricedRequests: number; deploymentGroupId: string; name: string; externalId: string | null; }; export type GetProjectAiUsageModel = { requests: number; successfulRequests: number; errorRequests: number; averageLatencyMs: number | null; p95LatencyMs: number | null; inputTokens: number | null; outputTokens: number | null; estimatedCostMicrousd: number | null; pricedRequests: number; publicModel: string; provider: string; }; export type GetProjectAiUsageAvailable = { status: "available"; range: GetProjectAiUsageRangeResponse; pricing: Pricing; totals: GetProjectAiUsageTotals; timeSeries: Array; customers: Array; models: Array; customersTruncated: boolean; modelsTruncated: boolean; }; export const GetProjectAiUsageReason = { NotConfigured: "not-configured", TemporarilyUnavailable: "temporarily-unavailable", } as const; export type GetProjectAiUsageReason = ClosedEnum< typeof GetProjectAiUsageReason >; export type GetProjectAiUsageUnavailable = { status: "unavailable"; reason: GetProjectAiUsageReason; }; /** * Privacy-safe AI Gateway usage aggregates. */ export type GetProjectAiUsageResponse = | GetProjectAiUsageUnavailable | GetProjectAiUsageAvailable; /** @internal */ export const GetProjectAiUsageQueryParamRange$outboundSchema: z.ZodEnum< typeof GetProjectAiUsageQueryParamRange > = z.enum(GetProjectAiUsageQueryParamRange); /** @internal */ export type GetProjectAiUsageRequest$Outbound = { idOrName: string; range: string; }; /** @internal */ export const GetProjectAiUsageRequest$outboundSchema: z.ZodType< GetProjectAiUsageRequest$Outbound, GetProjectAiUsageRequest > = z.object({ idOrName: z.string(), range: GetProjectAiUsageQueryParamRange$outboundSchema.default("24h"), }); export function getProjectAiUsageRequestToJSON( getProjectAiUsageRequest: GetProjectAiUsageRequest, ): string { return JSON.stringify( GetProjectAiUsageRequest$outboundSchema.parse(getProjectAiUsageRequest), ); } /** @internal */ export const GetProjectAiUsageRangeResponse$inboundSchema: z.ZodEnum< typeof GetProjectAiUsageRangeResponse > = z.enum(GetProjectAiUsageRangeResponse); /** @internal */ export const Label$inboundSchema: z.ZodEnum = z.enum(Label); /** @internal */ export const Pricing$inboundSchema: z.ZodType = z.object({ label: Label$inboundSchema, coverage: z.number(), revision: z.nullable(z.string()), }); export function pricingFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => Pricing$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'Pricing' from JSON`, ); } /** @internal */ export const GetProjectAiUsageTotals$inboundSchema: z.ZodType< GetProjectAiUsageTotals, unknown > = z.object({ requests: z.int(), successfulRequests: z.int(), errorRequests: z.int(), averageLatencyMs: z.nullable(z.number()), p95LatencyMs: z.nullable(z.number()), inputTokens: z.nullable(z.int()), outputTokens: z.nullable(z.int()), estimatedCostMicrousd: z.nullable(z.int()), pricedRequests: z.int(), }); export function getProjectAiUsageTotalsFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetProjectAiUsageTotals$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetProjectAiUsageTotals' from JSON`, ); } /** @internal */ export const GetProjectAiUsageTimeSery$inboundSchema: z.ZodType< GetProjectAiUsageTimeSery, unknown > = z.object({ requests: z.int(), successfulRequests: z.int(), errorRequests: z.int(), averageLatencyMs: z.nullable(z.number()), p95LatencyMs: z.nullable(z.number()), inputTokens: z.nullable(z.int()), outputTokens: z.nullable(z.int()), estimatedCostMicrousd: z.nullable(z.int()), pricedRequests: z.int(), bucket: z.iso.datetime({ offset: true }).transform(v => new Date(v)), }); export function getProjectAiUsageTimeSeryFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetProjectAiUsageTimeSery$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetProjectAiUsageTimeSery' from JSON`, ); } /** @internal */ export const GetProjectAiUsageCustomer$inboundSchema: z.ZodType< GetProjectAiUsageCustomer, unknown > = z.object({ requests: z.int(), successfulRequests: z.int(), errorRequests: z.int(), averageLatencyMs: z.nullable(z.number()), p95LatencyMs: z.nullable(z.number()), inputTokens: z.nullable(z.int()), outputTokens: z.nullable(z.int()), estimatedCostMicrousd: z.nullable(z.int()), pricedRequests: z.int(), deploymentGroupId: z.string(), name: z.string(), externalId: z.nullable(z.string()), }); export function getProjectAiUsageCustomerFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetProjectAiUsageCustomer$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetProjectAiUsageCustomer' from JSON`, ); } /** @internal */ export const GetProjectAiUsageModel$inboundSchema: z.ZodType< GetProjectAiUsageModel, unknown > = z.object({ requests: z.int(), successfulRequests: z.int(), errorRequests: z.int(), averageLatencyMs: z.nullable(z.number()), p95LatencyMs: z.nullable(z.number()), inputTokens: z.nullable(z.int()), outputTokens: z.nullable(z.int()), estimatedCostMicrousd: z.nullable(z.int()), pricedRequests: z.int(), publicModel: z.string(), provider: z.string(), }); export function getProjectAiUsageModelFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetProjectAiUsageModel$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetProjectAiUsageModel' from JSON`, ); } /** @internal */ export const GetProjectAiUsageAvailable$inboundSchema: z.ZodType< GetProjectAiUsageAvailable, unknown > = z.object({ status: z.literal("available"), range: GetProjectAiUsageRangeResponse$inboundSchema, pricing: z.lazy(() => Pricing$inboundSchema), totals: z.lazy(() => GetProjectAiUsageTotals$inboundSchema), timeSeries: z.array(z.lazy(() => GetProjectAiUsageTimeSery$inboundSchema)), customers: z.array(z.lazy(() => GetProjectAiUsageCustomer$inboundSchema)), models: z.array(z.lazy(() => GetProjectAiUsageModel$inboundSchema)), customersTruncated: z.boolean(), modelsTruncated: z.boolean(), }); export function getProjectAiUsageAvailableFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetProjectAiUsageAvailable$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetProjectAiUsageAvailable' from JSON`, ); } /** @internal */ export const GetProjectAiUsageReason$inboundSchema: z.ZodEnum< typeof GetProjectAiUsageReason > = z.enum(GetProjectAiUsageReason); /** @internal */ export const GetProjectAiUsageUnavailable$inboundSchema: z.ZodType< GetProjectAiUsageUnavailable, unknown > = z.object({ status: z.literal("unavailable"), reason: GetProjectAiUsageReason$inboundSchema, }); export function getProjectAiUsageUnavailableFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetProjectAiUsageUnavailable$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetProjectAiUsageUnavailable' from JSON`, ); } /** @internal */ export const GetProjectAiUsageResponse$inboundSchema: z.ZodType< GetProjectAiUsageResponse, unknown > = z.union([ z.lazy(() => GetProjectAiUsageUnavailable$inboundSchema), z.lazy(() => GetProjectAiUsageAvailable$inboundSchema), ]); export function getProjectAiUsageResponseFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetProjectAiUsageResponse$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetProjectAiUsageResponse' from JSON`, ); }