/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */

import * as z from "zod/v3";
import { safeParse } from "../lib/schemas.js";
import { ClosedEnum } from "../types/enums.js";
import { Result as SafeParseResult } from "../types/fp.js";
import * as types from "../types/primitives.js";
import { smartUnion } from "../types/smartUnion.js";
import { SDKValidationError } from "./sdkvalidationerror.js";

export type ListDeploymentCheckRunsRequest = {
  deploymentId: string;
  /**
   * The Team identifier to perform the request on behalf of.
   */
  teamId?: string | undefined;
  /**
   * The Team slug to perform the request on behalf of.
   */
  slug?: string | undefined;
};

export const ListDeploymentCheckRunsRunsChecksV2Requires = {
  BuildReady: "build-ready",
  DeploymentUrl: "deployment-url",
  None: "none",
} as const;
export type ListDeploymentCheckRunsRunsChecksV2Requires = ClosedEnum<
  typeof ListDeploymentCheckRunsRunsChecksV2Requires
>;

export const ListDeploymentCheckRunsRunsChecksV2Blocks = {
  BuildStart: "build-start",
  DeploymentAlias: "deployment-alias",
  DeploymentPromotion: "deployment-promotion",
  DeploymentStart: "deployment-start",
  None: "none",
} as const;
export type ListDeploymentCheckRunsRunsChecksV2Blocks = ClosedEnum<
  typeof ListDeploymentCheckRunsRunsChecksV2Blocks
>;

export const ListDeploymentCheckRunsRunsChecksV2Status = {
  Completed: "completed",
  Queued: "queued",
  Running: "running",
} as const;
export type ListDeploymentCheckRunsRunsChecksV2Status = ClosedEnum<
  typeof ListDeploymentCheckRunsRunsChecksV2Status
>;

export const ListDeploymentCheckRunsRunsChecksV2Conclusion = {
  Canceled: "canceled",
  Failed: "failed",
  Neutral: "neutral",
  Skipped: "skipped",
  Succeeded: "succeeded",
  Timeout: "timeout",
} as const;
export type ListDeploymentCheckRunsRunsChecksV2Conclusion = ClosedEnum<
  typeof ListDeploymentCheckRunsRunsChecksV2Conclusion
>;

export const ListDeploymentCheckRunsSourceChecksV2ResponseOrigin = {
  Platform: "platform",
} as const;
export type ListDeploymentCheckRunsSourceChecksV2ResponseOrigin = ClosedEnum<
  typeof ListDeploymentCheckRunsSourceChecksV2ResponseOrigin
>;

/**
 * CI sentinel — check run `source` only (no parent check).
 */
export type ListDeploymentCheckRunsSourceChecksV22 = {
  subKind: "vercel-ci-sentinel";
  origin: ListDeploymentCheckRunsSourceChecksV2ResponseOrigin;
};

export const ListDeploymentCheckRunsSourceChecksV2Origin = {
  Config: "config",
} as const;
export type ListDeploymentCheckRunsSourceChecksV2Origin = ClosedEnum<
  typeof ListDeploymentCheckRunsSourceChecksV2Origin
>;

/**
 * Config-driven CI task — check run `source` only (no parent check).
 */
export type ListDeploymentCheckRunsSourceChecksV21 = {
  subKind: "vercel-ci";
  origin: ListDeploymentCheckRunsSourceChecksV2Origin;
  invocationId: string;
  invocationAttempt?: number | undefined;
  jobDefinitionId: string;
};

export type ListDeploymentCheckRunsRunsChecksV2Source =
  | ListDeploymentCheckRunsSourceChecksV21
  | ListDeploymentCheckRunsSourceChecksV22;

/**
 * Vercel CI check run without a parent `check` (no `checkId` field).
 */
export type ListDeploymentCheckRunsRuns2 = {
  id: string;
  name: string;
  ownerId: string;
  deploymentId: string;
  projectId?: string | undefined;
  requires?: ListDeploymentCheckRunsRunsChecksV2Requires | undefined;
  blocks?: ListDeploymentCheckRunsRunsChecksV2Blocks | undefined;
  targets?: Array<string> | undefined;
  status: ListDeploymentCheckRunsRunsChecksV2Status;
  conclusion?: ListDeploymentCheckRunsRunsChecksV2Conclusion | undefined;
  conclusionText?: string | undefined;
  externalId?: string | undefined;
  externalUrl?: string | undefined;
  output?: { [k: string]: any } | undefined;
  timeout: number;
  createdAt: number;
  updatedAt: number;
  completedAt?: number | undefined;
  source:
    | ListDeploymentCheckRunsSourceChecksV21
    | ListDeploymentCheckRunsSourceChecksV22;
};

