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

import * as z from "zod/v3";
import { remap as remap$ } from "../lib/primitives.js";
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 GetDeploymentRequest = {
  /**
   * The unique identifier or hostname of the deployment.
   */
  idOrUrl: string;
  /**
   * When `true`, the response includes the `gitSource` object with the commit SHA, branch name, and connected repository metadata. Defaults to `false`.
   */
  withGitRepoInfo?: string | undefined;
  /**
   * 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;
};

/**
 * Principal type of the deployment creator.
 */
export const GetDeploymentResponseBodyDeploymentsResponseType = {
  App: "app",
  Integration: "integration",
  System: "system",
  User: "user",
} as const;
/**
 * Principal type of the deployment creator.
 */
export type GetDeploymentResponseBodyDeploymentsResponseType = ClosedEnum<
  typeof GetDeploymentResponseBodyDeploymentsResponseType
>;

/**
 * Information about the deployment creator
 */
export type ResponseBodyCreator = {
  /**
   * Stable creator id across principal types (user id, app id, integration configuration id, or `system`).
   */
  uid: string;
  /**
   * Principal type of the deployment creator.
   */
  type?: GetDeploymentResponseBodyDeploymentsResponseType | undefined;
  /**
   * The username of the user that created the deployment
   */
  username?: string | undefined;
  /**
   * The avatar of the user that created the deployment
   */
  avatar?: string | undefined;
};

export const GetDeploymentResponseBodyDeploymentsResponse200ReadyState = {
  Building: "BUILDING",
  Error: "ERROR",
  Initializing: "INITIALIZING",
  Ready: "READY",
} as const;
export type GetDeploymentResponseBodyDeploymentsResponse200ReadyState =
  ClosedEnum<typeof GetDeploymentResponseBodyDeploymentsResponse200ReadyState>;

export type GetDeploymentResponseBodyOutput = {
  path: string;
  functionName: string;
};

/**
 * A partial representation of a Build used by the deployment endpoint.
 */
export type ResponseBodyLambdas = {
  id: string;
  readyState?:
    | GetDeploymentResponseBodyDeploymentsResponse200ReadyState
    | undefined;
  createdAt?: number | undefined;
  entrypoint?: string | null | undefined;
  readyStateAt?: number | undefined;
  output: Array<GetDeploymentResponseBodyOutput>;
};

export const GetDeploymentResponseBodyDeploymentsStatus = {
  Blocked: "BLOCKED",
  Building: "BUILDING",
  Canceled: "CANCELED",
  Error: "ERROR",
  Initializing: "INITIALIZING",
  Queued: "QUEUED",
  Ready: "READY",
} as const;
export type GetDeploymentResponseBodyDeploymentsStatus = ClosedEnum<
  typeof GetDeploymentResponseBodyDeploymentsStatus
>;

/**
 * The team that owns the deployment if any
 */
export type ResponseBodyTeam = {
  id: string;
  name: string;
  slug: string;
  avatar?: string | undefined;
};

/**
 * If the deployment was created using a Custom Environment, then this property contains information regarding the environment used.
 */
export type GetDeploymentCustomEnvironment2 = {
  id: string;
};

/**
 * The type of environment (production, preview, or development)
 */
export const GetDeploymentCustomEnvironmentType = {
  Development: "development",
  Preview: "preview",
  Production: "production",
} as const;
/**
 * The type of environment (production, preview, or development)
 */
export type GetDeploymentCustomEnvironmentType = ClosedEnum<
  typeof GetDeploymentCustomEnvironmentType
>;

/**
 * The type of matching to perform
 */
export const GetDeploymentCustomEnvironmentDeploymentsResponseType = {
  EndsWith: "endsWith",
  Equals: "equals",
  StartsWith: "startsWith",
} as const;
/**
 * The type of matching to perform
 */
export type GetDeploymentCustomEnvironmentDeploymentsResponseType = ClosedEnum<
  typeof GetDeploymentCustomEnvironmentDeploymentsResponseType
>;

/**
 * Configuration for matching git branches to this environment
 */
export type GetDeploymentCustomEnvironmentDeploymentsBranchMatcher = {
  /**
   * The type of matching to perform
   */
  type: GetDeploymentCustomEnvironmentDeploymentsResponseType;
  /**
   * The pattern to match against branch names
   */
  pattern: string;
};

/**
 * A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.
 */
export type GetDeploymentCustomEnvironmentDeploymentsVerification = {
  type: string;
  domain: string;
  value: string;
  reason: string;
};

/**
 * List of domains associated with this environment
 */
export type GetDeploymentCustomEnvironmentDeploymentsDomains = {
  name: string;
  apexName: string;
  projectId: string;
  redirect?: string | null | undefined;
  redirectStatusCode?: number | null | undefined;
  gitBranch?: string | null | undefined;
  customEnvironmentId?: string | null | undefined;
  updatedAt?: number | undefined;
  createdAt?: number | undefined;
  /**
   * `true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.
   */
  verified: boolean;
  /**
   * A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.
   */
  verification?:
    | Array<GetDeploymentCustomEnvironmentDeploymentsVerification>
    | undefined;
};

/**
 * If the deployment was created using a Custom Environment, then this property contains information regarding the environment used.
 */
export type GetDeploymentCustomEnvironment1 = {
  /**
   * Unique identifier for the custom environment (format: env_*)
   */
  id: string;
  /**
   * URL-friendly name of the environment
   */
  slug: string;
  /**
   * The type of environment (production, preview, or development)
   */
  type: GetDeploymentCustomEnvironmentType;
  /**
   * Optional description of the environment's purpose
   */
  description?: string | undefined;
  /**
   * Configuration for matching git branches to this environment
   */
  branchMatcher?:
    | GetDeploymentCustomEnvironmentDeploymentsBranchMatcher
    | undefined;
  /**
   * List of domains associated with this environment
   */
  domains?: Array<GetDeploymentCustomEnvironmentDeploymentsDomains> | undefined;
  /**
   * List of aliases for the current deployment
   */
  currentDeploymentAliases?: Array<string> | undefined;
  /**
   * Timestamp when the environment was created
   */
  createdAt: number;
  /**
   * Timestamp when the environment was last updated
   */
  updatedAt: number;
};

export type GetDeploymentResponseBodyCustomEnvironment =
  | GetDeploymentCustomEnvironment1
  | GetDeploymentCustomEnvironment2;

export const ResponseBodyOomReport = {
  OutOfMemory: "out-of-memory",
} as const;
export type ResponseBodyOomReport = ClosedEnum<typeof ResponseBodyOomReport>;

/**
 * If defined, either `staging` if a staging alias in the format `<project>.<team>.now.sh` was assigned upon creation, or `production` if the aliases from `alias` were assigned. `null` value indicates the "preview" deployment.
 */
export const GetDeploymentResponseBodyTarget = {
  Production: "production",
  Staging: "staging",
} as const;
/**
 * If defined, either `staging` if a staging alias in the format `<project>.<team>.now.sh` was assigned upon creation, or `production` if the aliases from `alias` were assigned. `null` value indicates the "preview" deployment.
 */
export type GetDeploymentResponseBodyTarget = ClosedEnum<
  typeof GetDeploymentResponseBodyTarget
>;

/**
 * The state of the deployment depending on the process of deploying, or if it is ready or in an error state
 */
export const GetDeploymentResponseBodyReadyState = {
  Blocked: "BLOCKED",
  Building: "BUILDING",
  Canceled: "CANCELED",
  Error: "ERROR",
  Initializing: "INITIALIZING",
  Queued: "QUEUED",
  Ready: "READY",
} as const;
/**
 * The state of the deployment depending on the process of deploying, or if it is ready or in an error state
 */
export type GetDeploymentResponseBodyReadyState = ClosedEnum<
  typeof GetDeploymentResponseBodyReadyState
>;

/**
 * An object that will contain a `code` and a `message` when the aliasing fails, otherwise the value will be `null`
 */
export type GetDeploymentResponseBodyAliasError = {
  code: string;
  message: string;
};

export type GetDeploymentResponseBodyAliasWarning = {
  code: string;
  message: string;
  link?: string | undefined;
  action?: string | undefined;
};

export const GetDeploymentResponseBodyDeploymentsType = {
  Lambdas: "LAMBDAS",
} as const;
export type GetDeploymentResponseBodyDeploymentsType = ClosedEnum<
  typeof GetDeploymentResponseBodyDeploymentsType
>;

export const ResponseBodyChecksState = {
  Completed: "completed",
  Registered: "registered",
  Running: "running",
} as const;
export type ResponseBodyChecksState = ClosedEnum<
  typeof ResponseBodyChecksState
>;

export const ResponseBodyChecksConclusion = {
  Canceled: "canceled",
  Failed: "failed",
  Skipped: "skipped",
  Succeeded: "succeeded",
} as const;
export type ResponseBodyChecksConclusion = ClosedEnum<
  typeof ResponseBodyChecksConclusion
>;

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody319Type =
  {
    CursorOrigin: "cursor-origin",
  } as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody319Type =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody319Type
  >;

export type GetDeploymentGitSourceDeployments19 = {
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody319Type;
  ref: string;
  sha: string;
  repoId: string;
  owner: string;
  repo: string;
};

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody318Type =
  {
    Vercel: "vercel",
  } as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody318Type =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody318Type
  >;

export type GetDeploymentGitSourceDeployments18 = {
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody318Type;
  ref: string;
  sha: string;
  org: string;
  repo: string;
  repoPushedAt?: number | undefined;
};

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody317Type =
  {
    Bitbucket: "bitbucket",
  } as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody317Type =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody317Type
  >;

export type GetDeploymentGitSourceDeployments17 = {
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody317Type;
  ref: string;
  sha: string;
  owner?: string | undefined;
  slug?: string | undefined;
  workspaceUuid: string;
  repoUuid: string;
};

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody316Type =
  {
    Gitlab: "gitlab",
  } as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody316Type =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody316Type
  >;

export type GetDeploymentGitSourceDeployments16 = {
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody316Type;
  ref: string;
  sha: string;
  projectId: number;
};

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody315Type =
  {
    GithubLimited: "github-limited",
  } as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody315Type =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody315Type
  >;

export type GetDeploymentGitSourceDeployments15 = {
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody315Type;
  ref: string;
  sha: string;
  repoId: number;
  org?: string | undefined;
  repo?: string | undefined;
};

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody314Type =
  {
    GithubCustomHost: "github-custom-host",
  } as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody314Type =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody314Type
  >;

export type GetDeploymentGitSourceDeployments14 = {
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody314Type;
  host: string;
  ref: string;
  sha: string;
  repoId: number;
  org?: string | undefined;
  repo?: string | undefined;
};

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody313Type =
  {
    Github: "github",
  } as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody313Type =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody313Type
  >;

export type GetDeploymentGitSourceDeployments13 = {
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody313Type;
  ref: string;
  sha: string;
  repoId: number;
  org?: string | undefined;
  repo?: string | undefined;
};

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody312Type =
  {
    Custom: "custom",
  } as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody312Type =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody312Type
  >;

/**
 * Allows custom git sources (local folder mounted to the container) in test mode
 */
export type GetDeploymentGitSourceDeployments12 = {
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody312Type;
  ref: string;
  sha: string;
  gitUrl: string;
};

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody311Type =
  {
    CursorOrigin: "cursor-origin",
  } as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody311Type =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody311Type
  >;

export type GetDeploymentGitSourceDeployments11 = {
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody311Type;
  /**
   * Origin repository id.
   */
  repoId: string;
  /**
   * Owner (namespace) slug.
   */
  owner?: string | undefined;
  repo?: string | undefined;
  ref?: string | null | undefined;
  sha?: string | undefined;
  prId?: number | null | undefined;
};

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody310Type =
  {
    Vercel: "vercel",
  } as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody310Type =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody310Type
  >;

export type GetDeploymentGitSourceDeployments10 = {
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody310Type;
  org?: string | undefined;
  repo?: string | undefined;
  sha: string;
  repoPushedAt?: number | undefined;
  ref?: string | null | undefined;
  prId?: number | null | undefined;
};

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody39Type =
  {
    Bitbucket: "bitbucket",
  } as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody39Type =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody39Type
  >;

export type GetDeploymentGitSourceDeployments9 = {
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody39Type;
  owner: string;
  slug: string;
  ref?: string | null | undefined;
  sha?: string | undefined;
  prId?: number | null | undefined;
};

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody38Type =
  {
    Bitbucket: "bitbucket",
  } as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody38Type =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody38Type
  >;

export type GetDeploymentGitSourceDeployments8 = {
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody38Type;
  workspaceUuid?: string | undefined;
  repoUuid: string;
  ref?: string | null | undefined;
  sha?: string | undefined;
  prId?: number | null | undefined;
};

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody37Type =
  {
    Gitlab: "gitlab",
  } as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody37Type =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody37Type
  >;

export type GetDeploymentGitSourceDeploymentsProjectId = string | number;

export type GetDeploymentGitSourceDeployments7 = {
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody37Type;
  projectId: string | number;
  ref?: string | null | undefined;
  sha?: string | undefined;
  prId?: number | null | undefined;
};

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody36Type =
  {
    GithubLimited: "github-limited",
  } as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody36Type =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody36Type
  >;

export type GetDeploymentGitSourceDeployments6 = {
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody36Type;
  org: string;
  repo: string;
  ref?: string | null | undefined;
  sha?: string | undefined;
  prId?: number | null | undefined;
};

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody35Type =
  {
    GithubLimited: "github-limited",
  } as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody35Type =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody35Type
  >;

export type GetDeploymentGitSourceDeploymentsResponse200RepoId =
  | string
  | number;

export type GetDeploymentGitSourceDeployments5 = {
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody35Type;
  repoId: string | number;
  ref?: string | null | undefined;
  sha?: string | undefined;
  prId?: number | null | undefined;
};

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody34Type =
  {
    GithubCustomHost: "github-custom-host",
  } as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody34Type =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody34Type
  >;

export type GetDeploymentGitSource4 = {
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody34Type;
  host: string;
  org: string;
  repo: string;
  ref?: string | null | undefined;
  sha?: string | undefined;
  prId?: number | null | undefined;
};

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody33Type =
  {
    GithubCustomHost: "github-custom-host",
  } as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody33Type =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody33Type
  >;

export type GetDeploymentGitSourceDeploymentsResponseRepoId = string | number;

export type GetDeploymentGitSource3 = {
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody33Type;
  host: string;
  repoId: string | number;
  ref?: string | null | undefined;
  sha?: string | undefined;
  prId?: number | null | undefined;
};

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody32Type =
  {
    Github: "github",
  } as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody32Type =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody32Type
  >;

export type GetDeploymentGitSource2 = {
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody32Type;
  org: string;
  repo: string;
  ref?: string | null | undefined;
  sha?: string | undefined;
  prId?: number | null | undefined;
};

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody3Type =
  {
    Github: "github",
  } as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody3Type =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody3Type
  >;

export type GetDeploymentGitSourceDeploymentsRepoId = string | number;

export type GetDeploymentGitSource1 = {
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody3Type;
  repoId: string | number;
  ref?: string | null | undefined;
  sha?: string | undefined;
  prId?: number | null | undefined;
};

export type ResponseBodyGitSource =
  | GetDeploymentGitSourceDeployments19
  | GetDeploymentGitSourceDeployments14
  | GetDeploymentGitSourceDeployments17
  | GetDeploymentGitSourceDeployments18
  | GetDeploymentGitSource4
  | GetDeploymentGitSourceDeployments12
  | GetDeploymentGitSourceDeployments13
  | GetDeploymentGitSourceDeployments15
  | GetDeploymentGitSourceDeployments16
  | GetDeploymentGitSource2
  | GetDeploymentGitSource3
  | GetDeploymentGitSourceDeployments6
  | GetDeploymentGitSourceDeployments9
  | GetDeploymentGitSource1
  | GetDeploymentGitSourceDeployments5
  | GetDeploymentGitSourceDeployments7
  | GetDeploymentGitSourceDeployments8
  | GetDeploymentGitSourceDeployments10
  | GetDeploymentGitSourceDeployments11;

/**
 * Current provisioning state
 */
export const GetDeploymentResponseBodyDeploymentsState = {
  Complete: "COMPLETE",
  Pending: "PENDING",
  Timeout: "TIMEOUT",
} as const;
/**
 * Current provisioning state
 */
export type GetDeploymentResponseBodyDeploymentsState = ClosedEnum<
  typeof GetDeploymentResponseBodyDeploymentsState
>;

/**
 * Present when deployment was created with manual provisioning enabled, either explicitly or via the experimental BYOC git flow. The deployment stays in INITIALIZING until /continue is called.
 */
export type ResponseBodyManualProvisioning = {
  /**
   * Current provisioning state
   */
  state: GetDeploymentResponseBodyDeploymentsState;
  /**
   * Timestamp when manual provisioning completed
   */
  completedAt?: number | undefined;
};

/**
 * If set it overrides the `projectSettings.nodeVersion` for this deployment.
 */
export const ResponseBodyNodeVersion = {
  TenDotX: "10.x",
  TwelveDotX: "12.x",
  FourteenDotX: "14.x",
  SixteenDotX: "16.x",
  EighteenDotX: "18.x",
  TwentyDotX: "20.x",
  TwentyTwoDotX: "22.x",
  TwentyFourDotX: "24.x",
  EightDot10DotX: "8.10.x",
} as const;
/**
 * If set it overrides the `projectSettings.nodeVersion` for this deployment.
 */
export type ResponseBodyNodeVersion = ClosedEnum<
  typeof ResponseBodyNodeVersion
>;

/**
 * The public project information associated with the deployment.
 */
export type GetDeploymentResponseBodyProject = {
  id: string;
  name: string;
  framework?: string | null | undefined;
};

/**
 * Substate of deployment when readyState is 'READY' Tracks whether or not deployment has seen production traffic: - STAGED: never seen production traffic - ROLLING: in the process of having production traffic gradually transitioned. - PROMOTED: has seen production traffic
 */
export const ResponseBodyReadySubstate = {
  Promoted: "PROMOTED",
  Rolling: "ROLLING",
  Staged: "STAGED",
} as const;
/**
 * Substate of deployment when readyState is 'READY' Tracks whether or not deployment has seen production traffic: - STAGED: never seen production traffic - ROLLING: in the process of having production traffic gradually transitioned. - PROMOTED: has seen production traffic
 */
export type ResponseBodyReadySubstate = ClosedEnum<
  typeof ResponseBodyReadySubstate
>;

/**
 * Where was the deployment created from. Best-effort guess for metrics only — not authoritative; do not gate behavior on it.
 */
export const GetDeploymentResponseBodyDeploymentsSource = {
  ApiTriggerGitDeploy: "api-trigger-git-deploy",
  Cli: "cli",
  CloneRepo: "clone/repo",
  Drop: "drop",
  Git: "git",
  GitDeployHook: "git-deploy-hook",
  Import: "import",
  ImportRepo: "import/repo",
  Redeploy: "redeploy",
  V0Web: "v0-web",
} as const;
/**
 * Where was the deployment created from. Best-effort guess for metrics only — not authoritative; do not gate behavior on it.
 */
export type GetDeploymentResponseBodyDeploymentsSource = ClosedEnum<
  typeof GetDeploymentResponseBodyDeploymentsSource
>;

export type ResponseBodyOidcTokenClaims = {
  iss: string;
  sub: string;
  scope: string;
  aud: string;
  owner: string;
  ownerId: string;
  project: string;
  projectId: string;
  environment: string;
  customEnvironmentId?: string | undefined;
  mfeGroupIds?: Array<string> | undefined;
  plan?: string | undefined;
};

/**
 * Returns a reduced view of the deployment with public information only. Private fields are omitted when the requester is not the deployment owner.
 */
export type GetDeploymentResponseBody3 = {
  /**
   * A list of all the aliases (default aliases, staging aliases and production aliases) that were assigned upon deployment creation
   */
  alias?: Array<string> | undefined;
  /**
   * A boolean that will be true when the aliases from the alias property were assigned successfully
   */
  aliasAssigned: boolean;
  bootedAt: number;
  buildingAt: number;
  /**
   * Since April 2025 it necessary for On-Demand Concurrency Minutes calculation
   */
  buildContainerFinishedAt?: number | undefined;
  buildSkipped: boolean;
  /**
   * Information about the deployment creator
   */
  creator: ResponseBodyCreator;
  initReadyAt?: number | undefined;
  isFirstBranchDeployment?: boolean | undefined;
  lambdas?: Array<ResponseBodyLambdas> | undefined;
  /**
   * A boolean representing if the deployment is public or not. By default this is `false`
   */
  public: boolean;
  ready?: number | undefined;
  status: GetDeploymentResponseBodyDeploymentsStatus;
  /**
   * The team that owns the deployment if any
   */
  team?: ResponseBodyTeam | undefined;
  /**
   * An array of domains that were provided by the user when creating the Deployment.
   */
  userAliases?: Array<string> | undefined;
  /**
   * Whether or not preview comments are enabled for the deployment
   */
  previewCommentsEnabled?: boolean | undefined;
  ttyBuildLogs?: boolean | undefined;
  customEnvironment?:
    | GetDeploymentCustomEnvironment1
    | GetDeploymentCustomEnvironment2
    | undefined;
  oomReport?: ResponseBodyOomReport | undefined;
  readyStateReason?: string | undefined;
  /**
   * A string holding the unique ID of the deployment
   */
  id: string;
  /**
   * If defined, either `staging` if a staging alias in the format `<project>.<team>.now.sh` was assigned upon creation, or `production` if the aliases from `alias` were assigned. `null` value indicates the "preview" deployment.
   */
  target?: GetDeploymentResponseBodyTarget | null | undefined;
  /**
   * The state of the deployment depending on the process of deploying, or if it is ready or in an error state
   */
  readyState: GetDeploymentResponseBodyReadyState;
  /**
   * An object that will contain a `code` and a `message` when the aliasing fails, otherwise the value will be `null`
   */
  aliasError?: GetDeploymentResponseBodyAliasError | null | undefined;
  aliasWarning?: GetDeploymentResponseBodyAliasWarning | null | undefined;
  errorCode?: string | undefined;
  errorMessage?: string | null | undefined;
  /**
   * A number containing the date when the deployment was created in milliseconds
   */
  createdAt: number;
  /**
   * The name of the project associated with the deployment at the time that the deployment was created
   */
  name: string;
  type: GetDeploymentResponseBodyDeploymentsType;
  aliasFinal?: string | null | undefined;
  /**
   * applies to custom domains only, defaults to `true`
   */
  autoAssignCustomDomains?: boolean | undefined;
  automaticAliases?: Array<string> | undefined;
  buildErrorAt?: number | undefined;
  checksState?: ResponseBodyChecksState | undefined;
  checksConclusion?: ResponseBodyChecksConclusion | undefined;
  /**
   * A number containing the date when the deployment was deleted at milliseconds
   */
  deletedAt?: number | null | undefined;
  /**
   * Computed field that is only available for deployments with a microfrontend configuration.
   */
  defaultRoute?: string | undefined;
  canceledAt?: number | undefined;
  errorLink?: string | undefined;
  errorStep?: string | undefined;
  /**
   * Since November 2023 this field defines a set of regions that we will deploy the lambda to passively Lambdas will be deployed to these regions but only invoked if all of the primary `regions` are marked as out of service
   */
  passiveRegions?: Array<string> | undefined;
  gitSource?:
    | GetDeploymentGitSourceDeployments19
    | GetDeploymentGitSourceDeployments14
    | GetDeploymentGitSourceDeployments17
    | GetDeploymentGitSourceDeployments18
    | GetDeploymentGitSource4
    | GetDeploymentGitSourceDeployments12
    | GetDeploymentGitSourceDeployments13
    | GetDeploymentGitSourceDeployments15
    | GetDeploymentGitSourceDeployments16
    | GetDeploymentGitSource2
    | GetDeploymentGitSource3
    | GetDeploymentGitSourceDeployments6
    | GetDeploymentGitSourceDeployments9
    | GetDeploymentGitSource1
    | GetDeploymentGitSourceDeployments5
    | GetDeploymentGitSourceDeployments7
    | GetDeploymentGitSourceDeployments8
    | GetDeploymentGitSourceDeployments10
    | GetDeploymentGitSourceDeployments11
    | undefined;
  /**
   * Present when deployment was created with manual provisioning enabled, either explicitly or via the experimental BYOC git flow. The deployment stays in INITIALIZING until /continue is called.
   */
  manualProvisioning?: ResponseBodyManualProvisioning | undefined;
  meta: { [k: string]: string };
  originCacheRegion?: string | undefined;
  /**
   * If set it overrides the `projectSettings.nodeVersion` for this deployment.
   */
  nodeVersion?: ResponseBodyNodeVersion | undefined;
  /**
   * The public project information associated with the deployment.
   */
  project?: GetDeploymentResponseBodyProject | undefined;
  prebuilt?: boolean | undefined;
  /**
   * Substate of deployment when readyState is 'READY' Tracks whether or not deployment has seen production traffic: - STAGED: never seen production traffic - ROLLING: in the process of having production traffic gradually transitioned. - PROMOTED: has seen production traffic
   */
  readySubstate?: ResponseBodyReadySubstate | undefined;
  /**
   * The regions the deployment exists in
   */
  regions: Array<string>;
  /**
   * flag to indicate if the deployment was deleted by retention policy
   */
  softDeletedByRetention?: boolean | undefined;
  /**
   * Where was the deployment created from. Best-effort guess for metrics only — not authoritative; do not gate behavior on it.
   */
  source?: GetDeploymentResponseBodyDeploymentsSource | undefined;
  /**
   * A number containing the date when the deployment was undeleted at milliseconds
   */
  undeletedAt?: number | undefined;
  /**
   * A string with the unique URL of the deployment
   */
  url: string;
  /**
   * Since January 2025 User-configured deployment ID for skew protection with pre-built deployments. This is set when users configure a custom deploymentId in their next.config.js file. This allows Next.js to use skew protection even when deployments are pre-built outside of Vercel's build system.
   */
  userConfiguredDeploymentId?: string | undefined;
  /**
   * The platform version that was used to create the deployment.
   */
  version: number;
  oidcTokenClaims?: ResponseBodyOidcTokenClaims | undefined;
};

export type GetDeploymentResponseBodyAliasAssignedAt = number | boolean;

export type GetDeploymentResponseBodyBuild = {
  env: Array<string>;
};

export type GetDeploymentResponseBodyBuilds = {
  use: string;
  src?: string | undefined;
  config?: { [k: string]: any } | undefined;
};

/**
 * Machine type which was purchased/selected for this build. `basic` is the 2vCPU tier, recorded on the deployment so the build pipeline can detect a basic build without consulting the project.
 */
export const GetDeploymentResponseBodyPurchaseType = {
  Basic: "basic",
  Enhanced: "enhanced",
  Standard: "standard",
  Turbo: "turbo",
} as const;
/**
 * Machine type which was purchased/selected for this build. `basic` is the 2vCPU tier, recorded on the deployment so the build pipeline can detect a basic build without consulting the project.
 */
export type GetDeploymentResponseBodyPurchaseType = ClosedEnum<
  typeof GetDeploymentResponseBodyPurchaseType
>;

/**
 * The default plan type for the build machine — what the customer is *paying* for on their plan. For most customers, this is standard, but some customers have an entitlement for enhanced builds.
 */
export const GetDeploymentResponseBodyDefaultPurchaseType = {
  Basic: "basic",
  Enhanced: "enhanced",
  Standard: "standard",
} as const;
/**
 * The default plan type for the build machine — what the customer is *paying* for on their plan. For most customers, this is standard, but some customers have an entitlement for enhanced builds.
 */
export type GetDeploymentResponseBodyDefaultPurchaseType = ClosedEnum<
  typeof GetDeploymentResponseBodyDefaultPurchaseType
>;

/**
 * Whether the build ran on a fixed or elastic machine. Used to drive billing for the build.
 */
export const GetDeploymentResponseBodyMachineSelectionType = {
  Elastic: "elastic",
  Fixed: "fixed",
} as const;
/**
 * Whether the build ran on a fixed or elastic machine. Used to drive billing for the build.
 */
export type GetDeploymentResponseBodyMachineSelectionType = ClosedEnum<
  typeof GetDeploymentResponseBodyMachineSelectionType
>;

/**
 * The setting which selected the build machine when the deployment was created. Frozen here so later project or team changes do not rewrite its history.
 */
export const GetDeploymentResponseBodySelectionSource = {
  DeploymentOverride: "deployment-override",
  ElasticAlgorithm: "elastic-algorithm",
  PlanDefault: "plan-default",
  ProjectSetting: "project-setting",
  TeamEntitlement: "team-entitlement",
  TeamSetting: "team-setting",
} as const;
/**
 * The setting which selected the build machine when the deployment was created. Frozen here so later project or team changes do not rewrite its history.
 */
export type GetDeploymentResponseBodySelectionSource = ClosedEnum<
  typeof GetDeploymentResponseBodySelectionSource
>;

/**
 * Build machine configuration recorded for this deployment's build. See {@link DeploymentBuildMachine}. Distinct from the team/user `resourceConfig.buildMachine`, which only carries `default`.
 */
export type GetDeploymentResponseBodyBuildMachine = {
  /**
   * Machine type which was purchased/selected for this build. `basic` is the 2vCPU tier, recorded on the deployment so the build pipeline can detect a basic build without consulting the project.
   */
  purchaseType?: GetDeploymentResponseBodyPurchaseType | undefined;
  /**
   * The default plan type for the build machine — what the customer is *paying* for on their plan. For most customers, this is standard, but some customers have an entitlement for enhanced builds.
   */
  defaultPurchaseType?:
    | GetDeploymentResponseBodyDefaultPurchaseType
    | undefined;
  /**
   * Whether the build ran on a fixed or elastic machine. Used to drive billing for the build.
   */
  machineSelectionType?:
    | GetDeploymentResponseBodyMachineSelectionType
    | undefined;
  /**
   * The setting which selected the build machine when the deployment was created. Frozen here so later project or team changes do not rewrite its history.
   */
  selectionSource?: GetDeploymentResponseBodySelectionSource | undefined;
  /**
   * Number of cores the build machine ran with. Set at dispatch time once the build lands on a hive.
   */
  cores?: number | undefined;
  /**
   * Memory, in MiB, the build machine ran with. Set at dispatch time once the build lands on a hive.
   */
  memory?: number | undefined;
};

export type GetDeploymentResponseBodyResourceConfig = {
  /**
   * Build machine configuration recorded for this deployment's build. See {@link DeploymentBuildMachine}. Distinct from the team/user `resourceConfig.buildMachine`, which only carries `default`.
   */
  buildMachine?: GetDeploymentResponseBodyBuildMachine | undefined;
};

export const GetDeploymentResponseBodyDeploymentsNodeVersion = {
  TenDotX: "10.x",
  TwelveDotX: "12.x",
  FourteenDotX: "14.x",
  SixteenDotX: "16.x",
  EighteenDotX: "18.x",
  TwentyDotX: "20.x",
  TwentyTwoDotX: "22.x",
  TwentyFourDotX: "24.x",
  EightDot10DotX: "8.10.x",
} as const;
export type GetDeploymentResponseBodyDeploymentsNodeVersion = ClosedEnum<
  typeof GetDeploymentResponseBodyDeploymentsNodeVersion
>;

export const GetDeploymentResponseBodyFramework = {
  ActixWeb: "actix-web",
  Angular: "angular",
  Ash: "ash",
  Astro: "astro",
  Axum: "axum",
  Blitzjs: "blitzjs",
  Brunch: "brunch",
  Bun: "bun",
  Container: "container",
  CreateReactApp: "create-react-app",
  Django: "django",
  Docusaurus: "docusaurus",
  Docusaurus2: "docusaurus-2",
  Dojo: "dojo",
  Eleventy: "eleventy",
  Elysia: "elysia",
  Ember: "ember",
  Eve: "eve",
  Express: "express",
  FactoryEve: "factory-eve",
  Fastapi: "fastapi",
  Fasthtml: "fasthtml",
  Fastify: "fastify",
  Flask: "flask",
  Gatsby: "gatsby",
  Go: "go",
  Gridsome: "gridsome",
  H3: "h3",
  Hexo: "hexo",
  Hono: "hono",
  Hugo: "hugo",
  Hydrogen: "hydrogen",
  IonicAngular: "ionic-angular",
  IonicReact: "ionic-react",
  Jekyll: "jekyll",
  Koa: "koa",
  Mastra: "mastra",
  Middleman: "middleman",
  Nestjs: "nestjs",
  Nextjs: "nextjs",
  Nitro: "nitro",
  Node: "node",
  Nuxtjs: "nuxtjs",
  Parcel: "parcel",
  Polymer: "polymer",
  Preact: "preact",
  Python: "python",
  ReactRouter: "react-router",
  Redwoodjs: "redwoodjs",
  Remix: "remix",
  Ruby: "ruby",
  Rust: "rust",
  Saber: "saber",
  Sanity: "sanity",
  SanityV2: "sanity-v2",
  Sapper: "sapper",
  Scully: "scully",
  Services: "services",
  Solidstart: "solidstart",
  Solidstart1: "solidstart-1",
  Stencil: "stencil",
  Storybook: "storybook",
  Svelte: "svelte",
  Sveltekit: "sveltekit",
  Sveltekit1: "sveltekit-1",
  TanstackStart: "tanstack-start",
  TanstackStartLovable: "tanstack-start-lovable",
  Umijs: "umijs",
  Vite: "vite",
  Vitepress: "vitepress",
  Vue: "vue",
  Vuepress: "vuepress",
  Xmcp: "xmcp",
  Zola: "zola",
} as const;
export type GetDeploymentResponseBodyFramework = ClosedEnum<
  typeof GetDeploymentResponseBodyFramework
>;

export type GetDeploymentResponseBodySpeedInsights = {
  id: string;
  enabledAt?: number | undefined;
  disabledAt?: number | undefined;
  canceledAt?: number | undefined;
  hasData?: boolean | undefined;
  /**
   * When the first free (not Speed Insights Plus) production data point was observed, in ms. Set once by subscriber-analytics-events; projects that already had data before this field shipped get it backfilled on their next batch, so it reads "first free data point observed", not necessarily "first ever".
   */
  dataReceivedAt?: number | undefined;
  paidAt?: number | undefined;
};

export type GetDeploymentResponseBodyWebAnalytics = {
  id: string;
  disabledAt?: number | undefined;
  canceledAt?: number | undefined;
  enabledAt?: number | undefined;
  hasData?: true | undefined;
};

export type ResponseBodyProjectSettings = {
  nodeVersion?: GetDeploymentResponseBodyDeploymentsNodeVersion | undefined;
  buildCommand?: string | null | undefined;
  devCommand?: string | null | undefined;
  framework?: GetDeploymentResponseBodyFramework | null | undefined;
  commandForIgnoringBuildStep?: string | null | undefined;
  installCommand?: string | null | undefined;
  outputDirectory?: string | null | undefined;
  speedInsights?: GetDeploymentResponseBodySpeedInsights | undefined;
  webAnalytics?: GetDeploymentResponseBodyWebAnalytics | undefined;
};

export const GetDeploymentResponseBodyDeploymentsResponseStatus = {
  Error: "error",
  Pending: "pending",
  Ready: "ready",
  Skipped: "skipped",
  Timeout: "timeout",
} as const;
export type GetDeploymentResponseBodyDeploymentsResponseStatus = ClosedEnum<
  typeof GetDeploymentResponseBodyDeploymentsResponseStatus
>;

export type GetDeploymentResponseBodyIntegrations = {
  status: GetDeploymentResponseBodyDeploymentsResponseStatus;
  startedAt: number;
  claimedAt?: number | undefined;
  completedAt?: number | undefined;
  skippedAt?: number | undefined;
  skippedBy?: string | undefined;
};

/**
 * Must be `http` or `https`.
 */
export const GetDeploymentResponseBodyProtocol = {
  Http: "http",
  Https: "https",
} as const;
/**
 * Must be `http` or `https`.
 */
export type GetDeploymentResponseBodyProtocol = ClosedEnum<
  typeof GetDeploymentResponseBodyProtocol
>;

export type GetDeploymentResponseBodyRemotePatterns = {
  /**
   * Must be `http` or `https`.
   */
  protocol?: GetDeploymentResponseBodyProtocol | undefined;
  /**
   * Can be literal or wildcard. Single `*` matches a single subdomain. Double `**` matches any number of subdomains.
   */
  hostname: string;
  /**
   * Can be literal port such as `8080` or empty string meaning no port.
   */
  port?: string | undefined;
  /**
   * Can be literal or wildcard. Single `*` matches a single path segment. Double `**` matches any number of path segments.
   */
  pathname?: string | undefined;
  /**
   * Can be literal query string such as `?v=1` or empty string meaning no query string.
   */
  search?: string | undefined;
};

export type GetDeploymentResponseBodyLocalPatterns = {
  /**
   * Can be literal or wildcard. Single `*` matches a single path segment. Double `**` matches any number of path segments.
   */
  pathname?: string | undefined;
  /**
   * Can be literal query string such as `?v=1` or empty string meaning no query string.
   */
  search?: string | undefined;
};

export const GetDeploymentResponseBodyFormats = {
  ImageAvif: "image/avif",
  ImageWebp: "image/webp",
} as const;
export type GetDeploymentResponseBodyFormats = ClosedEnum<
  typeof GetDeploymentResponseBodyFormats
>;

export const GetDeploymentResponseBodyContentDispositionType = {
  Attachment: "attachment",
  Inline: "inline",
} as const;
export type GetDeploymentResponseBodyContentDispositionType = ClosedEnum<
  typeof GetDeploymentResponseBodyContentDispositionType
>;

export type GetDeploymentResponseBodyImages = {
  sizes?: Array<number> | undefined;
  qualities?: Array<number> | undefined;
  domains?: Array<string> | undefined;
  remotePatterns?: Array<GetDeploymentResponseBodyRemotePatterns> | undefined;
  localPatterns?: Array<GetDeploymentResponseBodyLocalPatterns> | undefined;
  minimumCacheTTL?: number | undefined;
  formats?: Array<GetDeploymentResponseBodyFormats> | undefined;
  dangerouslyAllowSVG?: boolean | undefined;
  contentSecurityPolicy?: string | undefined;
  contentDispositionType?:
    | GetDeploymentResponseBodyContentDispositionType
    | undefined;
};

/**
 * Principal type of the deployment creator.
 */
export const GetDeploymentResponseBodyDeploymentsResponse200Type = {
  App: "app",
  Integration: "integration",
  System: "system",
  User: "user",
} as const;
/**
 * Principal type of the deployment creator.
 */
export type GetDeploymentResponseBodyDeploymentsResponse200Type = ClosedEnum<
  typeof GetDeploymentResponseBodyDeploymentsResponse200Type
>;

/**
 * Information about the deployment creator
 */
export type GetDeploymentResponseBodyCreator = {
  /**
   * Stable creator id across principal types (user id, app id, integration configuration id, or `system`).
   */
  uid: string;
  /**
   * Principal type of the deployment creator.
   */
  type?: GetDeploymentResponseBodyDeploymentsResponse200Type | undefined;
  /**
   * The username of the user that created the deployment
   */
  username?: string | undefined;
  /**
   * The avatar of the user that created the deployment
   */
  avatar?: string | undefined;
};

export const GetDeploymentResponseBodyDeploymentsResponseReadyState = {
  Building: "BUILDING",
  Error: "ERROR",
  Initializing: "INITIALIZING",
  Ready: "READY",
} as const;
export type GetDeploymentResponseBodyDeploymentsResponseReadyState = ClosedEnum<
  typeof GetDeploymentResponseBodyDeploymentsResponseReadyState
>;

export type ResponseBodyOutput = {
  path: string;
  functionName: string;
};

/**
 * A partial representation of a Build used by the deployment endpoint.
 */
export type GetDeploymentResponseBodyLambdas = {
  id: string;
  readyState?:
    | GetDeploymentResponseBodyDeploymentsResponseReadyState
    | undefined;
  createdAt?: number | undefined;
  entrypoint?: string | null | undefined;
  readyStateAt?: number | undefined;
  output: Array<ResponseBodyOutput>;
};

export const GetDeploymentResponseBodyStatus = {
  Blocked: "BLOCKED",
  Building: "BUILDING",
  Canceled: "CANCELED",
  Error: "ERROR",
  Initializing: "INITIALIZING",
  Queued: "QUEUED",
  Ready: "READY",
} as const;
export type GetDeploymentResponseBodyStatus = ClosedEnum<
  typeof GetDeploymentResponseBodyStatus
>;

/**
 * The team that owns the deployment if any
 */
export type GetDeploymentResponseBodyTeam = {
  id: string;
  name: string;
  slug: string;
  avatar?: string | undefined;
};

/**
 * If the deployment was created using a Custom Environment, then this property contains information regarding the environment used.
 */
export type GetDeploymentCustomEnvironmentDeployments2 = {
  id: string;
};

/**
 * The type of environment (production, preview, or development)
 */
export const GetDeploymentCustomEnvironmentDeploymentsType = {
  Development: "development",
  Preview: "preview",
  Production: "production",
} as const;
/**
 * The type of environment (production, preview, or development)
 */
export type GetDeploymentCustomEnvironmentDeploymentsType = ClosedEnum<
  typeof GetDeploymentCustomEnvironmentDeploymentsType
>;

/**
 * The type of matching to perform
 */
export const GetDeploymentCustomEnvironmentDeploymentsResponse200Type = {
  EndsWith: "endsWith",
  Equals: "equals",
  StartsWith: "startsWith",
} as const;
/**
 * The type of matching to perform
 */
export type GetDeploymentCustomEnvironmentDeploymentsResponse200Type =
  ClosedEnum<typeof GetDeploymentCustomEnvironmentDeploymentsResponse200Type>;

/**
 * Configuration for matching git branches to this environment
 */
export type GetDeploymentCustomEnvironmentBranchMatcher = {
  /**
   * The type of matching to perform
   */
  type: GetDeploymentCustomEnvironmentDeploymentsResponse200Type;
  /**
   * The pattern to match against branch names
   */
  pattern: string;
};

/**
 * A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.
 */
export type GetDeploymentCustomEnvironmentVerification = {
  type: string;
  domain: string;
  value: string;
  reason: string;
};

/**
 * List of domains associated with this environment
 */
export type GetDeploymentCustomEnvironmentDomains = {
  name: string;
  apexName: string;
  projectId: string;
  redirect?: string | null | undefined;
  redirectStatusCode?: number | null | undefined;
  gitBranch?: string | null | undefined;
  customEnvironmentId?: string | null | undefined;
  updatedAt?: number | undefined;
  createdAt?: number | undefined;
  /**
   * `true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.
   */
  verified: boolean;
  /**
   * A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.
   */
  verification?: Array<GetDeploymentCustomEnvironmentVerification> | undefined;
};

/**
 * If the deployment was created using a Custom Environment, then this property contains information regarding the environment used.
 */
export type GetDeploymentCustomEnvironmentDeployments1 = {
  /**
   * Unique identifier for the custom environment (format: env_*)
   */
  id: string;
  /**
   * URL-friendly name of the environment
   */
  slug: string;
  /**
   * The type of environment (production, preview, or development)
   */
  type: GetDeploymentCustomEnvironmentDeploymentsType;
  /**
   * Optional description of the environment's purpose
   */
  description?: string | undefined;
  /**
   * Configuration for matching git branches to this environment
   */
  branchMatcher?: GetDeploymentCustomEnvironmentBranchMatcher | undefined;
  /**
   * List of domains associated with this environment
   */
  domains?: Array<GetDeploymentCustomEnvironmentDomains> | undefined;
  /**
   * List of aliases for the current deployment
   */
  currentDeploymentAliases?: Array<string> | undefined;
  /**
   * Timestamp when the environment was created
   */
  createdAt: number;
  /**
   * Timestamp when the environment was last updated
   */
  updatedAt: number;
};

export type ResponseBodyCustomEnvironment =
  | GetDeploymentCustomEnvironmentDeployments1
  | GetDeploymentCustomEnvironmentDeployments2;

export const GetDeploymentResponseBodyOomReport = {
  OutOfMemory: "out-of-memory",
} as const;
export type GetDeploymentResponseBodyOomReport = ClosedEnum<
  typeof GetDeploymentResponseBodyOomReport
>;

/**
 * If defined, either `staging` if a staging alias in the format `<project>.<team>.now.sh` was assigned upon creation, or `production` if the aliases from `alias` were assigned. `null` value indicates the "preview" deployment.
 */
export const ResponseBodyTarget = {
  Production: "production",
  Staging: "staging",
} as const;
/**
 * If defined, either `staging` if a staging alias in the format `<project>.<team>.now.sh` was assigned upon creation, or `production` if the aliases from `alias` were assigned. `null` value indicates the "preview" deployment.
 */
export type ResponseBodyTarget = ClosedEnum<typeof ResponseBodyTarget>;

/**
 * The state of the deployment depending on the process of deploying, or if it is ready or in an error state
 */
export const ResponseBodyReadyState = {
  Blocked: "BLOCKED",
  Building: "BUILDING",
  Canceled: "CANCELED",
  Error: "ERROR",
  Initializing: "INITIALIZING",
  Queued: "QUEUED",
  Ready: "READY",
} as const;
/**
 * The state of the deployment depending on the process of deploying, or if it is ready or in an error state
 */
export type ResponseBodyReadyState = ClosedEnum<typeof ResponseBodyReadyState>;

/**
 * An object that will contain a `code` and a `message` when the aliasing fails, otherwise the value will be `null`
 */
export type ResponseBodyAliasError = {
  code: string;
  message: string;
};

export type ResponseBodyAliasWarning = {
  code: string;
  message: string;
  link?: string | undefined;
  action?: string | undefined;
};

export const GetDeploymentResponseBodyType = {
  Lambdas: "LAMBDAS",
} as const;
export type GetDeploymentResponseBodyType = ClosedEnum<
  typeof GetDeploymentResponseBodyType
>;

export const GetDeploymentResponseBodyChecksState = {
  Completed: "completed",
  Registered: "registered",
  Running: "running",
} as const;
export type GetDeploymentResponseBodyChecksState = ClosedEnum<
  typeof GetDeploymentResponseBodyChecksState
>;

export const GetDeploymentResponseBodyChecksConclusion = {
  Canceled: "canceled",
  Failed: "failed",
  Skipped: "skipped",
  Succeeded: "succeeded",
} as const;
export type GetDeploymentResponseBodyChecksConclusion = ClosedEnum<
  typeof GetDeploymentResponseBodyChecksConclusion
>;

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody219Type =
  {
    CursorOrigin: "cursor-origin",
  } as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody219Type =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody219Type
  >;

export type GetDeploymentGitSource19 = {
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody219Type;
  ref: string;
  sha: string;
  repoId: string;
  owner: string;
  repo: string;
};

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody218Type =
  {
    Vercel: "vercel",
  } as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody218Type =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody218Type
  >;

export type GetDeploymentGitSource18 = {
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody218Type;
  ref: string;
  sha: string;
  org: string;
  repo: string;
  repoPushedAt?: number | undefined;
};

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody217Type =
  {
    Bitbucket: "bitbucket",
  } as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody217Type =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody217Type
  >;

export type GetDeploymentGitSource17 = {
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody217Type;
  ref: string;
  sha: string;
  owner?: string | undefined;
  slug?: string | undefined;
  workspaceUuid: string;
  repoUuid: string;
};

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody216Type =
  {
    Gitlab: "gitlab",
  } as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody216Type =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody216Type
  >;

export type GetDeploymentGitSource16 = {
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody216Type;
  ref: string;
  sha: string;
  projectId: number;
};

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody215Type =
  {
    GithubLimited: "github-limited",
  } as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody215Type =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody215Type
  >;

export type GetDeploymentGitSource15 = {
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody215Type;
  ref: string;
  sha: string;
  repoId: number;
  org?: string | undefined;
  repo?: string | undefined;
};

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody214Type =
  {
    GithubCustomHost: "github-custom-host",
  } as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody214Type =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody214Type
  >;

export type GetDeploymentGitSource14 = {
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody214Type;
  host: string;
  ref: string;
  sha: string;
  repoId: number;
  org?: string | undefined;
  repo?: string | undefined;
};

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody213Type =
  {
    Github: "github",
  } as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody213Type =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody213Type
  >;

export type GetDeploymentGitSource13 = {
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody213Type;
  ref: string;
  sha: string;
  repoId: number;
  org?: string | undefined;
  repo?: string | undefined;
};

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody212Type =
  {
    Custom: "custom",
  } as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody212Type =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody212Type
  >;

/**
 * Allows custom git sources (local folder mounted to the container) in test mode
 */
export type GetDeploymentGitSource12 = {
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody212Type;
  ref: string;
  sha: string;
  gitUrl: string;
};

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody211Type =
  {
    CursorOrigin: "cursor-origin",
  } as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody211Type =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody211Type
  >;

export type GetDeploymentGitSource11 = {
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody211Type;
  /**
   * Origin repository id.
   */
  repoId: string;
  /**
   * Owner (namespace) slug.
   */
  owner?: string | undefined;
  repo?: string | undefined;
  ref?: string | null | undefined;
  sha?: string | undefined;
  prId?: number | null | undefined;
};

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody210Type =
  {
    Vercel: "vercel",
  } as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody210Type =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody210Type
  >;

export type GetDeploymentGitSource10 = {
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody210Type;
  org?: string | undefined;
  repo?: string | undefined;
  sha: string;
  repoPushedAt?: number | undefined;
  ref?: string | null | undefined;
  prId?: number | null | undefined;
};

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody29Type =
  {
    Bitbucket: "bitbucket",
  } as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody29Type =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody29Type
  >;

export type GetDeploymentGitSource9 = {
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody29Type;
  owner: string;
  slug: string;
  ref?: string | null | undefined;
  sha?: string | undefined;
  prId?: number | null | undefined;
};

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody2Type =
  {
    Bitbucket: "bitbucket",
  } as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody2Type =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody2Type
  >;

export type GetDeploymentGitSource8 = {
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody2Type;
  workspaceUuid?: string | undefined;
  repoUuid: string;
  ref?: string | null | undefined;
  sha?: string | undefined;
  prId?: number | null | undefined;
};

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBodyType =
  {
    Gitlab: "gitlab",
  } as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBodyType =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBodyType
  >;

export type GetDeploymentGitSourceProjectId = string | number;

export type GetDeploymentGitSource7 = {
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBodyType;
  projectId: string | number;
  ref?: string | null | undefined;
  sha?: string | undefined;
  prId?: number | null | undefined;
};

export const GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONType = {
  GithubLimited: "github-limited",
} as const;
export type GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONType =
  ClosedEnum<
    typeof GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONType
  >;

export type GetDeploymentGitSource6 = {
  type: GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONType;
  org: string;
  repo: string;
  ref?: string | null | undefined;
  sha?: string | undefined;
  prId?: number | null | undefined;
};

export const GetDeploymentGitSourceDeploymentsResponse200Type = {
  GithubLimited: "github-limited",
} as const;
export type GetDeploymentGitSourceDeploymentsResponse200Type = ClosedEnum<
  typeof GetDeploymentGitSourceDeploymentsResponse200Type
>;

/** @internal */
export type GetDeploymentRequest$Outbound = {
  idOrUrl: string;
  withGitRepoInfo?: string | undefined;
  teamId?: string | undefined;
  slug?: string | undefined;
};

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

export function getDeploymentRequestToJSON(
  getDeploymentRequest: GetDeploymentRequest,
): string {
  return JSON.stringify(
    GetDeploymentRequest$outboundSchema.parse(getDeploymentRequest),
  );
}

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

/** @internal */
export const ResponseBodyCreator$inboundSchema: z.ZodType<
  ResponseBodyCreator,
  z.ZodTypeDef,
  unknown
> = z.object({
  uid: types.string(),
  type: types.optional(
    GetDeploymentResponseBodyDeploymentsResponseType$inboundSchema,
  ),
  username: types.optional(types.string()),
  avatar: types.optional(types.string()),
});

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

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

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

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

/** @internal */
export const ResponseBodyLambdas$inboundSchema: z.ZodType<
  ResponseBodyLambdas,
  z.ZodTypeDef,
  unknown
> = z.object({
  id: types.string(),
  readyState: types.optional(
    GetDeploymentResponseBodyDeploymentsResponse200ReadyState$inboundSchema,
  ),
  createdAt: types.optional(types.number()),
  entrypoint: z.nullable(types.string()).optional(),
  readyStateAt: types.optional(types.number()),
  output: z.array(z.lazy(() => GetDeploymentResponseBodyOutput$inboundSchema)),
});

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

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

/** @internal */
export const ResponseBodyTeam$inboundSchema: z.ZodType<
  ResponseBodyTeam,
  z.ZodTypeDef,
  unknown
> = z.object({
  id: types.string(),
  name: types.string(),
  slug: types.string(),
  avatar: types.optional(types.string()),
});

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

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

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

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

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

/** @internal */
export const GetDeploymentCustomEnvironmentDeploymentsBranchMatcher$inboundSchema:
  z.ZodType<
    GetDeploymentCustomEnvironmentDeploymentsBranchMatcher,
    z.ZodTypeDef,
    unknown
  > = z.object({
    type: GetDeploymentCustomEnvironmentDeploymentsResponseType$inboundSchema,
    pattern: types.string(),
  });

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

/** @internal */
export const GetDeploymentCustomEnvironmentDeploymentsVerification$inboundSchema:
  z.ZodType<
    GetDeploymentCustomEnvironmentDeploymentsVerification,
    z.ZodTypeDef,
    unknown
  > = z.object({
    type: types.string(),
    domain: types.string(),
    value: types.string(),
    reason: types.string(),
  });

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

/** @internal */
export const GetDeploymentCustomEnvironmentDeploymentsDomains$inboundSchema:
  z.ZodType<
    GetDeploymentCustomEnvironmentDeploymentsDomains,
    z.ZodTypeDef,
    unknown
  > = z.object({
    name: types.string(),
    apexName: types.string(),
    projectId: types.string(),
    redirect: z.nullable(types.string()).optional(),
    redirectStatusCode: z.nullable(types.number()).optional(),
    gitBranch: z.nullable(types.string()).optional(),
    customEnvironmentId: z.nullable(types.string()).optional(),
    updatedAt: types.optional(types.number()),
    createdAt: types.optional(types.number()),
    verified: types.boolean(),
    verification: types.optional(
      z.array(z.lazy(() =>
        GetDeploymentCustomEnvironmentDeploymentsVerification$inboundSchema
      )),
    ),
  });

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

/** @internal */
export const GetDeploymentCustomEnvironment1$inboundSchema: z.ZodType<
  GetDeploymentCustomEnvironment1,
  z.ZodTypeDef,
  unknown
> = z.object({
  id: types.string(),
  slug: types.string(),
  type: GetDeploymentCustomEnvironmentType$inboundSchema,
  description: types.optional(types.string()),
  branchMatcher: types.optional(
    z.lazy(() =>
      GetDeploymentCustomEnvironmentDeploymentsBranchMatcher$inboundSchema
    ),
  ),
  domains: types.optional(
    z.array(z.lazy(() =>
      GetDeploymentCustomEnvironmentDeploymentsDomains$inboundSchema
    )),
  ),
  currentDeploymentAliases: types.optional(z.array(types.string())),
  createdAt: types.number(),
  updatedAt: types.number(),
});

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

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

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

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

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

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

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

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

/** @internal */
export const GetDeploymentResponseBodyAliasWarning$inboundSchema: z.ZodType<
  GetDeploymentResponseBodyAliasWarning,
  z.ZodTypeDef,
  unknown
> = z.object({
  code: types.string(),
  message: types.string(),
  link: types.optional(types.string()),
  action: types.optional(types.string()),
});

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

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

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

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

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

/** @internal */
export const GetDeploymentGitSourceDeployments19$inboundSchema: z.ZodType<
  GetDeploymentGitSourceDeployments19,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody319Type$inboundSchema,
  ref: types.string(),
  sha: types.string(),
  repoId: types.string(),
  owner: types.string(),
  repo: types.string(),
});

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

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

