/*
 * 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";

export type DeleteV2ObjectsObjectRecordsRecordIdRequest = {
  object: string;
  recordId: string;
};

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

/** @internal */
export const DeleteV2ObjectsObjectRecordsRecordIdRequest$inboundSchema:
  z.ZodType<
    DeleteV2ObjectsObjectRecordsRecordIdRequest,
    z.ZodTypeDef,
    unknown
  > = z.object({
    object: z.string(),
    record_id: z.string(),
  }).transform((v) => {
    return remap$(v, {
      "record_id": "recordId",
    });
  });

/** @internal */
export type DeleteV2ObjectsObjectRecordsRecordIdRequest$Outbound = {
  object: string;
  record_id: string;
};

/** @internal */
export const DeleteV2ObjectsObjectRecordsRecordIdRequest$outboundSchema:
  z.ZodType<
    DeleteV2ObjectsObjectRecordsRecordIdRequest$Outbound,
    z.ZodTypeDef,
    DeleteV2ObjectsObjectRecordsRecordIdRequest
  > = z.object({
    object: z.string(),
    recordId: z.string(),
  }).transform((v) => {
    return remap$(v, {
      recordId: "record_id",
    });
  });

/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export namespace DeleteV2ObjectsObjectRecordsRecordIdRequest$ {
  /** @deprecated use `DeleteV2ObjectsObjectRecordsRecordIdRequest$inboundSchema` instead. */
  export const inboundSchema =
    DeleteV2ObjectsObjectRecordsRecordIdRequest$inboundSchema;
  /** @deprecated use `DeleteV2ObjectsObjectRecordsRecordIdRequest$outboundSchema` instead. */
  export const outboundSchema =
    DeleteV2ObjectsObjectRecordsRecordIdRequest$outboundSchema;
  /** @deprecated use `DeleteV2ObjectsObjectRecordsRecordIdRequest$Outbound` instead. */
  export type Outbound = DeleteV2ObjectsObjectRecordsRecordIdRequest$Outbound;
}

export function deleteV2ObjectsObjectRecordsRecordIdRequestToJSON(
  deleteV2ObjectsObjectRecordsRecordIdRequest:
    DeleteV2ObjectsObjectRecordsRecordIdRequest,
): string {
  return JSON.stringify(
    DeleteV2ObjectsObjectRecordsRecordIdRequest$outboundSchema.parse(
      deleteV2ObjectsObjectRecordsRecordIdRequest,
    ),
  );
}

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

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

/** @internal */
export type DeleteV2ObjectsObjectRecordsRecordIdResponse$Outbound = {};

/** @internal */
export const DeleteV2ObjectsObjectRecordsRecordIdResponse$outboundSchema:
  z.ZodType<
    DeleteV2ObjectsObjectRecordsRecordIdResponse$Outbound,
    z.ZodTypeDef,
    DeleteV2ObjectsObjectRecordsRecordIdResponse
  > = 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 DeleteV2ObjectsObjectRecordsRecordIdResponse$ {
  /** @deprecated use `DeleteV2ObjectsObjectRecordsRecordIdResponse$inboundSchema` instead. */
  export const inboundSchema =
    DeleteV2ObjectsObjectRecordsRecordIdResponse$inboundSchema;
  /** @deprecated use `DeleteV2ObjectsObjectRecordsRecordIdResponse$outboundSchema` instead. */
  export const outboundSchema =
    DeleteV2ObjectsObjectRecordsRecordIdResponse$outboundSchema;
  /** @deprecated use `DeleteV2ObjectsObjectRecordsRecordIdResponse$Outbound` instead. */
  export type Outbound = DeleteV2ObjectsObjectRecordsRecordIdResponse$Outbound;
}

export function deleteV2ObjectsObjectRecordsRecordIdResponseToJSON(
  deleteV2ObjectsObjectRecordsRecordIdResponse:
    DeleteV2ObjectsObjectRecordsRecordIdResponse,
): string {
  return JSON.stringify(
    DeleteV2ObjectsObjectRecordsRecordIdResponse$outboundSchema.parse(
      deleteV2ObjectsObjectRecordsRecordIdResponse,
    ),
  );
}

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