export const ListDeploymentCheckRunsRunsRequires = {
  BuildReady: "build-ready",
  DeploymentUrl: "deployment-url",
  None: "none",
} as const;
export type ListDeploymentCheckRunsRunsRequires = ClosedEnum<
  typeof ListDeploymentCheckRunsRunsRequires
>;

export const ListDeploymentCheckRunsRunsBlocks = {
  BuildStart: "build-start",
  DeploymentAlias: "deployment-alias",
  DeploymentPromotion: "deployment-promotion",
  DeploymentStart: "deployment-start",
  None: "none",
} as const;
export type ListDeploymentCheckRunsRunsBlocks = ClosedEnum<
  typeof ListDeploymentCheckRunsRunsBlocks
>;

export const ListDeploymentCheckRunsRunsStatus = {
  Completed: "completed",
  Queued: "queued",
  Running: "running",
} as const;
export type ListDeploymentCheckRunsRunsStatus = ClosedEnum<
  typeof ListDeploymentCheckRunsRunsStatus
>;

export const ListDeploymentCheckRunsRunsConclusion = {
  Canceled: "canceled",
  Failed: "failed",
  Neutral: "neutral",
  Skipped: "skipped",
  Succeeded: "succeeded",
  Timeout: "timeout",
} as const;
export type ListDeploymentCheckRunsRunsConclusion = ClosedEnum<
  typeof ListDeploymentCheckRunsRunsConclusion
>;

export const ListDeploymentCheckRunsSourceSubKind = {
  VercelNativeCheck: "vercel-native-check",
} as const;
export type ListDeploymentCheckRunsSourceSubKind = ClosedEnum<
  typeof ListDeploymentCheckRunsSourceSubKind
>;

export const ListDeploymentCheckRunsSourceOrigin = {
  Api: "api",
  Platform: "platform",
} as const;
export type ListDeploymentCheckRunsSourceOrigin = ClosedEnum<
  typeof ListDeploymentCheckRunsSourceOrigin
>;

/**
 * Native Vercel checks — check definition and check run `source`.
 */
export type ListDeploymentCheckRunsSource4 = {
  subKind?: ListDeploymentCheckRunsSourceSubKind | undefined;
  origin?: ListDeploymentCheckRunsSourceOrigin | undefined;
};

export const ListDeploymentCheckRunsSourceChecksV2ResponseKind = {
  GitProvider: "git-provider",
} as const;
export type ListDeploymentCheckRunsSourceChecksV2ResponseKind = ClosedEnum<
  typeof ListDeploymentCheckRunsSourceChecksV2ResponseKind
>;

export const ListDeploymentCheckRunsSourceProvider = {
  Bitbucket: "bitbucket",
  Github: "github",
  Gitlab: "gitlab",
} as const;
export type ListDeploymentCheckRunsSourceProvider = ClosedEnum<
  typeof ListDeploymentCheckRunsSourceProvider
>;

export type ListDeploymentCheckRunsSource3 = {
  kind: ListDeploymentCheckRunsSourceChecksV2ResponseKind;
  provider: ListDeploymentCheckRunsSourceProvider;
  externalCheckName: string;
};

export const ListDeploymentCheckRunsSourceChecksV2Kind = {
  Webhook: "webhook",
} as const;
export type ListDeploymentCheckRunsSourceChecksV2Kind = ClosedEnum<
  typeof ListDeploymentCheckRunsSourceChecksV2Kind
>;

export type ListDeploymentCheckRunsSource2 = {
  kind: ListDeploymentCheckRunsSourceChecksV2Kind;
  webhookId?: string | undefined;
};

export const ListDeploymentCheckRunsSourceKind = {
  Integration: "integration",
} as const;
export type ListDeploymentCheckRunsSourceKind = ClosedEnum<
  typeof ListDeploymentCheckRunsSourceKind
>;

export type ListDeploymentCheckRunsSource1 = {
  kind: ListDeploymentCheckRunsSourceKind;
  integrationId: string;
  integrationConfigurationId: string;
  resourceId?: string | undefined;
  externalResourceId?: string | undefined;
};

export type ListDeploymentCheckRunsRunsSource =
  | ListDeploymentCheckRunsSource1
  | ListDeploymentCheckRunsSource3
  | ListDeploymentCheckRunsSource2
  | ListDeploymentCheckRunsSource4;

/**
 * Check run backed by a project-level `check` definition.
 */