/** @internal */
export const GetDeploymentGitSourceDeployments18$inboundSchema: z.ZodType<
  GetDeploymentGitSourceDeployments18,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody318Type$inboundSchema,
  ref: types.string(),
  sha: types.string(),
  org: types.string(),
  repo: types.string(),
  repoPushedAt: types.optional(types.number()),
});

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

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

/** @internal */
export const GetDeploymentGitSourceDeployments17$inboundSchema: z.ZodType<
  GetDeploymentGitSourceDeployments17,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody317Type$inboundSchema,
  ref: types.string(),
  sha: types.string(),
  owner: types.optional(types.string()),
  slug: types.optional(types.string()),
  workspaceUuid: types.string(),
  repoUuid: types.string(),
});

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

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

/** @internal */
export const GetDeploymentGitSourceDeployments16$inboundSchema: z.ZodType<
  GetDeploymentGitSourceDeployments16,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody316Type$inboundSchema,
  ref: types.string(),
  sha: types.string(),
  projectId: types.number(),
});

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

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

/** @internal */
export const GetDeploymentGitSourceDeployments15$inboundSchema: z.ZodType<
  GetDeploymentGitSourceDeployments15,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody315Type$inboundSchema,
  ref: types.string(),
  sha: types.string(),
  repoId: types.number(),
  org: types.optional(types.string()),
  repo: types.optional(types.string()),
});

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

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

