/*
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
*/
import * as z from "zod";
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";
/**
* Any other information that may be useful about versioning of dependent services should be returned here.
*/
export type VersionMetadata = {};
/**
* The Version object is utilized to inform the client of the versions of different components of the Rosetta implementation.
*/
export type Version = {
/**
* The rosetta_version is the version of the Rosetta interface the implementation adheres to. This can be useful for clients looking to reliably parse responses.
*/
rosettaVersion: string;
/**
* The node_version is the canonical version of the node runtime. This can help clients manage deployments.
*/
nodeVersion: string;
/**
* When a middleware server is used to adhere to the Rosetta interface, it should return its version here. This can help clients manage deployments.
*/
middlewareVersion?: string | undefined;
/**
* Any other information that may be useful about versioning of dependent services should be returned here.
*/
metadata?: VersionMetadata | undefined;
};
/** @internal */
export const VersionMetadata$inboundSchema: z.ZodType<
VersionMetadata,
z.ZodTypeDef,
unknown
> = z.object({});
/** @internal */
export type VersionMetadata$Outbound = {};
/** @internal */
export const VersionMetadata$outboundSchema: z.ZodType<
VersionMetadata$Outbound,
z.ZodTypeDef,
VersionMetadata
> = z.object({});
/**
* @internal
* @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
*/
export namespace VersionMetadata$ {
/** @deprecated use `VersionMetadata$inboundSchema` instead. */
export const inboundSchema = VersionMetadata$inboundSchema;
/** @deprecated use `VersionMetadata$outboundSchema` instead. */
export const outboundSchema = VersionMetadata$outboundSchema;
/** @deprecated use `VersionMetadata$Outbound` instead. */
export type Outbound = VersionMetadata$Outbound;
}
export function versionMetadataToJSON(
versionMetadata: VersionMetadata,
): string {
return JSON.stringify(VersionMetadata$outboundSchema.parse(versionMetadata));
}
export function versionMetadataFromJSON(
jsonString: string,
): SafeParseResult<VersionMetadata, SDKValidationError> {
return safeParse(
jsonString,
(x) => VersionMetadata$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'VersionMetadata' from JSON`,
);
}
/** @internal */
export const Version$inboundSchema: z.ZodType<Version, z.ZodTypeDef, unknown> =
z.object({
rosetta_version: z.string(),
node_version: z.string(),
middleware_version: z.string().optional(),
metadata: z.lazy(() => VersionMetadata$inboundSchema).optional(),
}).transform((v) => {
return remap$(v, {
"rosetta_version": "rosettaVersion",
"node_version": "nodeVersion",
"middleware_version": "middlewareVersion",
});
});
/** @internal */
export type Version$Outbound = {
rosetta_version: string;
node_version: string;
middleware_version?: string | undefined;
metadata?: VersionMetadata$Outbound | undefined;
};
/** @internal */
export const Version$outboundSchema: z.ZodType<
Version$Outbound,
z.ZodTypeDef,
Version
> = z.object({
rosettaVersion: z.string(),
nodeVersion: z.string(),
middlewareVersion: z.string().optional(),
metadata: z.lazy(() => VersionMetadata$outboundSchema).optional(),
}).transform((v) => {
return remap$(v, {
rosettaVersion: "rosetta_version",
nodeVersion: "node_version",
middlewareVersion: "middleware_version",
});
});
/**
* @internal
* @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
*/
export namespace Version$ {
/** @deprecated use `Version$inboundSchema` instead. */
export const inboundSchema = Version$inboundSchema;
/** @deprecated use `Version$outboundSchema` instead. */
export const outboundSchema = Version$outboundSchema;
/** @deprecated use `Version$Outbound` instead. */
export type Outbound = Version$Outbound;
}
export function versionToJSON(version: Version): string {
return JSON.stringify(Version$outboundSchema.parse(version));
}
export function versionFromJSON(
jsonString: string,
): SafeParseResult<Version, SDKValidationError> {
return safeParse(
jsonString,
(x) => Version$inboundSchema.parse(JSON.parse(x)),
`Failed to parse 'Version' from JSON`,
);
}