/*
 * 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 { smartUnion } from "../types/smartUnion.js";
import { BadRequest, BadRequest$inboundSchema } from "./badrequest.js";
import {
  HttpApiDecodeError,
  HttpApiDecodeError$inboundSchema,
} from "./httpapidecodeerror.js";
import { SDKValidationError } from "./sdkvalidationerror.js";

export type GetContactInfoSchemaRequest = {
  domain: string;
  teamId?: string | undefined;
};

/**
 * There was something wrong with the request
 */
export type GetContactInfoSchemaDomainsRegistrarResponseBody =
  | BadRequest
  | HttpApiDecodeError;

/**
 * Success
 */
export type GetContactInfoSchemaResponseBody = {};

/** @internal */
export type GetContactInfoSchemaRequest$Outbound = {
  domain: string;
  teamId?: string | undefined;
};

/** @internal */
export const GetContactInfoSchemaRequest$outboundSchema: z.ZodType<
  GetContactInfoSchemaRequest$Outbound,
  z.ZodTypeDef,
  GetContactInfoSchemaRequest
> = z.object({
  domain: z.string(),
  teamId: z.string().optional(),
});

export function getContactInfoSchemaRequestToJSON(
  getContactInfoSchemaRequest: GetContactInfoSchemaRequest,
): string {
  return JSON.stringify(
    GetContactInfoSchemaRequest$outboundSchema.parse(
      getContactInfoSchemaRequest,
    ),
  );
}

/** @internal */
export const GetContactInfoSchemaDomainsRegistrarResponseBody$inboundSchema:
  z.ZodType<
    GetContactInfoSchemaDomainsRegistrarResponseBody,
    z.ZodTypeDef,
    unknown
  > = smartUnion([BadRequest$inboundSchema, HttpApiDecodeError$inboundSchema]);

export function getContactInfoSchemaDomainsRegistrarResponseBodyFromJSON(
  jsonString: string,
): SafeParseResult<
  GetContactInfoSchemaDomainsRegistrarResponseBody,
  SDKValidationError
> {
  return safeParse(
    jsonString,
    (x) =>
      GetContactInfoSchemaDomainsRegistrarResponseBody$inboundSchema.parse(
        JSON.parse(x),
      ),
    `Failed to parse 'GetContactInfoSchemaDomainsRegistrarResponseBody' from JSON`,
  );
}

/** @internal */
export const GetContactInfoSchemaResponseBody$inboundSchema: z.ZodType<
  GetContactInfoSchemaResponseBody,
  z.ZodTypeDef,
  unknown
> = z.object({});

export function getContactInfoSchemaResponseBodyFromJSON(
  jsonString: string,
): SafeParseResult<GetContactInfoSchemaResponseBody, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) => GetContactInfoSchemaResponseBody$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'GetContactInfoSchemaResponseBody' from JSON`,
  );
}
