/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
import * as z from "zod/v4-mini";
import { remap as remap$ } from "../../lib/primitives.js";
import { safeParse } from "../../lib/schemas.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
/**
* A finer-grained classification of the tracking event.
*/
export type TrackingStatusSubstatus = {
/**
* A code that represents the substatus of the shipment. See the Event Definitions for more information.
*/
code: string;
/**
* A human-readable description of the substatus. See the Event Definitions for more information.
*/
text: string;
/**
* Indicates whether the substatus requires action from the shipper or recipient to complete delivery.
*/
actionRequired: boolean;
};
/** @internal */
export const TrackingStatusSubstatus$inboundSchema: z.ZodMiniType<
TrackingStatusSubstatus,
unknown
> = z.pipe(
z.object({
code: z.string(),
text: z.string(),
action_required: z.boolean(),
}),
z.transform((v) => {
return remap$(v, {
"action_required": "actionRequired",
});
}),
);
/** @internal */
export type TrackingStatusSubstatus$Outbound = {
code: string;
text: string;
action_required: boolean;
};
/** @internal */
export const TrackingStatusSubstatus$outboundSchema: z.ZodMiniType<
TrackingStatusSubstatus$Outbound,
TrackingStatusSubstatus
> = z.pipe(
z.object({
code: z.string(),
text: z.string(),
actionRequired: z.boolean(),
}),
z.transform((v) => {
return remap$(v, {
actionRequired: "action_required",
});
}),
);
export function trackingStatusSubstatusToJSON(
trackingStatusSubstatus: TrackingStatusSubstatus,
): string {
return JSON.stringify(
TrackingStatusSubstatus$outboundSchema.parse(trackingStatusSubstatus),
);
}
export function trackingStatusSubstatusFromJSON(
jsonString: string,
): SafeParseResult {
return safeParse(
jsonString,
(x) => TrackingStatusSubstatus$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'TrackingStatusSubstatus' from JSON`,
);
}