/** @internal */
export const GetDeploymentGitSourceDeployments14$inboundSchema: z.ZodType<
  GetDeploymentGitSourceDeployments14,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody314Type$inboundSchema,
  host: types.string(),
  ref: types.string(),
  sha: types.string(),
  repoId: types.number(),
  org: types.optional(types.string()),
  repo: types.optional(types.string()),
});

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

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

/** @internal */
export const GetDeploymentGitSourceDeployments13$inboundSchema: z.ZodType<
  GetDeploymentGitSourceDeployments13,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody313Type$inboundSchema,
  ref: types.string(),
  sha: types.string(),
  repoId: types.number(),
  org: types.optional(types.string()),
  repo: types.optional(types.string()),
});

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

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

/** @internal */
export const GetDeploymentGitSourceDeployments12$inboundSchema: z.ZodType<
  GetDeploymentGitSourceDeployments12,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody312Type$inboundSchema,
  ref: types.string(),
  sha: types.string(),
  gitUrl: types.string(),
});

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

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

/** @internal */
export const GetDeploymentGitSourceDeployments11$inboundSchema: z.ZodType<
  GetDeploymentGitSourceDeployments11,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody311Type$inboundSchema,
  repoId: types.string(),
  owner: types.optional(types.string()),
  repo: types.optional(types.string()),
  ref: z.nullable(types.string()).optional(),
  sha: types.optional(types.string()),
  prId: z.nullable(types.number()).optional(),
});

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

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