export type ListDeploymentCheckRunsRuns1 = {
  id: string;
  name: string;
  ownerId: string;
  deploymentId: string;
  projectId?: string | undefined;
  requires?: ListDeploymentCheckRunsRunsRequires | undefined;
  blocks?: ListDeploymentCheckRunsRunsBlocks | undefined;
  targets?: Array<string> | undefined;
  status: ListDeploymentCheckRunsRunsStatus;
  conclusion?: ListDeploymentCheckRunsRunsConclusion | undefined;
  conclusionText?: string | undefined;
  externalId?: string | undefined;
  externalUrl?: string | undefined;
  output?: { [k: string]: any } | undefined;
  timeout: number;
  createdAt: number;
  updatedAt: number;
  completedAt?: number | undefined;
  checkId: string;
  source:
    | ListDeploymentCheckRunsSource1
    | ListDeploymentCheckRunsSource3
    | ListDeploymentCheckRunsSource2
    | ListDeploymentCheckRunsSource4;
};

export type ListDeploymentCheckRunsRuns =
  | ListDeploymentCheckRunsRuns1
  | ListDeploymentCheckRunsRuns2;

export type ListDeploymentCheckRunsResponseBody = {
  runs: Array<ListDeploymentCheckRunsRuns1 | ListDeploymentCheckRunsRuns2>;
};

/** @internal */
export type ListDeploymentCheckRunsRequest$Outbound = {
  deploymentId: string;
  teamId?: string | undefined;
  slug?: string | undefined;
};

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

export function listDeploymentCheckRunsRequestToJSON(
  listDeploymentCheckRunsRequest: ListDeploymentCheckRunsRequest,
): string {
  return JSON.stringify(
    ListDeploymentCheckRunsRequest$outboundSchema.parse(
      listDeploymentCheckRunsRequest,
    ),
  );
}

/** @internal */
export const ListDeploymentCheckRunsRunsChecksV2Requires$inboundSchema:
  z.ZodNativeEnum<typeof ListDeploymentCheckRunsRunsChecksV2Requires> = z
    .nativeEnum(ListDeploymentCheckRunsRunsChecksV2Requires);

/** @internal */
export const ListDeploymentCheckRunsRunsChecksV2Blocks$inboundSchema:
  z.ZodNativeEnum<typeof ListDeploymentCheckRunsRunsChecksV2Blocks> = z
    .nativeEnum(ListDeploymentCheckRunsRunsChecksV2Blocks);

/** @internal */
export const ListDeploymentCheckRunsRunsChecksV2Status$inboundSchema:
  z.ZodNativeEnum<typeof ListDeploymentCheckRunsRunsChecksV2Status> = z
    .nativeEnum(ListDeploymentCheckRunsRunsChecksV2Status);

/** @internal */
export const ListDeploymentCheckRunsRunsChecksV2Conclusion$inboundSchema:
  z.ZodNativeEnum<typeof ListDeploymentCheckRunsRunsChecksV2Conclusion> = z
    .nativeEnum(ListDeploymentCheckRunsRunsChecksV2Conclusion);

/** @internal */
export const ListDeploymentCheckRunsSourceChecksV2ResponseOrigin$inboundSchema:
  z.ZodNativeEnum<typeof ListDeploymentCheckRunsSourceChecksV2ResponseOrigin> =
    z.nativeEnum(ListDeploymentCheckRunsSourceChecksV2ResponseOrigin);

/** @internal */
export const ListDeploymentCheckRunsSourceChecksV22$inboundSchema: z.ZodType<
  ListDeploymentCheckRunsSourceChecksV22,
  z.ZodTypeDef,
  unknown
> = z.object({
  subKind: types.literal("vercel-ci-sentinel"),
  origin: ListDeploymentCheckRunsSourceChecksV2ResponseOrigin$inboundSchema,
});

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

/** @internal */
export const ListDeploymentCheckRunsSourceChecksV2Origin$inboundSchema:
  z.ZodNativeEnum<typeof ListDeploymentCheckRunsSourceChecksV2Origin> = z
    .nativeEnum(ListDeploymentCheckRunsSourceChecksV2Origin);

/** @internal */
export const ListDeploymentCheckRunsSourceChecksV21$inboundSchema: z.ZodType<
  ListDeploymentCheckRunsSourceChecksV21,
  z.ZodTypeDef,
  unknown
> = z.object({
  subKind: types.literal("vercel-ci"),
  origin: ListDeploymentCheckRunsSourceChecksV2Origin$inboundSchema,
  invocationId: types.string(),
  invocationAttempt: types.optional(types.number()),
  jobDefinitionId: types.string(),
});

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

/** @internal */
export const ListDeploymentCheckRunsRunsChecksV2Source$inboundSchema: z.ZodType<
  ListDeploymentCheckRunsRunsChecksV2Source,
  z.ZodTypeDef,
  unknown
