/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
import * as z from "zod/v3";
import { safeParse } from "../../../lib/schemas.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
export type ClientRateLimitWebhookPayload = {
/**
* The number of available requests per day.
*/
dailyQuota?: number | undefined;
/**
* Total number of requests remaining for your client.
*/
quotaRemaining?: number | undefined;
/**
* In Codat's data model, dates and times are represented using the ISO 8601 standard. Date and time fields are formatted as strings; for example:
*
* @remarks
*
* ```
* 2020-10-08T22:40:50Z
* 2021-01-01T00:00:00
* ```
*
* When syncing data that contains `DateTime` fields from Codat, make sure you support the following cases when reading time information:
*
* - Coordinated Universal Time (UTC): `2021-11-15T06:00:00Z`
* - Unqualified local time: `2021-11-15T01:00:00`
* - UTC time offsets: `2021-11-15T01:00:00-05:00`
*
* > Time zones
* >
* > Not all dates from Codat will contain information about time zones.
* > Where it is not available from the underlying platform, Codat will return these as times local to the business whose data has been synced.
*/
expiryDate?: string | undefined;
};
/** @internal */
export const ClientRateLimitWebhookPayload$inboundSchema: z.ZodType<
ClientRateLimitWebhookPayload,
z.ZodTypeDef,
unknown
> = z.object({
dailyQuota: z.number().int().optional(),
quotaRemaining: z.number().int().optional(),
expiryDate: z.string().optional(),
});
/** @internal */
export type ClientRateLimitWebhookPayload$Outbound = {
dailyQuota?: number | undefined;
quotaRemaining?: number | undefined;
expiryDate?: string | undefined;
};
/** @internal */
export const ClientRateLimitWebhookPayload$outboundSchema: z.ZodType<
ClientRateLimitWebhookPayload$Outbound,
z.ZodTypeDef,
ClientRateLimitWebhookPayload
> = z.object({
dailyQuota: z.number().int().optional(),
quotaRemaining: z.number().int().optional(),
expiryDate: z.string().optional(),
});
export function clientRateLimitWebhookPayloadToJSON(
clientRateLimitWebhookPayload: ClientRateLimitWebhookPayload,
): string {
return JSON.stringify(
ClientRateLimitWebhookPayload$outboundSchema.parse(
clientRateLimitWebhookPayload,
),
);
}
export function clientRateLimitWebhookPayloadFromJSON(
jsonString: string,
): SafeParseResult {
return safeParse(
jsonString,
(x) => ClientRateLimitWebhookPayload$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'ClientRateLimitWebhookPayload' from JSON`,
);
}