/** @internal */
export const GetDeploymentGitSourceDeployments10$inboundSchema: z.ZodType<
  GetDeploymentGitSourceDeployments10,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody310Type$inboundSchema,
  org: types.optional(types.string()),
  repo: types.optional(types.string()),
  sha: types.string(),
  repoPushedAt: types.optional(types.number()),
  ref: z.nullable(types.string()).optional(),
  prId: z.nullable(types.number()).optional(),
});

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

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

/** @internal */
export const GetDeploymentGitSourceDeployments9$inboundSchema: z.ZodType<
  GetDeploymentGitSourceDeployments9,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody39Type$inboundSchema,
  owner: types.string(),
  slug: types.string(),
  ref: z.nullable(types.string()).optional(),
  sha: types.optional(types.string()),
  prId: z.nullable(types.number()).optional(),
});

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

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

/** @internal */
export const GetDeploymentGitSourceDeployments8$inboundSchema: z.ZodType<
  GetDeploymentGitSourceDeployments8,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody38Type$inboundSchema,
  workspaceUuid: types.optional(types.string()),
  repoUuid: types.string(),
  ref: z.nullable(types.string()).optional(),
  sha: types.optional(types.string()),
  prId: z.nullable(types.number()).optional(),
});

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

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

/** @internal */
export const GetDeploymentGitSourceDeploymentsProjectId$inboundSchema:
  z.ZodType<GetDeploymentGitSourceDeploymentsProjectId, z.ZodTypeDef, unknown> =
    smartUnion([types.string(), types.number()]);

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

