/* * 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 { ClosedEnum } from "../../types/enums.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { RFCDate } from "../../types/rfcdate.js"; import * as components from "../components/index.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; /** * Whether to break down credit usage on a daily or monthly basis. */ export const V3AccountmanagementUserCreditsUsageQueryParamGranularity = { Daily: "daily", Monthly: "monthly", } as const; /** * Whether to break down credit usage on a daily or monthly basis. */ export type V3AccountmanagementUserCreditsUsageQueryParamGranularity = ClosedEnum; export type V3AccountmanagementUserCreditsUsageRequest = { /** * The date for the credit usage report in YYYY-MM-DD format (e.g., 2025-11-06). This field is deprecated and will be removed in a future version. Use start_date and end_date instead. The date must be on or after 2025-01-01 (the earliest date available for credit usage reports). */ date?: string | undefined; /** * The start date for the credit usage report in YYYY-MM-DD format (e.g., 2025-11-01). Must be on or after 2025-01-01 (the earliest date available for credit usage reports). */ startDate?: RFCDate | undefined; /** * The end date for the credit usage report in YYYY-MM-DD format (e.g., 2025-12-01). If omitted, will default to today's date. The date range (end_date - start_date) cannot exceed 365 days (1 year). */ endDate?: RFCDate | undefined; /** * Whether to break down credit usage on a daily or monthly basis. */ granularity?: | V3AccountmanagementUserCreditsUsageQueryParamGranularity | undefined; }; export type V3AccountmanagementUserCreditsUsageResponse = { headers: { [k: string]: Array }; result: components.ResponseEnvelopeCreditUsageReport; }; /** @internal */ export const V3AccountmanagementUserCreditsUsageQueryParamGranularity$outboundSchema: z.ZodNativeEnum< typeof V3AccountmanagementUserCreditsUsageQueryParamGranularity > = z.nativeEnum(V3AccountmanagementUserCreditsUsageQueryParamGranularity); /** @internal */ export type V3AccountmanagementUserCreditsUsageRequest$Outbound = { date?: string | undefined; start_date?: string | undefined; end_date?: string | undefined; granularity: string; }; /** @internal */ export const V3AccountmanagementUserCreditsUsageRequest$outboundSchema: z.ZodType< V3AccountmanagementUserCreditsUsageRequest$Outbound, z.ZodTypeDef, V3AccountmanagementUserCreditsUsageRequest > = z.object({ date: z.string().optional(), startDate: z.instanceof(RFCDate).transform(v => v.toString()).optional(), endDate: z.instanceof(RFCDate).transform(v => v.toString()).optional(), granularity: V3AccountmanagementUserCreditsUsageQueryParamGranularity$outboundSchema .default("daily"), }).transform((v) => { return remap$(v, { startDate: "start_date", endDate: "end_date", }); }); export function v3AccountmanagementUserCreditsUsageRequestToJSON( v3AccountmanagementUserCreditsUsageRequest: V3AccountmanagementUserCreditsUsageRequest, ): string { return JSON.stringify( V3AccountmanagementUserCreditsUsageRequest$outboundSchema.parse( v3AccountmanagementUserCreditsUsageRequest, ), ); } /** @internal */ export const V3AccountmanagementUserCreditsUsageResponse$inboundSchema: z.ZodType< V3AccountmanagementUserCreditsUsageResponse, z.ZodTypeDef, unknown > = z.object({ Headers: z.record(z.array(z.string())).default({}), Result: components.ResponseEnvelopeCreditUsageReport$inboundSchema, }).transform((v) => { return remap$(v, { "Headers": "headers", "Result": "result", }); }); export function v3AccountmanagementUserCreditsUsageResponseFromJSON( jsonString: string, ): SafeParseResult< V3AccountmanagementUserCreditsUsageResponse, SDKValidationError > { return safeParse( jsonString, (x) => V3AccountmanagementUserCreditsUsageResponse$inboundSchema.parse( JSON.parse(x), ), `Failed to parse 'V3AccountmanagementUserCreditsUsageResponse' from JSON`, ); }