> = z.union([
  z.lazy(() => ListDeploymentCheckRunsSourceChecksV21$inboundSchema),
  z.lazy(() => ListDeploymentCheckRunsSourceChecksV22$inboundSchema),
]);

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

/** @internal */
export const ListDeploymentCheckRunsRuns2$inboundSchema: z.ZodType<
  ListDeploymentCheckRunsRuns2,
  z.ZodTypeDef,
  unknown
> = z.object({
  id: types.string(),
  name: types.string(),
  ownerId: types.string(),
  deploymentId: types.string(),
  projectId: types.optional(types.string()),
  requires: types.optional(
    ListDeploymentCheckRunsRunsChecksV2Requires$inboundSchema,
  ),
  blocks: types.optional(
    ListDeploymentCheckRunsRunsChecksV2Blocks$inboundSchema,
  ),
  targets: types.optional(z.array(types.string())),
  status: ListDeploymentCheckRunsRunsChecksV2Status$inboundSchema,
  conclusion: types.optional(
    ListDeploymentCheckRunsRunsChecksV2Conclusion$inboundSchema,
  ),
  conclusionText: types.optional(types.string()),
  externalId: types.optional(types.string()),
  externalUrl: types.optional(types.string()),
  output: types.optional(z.record(z.any())),
  timeout: types.number(),
  createdAt: types.number(),
  updatedAt: types.number(),
  completedAt: types.optional(types.number()),
  source: z.union([
    z.lazy(() => ListDeploymentCheckRunsSourceChecksV21$inboundSchema),
    z.lazy(() => ListDeploymentCheckRunsSourceChecksV22$inboundSchema),
  ]),
});

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

/** @internal */
export const ListDeploymentCheckRunsRunsRequires$inboundSchema: z.ZodNativeEnum<
  typeof ListDeploymentCheckRunsRunsRequires
> = z.nativeEnum(ListDeploymentCheckRunsRunsRequires);

/** @internal */
export const ListDeploymentCheckRunsRunsBlocks$inboundSchema: z.ZodNativeEnum<
  typeof ListDeploymentCheckRunsRunsBlocks
> = z.nativeEnum(ListDeploymentCheckRunsRunsBlocks);

/** @internal */
export const ListDeploymentCheckRunsRunsStatus$inboundSchema: z.ZodNativeEnum<
  typeof ListDeploymentCheckRunsRunsStatus
> = z.nativeEnum(ListDeploymentCheckRunsRunsStatus);

/** @internal */
export const ListDeploymentCheckRunsRunsConclusion$inboundSchema:
  z.ZodNativeEnum<typeof ListDeploymentCheckRunsRunsConclusion> = z.nativeEnum(
    ListDeploymentCheckRunsRunsConclusion,
  );

/** @internal */
export const ListDeploymentCheckRunsSourceSubKind$inboundSchema:
  z.ZodNativeEnum<typeof ListDeploymentCheckRunsSourceSubKind> = z.nativeEnum(
    ListDeploymentCheckRunsSourceSubKind,
  );

/** @internal */
export const ListDeploymentCheckRunsSourceOrigin$inboundSchema: z.ZodNativeEnum<
  typeof ListDeploymentCheckRunsSourceOrigin
> = z.nativeEnum(ListDeploymentCheckRunsSourceOrigin);

/** @internal */
export const ListDeploymentCheckRunsSource4$inboundSchema: z.ZodType<
  ListDeploymentCheckRunsSource4,
  z.ZodTypeDef,
  unknown
> = z.object({
  subKind: types.optional(ListDeploymentCheckRunsSourceSubKind$inboundSchema),
  origin: types.optional(ListDeploymentCheckRunsSourceOrigin$inboundSchema),
});

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

/** @internal */
export const ListDeploymentCheckRunsSourceChecksV2ResponseKind$inboundSchema:
  z.ZodNativeEnum<typeof ListDeploymentCheckRunsSourceChecksV2ResponseKind> = z
    .nativeEnum(ListDeploymentCheckRunsSourceChecksV2ResponseKind);

/** @internal */
export const ListDeploymentCheckRunsSourceProvider$inboundSchema:
  z.ZodNativeEnum<typeof ListDeploymentCheckRunsSourceProvider> = z.nativeEnum(
    ListDeploymentCheckRunsSourceProvider,
  );

/** @internal */
export const ListDeploymentCheckRunsSource3$inboundSchema: z.ZodType<
  ListDeploymentCheckRunsSource3,
  z.ZodTypeDef,
  unknown