/** @internal */
export const GetDeploymentGitSourceDeployments7$inboundSchema: z.ZodType<
  GetDeploymentGitSourceDeployments7,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody37Type$inboundSchema,
  projectId: smartUnion([types.string(), types.number()]),
  ref: z.nullable(types.string()).optional(),
  sha: types.optional(types.string()),
  prId: z.nullable(types.number()).optional(),
});

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

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

/** @internal */
export const GetDeploymentGitSourceDeployments6$inboundSchema: z.ZodType<
  GetDeploymentGitSourceDeployments6,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody36Type$inboundSchema,
  org: types.string(),
  repo: types.string(),
  ref: z.nullable(types.string()).optional(),
  sha: types.optional(types.string()),
  prId: z.nullable(types.number()).optional(),
});

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

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

/** @internal */
export const GetDeploymentGitSourceDeploymentsResponse200RepoId$inboundSchema:
  z.ZodType<
    GetDeploymentGitSourceDeploymentsResponse200RepoId,
    z.ZodTypeDef,
    unknown
  > = smartUnion([types.string(), types.number()]);

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

/** @internal */
export const GetDeploymentGitSourceDeployments5$inboundSchema: z.ZodType<
  GetDeploymentGitSourceDeployments5,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody35Type$inboundSchema,
  repoId: smartUnion([types.string(), types.number()]),
  ref: z.nullable(types.string()).optional(),
  sha: types.optional(types.string()),
  prId: z.nullable(types.number()).optional(),
});

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

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

