/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import * as z from "zod/v4-mini"; import { remap as remap$ } from "../../lib/primitives.js"; import { safeParse } from "../../lib/schemas.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import * as types from "../../types/primitives.js"; import { SDKValidationError } from "./sdk-validation-error.js"; import { SubscriptionUsageByMetersResponse, SubscriptionUsageByMetersResponse$inboundSchema, } from "./subscription-usage-by-meters-response.js"; export type GetUsageBySubscriptionResponse = { amount?: number | undefined; charges?: Array | undefined; commitmentAmount?: number | undefined; /** * Amount of commitment used */ commitmentUtilized?: number | undefined; currency?: string | undefined; displayAmount?: string | undefined; endTime?: Date | undefined; /** * Whether any usage exceeded commitment */ hasOverage?: boolean | undefined; /** * Amount charged at overage rate */ overageAmount?: number | undefined; overageFactor?: number | undefined; startTime?: Date | undefined; }; /** @internal */ export const GetUsageBySubscriptionResponse$inboundSchema: z.ZodMiniType< GetUsageBySubscriptionResponse, unknown > = z.pipe( z.object({ amount: types.optional(types.number()), charges: types.optional( z.array(SubscriptionUsageByMetersResponse$inboundSchema), ), commitment_amount: types.optional(types.number()), commitment_utilized: types.optional(types.number()), currency: types.optional(types.string()), display_amount: types.optional(types.string()), end_time: types.optional(types.date()), has_overage: types.optional(types.boolean()), overage_amount: types.optional(types.number()), overage_factor: types.optional(types.number()), start_time: types.optional(types.date()), }), z.transform((v) => { return remap$(v, { "commitment_amount": "commitmentAmount", "commitment_utilized": "commitmentUtilized", "display_amount": "displayAmount", "end_time": "endTime", "has_overage": "hasOverage", "overage_amount": "overageAmount", "overage_factor": "overageFactor", "start_time": "startTime", }); }), ); export function getUsageBySubscriptionResponseFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetUsageBySubscriptionResponse$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetUsageBySubscriptionResponse' from JSON`, ); }