/* * 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 { PricePrice, PricePrice$inboundSchema } from "./price-price.js"; import { SDKValidationError } from "./sdk-validation-error.js"; export type SubscriptionUsageByMetersResponse = { amount?: number | undefined; currency?: string | undefined; displayAmount?: string | undefined; filterValues?: { [k: string]: Array } | undefined; /** * Whether this charge is at overage rate */ isOverage?: boolean | undefined; meterDisplayName?: string | undefined; meterId?: string | undefined; /** * Factor applied to this charge if in overage */ overageFactor?: number | undefined; price?: PricePrice | undefined; quantity?: number | undefined; /** * For feature_usage: direct match by sub_line_item_id */ subscriptionLineItemId?: string | undefined; }; /** @internal */ export const SubscriptionUsageByMetersResponse$inboundSchema: z.ZodMiniType< SubscriptionUsageByMetersResponse, unknown > = z.pipe( z.object({ amount: types.optional(types.number()), currency: types.optional(types.string()), display_amount: types.optional(types.string()), filter_values: types.optional( z.record(z.string(), z.array(types.string())), ), is_overage: types.optional(types.boolean()), meter_display_name: types.optional(types.string()), meter_id: types.optional(types.string()), overage_factor: types.optional(types.number()), price: types.optional(PricePrice$inboundSchema), quantity: types.optional(types.number()), subscription_line_item_id: types.optional(types.string()), }), z.transform((v) => { return remap$(v, { "display_amount": "displayAmount", "filter_values": "filterValues", "is_overage": "isOverage", "meter_display_name": "meterDisplayName", "meter_id": "meterId", "overage_factor": "overageFactor", "subscription_line_item_id": "subscriptionLineItemId", }); }), ); export function subscriptionUsageByMetersResponseFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => SubscriptionUsageByMetersResponse$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'SubscriptionUsageByMetersResponse' from JSON`, ); }