/* * 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 { SDKValidationError } from "../errors/sdkvalidationerror.js"; export const GetEventMetricsMeasuresEnum2 = { Count: "count", Rate: "rate", } as const; export type GetEventMetricsMeasuresEnum2 = ClosedEnum< typeof GetEventMetricsMeasuresEnum2 >; export const GetEventMetricsMeasuresEnum1 = { Count: "count", Rate: "rate", } as const; export type GetEventMetricsMeasuresEnum1 = ClosedEnum< typeof GetEventMetricsMeasuresEnum1 >; /** * Measures to compute. At least one required. `rate` is events/second throughput. Use bracket notation for multiple values (e.g., `measures[0]=count`). */ export type GetEventMetricsMeasuresUnion = | GetEventMetricsMeasuresEnum1 | Array; export const GetEventMetricsDimensionsEnum2 = { TenantId: "tenant_id", Topic: "topic", DestinationId: "destination_id", } as const; export type GetEventMetricsDimensionsEnum2 = ClosedEnum< typeof GetEventMetricsDimensionsEnum2 >; export const GetEventMetricsDimensionsEnum1 = { TenantId: "tenant_id", Topic: "topic", DestinationId: "destination_id", } as const; export type GetEventMetricsDimensionsEnum1 = ClosedEnum< typeof GetEventMetricsDimensionsEnum1 >; /** * Dimensions to group results by. Use bracket notation for multiple values (e.g., `dimensions[0]=topic&dimensions[1]=destination_id`). */ export type GetEventMetricsDimensionsUnion = | GetEventMetricsDimensionsEnum1 | Array; /** * Filter by topic name(s). Use bracket notation for multiple values (e.g., `filters[topic][0]=user.created&filters[topic][1]=user.updated`). */ export type GetEventMetricsFiltersTopic = string | Array; /** * Filter by destination ID(s). Use bracket notation for multiple values (e.g., `filters[destination_id][0]=d1&filters[destination_id][1]=d2`). */ export type GetEventMetricsFiltersDestinationId = string | Array; /** * Filter by tenant ID(s). Admin-only — rejected with 403 for JWT callers. Use bracket notation for multiple values (e.g., `filters[tenant_id][0]=t1&filters[tenant_id][1]=t2`). */ export type GetEventMetricsFiltersTenantId = string | Array; export type GetEventMetricsRequest = { /** * Start of the time range (inclusive). ISO 8601 timestamp. */ timeStart: Date; /** * End of the time range (exclusive). ISO 8601 timestamp. */ timeEnd: Date; /** * Time bucketing granularity. Pattern: ``. * * @remarks * Units: `s` (1-60), `m` (1-60), `h` (1-24), `d` (1-31), `w` (1-4), `M` (1-12). * When omitted, returns a single aggregate row per dimension combination. */ granularity?: string | undefined; /** * Measures to compute. At least one required. `rate` is events/second throughput. Use bracket notation for multiple values (e.g., `measures[0]=count`). */ measures: GetEventMetricsMeasuresEnum1 | Array; /** * Dimensions to group results by. Use bracket notation for multiple values (e.g., `dimensions[0]=topic&dimensions[1]=destination_id`). */ dimensions?: | GetEventMetricsDimensionsEnum1 | Array | undefined; /** * Filter by topic name(s). Use bracket notation for multiple values (e.g., `filters[topic][0]=user.created&filters[topic][1]=user.updated`). */ filtersTopic?: string | Array | undefined; /** * Filter by destination ID(s). Use bracket notation for multiple values (e.g., `filters[destination_id][0]=d1&filters[destination_id][1]=d2`). */ filtersDestinationId?: string | Array | undefined; /** * Filter by tenant ID(s). Admin-only — rejected with 403 for JWT callers. Use bracket notation for multiple values (e.g., `filters[tenant_id][0]=t1&filters[tenant_id][1]=t2`). */ filtersTenantId?: string | Array | undefined; }; /** @internal */ export const GetEventMetricsMeasuresEnum2$inboundSchema: z.ZodNativeEnum< typeof GetEventMetricsMeasuresEnum2 > = z.nativeEnum(GetEventMetricsMeasuresEnum2); /** @internal */ export const GetEventMetricsMeasuresEnum2$outboundSchema: z.ZodNativeEnum< typeof GetEventMetricsMeasuresEnum2 > = GetEventMetricsMeasuresEnum2$inboundSchema; /** @internal */ export const GetEventMetricsMeasuresEnum1$inboundSchema: z.ZodNativeEnum< typeof GetEventMetricsMeasuresEnum1 > = z.nativeEnum(GetEventMetricsMeasuresEnum1); /** @internal */ export const GetEventMetricsMeasuresEnum1$outboundSchema: z.ZodNativeEnum< typeof GetEventMetricsMeasuresEnum1 > = GetEventMetricsMeasuresEnum1$inboundSchema; /** @internal */ export const GetEventMetricsMeasuresUnion$inboundSchema: z.ZodType< GetEventMetricsMeasuresUnion, z.ZodTypeDef, unknown > = z.union([ GetEventMetricsMeasuresEnum1$inboundSchema, z.array(GetEventMetricsMeasuresEnum2$inboundSchema), ]); /** @internal */ export type GetEventMetricsMeasuresUnion$Outbound = string | Array; /** @internal */ export const GetEventMetricsMeasuresUnion$outboundSchema: z.ZodType< GetEventMetricsMeasuresUnion$Outbound, z.ZodTypeDef, GetEventMetricsMeasuresUnion > = z.union([ GetEventMetricsMeasuresEnum1$outboundSchema, z.array(GetEventMetricsMeasuresEnum2$outboundSchema), ]); export function getEventMetricsMeasuresUnionToJSON( getEventMetricsMeasuresUnion: GetEventMetricsMeasuresUnion, ): string { return JSON.stringify( GetEventMetricsMeasuresUnion$outboundSchema.parse( getEventMetricsMeasuresUnion, ), ); } export function getEventMetricsMeasuresUnionFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetEventMetricsMeasuresUnion$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetEventMetricsMeasuresUnion' from JSON`, ); } /** @internal */ export const GetEventMetricsDimensionsEnum2$inboundSchema: z.ZodNativeEnum< typeof GetEventMetricsDimensionsEnum2 > = z.nativeEnum(GetEventMetricsDimensionsEnum2); /** @internal */ export const GetEventMetricsDimensionsEnum2$outboundSchema: z.ZodNativeEnum< typeof GetEventMetricsDimensionsEnum2 > = GetEventMetricsDimensionsEnum2$inboundSchema; /** @internal */ export const GetEventMetricsDimensionsEnum1$inboundSchema: z.ZodNativeEnum< typeof GetEventMetricsDimensionsEnum1 > = z.nativeEnum(GetEventMetricsDimensionsEnum1); /** @internal */ export const GetEventMetricsDimensionsEnum1$outboundSchema: z.ZodNativeEnum< typeof GetEventMetricsDimensionsEnum1 > = GetEventMetricsDimensionsEnum1$inboundSchema; /** @internal */ export const GetEventMetricsDimensionsUnion$inboundSchema: z.ZodType< GetEventMetricsDimensionsUnion, z.ZodTypeDef, unknown > = z.union([ GetEventMetricsDimensionsEnum1$inboundSchema, z.array(GetEventMetricsDimensionsEnum2$inboundSchema), ]); /** @internal */ export type GetEventMetricsDimensionsUnion$Outbound = string | Array; /** @internal */ export const GetEventMetricsDimensionsUnion$outboundSchema: z.ZodType< GetEventMetricsDimensionsUnion$Outbound, z.ZodTypeDef, GetEventMetricsDimensionsUnion > = z.union([ GetEventMetricsDimensionsEnum1$outboundSchema, z.array(GetEventMetricsDimensionsEnum2$outboundSchema), ]); export function getEventMetricsDimensionsUnionToJSON( getEventMetricsDimensionsUnion: GetEventMetricsDimensionsUnion, ): string { return JSON.stringify( GetEventMetricsDimensionsUnion$outboundSchema.parse( getEventMetricsDimensionsUnion, ), ); } export function getEventMetricsDimensionsUnionFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetEventMetricsDimensionsUnion$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetEventMetricsDimensionsUnion' from JSON`, ); } /** @internal */ export const GetEventMetricsFiltersTopic$inboundSchema: z.ZodType< GetEventMetricsFiltersTopic, z.ZodTypeDef, unknown > = z.union([z.string(), z.array(z.string())]); /** @internal */ export type GetEventMetricsFiltersTopic$Outbound = string | Array; /** @internal */ export const GetEventMetricsFiltersTopic$outboundSchema: z.ZodType< GetEventMetricsFiltersTopic$Outbound, z.ZodTypeDef, GetEventMetricsFiltersTopic > = z.union([z.string(), z.array(z.string())]); export function getEventMetricsFiltersTopicToJSON( getEventMetricsFiltersTopic: GetEventMetricsFiltersTopic, ): string { return JSON.stringify( GetEventMetricsFiltersTopic$outboundSchema.parse( getEventMetricsFiltersTopic, ), ); } export function getEventMetricsFiltersTopicFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetEventMetricsFiltersTopic$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetEventMetricsFiltersTopic' from JSON`, ); } /** @internal */ export const GetEventMetricsFiltersDestinationId$inboundSchema: z.ZodType< GetEventMetricsFiltersDestinationId, z.ZodTypeDef, unknown > = z.union([z.string(), z.array(z.string())]); /** @internal */ export type GetEventMetricsFiltersDestinationId$Outbound = | string | Array; /** @internal */ export const GetEventMetricsFiltersDestinationId$outboundSchema: z.ZodType< GetEventMetricsFiltersDestinationId$Outbound, z.ZodTypeDef, GetEventMetricsFiltersDestinationId > = z.union([z.string(), z.array(z.string())]); export function getEventMetricsFiltersDestinationIdToJSON( getEventMetricsFiltersDestinationId: GetEventMetricsFiltersDestinationId, ): string { return JSON.stringify( GetEventMetricsFiltersDestinationId$outboundSchema.parse( getEventMetricsFiltersDestinationId, ), ); } export function getEventMetricsFiltersDestinationIdFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetEventMetricsFiltersDestinationId$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetEventMetricsFiltersDestinationId' from JSON`, ); } /** @internal */ export const GetEventMetricsFiltersTenantId$inboundSchema: z.ZodType< GetEventMetricsFiltersTenantId, z.ZodTypeDef, unknown > = z.union([z.string(), z.array(z.string())]); /** @internal */ export type GetEventMetricsFiltersTenantId$Outbound = string | Array; /** @internal */ export const GetEventMetricsFiltersTenantId$outboundSchema: z.ZodType< GetEventMetricsFiltersTenantId$Outbound, z.ZodTypeDef, GetEventMetricsFiltersTenantId > = z.union([z.string(), z.array(z.string())]); export function getEventMetricsFiltersTenantIdToJSON( getEventMetricsFiltersTenantId: GetEventMetricsFiltersTenantId, ): string { return JSON.stringify( GetEventMetricsFiltersTenantId$outboundSchema.parse( getEventMetricsFiltersTenantId, ), ); } export function getEventMetricsFiltersTenantIdFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetEventMetricsFiltersTenantId$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetEventMetricsFiltersTenantId' from JSON`, ); } /** @internal */ export const GetEventMetricsRequest$inboundSchema: z.ZodType< GetEventMetricsRequest, z.ZodTypeDef, unknown > = z.object({ "time[start]": z.string().datetime({ offset: true }).transform(v => new Date(v) ), "time[end]": z.string().datetime({ offset: true }).transform(v => new Date(v) ), granularity: z.string().optional(), measures: z.union([ GetEventMetricsMeasuresEnum1$inboundSchema, z.array(GetEventMetricsMeasuresEnum2$inboundSchema), ]), dimensions: z.union([ GetEventMetricsDimensionsEnum1$inboundSchema, z.array(GetEventMetricsDimensionsEnum2$inboundSchema), ]).optional(), "filters[topic]": z.union([z.string(), z.array(z.string())]).optional(), "filters[destination_id]": z.union([z.string(), z.array(z.string())]) .optional(), "filters[tenant_id]": z.union([z.string(), z.array(z.string())]).optional(), }).transform((v) => { return remap$(v, { "time[start]": "timeStart", "time[end]": "timeEnd", "filters[topic]": "filtersTopic", "filters[destination_id]": "filtersDestinationId", "filters[tenant_id]": "filtersTenantId", }); }); /** @internal */ export type GetEventMetricsRequest$Outbound = { "time[start]": string; "time[end]": string; granularity?: string | undefined; measures: string | Array; dimensions?: string | Array | undefined; "filters[topic]"?: string | Array | undefined; "filters[destination_id]"?: string | Array | undefined; "filters[tenant_id]"?: string | Array | undefined; }; /** @internal */ export const GetEventMetricsRequest$outboundSchema: z.ZodType< GetEventMetricsRequest$Outbound, z.ZodTypeDef, GetEventMetricsRequest > = z.object({ timeStart: z.date().transform(v => v.toISOString()), timeEnd: z.date().transform(v => v.toISOString()), granularity: z.string().optional(), measures: z.union([ GetEventMetricsMeasuresEnum1$outboundSchema, z.array(GetEventMetricsMeasuresEnum2$outboundSchema), ]), dimensions: z.union([ GetEventMetricsDimensionsEnum1$outboundSchema, z.array(GetEventMetricsDimensionsEnum2$outboundSchema), ]).optional(), filtersTopic: z.union([z.string(), z.array(z.string())]).optional(), filtersDestinationId: z.union([z.string(), z.array(z.string())]).optional(), filtersTenantId: z.union([z.string(), z.array(z.string())]).optional(), }).transform((v) => { return remap$(v, { timeStart: "time[start]", timeEnd: "time[end]", filtersTopic: "filters[topic]", filtersDestinationId: "filters[destination_id]", filtersTenantId: "filters[tenant_id]", }); }); export function getEventMetricsRequestToJSON( getEventMetricsRequest: GetEventMetricsRequest, ): string { return JSON.stringify( GetEventMetricsRequest$outboundSchema.parse(getEventMetricsRequest), ); } export function getEventMetricsRequestFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetEventMetricsRequest$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetEventMetricsRequest' from JSON`, ); }