/* * 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 * as components from "../components/index.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type GetCompletionsUsageRequest = { startTime: number; endTime?: number | undefined; bucketWidth?: components.BucketWidth | undefined; limit?: number | undefined; page?: string | undefined; userIds?: Array | undefined; externalUserIds?: Array | undefined; allOrgs?: string | undefined; orgIds?: Array | undefined; groupBy?: Array | undefined; models?: Array | undefined; /** * Optional external end-user identifier forwarded by the API gateway. */ xOnBehalfOf?: string | undefined; }; export type GetCompletionsUsageData = { object: "bucket"; /** * Unix timestamp of bucket start (inclusive) */ startTime: number; /** * Unix timestamp of bucket end (exclusive) */ endTime: number; /** * Array of usage results for this time bucket */ results: Array; }; /** * OK */ export type GetCompletionsUsageResponseBody = { object: "page"; data: Array; /** * Whether there are more pages */ hasMore: boolean; /** * Cursor for next page, null if no more pages */ nextPage: string | null; }; /** @internal */ export const GetCompletionsUsageRequest$inboundSchema: z.ZodType< GetCompletionsUsageRequest, z.ZodTypeDef, unknown > = z.object({ start_time: z.number().int(), end_time: z.number().int().optional(), bucket_width: components.BucketWidth$inboundSchema.default("1d"), limit: z.number().int().optional(), page: z.string().optional(), user_ids: z.array(z.string()).optional(), external_user_ids: z.array(z.string()).optional(), all_orgs: z.string().optional(), org_ids: z.array(z.string()).optional(), group_by: z.array(components.CompletionsGroupBy$inboundSchema).optional(), models: z.array(z.string()).optional(), "X-On-Behalf-Of": z.string().optional(), }).transform((v) => { return remap$(v, { "start_time": "startTime", "end_time": "endTime", "bucket_width": "bucketWidth", "user_ids": "userIds", "external_user_ids": "externalUserIds", "all_orgs": "allOrgs", "org_ids": "orgIds", "group_by": "groupBy", "X-On-Behalf-Of": "xOnBehalfOf", }); }); /** @internal */ export type GetCompletionsUsageRequest$Outbound = { start_time: number; end_time?: number | undefined; bucket_width: string; limit?: number | undefined; page?: string | undefined; user_ids?: Array | undefined; external_user_ids?: Array | undefined; all_orgs?: string | undefined; org_ids?: Array | undefined; group_by?: Array | undefined; models?: Array | undefined; "X-On-Behalf-Of"?: string | undefined; }; /** @internal */ export const GetCompletionsUsageRequest$outboundSchema: z.ZodType< GetCompletionsUsageRequest$Outbound, z.ZodTypeDef, GetCompletionsUsageRequest > = z.object({ startTime: z.number().int(), endTime: z.number().int().optional(), bucketWidth: components.BucketWidth$outboundSchema.default("1d"), limit: z.number().int().optional(), page: z.string().optional(), userIds: z.array(z.string()).optional(), externalUserIds: z.array(z.string()).optional(), allOrgs: z.string().optional(), orgIds: z.array(z.string()).optional(), groupBy: z.array(components.CompletionsGroupBy$outboundSchema).optional(), models: z.array(z.string()).optional(), xOnBehalfOf: z.string().optional(), }).transform((v) => { return remap$(v, { startTime: "start_time", endTime: "end_time", bucketWidth: "bucket_width", userIds: "user_ids", externalUserIds: "external_user_ids", allOrgs: "all_orgs", orgIds: "org_ids", groupBy: "group_by", xOnBehalfOf: "X-On-Behalf-Of", }); }); export function getCompletionsUsageRequestToJSON( getCompletionsUsageRequest: GetCompletionsUsageRequest, ): string { return JSON.stringify( GetCompletionsUsageRequest$outboundSchema.parse(getCompletionsUsageRequest), ); } export function getCompletionsUsageRequestFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetCompletionsUsageRequest$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetCompletionsUsageRequest' from JSON`, ); } /** @internal */ export const GetCompletionsUsageData$inboundSchema: z.ZodType< GetCompletionsUsageData, z.ZodTypeDef, unknown > = z.object({ object: z.literal("bucket"), start_time: z.number().int(), end_time: z.number().int(), results: z.array(z.nullable(z.any())), }).transform((v) => { return remap$(v, { "start_time": "startTime", "end_time": "endTime", }); }); /** @internal */ export type GetCompletionsUsageData$Outbound = { object: "bucket"; start_time: number; end_time: number; results: Array; }; /** @internal */ export const GetCompletionsUsageData$outboundSchema: z.ZodType< GetCompletionsUsageData$Outbound, z.ZodTypeDef, GetCompletionsUsageData > = z.object({ object: z.literal("bucket"), startTime: z.number().int(), endTime: z.number().int(), results: z.array(z.nullable(z.any())), }).transform((v) => { return remap$(v, { startTime: "start_time", endTime: "end_time", }); }); export function getCompletionsUsageDataToJSON( getCompletionsUsageData: GetCompletionsUsageData, ): string { return JSON.stringify( GetCompletionsUsageData$outboundSchema.parse(getCompletionsUsageData), ); } export function getCompletionsUsageDataFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetCompletionsUsageData$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetCompletionsUsageData' from JSON`, ); } /** @internal */ export const GetCompletionsUsageResponseBody$inboundSchema: z.ZodType< GetCompletionsUsageResponseBody, z.ZodTypeDef, unknown > = z.object({ object: z.literal("page"), data: z.array(z.lazy(() => GetCompletionsUsageData$inboundSchema)), has_more: z.boolean(), next_page: z.nullable(z.string()), }).transform((v) => { return remap$(v, { "has_more": "hasMore", "next_page": "nextPage", }); }); /** @internal */ export type GetCompletionsUsageResponseBody$Outbound = { object: "page"; data: Array; has_more: boolean; next_page: string | null; }; /** @internal */ export const GetCompletionsUsageResponseBody$outboundSchema: z.ZodType< GetCompletionsUsageResponseBody$Outbound, z.ZodTypeDef, GetCompletionsUsageResponseBody > = z.object({ object: z.literal("page"), data: z.array(z.lazy(() => GetCompletionsUsageData$outboundSchema)), hasMore: z.boolean(), nextPage: z.nullable(z.string()), }).transform((v) => { return remap$(v, { hasMore: "has_more", nextPage: "next_page", }); }); export function getCompletionsUsageResponseBodyToJSON( getCompletionsUsageResponseBody: GetCompletionsUsageResponseBody, ): string { return JSON.stringify( GetCompletionsUsageResponseBody$outboundSchema.parse( getCompletionsUsageResponseBody, ), ); } export function getCompletionsUsageResponseBodyFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetCompletionsUsageResponseBody$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetCompletionsUsageResponseBody' from JSON`, ); }