/* * 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 GetAttemptMetricsMeasuresEnum2 = { Count: "count", SuccessfulCount: "successful_count", FailedCount: "failed_count", ErrorRate: "error_rate", FirstAttemptCount: "first_attempt_count", RetryCount: "retry_count", ManualRetryCount: "manual_retry_count", AvgAttemptNumber: "avg_attempt_number", Rate: "rate", SuccessfulRate: "successful_rate", FailedRate: "failed_rate", } as const; export type GetAttemptMetricsMeasuresEnum2 = ClosedEnum< typeof GetAttemptMetricsMeasuresEnum2 >; export const GetAttemptMetricsMeasuresEnum1 = { Count: "count", SuccessfulCount: "successful_count", FailedCount: "failed_count", ErrorRate: "error_rate", FirstAttemptCount: "first_attempt_count", RetryCount: "retry_count", ManualRetryCount: "manual_retry_count", AvgAttemptNumber: "avg_attempt_number", Rate: "rate", SuccessfulRate: "successful_rate", FailedRate: "failed_rate", } as const; export type GetAttemptMetricsMeasuresEnum1 = ClosedEnum< typeof GetAttemptMetricsMeasuresEnum1 >; /** * Measures to compute. At least one required. Rate measures (`rate`, `successful_rate`, `failed_rate`) are throughput in events/second. Use bracket notation for multiple values (e.g., `measures[0]=count&measures[1]=error_rate`). */ export type GetAttemptMetricsMeasuresUnion = | GetAttemptMetricsMeasuresEnum1 | Array; export const GetAttemptMetricsDimensionsEnum2 = { TenantId: "tenant_id", DestinationId: "destination_id", Topic: "topic", Status: "status", Code: "code", Manual: "manual", AttemptNumber: "attempt_number", } as const; export type GetAttemptMetricsDimensionsEnum2 = ClosedEnum< typeof GetAttemptMetricsDimensionsEnum2 >; export const GetAttemptMetricsDimensionsEnum1 = { TenantId: "tenant_id", DestinationId: "destination_id", Topic: "topic", Status: "status", Code: "code", Manual: "manual", AttemptNumber: "attempt_number", } as const; export type GetAttemptMetricsDimensionsEnum1 = ClosedEnum< typeof GetAttemptMetricsDimensionsEnum1 >; /** * Dimensions to group results by. Use bracket notation for multiple values (e.g., `dimensions[0]=status&dimensions[1]=destination_id`). */ export type GetAttemptMetricsDimensionsUnion = | GetAttemptMetricsDimensionsEnum1 | 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 GetAttemptMetricsFiltersDestinationId = string | 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 GetAttemptMetricsFiltersTopic = string | Array; export const FiltersStatusEnum2 = { Success: "success", Failed: "failed", } as const; export type FiltersStatusEnum2 = ClosedEnum; export const FiltersStatusEnum1 = { Success: "success", Failed: "failed", } as const; export type FiltersStatusEnum1 = ClosedEnum; /** * Filter by attempt status(es). Use bracket notation for multiple values (e.g., `filters[status][0]=success&filters[status][1]=failed`). */ export type FiltersStatus = FiltersStatusEnum1 | Array; /** * Filter by HTTP status code(s). Use bracket notation for multiple values (e.g., `filters[code][0]=200&filters[code][1]=500`). */ export type FiltersCode = string | Array; /** * Filter by manual retry flag. */ export const FiltersManual = { True: "true", False: "false", } as const; /** * Filter by manual retry flag. */ export type FiltersManual = ClosedEnum; /** * Filter by attempt number(s). Use bracket notation for multiple values (e.g., `filters[attempt_number][0]=1&filters[attempt_number][1]=2`). */ export type FiltersAttemptNumber = 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 GetAttemptMetricsFiltersTenantId = string | Array; export type GetAttemptMetricsRequest = { /** * 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 measures (`rate`, `successful_rate`, `failed_rate`) are throughput in events/second. Use bracket notation for multiple values (e.g., `measures[0]=count&measures[1]=error_rate`). */ measures: | GetAttemptMetricsMeasuresEnum1 | Array; /** * Dimensions to group results by. Use bracket notation for multiple values (e.g., `dimensions[0]=status&dimensions[1]=destination_id`). */ dimensions?: | GetAttemptMetricsDimensionsEnum1 | 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 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 attempt status(es). Use bracket notation for multiple values (e.g., `filters[status][0]=success&filters[status][1]=failed`). */ filtersStatus?: FiltersStatusEnum1 | Array | undefined; /** * Filter by HTTP status code(s). Use bracket notation for multiple values (e.g., `filters[code][0]=200&filters[code][1]=500`). */ filtersCode?: string | Array | undefined; /** * Filter by manual retry flag. */ filtersManual?: FiltersManual | undefined; /** * Filter by attempt number(s). Use bracket notation for multiple values (e.g., `filters[attempt_number][0]=1&filters[attempt_number][1]=2`). */ filtersAttemptNumber?: 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 GetAttemptMetricsMeasuresEnum2$inboundSchema: z.ZodNativeEnum< typeof GetAttemptMetricsMeasuresEnum2 > = z.nativeEnum(GetAttemptMetricsMeasuresEnum2); /** @internal */ export const GetAttemptMetricsMeasuresEnum2$outboundSchema: z.ZodNativeEnum< typeof GetAttemptMetricsMeasuresEnum2 > = GetAttemptMetricsMeasuresEnum2$inboundSchema; /** @internal */ export const GetAttemptMetricsMeasuresEnum1$inboundSchema: z.ZodNativeEnum< typeof GetAttemptMetricsMeasuresEnum1 > = z.nativeEnum(GetAttemptMetricsMeasuresEnum1); /** @internal */ export const GetAttemptMetricsMeasuresEnum1$outboundSchema: z.ZodNativeEnum< typeof GetAttemptMetricsMeasuresEnum1 > = GetAttemptMetricsMeasuresEnum1$inboundSchema; /** @internal */ export const GetAttemptMetricsMeasuresUnion$inboundSchema: z.ZodType< GetAttemptMetricsMeasuresUnion, z.ZodTypeDef, unknown > = z.union([ GetAttemptMetricsMeasuresEnum1$inboundSchema, z.array(GetAttemptMetricsMeasuresEnum2$inboundSchema), ]); /** @internal */ export type GetAttemptMetricsMeasuresUnion$Outbound = string | Array; /** @internal */ export const GetAttemptMetricsMeasuresUnion$outboundSchema: z.ZodType< GetAttemptMetricsMeasuresUnion$Outbound, z.ZodTypeDef, GetAttemptMetricsMeasuresUnion > = z.union([ GetAttemptMetricsMeasuresEnum1$outboundSchema, z.array(GetAttemptMetricsMeasuresEnum2$outboundSchema), ]); export function getAttemptMetricsMeasuresUnionToJSON( getAttemptMetricsMeasuresUnion: GetAttemptMetricsMeasuresUnion, ): string { return JSON.stringify( GetAttemptMetricsMeasuresUnion$outboundSchema.parse( getAttemptMetricsMeasuresUnion, ), ); } export function getAttemptMetricsMeasuresUnionFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetAttemptMetricsMeasuresUnion$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetAttemptMetricsMeasuresUnion' from JSON`, ); } /** @internal */ export const GetAttemptMetricsDimensionsEnum2$inboundSchema: z.ZodNativeEnum< typeof GetAttemptMetricsDimensionsEnum2 > = z.nativeEnum(GetAttemptMetricsDimensionsEnum2); /** @internal */ export const GetAttemptMetricsDimensionsEnum2$outboundSchema: z.ZodNativeEnum< typeof GetAttemptMetricsDimensionsEnum2 > = GetAttemptMetricsDimensionsEnum2$inboundSchema; /** @internal */ export const GetAttemptMetricsDimensionsEnum1$inboundSchema: z.ZodNativeEnum< typeof GetAttemptMetricsDimensionsEnum1 > = z.nativeEnum(GetAttemptMetricsDimensionsEnum1); /** @internal */ export const GetAttemptMetricsDimensionsEnum1$outboundSchema: z.ZodNativeEnum< typeof GetAttemptMetricsDimensionsEnum1 > = GetAttemptMetricsDimensionsEnum1$inboundSchema; /** @internal */ export const GetAttemptMetricsDimensionsUnion$inboundSchema: z.ZodType< GetAttemptMetricsDimensionsUnion, z.ZodTypeDef, unknown > = z.union([ GetAttemptMetricsDimensionsEnum1$inboundSchema, z.array(GetAttemptMetricsDimensionsEnum2$inboundSchema), ]); /** @internal */ export type GetAttemptMetricsDimensionsUnion$Outbound = string | Array; /** @internal */ export const GetAttemptMetricsDimensionsUnion$outboundSchema: z.ZodType< GetAttemptMetricsDimensionsUnion$Outbound, z.ZodTypeDef, GetAttemptMetricsDimensionsUnion > = z.union([ GetAttemptMetricsDimensionsEnum1$outboundSchema, z.array(GetAttemptMetricsDimensionsEnum2$outboundSchema), ]); export function getAttemptMetricsDimensionsUnionToJSON( getAttemptMetricsDimensionsUnion: GetAttemptMetricsDimensionsUnion, ): string { return JSON.stringify( GetAttemptMetricsDimensionsUnion$outboundSchema.parse( getAttemptMetricsDimensionsUnion, ), ); } export function getAttemptMetricsDimensionsUnionFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetAttemptMetricsDimensionsUnion$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetAttemptMetricsDimensionsUnion' from JSON`, ); } /** @internal */ export const GetAttemptMetricsFiltersDestinationId$inboundSchema: z.ZodType< GetAttemptMetricsFiltersDestinationId, z.ZodTypeDef, unknown > = z.union([z.string(), z.array(z.string())]); /** @internal */ export type GetAttemptMetricsFiltersDestinationId$Outbound = | string | Array; /** @internal */ export const GetAttemptMetricsFiltersDestinationId$outboundSchema: z.ZodType< GetAttemptMetricsFiltersDestinationId$Outbound, z.ZodTypeDef, GetAttemptMetricsFiltersDestinationId > = z.union([z.string(), z.array(z.string())]); export function getAttemptMetricsFiltersDestinationIdToJSON( getAttemptMetricsFiltersDestinationId: GetAttemptMetricsFiltersDestinationId, ): string { return JSON.stringify( GetAttemptMetricsFiltersDestinationId$outboundSchema.parse( getAttemptMetricsFiltersDestinationId, ), ); } export function getAttemptMetricsFiltersDestinationIdFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetAttemptMetricsFiltersDestinationId$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetAttemptMetricsFiltersDestinationId' from JSON`, ); } /** @internal */ export const GetAttemptMetricsFiltersTopic$inboundSchema: z.ZodType< GetAttemptMetricsFiltersTopic, z.ZodTypeDef, unknown > = z.union([z.string(), z.array(z.string())]); /** @internal */ export type GetAttemptMetricsFiltersTopic$Outbound = string | Array; /** @internal */ export const GetAttemptMetricsFiltersTopic$outboundSchema: z.ZodType< GetAttemptMetricsFiltersTopic$Outbound, z.ZodTypeDef, GetAttemptMetricsFiltersTopic > = z.union([z.string(), z.array(z.string())]); export function getAttemptMetricsFiltersTopicToJSON( getAttemptMetricsFiltersTopic: GetAttemptMetricsFiltersTopic, ): string { return JSON.stringify( GetAttemptMetricsFiltersTopic$outboundSchema.parse( getAttemptMetricsFiltersTopic, ), ); } export function getAttemptMetricsFiltersTopicFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetAttemptMetricsFiltersTopic$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetAttemptMetricsFiltersTopic' from JSON`, ); } /** @internal */ export const FiltersStatusEnum2$inboundSchema: z.ZodNativeEnum< typeof FiltersStatusEnum2 > = z.nativeEnum(FiltersStatusEnum2); /** @internal */ export const FiltersStatusEnum2$outboundSchema: z.ZodNativeEnum< typeof FiltersStatusEnum2 > = FiltersStatusEnum2$inboundSchema; /** @internal */ export const FiltersStatusEnum1$inboundSchema: z.ZodNativeEnum< typeof FiltersStatusEnum1 > = z.nativeEnum(FiltersStatusEnum1); /** @internal */ export const FiltersStatusEnum1$outboundSchema: z.ZodNativeEnum< typeof FiltersStatusEnum1 > = FiltersStatusEnum1$inboundSchema; /** @internal */ export const FiltersStatus$inboundSchema: z.ZodType< FiltersStatus, z.ZodTypeDef, unknown > = z.union([ FiltersStatusEnum1$inboundSchema, z.array(FiltersStatusEnum2$inboundSchema), ]); /** @internal */ export type FiltersStatus$Outbound = string | Array; /** @internal */ export const FiltersStatus$outboundSchema: z.ZodType< FiltersStatus$Outbound, z.ZodTypeDef, FiltersStatus > = z.union([ FiltersStatusEnum1$outboundSchema, z.array(FiltersStatusEnum2$outboundSchema), ]); export function filtersStatusToJSON(filtersStatus: FiltersStatus): string { return JSON.stringify(FiltersStatus$outboundSchema.parse(filtersStatus)); } export function filtersStatusFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => FiltersStatus$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'FiltersStatus' from JSON`, ); } /** @internal */ export const FiltersCode$inboundSchema: z.ZodType< FiltersCode, z.ZodTypeDef, unknown > = z.union([z.string(), z.array(z.string())]); /** @internal */ export type FiltersCode$Outbound = string | Array; /** @internal */ export const FiltersCode$outboundSchema: z.ZodType< FiltersCode$Outbound, z.ZodTypeDef, FiltersCode > = z.union([z.string(), z.array(z.string())]); export function filtersCodeToJSON(filtersCode: FiltersCode): string { return JSON.stringify(FiltersCode$outboundSchema.parse(filtersCode)); } export function filtersCodeFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => FiltersCode$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'FiltersCode' from JSON`, ); } /** @internal */ export const FiltersManual$inboundSchema: z.ZodNativeEnum< typeof FiltersManual > = z.nativeEnum(FiltersManual); /** @internal */ export const FiltersManual$outboundSchema: z.ZodNativeEnum< typeof FiltersManual > = FiltersManual$inboundSchema; /** @internal */ export const FiltersAttemptNumber$inboundSchema: z.ZodType< FiltersAttemptNumber, z.ZodTypeDef, unknown > = z.union([z.string(), z.array(z.string())]); /** @internal */ export type FiltersAttemptNumber$Outbound = string | Array; /** @internal */ export const FiltersAttemptNumber$outboundSchema: z.ZodType< FiltersAttemptNumber$Outbound, z.ZodTypeDef, FiltersAttemptNumber > = z.union([z.string(), z.array(z.string())]); export function filtersAttemptNumberToJSON( filtersAttemptNumber: FiltersAttemptNumber, ): string { return JSON.stringify( FiltersAttemptNumber$outboundSchema.parse(filtersAttemptNumber), ); } export function filtersAttemptNumberFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => FiltersAttemptNumber$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'FiltersAttemptNumber' from JSON`, ); } /** @internal */ export const GetAttemptMetricsFiltersTenantId$inboundSchema: z.ZodType< GetAttemptMetricsFiltersTenantId, z.ZodTypeDef, unknown > = z.union([z.string(), z.array(z.string())]); /** @internal */ export type GetAttemptMetricsFiltersTenantId$Outbound = string | Array; /** @internal */ export const GetAttemptMetricsFiltersTenantId$outboundSchema: z.ZodType< GetAttemptMetricsFiltersTenantId$Outbound, z.ZodTypeDef, GetAttemptMetricsFiltersTenantId > = z.union([z.string(), z.array(z.string())]); export function getAttemptMetricsFiltersTenantIdToJSON( getAttemptMetricsFiltersTenantId: GetAttemptMetricsFiltersTenantId, ): string { return JSON.stringify( GetAttemptMetricsFiltersTenantId$outboundSchema.parse( getAttemptMetricsFiltersTenantId, ), ); } export function getAttemptMetricsFiltersTenantIdFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetAttemptMetricsFiltersTenantId$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetAttemptMetricsFiltersTenantId' from JSON`, ); } /** @internal */ export const GetAttemptMetricsRequest$inboundSchema: z.ZodType< GetAttemptMetricsRequest, 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([ GetAttemptMetricsMeasuresEnum1$inboundSchema, z.array(GetAttemptMetricsMeasuresEnum2$inboundSchema), ]), dimensions: z.union([ GetAttemptMetricsDimensionsEnum1$inboundSchema, z.array(GetAttemptMetricsDimensionsEnum2$inboundSchema), ]).optional(), "filters[destination_id]": z.union([z.string(), z.array(z.string())]) .optional(), "filters[topic]": z.union([z.string(), z.array(z.string())]).optional(), "filters[status]": z.union([ FiltersStatusEnum1$inboundSchema, z.array(FiltersStatusEnum2$inboundSchema), ]).optional(), "filters[code]": z.union([z.string(), z.array(z.string())]).optional(), "filters[manual]": FiltersManual$inboundSchema.optional(), "filters[attempt_number]": 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[destination_id]": "filtersDestinationId", "filters[topic]": "filtersTopic", "filters[status]": "filtersStatus", "filters[code]": "filtersCode", "filters[manual]": "filtersManual", "filters[attempt_number]": "filtersAttemptNumber", "filters[tenant_id]": "filtersTenantId", }); }); /** @internal */ export type GetAttemptMetricsRequest$Outbound = { "time[start]": string; "time[end]": string; granularity?: string | undefined; measures: string | Array; dimensions?: string | Array | undefined; "filters[destination_id]"?: string | Array | undefined; "filters[topic]"?: string | Array | undefined; "filters[status]"?: string | Array | undefined; "filters[code]"?: string | Array | undefined; "filters[manual]"?: string | undefined; "filters[attempt_number]"?: string | Array | undefined; "filters[tenant_id]"?: string | Array | undefined; }; /** @internal */ export const GetAttemptMetricsRequest$outboundSchema: z.ZodType< GetAttemptMetricsRequest$Outbound, z.ZodTypeDef, GetAttemptMetricsRequest > = z.object({ timeStart: z.date().transform(v => v.toISOString()), timeEnd: z.date().transform(v => v.toISOString()), granularity: z.string().optional(), measures: z.union([ GetAttemptMetricsMeasuresEnum1$outboundSchema, z.array(GetAttemptMetricsMeasuresEnum2$outboundSchema), ]), dimensions: z.union([ GetAttemptMetricsDimensionsEnum1$outboundSchema, z.array(GetAttemptMetricsDimensionsEnum2$outboundSchema), ]).optional(), filtersDestinationId: z.union([z.string(), z.array(z.string())]).optional(), filtersTopic: z.union([z.string(), z.array(z.string())]).optional(), filtersStatus: z.union([ FiltersStatusEnum1$outboundSchema, z.array(FiltersStatusEnum2$outboundSchema), ]).optional(), filtersCode: z.union([z.string(), z.array(z.string())]).optional(), filtersManual: FiltersManual$outboundSchema.optional(), filtersAttemptNumber: 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]", filtersDestinationId: "filters[destination_id]", filtersTopic: "filters[topic]", filtersStatus: "filters[status]", filtersCode: "filters[code]", filtersManual: "filters[manual]", filtersAttemptNumber: "filters[attempt_number]", filtersTenantId: "filters[tenant_id]", }); }); export function getAttemptMetricsRequestToJSON( getAttemptMetricsRequest: GetAttemptMetricsRequest, ): string { return JSON.stringify( GetAttemptMetricsRequest$outboundSchema.parse(getAttemptMetricsRequest), ); } export function getAttemptMetricsRequestFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetAttemptMetricsRequest$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetAttemptMetricsRequest' from JSON`, ); }