/* * 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 Granularity = { Daily: "daily", Monthly: "monthly", } as const; /** * Whether to break down credit usage on a daily or monthly basis. */ export type Granularity = ClosedEnum; export type V3AccountmanagementOrgCreditsUsageRequest = { /** * The ID of a Censys organization. See the [Getting Started docs](https://docs.censys.com/reference/get-started#step-3-find-and-use-your-organization-id-optional) for more information. */ organizationId: string; /** * 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?: Granularity | undefined; /** * Whether to include a breakdown of individual users' consumption in the credit usage report. */ includeConsumerBreakdown?: boolean | undefined; }; export type V3AccountmanagementOrgCreditsUsageResponse = { headers: { [k: string]: Array }; result: components.ResponseEnvelopeCreditUsageReport; }; /** @internal */ export const Granularity$outboundSchema: z.ZodNativeEnum = z .nativeEnum(Granularity); /** @internal */ export type V3AccountmanagementOrgCreditsUsageRequest$Outbound = { organization_id: string; date?: string | undefined; start_date?: string | undefined; end_date?: string | undefined; granularity: string; include_consumer_breakdown: boolean; }; /** @internal */ export const V3AccountmanagementOrgCreditsUsageRequest$outboundSchema: z.ZodType< V3AccountmanagementOrgCreditsUsageRequest$Outbound, z.ZodTypeDef, V3AccountmanagementOrgCreditsUsageRequest > = z.object({ organizationId: z.string(), date: z.string().optional(), startDate: z.instanceof(RFCDate).transform(v => v.toString()).optional(), endDate: z.instanceof(RFCDate).transform(v => v.toString()).optional(), granularity: Granularity$outboundSchema.default("daily"), includeConsumerBreakdown: z.boolean().default(false), }).transform((v) => { return remap$(v, { organizationId: "organization_id", startDate: "start_date", endDate: "end_date", includeConsumerBreakdown: "include_consumer_breakdown", }); }); export function v3AccountmanagementOrgCreditsUsageRequestToJSON( v3AccountmanagementOrgCreditsUsageRequest: V3AccountmanagementOrgCreditsUsageRequest, ): string { return JSON.stringify( V3AccountmanagementOrgCreditsUsageRequest$outboundSchema.parse( v3AccountmanagementOrgCreditsUsageRequest, ), ); } /** @internal */ export const V3AccountmanagementOrgCreditsUsageResponse$inboundSchema: z.ZodType = 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 v3AccountmanagementOrgCreditsUsageResponseFromJSON( jsonString: string, ): SafeParseResult< V3AccountmanagementOrgCreditsUsageResponse, SDKValidationError > { return safeParse( jsonString, (x) => V3AccountmanagementOrgCreditsUsageResponse$inboundSchema.parse( JSON.parse(x), ), `Failed to parse 'V3AccountmanagementOrgCreditsUsageResponse' from JSON`, ); }