/** @internal */
export const GetDeploymentGitSource4$inboundSchema: z.ZodType<
  GetDeploymentGitSource4,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody34Type$inboundSchema,
  host: types.string(),
  org: types.string(),
  repo: types.string(),
  ref: z.nullable(types.string()).optional(),
  sha: types.optional(types.string()),
  prId: z.nullable(types.number()).optional(),
});

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

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

/** @internal */
export const GetDeploymentGitSourceDeploymentsResponseRepoId$inboundSchema:
  z.ZodType<
    GetDeploymentGitSourceDeploymentsResponseRepoId,
    z.ZodTypeDef,
    unknown
  > = smartUnion([types.string(), types.number()]);

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

/** @internal */
export const GetDeploymentGitSource3$inboundSchema: z.ZodType<
  GetDeploymentGitSource3,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody33Type$inboundSchema,
  host: types.string(),
  repoId: smartUnion([types.string(), types.number()]),
  ref: z.nullable(types.string()).optional(),
  sha: types.optional(types.string()),
  prId: z.nullable(types.number()).optional(),
});

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

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

/** @internal */
export const GetDeploymentGitSource2$inboundSchema: z.ZodType<
  GetDeploymentGitSource2,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody32Type$inboundSchema,
  org: types.string(),
  repo: types.string(),
  ref: z.nullable(types.string()).optional(),
  sha: types.optional(types.string()),
  prId: z.nullable(types.number()).optional(),
});

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

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

/** @internal */
export const GetDeploymentGitSourceDeploymentsRepoId$inboundSchema: z.ZodType<
  GetDeploymentGitSourceDeploymentsRepoId,
  z.ZodTypeDef,
  unknown
> = smartUnion([types.string(), types.number()]);

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

/** @internal */
export const GetDeploymentGitSource1$inboundSchema: z.ZodType<
  GetDeploymentGitSource1,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody3Type$inboundSchema,
  repoId: smartUnion([types.string(), types.number()]),
  ref: z.nullable(types.string()).optional(),
  sha: types.optional(types.string()),
  prId: z.nullable(types.number()).optional(),
});

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

/** @internal */
export const ResponseBodyGitSource$inboundSchema: z.ZodType<
  ResponseBodyGitSource,
  z.ZodTypeDef,
  unknown
> = smartUnion([
  z.lazy(() => GetDeploymentGitSourceDeployments19$inboundSchema),
  z.lazy(() => GetDeploymentGitSourceDeployments14$inboundSchema),
  z.lazy(() => GetDeploymentGitSourceDeployments17$inboundSchema),
  z.lazy(() => GetDeploymentGitSourceDeployments18$inboundSchema),
  z.lazy(() => GetDeploymentGitSource4$inboundSchema),
  z.lazy(() => GetDeploymentGitSourceDeployments12$inboundSchema),
  z.lazy(() => GetDeploymentGitSourceDeployments13$inboundSchema),
  z.lazy(() => GetDeploymentGitSourceDeployments15$inboundSchema),
  z.lazy(() => GetDeploymentGitSourceDeployments16$inboundSchema),
  z.lazy(() => GetDeploymentGitSource2$inboundSchema),
  z.lazy(() => GetDeploymentGitSource3$inboundSchema),
  z.lazy(() => GetDeploymentGitSourceDeployments6$inboundSchema),
  z.lazy(() => GetDeploymentGitSourceDeployments9$inboundSchema),
  z.lazy(() => GetDeploymentGitSource1$inboundSchema),
  z.lazy(() => GetDeploymentGitSourceDeployments5$inboundSchema),
  z.lazy(() => GetDeploymentGitSourceDeployments7$inboundSchema),
  z.lazy(() => GetDeploymentGitSourceDeployments8$inboundSchema),
  z.lazy(() => GetDeploymentGitSourceDeployments10$inboundSchema),
  z.lazy(() => GetDeploymentGitSourceDeployments11$inboundSchema),
]);

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

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

/** @internal */
export const ResponseBodyManualProvisioning$inboundSchema: z.ZodType<
  ResponseBodyManualProvisioning,
  z.ZodTypeDef,
  unknown
