/*
 * 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 {
  WorkspaceMember,
  WorkspaceMember$inboundSchema,
  WorkspaceMember$Outbound,
  WorkspaceMember$outboundSchema,
} from "../components/workspacemember.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";

export type GetV2WorkspaceMembersWorkspaceMemberIdRequest = {
  workspaceMemberId: string;
};

/**
 * Success
 */
export type GetV2WorkspaceMembersWorkspaceMemberIdResponse = {
  data: WorkspaceMember;
};

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

/** @internal */
export type GetV2WorkspaceMembersWorkspaceMemberIdRequest$Outbound = {
  workspace_member_id: string;
};

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

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

export function getV2WorkspaceMembersWorkspaceMemberIdRequestToJSON(
  getV2WorkspaceMembersWorkspaceMemberIdRequest:
    GetV2WorkspaceMembersWorkspaceMemberIdRequest,
): string {
  return JSON.stringify(
    GetV2WorkspaceMembersWorkspaceMemberIdRequest$outboundSchema.parse(
      getV2WorkspaceMembersWorkspaceMemberIdRequest,
    ),
  );
}

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

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

/** @internal */
export type GetV2WorkspaceMembersWorkspaceMemberIdResponse$Outbound = {
  data: WorkspaceMember$Outbound;
};

/** @internal */
export const GetV2WorkspaceMembersWorkspaceMemberIdResponse$outboundSchema:
  z.ZodType<
    GetV2WorkspaceMembersWorkspaceMemberIdResponse$Outbound,
    z.ZodTypeDef,
    GetV2WorkspaceMembersWorkspaceMemberIdResponse
  > = z.object({
    data: WorkspaceMember$outboundSchema,
  });

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

export function getV2WorkspaceMembersWorkspaceMemberIdResponseToJSON(
  getV2WorkspaceMembersWorkspaceMemberIdResponse:
    GetV2WorkspaceMembersWorkspaceMemberIdResponse,
): string {
  return JSON.stringify(
    GetV2WorkspaceMembersWorkspaceMemberIdResponse$outboundSchema.parse(
      getV2WorkspaceMembersWorkspaceMemberIdResponse,
    ),
  );
}

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