/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. * @generated-id: b71115747ea4 */ import * as z from "zod/v4"; import { remap as remap$ } from "../../lib/primitives.js"; import { MetricDefinition, MetricDefinition$Outbound, MetricDefinition$outboundSchema, } from "./metricdefinition.js"; import { OrderByClause, OrderByClause$Outbound, OrderByClause$outboundSchema, } from "./orderbyclause.js"; import { TimeDimension, TimeDimension$Outbound, TimeDimension$outboundSchema, } from "./timedimension.js"; export type AggregationRequest = { metric: MetricDefinition; dimensions?: Array | undefined; timeDimension?: TimeDimension | null | undefined; searchExpression?: string | null | undefined; orderBy?: Array | null | undefined; limit?: number | undefined; }; /** @internal */ export type AggregationRequest$Outbound = { metric: MetricDefinition$Outbound; dimensions?: Array | undefined; time_dimension?: TimeDimension$Outbound | null | undefined; search_expression?: string | null | undefined; order_by?: Array | null | undefined; limit: number; }; /** @internal */ export const AggregationRequest$outboundSchema: z.ZodType< AggregationRequest$Outbound, AggregationRequest > = z.object({ metric: MetricDefinition$outboundSchema, dimensions: z.array(z.string()).optional(), timeDimension: z.nullable(TimeDimension$outboundSchema).optional(), searchExpression: z.nullable(z.string()).optional(), orderBy: z.nullable(z.array(OrderByClause$outboundSchema)).optional(), limit: z.int().default(1000), }).transform((v) => { return remap$(v, { timeDimension: "time_dimension", searchExpression: "search_expression", orderBy: "order_by", }); }); export function aggregationRequestToJSON( aggregationRequest: AggregationRequest, ): string { return JSON.stringify( AggregationRequest$outboundSchema.parse(aggregationRequest), ); }