> = z.object({
  state: GetDeploymentResponseBodyDeploymentsState$inboundSchema,
  completedAt: types.optional(types.number()),
});

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

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

/** @internal */
export const GetDeploymentResponseBodyProject$inboundSchema: z.ZodType<
  GetDeploymentResponseBodyProject,
  z.ZodTypeDef,
  unknown
> = z.object({
  id: types.string(),
  name: types.string(),
  framework: z.nullable(types.string()).optional(),
});

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

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

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

/** @internal */
export const ResponseBodyOidcTokenClaims$inboundSchema: z.ZodType<
  ResponseBodyOidcTokenClaims,
  z.ZodTypeDef,
  unknown
> = z.object({
  iss: types.string(),
  sub: types.string(),
  scope: types.string(),
  aud: types.string(),
  owner: types.string(),
  owner_id: types.string(),
  project: types.string(),
  project_id: types.string(),
  environment: types.string(),
  custom_environment_id: types.optional(types.string()),
  mfe_group_ids: types.optional(z.array(types.string())),
  plan: types.optional(types.string()),
}).transform((v) => {
  return remap$(v, {
    "owner_id": "ownerId",
    "project_id": "projectId",
    "custom_environment_id": "customEnvironmentId",
    "mfe_group_ids": "mfeGroupIds",
  });
});

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

/** @internal */
export const GetDeploymentResponseBody3$inboundSchema: z.ZodType<
  GetDeploymentResponseBody3,
  z.ZodTypeDef,
  unknown
> = z.object({
  alias: types.optional(z.array(types.string())),
  aliasAssigned: types.boolean(),
  bootedAt: types.number(),
  buildingAt: types.number(),
  buildContainerFinishedAt: types.optional(types.number()),
  buildSkipped: types.boolean(),
  creator: z.lazy(() => ResponseBodyCreator$inboundSchema),
  initReadyAt: types.optional(types.number()),
  isFirstBranchDeployment: types.optional(types.boolean()),
  lambdas: types.optional(
    z.array(z.lazy(() => ResponseBodyLambdas$inboundSchema)),
  ),
  public: types.boolean(),
  ready: types.optional(types.number()),
  status: GetDeploymentResponseBodyDeploymentsStatus$inboundSchema,
  team: types.optional(z.lazy(() => ResponseBodyTeam$inboundSchema)),
  userAliases: types.optional(z.array(types.string())),
  previewCommentsEnabled: types.optional(types.boolean()),
  ttyBuildLogs: types.optional(types.boolean()),
  customEnvironment: types.optional(
    smartUnion([
      z.lazy(() => GetDeploymentCustomEnvironment1$inboundSchema),
      z.lazy(() => GetDeploymentCustomEnvironment2$inboundSchema),
    ]),
  ),
  oomReport: types.optional(ResponseBodyOomReport$inboundSchema),
  readyStateReason: types.optional(types.string()),
  id: types.string(),
  target: z.nullable(GetDeploymentResponseBodyTarget$inboundSchema).optional(),
  readyState: GetDeploymentResponseBodyReadyState$inboundSchema,
  aliasError: z.nullable(
    z.lazy(() => GetDeploymentResponseBodyAliasError$inboundSchema),
  ).optional(),
  aliasWarning: z.nullable(
    z.lazy(() => GetDeploymentResponseBodyAliasWarning$inboundSchema),
  ).optional(),
  errorCode: types.optional(types.string()),
  errorMessage: z.nullable(types.string()).optional(),
  createdAt: types.number(),
  name: types.string(),
  type: GetDeploymentResponseBodyDeploymentsType$inboundSchema,
  aliasFinal: z.nullable(types.string()).optional(),
  autoAssignCustomDomains: types.optional(types.boolean()),
  automaticAliases: types.optional(z.array(types.string())),
  buildErrorAt: types.optional(types.number()),
  checksState: types.optional(ResponseBodyChecksState$inboundSchema),
  checksConclusion: types.optional(ResponseBodyChecksConclusion$inboundSchema),
  deletedAt: z.nullable(types.number()).optional(),
  defaultRoute: types.optional(types.string()),
  canceledAt: types.optional(types.number()),
  errorLink: types.optional(types.string()),
  errorStep: types.optional(types.string()),
  passiveRegions: types.optional(z.array(types.string())),
  gitSource: types.optional(
    smartUnion([
      z.lazy(() => GetDeploymentGitSourceDeployments19$inboundSchema),
      z.lazy(() => GetDeploymentGitSourceDeployments14$inboundSchema),
      z.lazy(() => GetDeploymentGitSourceDeployments17$inboundSchema),
      z.lazy(() => GetDeploymentGitSourceDeployments18$inboundSchema),
      z.lazy(() => GetDeploymentGitSource4$inboundSchema),
      z.lazy(() => GetDeploymentGitSourceDeployments12$inboundSchema),
      z.lazy(() => GetDeploymentGitSourceDeployments13$inboundSchema),
      z.lazy(() => GetDeploymentGitSourceDeployments15$inboundSchema),
      z.lazy(() => GetDeploymentGitSourceDeployments16$inboundSchema),
      z.lazy(() => GetDeploymentGitSource2$inboundSchema),
      z.lazy(() => GetDeploymentGitSource3$inboundSchema),
      z.lazy(() => GetDeploymentGitSourceDeployments6$inboundSchema),
      z.lazy(() => GetDeploymentGitSourceDeployments9$inboundSchema),
      z.lazy(() => GetDeploymentGitSource1$inboundSchema),
      z.lazy(() => GetDeploymentGitSourceDeployments5$inboundSchema),
      z.lazy(() => GetDeploymentGitSourceDeployments7$inboundSchema),
      z.lazy(() => GetDeploymentGitSourceDeployments8$inboundSchema),
      z.lazy(() => GetDeploymentGitSourceDeployments10$inboundSchema),
      z.lazy(() => GetDeploymentGitSourceDeployments11$inboundSchema),
    ]),
  ),
  manualProvisioning: types.optional(
    z.lazy(() => ResponseBodyManualProvisioning$inboundSchema),
  ),
  meta: z.record(types.string()),
  originCacheRegion: types.optional(types.string()),
  nodeVersion: types.optional(ResponseBodyNodeVersion$inboundSchema),
  project: types.optional(
    z.lazy(() => GetDeploymentResponseBodyProject$inboundSchema),
  ),
  prebuilt: types.optional(types.boolean()),
  readySubstate: types.optional(ResponseBodyReadySubstate$inboundSchema),
  regions: z.array(types.string()),
  softDeletedByRetention: types.optional(types.boolean()),
  source: types.optional(
    GetDeploymentResponseBodyDeploymentsSource$inboundSchema,
  ),
  undeletedAt: types.optional(types.number()),
  url: types.string(),
  userConfiguredDeploymentId: types.optional(types.string()),
  version: types.number(),
  oidcTokenClaims: types.optional(
    z.lazy(() => ResponseBodyOidcTokenClaims$inboundSchema),
  ),
});

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

/** @internal */
export const GetDeploymentResponseBodyAliasAssignedAt$inboundSchema: z.ZodType<
  GetDeploymentResponseBodyAliasAssignedAt,
  z.ZodTypeDef,
  unknown
> = smartUnion([types.number(), types.boolean()]);

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

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

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

/** @internal */
export const GetDeploymentResponseBodyBuilds$inboundSchema: z.ZodType<
  GetDeploymentResponseBodyBuilds,
  z.ZodTypeDef,
  unknown
> = z.object({
  use: types.string(),
  src: types.optional(types.string()),
  config: types.optional(z.record(z.any())),
});

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

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

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

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

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

/** @internal */
export const GetDeploymentResponseBodyBuildMachine$inboundSchema: z.ZodType<
  GetDeploymentResponseBodyBuildMachine,
  z.ZodTypeDef,
  unknown
> = z.object({
  purchaseType: types.optional(
    GetDeploymentResponseBodyPurchaseType$inboundSchema,
  ),
  defaultPurchaseType: types.optional(
    GetDeploymentResponseBodyDefaultPurchaseType$inboundSchema,
  ),
  machineSelectionType: types.optional(
    GetDeploymentResponseBodyMachineSelectionType$inboundSchema,
  ),
  selectionSource: types.optional(
    GetDeploymentResponseBodySelectionSource$inboundSchema,
  ),
  cores: types.optional(types.number()),
  memory: types.optional(types.number()),
});

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

/** @internal */
export const GetDeploymentResponseBodyResourceConfig$inboundSchema: z.ZodType<
  GetDeploymentResponseBodyResourceConfig,
  z.ZodTypeDef,
  unknown
> = z.object({
  buildMachine: types.optional(
    z.lazy(() => GetDeploymentResponseBodyBuildMachine$inboundSchema),
  ),
});

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

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

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

/** @internal */
export const GetDeploymentResponseBodySpeedInsights$inboundSchema: z.ZodType<
  GetDeploymentResponseBodySpeedInsights,
  z.ZodTypeDef,
  unknown
> = z.object({
  id: types.string(),
  enabledAt: types.optional(types.number()),
  disabledAt: types.optional(types.number()),
  canceledAt: types.optional(types.number()),
  hasData: types.optional(types.boolean()),
  dataReceivedAt: types.optional(types.number()),
  paidAt: types.optional(types.number()),
});

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

/** @internal */
export const GetDeploymentResponseBodyWebAnalytics$inboundSchema: z.ZodType<
  GetDeploymentResponseBodyWebAnalytics,
  z.ZodTypeDef,
  unknown
> = z.object({
  id: types.string(),
  disabledAt: types.optional(types.number()),
  canceledAt: types.optional(types.number()),
  enabledAt: types.optional(types.number()),
  hasData: types.optional(types.literal(true)),
});

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

/** @internal */
export const ResponseBodyProjectSettings$inboundSchema: z.ZodType<
  ResponseBodyProjectSettings,
  z.ZodTypeDef,
  unknown
> = z.object({
  nodeVersion: types.optional(
    GetDeploymentResponseBodyDeploymentsNodeVersion$inboundSchema,
  ),
  buildCommand: z.nullable(types.string()).optional(),
  devCommand: z.nullable(types.string()).optional(),
  framework: z.nullable(GetDeploymentResponseBodyFramework$inboundSchema)
    .optional(),
  commandForIgnoringBuildStep: z.nullable(types.string()).optional(),
  installCommand: z.nullable(types.string()).optional(),
  outputDirectory: z.nullable(types.string()).optional(),
  speedInsights: types.optional(
    z.lazy(() => GetDeploymentResponseBodySpeedInsights$inboundSchema),
  ),
  webAnalytics: types.optional(
    z.lazy(() => GetDeploymentResponseBodyWebAnalytics$inboundSchema),
  ),
});

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

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

/** @internal */
export const GetDeploymentResponseBodyIntegrations$inboundSchema: z.ZodType<
  GetDeploymentResponseBodyIntegrations,
  z.ZodTypeDef,
  unknown
> = z.object({
  status: GetDeploymentResponseBodyDeploymentsResponseStatus$inboundSchema,
  startedAt: types.number(),
  claimedAt: types.optional(types.number()),
  completedAt: types.optional(types.number()),
  skippedAt: types.optional(types.number()),
  skippedBy: types.optional(types.string()),
});

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

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