> = z.object({
  kind: ListDeploymentCheckRunsSourceChecksV2ResponseKind$inboundSchema,
  provider: ListDeploymentCheckRunsSourceProvider$inboundSchema,
  externalCheckName: types.string(),
});

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

/** @internal */
export const ListDeploymentCheckRunsSourceChecksV2Kind$inboundSchema:
  z.ZodNativeEnum<typeof ListDeploymentCheckRunsSourceChecksV2Kind> = z
    .nativeEnum(ListDeploymentCheckRunsSourceChecksV2Kind);

/** @internal */
export const ListDeploymentCheckRunsSource2$inboundSchema: z.ZodType<
  ListDeploymentCheckRunsSource2,
  z.ZodTypeDef,
  unknown
> = z.object({
  kind: ListDeploymentCheckRunsSourceChecksV2Kind$inboundSchema,
  webhookId: types.optional(types.string()),
});

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

/** @internal */
export const ListDeploymentCheckRunsSourceKind$inboundSchema: z.ZodNativeEnum<
  typeof ListDeploymentCheckRunsSourceKind
> = z.nativeEnum(ListDeploymentCheckRunsSourceKind);

/** @internal */
export const ListDeploymentCheckRunsSource1$inboundSchema: z.ZodType<
  ListDeploymentCheckRunsSource1,
  z.ZodTypeDef,
  unknown
> = z.object({
  kind: ListDeploymentCheckRunsSourceKind$inboundSchema,
  integrationId: types.string(),
  integrationConfigurationId: types.string(),
  resourceId: types.optional(types.string()),
  externalResourceId: types.optional(types.string()),
});

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

/** @internal */
export const ListDeploymentCheckRunsRunsSource$inboundSchema: z.ZodType<
  ListDeploymentCheckRunsRunsSource,
  z.ZodTypeDef,
  unknown
> = smartUnion([
  z.lazy(() => ListDeploymentCheckRunsSource1$inboundSchema),
  z.lazy(() => ListDeploymentCheckRunsSource3$inboundSchema),
  z.lazy(() => ListDeploymentCheckRunsSource2$inboundSchema),
  z.lazy(() => ListDeploymentCheckRunsSource4$inboundSchema),
]);

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

/** @internal */
export const ListDeploymentCheckRunsRuns1$inboundSchema: z.ZodType<
  ListDeploymentCheckRunsRuns1,
  z.ZodTypeDef,
  unknown
> = z.object({
  id: types.string(),
  name: types.string(),
  ownerId: types.string(),
  deploymentId: types.string(),
  projectId: types.optional(types.string()),
  requires: types.optional(ListDeploymentCheckRunsRunsRequires$inboundSchema),
  blocks: types.optional(ListDeploymentCheckRunsRunsBlocks$inboundSchema),
  targets: types.optional(z.array(types.string())),
  status: ListDeploymentCheckRunsRunsStatus$inboundSchema,
  conclusion: types.optional(
    ListDeploymentCheckRunsRunsConclusion$inboundSchema,
  ),
  conclusionText: types.optional(types.string()),
  externalId: types.optional(types.string()),
  externalUrl: types.optional(types.string()),
  output: types.optional(z.record(z.any())),
  timeout: types.number(),
  createdAt: types.number(),
  updatedAt: types.number(),
  completedAt: types.optional(types.number()),
  checkId: types.string(),
  source: smartUnion([
    z.lazy(() => ListDeploymentCheckRunsSource1$inboundSchema),
    z.lazy(() => ListDeploymentCheckRunsSource3$inboundSchema),
    z.lazy(() => ListDeploymentCheckRunsSource2$inboundSchema),
    z.lazy(() => ListDeploymentCheckRunsSource4$inboundSchema),
  ]),
});

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

/** @internal */
export const ListDeploymentCheckRunsRuns$inboundSchema: z.ZodType<
  ListDeploymentCheckRunsRuns,
  z.ZodTypeDef,
  unknown
> = smartUnion([
  z.lazy(() => ListDeploymentCheckRunsRuns1$inboundSchema),
  z.lazy(() => ListDeploymentCheckRunsRuns2$inboundSchema),
]);

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

/** @internal */
export const ListDeploymentCheckRunsResponseBody$inboundSchema: z.ZodType<
  ListDeploymentCheckRunsResponseBody,
  z.ZodTypeDef,
  unknown
> = z.object({
  runs: z.array(
    smartUnion([
      z.lazy(() => ListDeploymentCheckRunsRuns1$inboundSchema),
      z.lazy(() => ListDeploymentCheckRunsRuns2$inboundSchema),
    ]),
  ),
});

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