/* * 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 { Result as SafeParseResult } from "../../types/fp.js"; import * as components from "../components/index.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type GetConversationsUsageRequest = { startTime: number; endTime?: number | undefined; bucketWidth?: components.BucketWidth | undefined; limit?: number | undefined; page?: string | undefined; userIds?: Array | undefined; externalUserIds?: Array | undefined; allOrgs?: string | undefined; orgIds?: Array | undefined; groupBy?: Array | undefined; /** * Optional external end-user identifier forwarded by the API gateway. */ xOnBehalfOf?: string | undefined; }; export type GetConversationsUsageData = { object: "bucket"; /** * Unix timestamp of bucket start (inclusive) */ startTime: number; /** * Unix timestamp of bucket end (exclusive) */ endTime: number; /** * Array of usage results for this time bucket */ results: Array; }; /** * OK */ export type GetConversationsUsageResponseBody = { object: "page"; data: Array; /** * Whether there are more pages */ hasMore: boolean; /** * Cursor for next page, null if no more pages */ nextPage: string | null; }; /** @internal */ export const GetConversationsUsageRequest$inboundSchema: z.ZodType< GetConversationsUsageRequest, z.ZodTypeDef, unknown > = z.object({ start_time: z.number().int(), end_time: z.number().int().optional(), bucket_width: components.BucketWidth$inboundSchema.default("1d"), limit: z.number().int().optional(), page: z.string().optional(), user_ids: z.array(z.string()).optional(), external_user_ids: z.array(z.string()).optional(), all_orgs: z.string().optional(), org_ids: z.array(z.string()).optional(), group_by: z.array(components.ConversationsGroupBy$inboundSchema).optional(), "X-On-Behalf-Of": z.string().optional(), }).transform((v) => { return remap$(v, { "start_time": "startTime", "end_time": "endTime", "bucket_width": "bucketWidth", "user_ids": "userIds", "external_user_ids": "externalUserIds", "all_orgs": "allOrgs", "org_ids": "orgIds", "group_by": "groupBy", "X-On-Behalf-Of": "xOnBehalfOf", }); }); /** @internal */ export type GetConversationsUsageRequest$Outbound = { start_time: number; end_time?: number | undefined; bucket_width: string; limit?: number | undefined; page?: string | undefined; user_ids?: Array | undefined; external_user_ids?: Array | undefined; all_orgs?: string | undefined; org_ids?: Array | undefined; group_by?: Array | undefined; "X-On-Behalf-Of"?: string | undefined; }; /** @internal */ export const GetConversationsUsageRequest$outboundSchema: z.ZodType< GetConversationsUsageRequest$Outbound, z.ZodTypeDef, GetConversationsUsageRequest > = z.object({ startTime: z.number().int(), endTime: z.number().int().optional(), bucketWidth: components.BucketWidth$outboundSchema.default("1d"), limit: z.number().int().optional(), page: z.string().optional(), userIds: z.array(z.string()).optional(), externalUserIds: z.array(z.string()).optional(), allOrgs: z.string().optional(), orgIds: z.array(z.string()).optional(), groupBy: z.array(components.ConversationsGroupBy$outboundSchema).optional(), xOnBehalfOf: z.string().optional(), }).transform((v) => { return remap$(v, { startTime: "start_time", endTime: "end_time", bucketWidth: "bucket_width", userIds: "user_ids", externalUserIds: "external_user_ids", allOrgs: "all_orgs", orgIds: "org_ids", groupBy: "group_by", xOnBehalfOf: "X-On-Behalf-Of", }); }); export function getConversationsUsageRequestToJSON( getConversationsUsageRequest: GetConversationsUsageRequest, ): string { return JSON.stringify( GetConversationsUsageRequest$outboundSchema.parse( getConversationsUsageRequest, ), ); } export function getConversationsUsageRequestFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetConversationsUsageRequest$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetConversationsUsageRequest' from JSON`, ); } /** @internal */ export const GetConversationsUsageData$inboundSchema: z.ZodType< GetConversationsUsageData, z.ZodTypeDef, unknown > = z.object({ object: z.literal("bucket"), start_time: z.number().int(), end_time: z.number().int(), results: z.array(z.nullable(z.any())), }).transform((v) => { return remap$(v, { "start_time": "startTime", "end_time": "endTime", }); }); /** @internal */ export type GetConversationsUsageData$Outbound = { object: "bucket"; start_time: number; end_time: number; results: Array; }; /** @internal */ export const GetConversationsUsageData$outboundSchema: z.ZodType< GetConversationsUsageData$Outbound, z.ZodTypeDef, GetConversationsUsageData > = z.object({ object: z.literal("bucket"), startTime: z.number().int(), endTime: z.number().int(), results: z.array(z.nullable(z.any())), }).transform((v) => { return remap$(v, { startTime: "start_time", endTime: "end_time", }); }); export function getConversationsUsageDataToJSON( getConversationsUsageData: GetConversationsUsageData, ): string { return JSON.stringify( GetConversationsUsageData$outboundSchema.parse(getConversationsUsageData), ); } export function getConversationsUsageDataFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetConversationsUsageData$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetConversationsUsageData' from JSON`, ); } /** @internal */ export const GetConversationsUsageResponseBody$inboundSchema: z.ZodType< GetConversationsUsageResponseBody, z.ZodTypeDef, unknown > = z.object({ object: z.literal("page"), data: z.array(z.lazy(() => GetConversationsUsageData$inboundSchema)), has_more: z.boolean(), next_page: z.nullable(z.string()), }).transform((v) => { return remap$(v, { "has_more": "hasMore", "next_page": "nextPage", }); }); /** @internal */ export type GetConversationsUsageResponseBody$Outbound = { object: "page"; data: Array; has_more: boolean; next_page: string | null; }; /** @internal */ export const GetConversationsUsageResponseBody$outboundSchema: z.ZodType< GetConversationsUsageResponseBody$Outbound, z.ZodTypeDef, GetConversationsUsageResponseBody > = z.object({ object: z.literal("page"), data: z.array(z.lazy(() => GetConversationsUsageData$outboundSchema)), hasMore: z.boolean(), nextPage: z.nullable(z.string()), }).transform((v) => { return remap$(v, { hasMore: "has_more", nextPage: "next_page", }); }); export function getConversationsUsageResponseBodyToJSON( getConversationsUsageResponseBody: GetConversationsUsageResponseBody, ): string { return JSON.stringify( GetConversationsUsageResponseBody$outboundSchema.parse( getConversationsUsageResponseBody, ), ); } export function getConversationsUsageResponseBodyFromJSON( jsonString: string, ): SafeParseResult { return safeParse( jsonString, (x) => GetConversationsUsageResponseBody$inboundSchema.parse(JSON.parse(x)), `Failed to parse 'GetConversationsUsageResponseBody' from JSON`, ); }