/** @internal */
export const GetDeploymentResponseBodyRemotePatterns$inboundSchema: z.ZodType<
  GetDeploymentResponseBodyRemotePatterns,
  z.ZodTypeDef,
  unknown
> = z.object({
  protocol: types.optional(GetDeploymentResponseBodyProtocol$inboundSchema),
  hostname: types.string(),
  port: types.optional(types.string()),
  pathname: types.optional(types.string()),
  search: types.optional(types.string()),
});

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

/** @internal */
export const GetDeploymentResponseBodyLocalPatterns$inboundSchema: z.ZodType<
  GetDeploymentResponseBodyLocalPatterns,
  z.ZodTypeDef,
  unknown
> = z.object({
  pathname: types.optional(types.string()),
  search: types.optional(types.string()),
});

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

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

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

/** @internal */
export const GetDeploymentResponseBodyImages$inboundSchema: z.ZodType<
  GetDeploymentResponseBodyImages,
  z.ZodTypeDef,
  unknown
> = z.object({
  sizes: types.optional(z.array(types.number())),
  qualities: types.optional(z.array(types.number())),
  domains: types.optional(z.array(types.string())),
  remotePatterns: types.optional(
    z.array(
      z.lazy(() => GetDeploymentResponseBodyRemotePatterns$inboundSchema),
    ),
  ),
  localPatterns: types.optional(
    z.array(z.lazy(() => GetDeploymentResponseBodyLocalPatterns$inboundSchema)),
  ),
  minimumCacheTTL: types.optional(types.number()),
  formats: types.optional(
    z.array(GetDeploymentResponseBodyFormats$inboundSchema),
  ),
  dangerouslyAllowSVG: types.optional(types.boolean()),
  contentSecurityPolicy: types.optional(types.string()),
  contentDispositionType: types.optional(
    GetDeploymentResponseBodyContentDispositionType$inboundSchema,
  ),
});

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

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

/** @internal */
export const GetDeploymentResponseBodyCreator$inboundSchema: z.ZodType<
  GetDeploymentResponseBodyCreator,
  z.ZodTypeDef,
  unknown
> = z.object({
  uid: types.string(),
  type: types.optional(
    GetDeploymentResponseBodyDeploymentsResponse200Type$inboundSchema,
  ),
  username: types.optional(types.string()),
  avatar: types.optional(types.string()),
});

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

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

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

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

/** @internal */
export const GetDeploymentResponseBodyLambdas$inboundSchema: z.ZodType<
  GetDeploymentResponseBodyLambdas,
  z.ZodTypeDef,
  unknown
> = z.object({
  id: types.string(),
  readyState: types.optional(
    GetDeploymentResponseBodyDeploymentsResponseReadyState$inboundSchema,
  ),
  createdAt: types.optional(types.number()),
  entrypoint: z.nullable(types.string()).optional(),
  readyStateAt: types.optional(types.number()),
  output: z.array(z.lazy(() => ResponseBodyOutput$inboundSchema)),
});

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

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

/** @internal */
export const GetDeploymentResponseBodyTeam$inboundSchema: z.ZodType<
  GetDeploymentResponseBodyTeam,
  z.ZodTypeDef,
  unknown
> = z.object({
  id: types.string(),
  name: types.string(),
  slug: types.string(),
  avatar: types.optional(types.string()),
});

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

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

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

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

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

/** @internal */
export const GetDeploymentCustomEnvironmentBranchMatcher$inboundSchema:
  z.ZodType<
    GetDeploymentCustomEnvironmentBranchMatcher,
    z.ZodTypeDef,
    unknown
  > = z.object({
    type:
      GetDeploymentCustomEnvironmentDeploymentsResponse200Type$inboundSchema,
    pattern: types.string(),
  });

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

/** @internal */
export const GetDeploymentCustomEnvironmentVerification$inboundSchema:
  z.ZodType<GetDeploymentCustomEnvironmentVerification, z.ZodTypeDef, unknown> =
    z.object({
      type: types.string(),
      domain: types.string(),
      value: types.string(),
      reason: types.string(),
    });

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

/** @internal */
export const GetDeploymentCustomEnvironmentDomains$inboundSchema: z.ZodType<
  GetDeploymentCustomEnvironmentDomains,
  z.ZodTypeDef,
  unknown
> = z.object({
  name: types.string(),
  apexName: types.string(),
  projectId: types.string(),
  redirect: z.nullable(types.string()).optional(),
  redirectStatusCode: z.nullable(types.number()).optional(),
  gitBranch: z.nullable(types.string()).optional(),
  customEnvironmentId: z.nullable(types.string()).optional(),
  updatedAt: types.optional(types.number()),
  createdAt: types.optional(types.number()),
  verified: types.boolean(),
  verification: types.optional(
    z.array(z.lazy(() =>
      GetDeploymentCustomEnvironmentVerification$inboundSchema
    )),
  ),
});

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

/** @internal */
export const GetDeploymentCustomEnvironmentDeployments1$inboundSchema:
  z.ZodType<GetDeploymentCustomEnvironmentDeployments1, z.ZodTypeDef, unknown> =
    z.object({
      id: types.string(),
      slug: types.string(),
      type: GetDeploymentCustomEnvironmentDeploymentsType$inboundSchema,
      description: types.optional(types.string()),
      branchMatcher: types.optional(
        z.lazy(() => GetDeploymentCustomEnvironmentBranchMatcher$inboundSchema),
      ),
      domains: types.optional(
        z.array(
          z.lazy(() => GetDeploymentCustomEnvironmentDomains$inboundSchema),
        ),
      ),
      currentDeploymentAliases: types.optional(z.array(types.string())),
      createdAt: types.number(),
      updatedAt: types.number(),
    });

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

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

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

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

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

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

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

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

/** @internal */
export const ResponseBodyAliasWarning$inboundSchema: z.ZodType<
  ResponseBodyAliasWarning,
  z.ZodTypeDef,
  unknown
> = z.object({
  code: types.string(),
  message: types.string(),
  link: types.optional(types.string()),
  action: types.optional(types.string()),
});

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

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

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

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

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

/** @internal */
export const GetDeploymentGitSource19$inboundSchema: z.ZodType<
  GetDeploymentGitSource19,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody219Type$inboundSchema,
  ref: types.string(),
  sha: types.string(),
  repoId: types.string(),
  owner: types.string(),
  repo: types.string(),
});

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

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

/** @internal */
export const GetDeploymentGitSource18$inboundSchema: z.ZodType<
  GetDeploymentGitSource18,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody218Type$inboundSchema,
  ref: types.string(),
  sha: types.string(),
  org: types.string(),
  repo: types.string(),
  repoPushedAt: types.optional(types.number()),
});

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

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

/** @internal */
export const GetDeploymentGitSource17$inboundSchema: z.ZodType<
  GetDeploymentGitSource17,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody217Type$inboundSchema,
  ref: types.string(),
  sha: types.string(),
  owner: types.optional(types.string()),
  slug: types.optional(types.string()),
  workspaceUuid: types.string(),
  repoUuid: types.string(),
});

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

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

/** @internal */
export const GetDeploymentGitSource16$inboundSchema: z.ZodType<
  GetDeploymentGitSource16,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody216Type$inboundSchema,
  ref: types.string(),
  sha: types.string(),
  projectId: types.number(),
});

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

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

/** @internal */
export const GetDeploymentGitSource15$inboundSchema: z.ZodType<
  GetDeploymentGitSource15,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody215Type$inboundSchema,
  ref: types.string(),
  sha: types.string(),
  repoId: types.number(),
  org: types.optional(types.string()),
  repo: types.optional(types.string()),
});

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

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

/** @internal */
export const GetDeploymentGitSource14$inboundSchema: z.ZodType<
  GetDeploymentGitSource14,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody214Type$inboundSchema,
  host: types.string(),
  ref: types.string(),
  sha: types.string(),
  repoId: types.number(),
  org: types.optional(types.string()),
  repo: types.optional(types.string()),
});

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

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

/** @internal */
export const GetDeploymentGitSource13$inboundSchema: z.ZodType<
  GetDeploymentGitSource13,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody213Type$inboundSchema,
  ref: types.string(),
  sha: types.string(),
  repoId: types.number(),
  org: types.optional(types.string()),
  repo: types.optional(types.string()),
});

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

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

/** @internal */
export const GetDeploymentGitSource12$inboundSchema: z.ZodType<
  GetDeploymentGitSource12,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody212Type$inboundSchema,
  ref: types.string(),
  sha: types.string(),
  gitUrl: types.string(),
});

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

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

/** @internal */
export const GetDeploymentGitSource11$inboundSchema: z.ZodType<
  GetDeploymentGitSource11,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody211Type$inboundSchema,
  repoId: types.string(),
  owner: types.optional(types.string()),
  repo: types.optional(types.string()),
  ref: z.nullable(types.string()).optional(),
  sha: types.optional(types.string()),
  prId: z.nullable(types.number()).optional(),
});

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

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

/** @internal */
export const GetDeploymentGitSource10$inboundSchema: z.ZodType<
  GetDeploymentGitSource10,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody210Type$inboundSchema,
  org: types.optional(types.string()),
  repo: types.optional(types.string()),
  sha: types.string(),
  repoPushedAt: types.optional(types.number()),
  ref: z.nullable(types.string()).optional(),
  prId: z.nullable(types.number()).optional(),
});

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

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

/** @internal */
export const GetDeploymentGitSource9$inboundSchema: z.ZodType<
  GetDeploymentGitSource9,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody29Type$inboundSchema,
  owner: types.string(),
  slug: types.string(),
  ref: z.nullable(types.string()).optional(),
  sha: types.optional(types.string()),
  prId: z.nullable(types.number()).optional(),
});

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

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

/** @internal */
export const GetDeploymentGitSource8$inboundSchema: z.ZodType<
  GetDeploymentGitSource8,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBody2Type$inboundSchema,
  workspaceUuid: types.optional(types.string()),
  repoUuid: types.string(),
  ref: z.nullable(types.string()).optional(),
  sha: types.optional(types.string()),
  prId: z.nullable(types.number()).optional(),
});

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

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

/** @internal */
export const GetDeploymentGitSourceProjectId$inboundSchema: z.ZodType<
  GetDeploymentGitSourceProjectId,
  z.ZodTypeDef,
  unknown
> = smartUnion([types.string(), types.number()]);

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

/** @internal */
export const GetDeploymentGitSource7$inboundSchema: z.ZodType<
  GetDeploymentGitSource7,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONResponseBodyType$inboundSchema,
  projectId: smartUnion([types.string(), types.number()]),
  ref: z.nullable(types.string()).optional(),
  sha: types.optional(types.string()),
  prId: z.nullable(types.number()).optional(),
});

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

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

/** @internal */
export const GetDeploymentGitSource6$inboundSchema: z.ZodType<
  GetDeploymentGitSource6,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetDeploymentGitSourceDeploymentsResponse200ApplicationJSONType$inboundSchema,
  org: types.string(),
  repo: types.string(),
  ref: z.nullable(types.string()).optional(),
  sha: types.optional(types.string()),
  prId: z.nullable(types.number()).optional(),
});

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

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