UNPKG

@vercel/sdk

Version:

<p align="center"> <a href="https://vercel.com"> <img src="https://assets.vercel.com/image/upload/v1588805858/repositories/vercel/logo.png" height="96"> <h3 align="center">Vercel</h3> </a> <p align="center">Develop. Preview. Ship.</p> </p>

5,304 lines 177 kB
/*
 * 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 {
  GetProjectsInternalRoutesProjectsResponseHas,
  GetProjectsInternalRoutesProjectsResponseHas$inboundSchema,
  GetProjectsResponseBodyProjectsAbuse,
  GetProjectsResponseBodyProjectsAbuse$inboundSchema,
  GetProjectsResponseBodyProjectsGitComments,
  GetProjectsResponseBodyProjectsGitComments$inboundSchema,
  GetProjectsResponseBodyProjectsGitProviderOptions,
  GetProjectsResponseBodyProjectsGitProviderOptions$inboundSchema,
  GetProjectsResponseBodyProjectsOidcTokenConfig,
  GetProjectsResponseBodyProjectsOidcTokenConfig$inboundSchema,
  GetProjectsResponseBodyProjectsRollingRelease,
  GetProjectsResponseBodyProjectsRollingRelease$inboundSchema,
  GetProjectsResponseBodyProjectsSecurity,
  GetProjectsResponseBodyProjectsSecurity$inboundSchema,
  GetProjectsResponseBodyProjectsSsoProtection,
  GetProjectsResponseBodyProjectsSsoProtection$inboundSchema,
  GetProjectsResponseBodyProjectsTargets,
  GetProjectsResponseBodyProjectsTargets$inboundSchema,
  GetProjectsResponseBodyProjectsTier,
  GetProjectsResponseBodyProjectsTier$inboundSchema,
  GetProjectsResponseBodyProjectsTrustedSources,
  GetProjectsResponseBodyProjectsTrustedSources$inboundSchema,
  GetProjectsResponseBodyProjectsWebAnalytics,
  GetProjectsResponseBodyProjectsWebAnalytics$inboundSchema,
  ResponseBodyDefaultResourceConfig,
  ResponseBodyDefaultResourceConfig$inboundSchema,
  ResponseBodyDeploymentPolicy,
  ResponseBodyDeploymentPolicy$inboundSchema,
  ResponseBodyFeatures,
  ResponseBodyFeatures$inboundSchema,
  ResponseBodyLastAliasRequest,
  ResponseBodyLastAliasRequest$inboundSchema,
  ResponseBodyLastRollbackTarget,
  ResponseBodyLastRollbackTarget$inboundSchema,
  ResponseBodyPermissions,
  ResponseBodyPermissions$inboundSchema,
  ResponseBodyProtectionBypass,
  ResponseBodyProtectionBypass$inboundSchema,
  ResponseBodyStaticIps,
  ResponseBodyStaticIps$inboundSchema,
  ResponseBodyTrustedIps,
  ResponseBodyTrustedIps$inboundSchema,
  ResponseBodyUsageStatus,
  ResponseBodyUsageStatus$inboundSchema,
} from "./getprojectsinternalroutesprojectsresponsehas.js";
import {
  GetProjectsResponseBodyCrons,
  GetProjectsResponseBodyCrons$inboundSchema,
  GetProjectsResponseBodyMicrofrontends,
  GetProjectsResponseBodyMicrofrontends$inboundSchema,
  GetProjectsResponseBodyProjectsAlias,
  GetProjectsResponseBodyProjectsAlias$inboundSchema,
  GetProjectsResponseBodyProjectsAnalytics,
  GetProjectsResponseBodyProjectsAnalytics$inboundSchema,
  GetProjectsResponseBodyProjectsDeploymentExpiration,
  GetProjectsResponseBodyProjectsDeploymentExpiration$inboundSchema,
  GetProjectsResponseBodyProjectsEnv,
  GetProjectsResponseBodyProjectsEnv$inboundSchema,
  GetProjectsResponseBodyProjectsFramework,
  GetProjectsResponseBodyProjectsFramework$inboundSchema,
  GetProjectsResponseBodyProjectsIpBuckets,
  GetProjectsResponseBodyProjectsIpBuckets$inboundSchema,
  GetProjectsResponseBodyProjectsLatestDeployments,
  GetProjectsResponseBodyProjectsLatestDeployments$inboundSchema,
  GetProjectsResponseBodyProjectsLink,
  GetProjectsResponseBodyProjectsLink$inboundSchema,
  GetProjectsResponseBodyProjectsPassport,
  GetProjectsResponseBodyProjectsPassport$inboundSchema,
  GetProjectsResponseBodyProjectsPasswordProtection,
  GetProjectsResponseBodyProjectsPasswordProtection$inboundSchema,
  GetProjectsResponseBodyProjectsResponse200ApplicationJSONCreator,
  GetProjectsResponseBodyProjectsResponse200ApplicationJSONCreator$inboundSchema,
  GetProjectsResponseBodyProjectsResponseNodeVersion,
  GetProjectsResponseBodyProjectsResponseNodeVersion$inboundSchema,
  GetProjectsResponseBodyProjectsResponseResourceConfig,
  GetProjectsResponseBodyProjectsResponseResourceConfig$inboundSchema,
  GetProjectsResponseBodyProjectsSpeedInsights,
  GetProjectsResponseBodyProjectsSpeedInsights$inboundSchema,
  GetProjectsResponseBodyServices,
  GetProjectsResponseBodyServices$inboundSchema,
  ResponseBodyBlobs,
  ResponseBodyBlobs$inboundSchema,
  ResponseBodyConnectConfigurations,
  ResponseBodyConnectConfigurations$inboundSchema,
  ResponseBodyCustomEnvironments,
  ResponseBodyCustomEnvironments$inboundSchema,
  ResponseBodyDataCache,
  ResponseBodyDataCache$inboundSchema,
  ResponseBodyExpiration,
  ResponseBodyExpiration$inboundSchema,
  ResponseBodyJobs,
  ResponseBodyJobs$inboundSchema,
  ResponseBodyOptionsAllowlist,
  ResponseBodyOptionsAllowlist$inboundSchema,
  ResponseBodyProtectionConfig,
  ResponseBodyProtectionConfig$inboundSchema,
  ResponseBodyRollbackDescription,
  ResponseBodyRollbackDescription$inboundSchema,
  ResponseBodySandbox,
  ResponseBodySandbox$inboundSchema,
} from "./getprojectsresponsebodyprojectsresponse200applicationjson3action.js";
import { Pagination, Pagination$inboundSchema } from "./pagination.js";
import { SDKValidationError } from "./sdkvalidationerror.js";

export const GetProjectsInternalRoutesProjectsResponseAction = {
  BlockLegalCwc: "block_legal_cwc",
} as const;
export type GetProjectsInternalRoutesProjectsResponseAction = ClosedEnum<
  typeof GetProjectsInternalRoutesProjectsResponseAction
>;

export type GetProjectsInternalRoutesProjectsResponseMitigate = {
  action: GetProjectsInternalRoutesProjectsResponseAction;
};

export type GetProjectsInternalRoutesProjectsResponse2 = {
  has: Array<GetProjectsInternalRoutesProjectsResponseHas>;
  mitigate: GetProjectsInternalRoutesProjectsResponseMitigate;
  src?: string | undefined;
};

export type GetProjectsInternalRoutesProjectsResponse1 = {
  src: string;
  status: number;
  expiry?: number | undefined;
};

export type GetProjectsResponseBodyProjectsInternalRoutes =
  | GetProjectsInternalRoutesProjectsResponse1
  | GetProjectsInternalRoutesProjectsResponse2;

export const GetProjectsResponseBodyProjectsResponse200Action = {
  Accept: "accept",
  Cancel: "cancel",
  Delete: "delete",
} as const;
export type GetProjectsResponseBodyProjectsResponse200Action = ClosedEnum<
  typeof GetProjectsResponseBodyProjectsResponse200Action
>;

export type GetProjectsValuePreviousValue = string | number | boolean;

export type GetProjectsValueCurrentValue = string | number | boolean;

export type GetProjectsValue3 = {
  previousValue: string | number | boolean;
  currentValue: string | number | boolean;
};

export type GetProjectsResponseBodyValue =
  | GetProjectsValue3
  | string
  | number
  | boolean;

export type ResponseBodyDismissedToasts = {
  key: string;
  dismissedAt: number;
  action: GetProjectsResponseBodyProjectsResponse200Action;
  value: GetProjectsValue3 | string | number | boolean | null;
};

export const GetProjectsResponseBodyProjectsResponseEnv = {
  Preview: "preview",
  Production: "production",
} as const;
export type GetProjectsResponseBodyProjectsResponseEnv = ClosedEnum<
  typeof GetProjectsResponseBodyProjectsResponseEnv
>;

/**
 * Which tracing destination this rule applies to. `internal` is the hidden Vercel production-tracing drain (internal delivery); `external` is any customer-configured drain. Derived from the owning drain's delivery type when project tracing is computed; absent on configs persisted before this field existed.
 */
export const GetProjectsResponseBodyDestination = {
  External: "external",
  Internal: "internal",
} as const;
/**
 * Which tracing destination this rule applies to. `internal` is the hidden Vercel production-tracing drain (internal delivery); `external` is any customer-configured drain. Derived from the owning drain's delivery type when project tracing is computed; absent on configs persisted before this field existed.
 */
export type GetProjectsResponseBodyDestination = ClosedEnum<
  typeof GetProjectsResponseBodyDestination
>;

export type ResponseBodySamplingRules = {
  rate: number;
  env?: GetProjectsResponseBodyProjectsResponseEnv | undefined;
  requestPath?: string | undefined;
  /**
   * Which tracing destination this rule applies to. `internal` is the hidden Vercel production-tracing drain (internal delivery); `external` is any customer-configured drain. Derived from the owning drain's delivery type when project tracing is computed; absent on configs persisted before this field existed.
   */
  destination?: GetProjectsResponseBodyDestination | undefined;
};

export type ResponseBodyTracing = {
  domains?: string | undefined;
  ignorePaths?: Array<string> | undefined;
  samplingRules?: Array<ResponseBodySamplingRules> | undefined;
};

export type GetProjectsResponseBodyProjects = {
  accountId: string;
  creator?:
    | GetProjectsResponseBodyProjectsResponse200ApplicationJSONCreator
    | undefined;
  alias: Array<GetProjectsResponseBodyProjectsAlias>;
  analytics?: GetProjectsResponseBodyProjectsAnalytics | undefined;
  appliedCve55182Migration?: boolean | undefined;
  speedInsights?: GetProjectsResponseBodyProjectsSpeedInsights | undefined;
  autoExposeSystemEnvs?: boolean | undefined;
  autoAssignCustomDomains?: boolean | undefined;
  autoAssignCustomDomainsUpdatedBy?: string | undefined;
  buildCommand?: string | null | undefined;
  commandForIgnoringBuildStep?: string | null | undefined;
  connectConfigurations?:
    | Array<ResponseBodyConnectConfigurations>
    | null
    | undefined;
  connectConfigurationId?: string | null | undefined;
  connectBuildsEnabled?: boolean | undefined;
  passiveConnectConfigurationId?: string | null | undefined;
  createdAt?: number | undefined;
  customerSupportCodeVisibility?: boolean | undefined;
  crons?: GetProjectsResponseBodyCrons | undefined;
  dataCache?: ResponseBodyDataCache | undefined;
  /**
   * Retention policies for deployments. These are enforced at the project level, but we also maintain an instance of this at the team level as a default policy that gets applied to new projects.
   */
  deploymentExpiration: GetProjectsResponseBodyProjectsDeploymentExpiration;
  expiration?: ResponseBodyExpiration | undefined;
  devCommand?: string | null | undefined;
  directoryListing: boolean;
  installCommand?: string | null | undefined;
  env?: Array<GetProjectsResponseBodyProjectsEnv> | undefined;
  customEnvironments?: Array<ResponseBodyCustomEnvironments> | undefined;
  framework?: GetProjectsResponseBodyProjectsFramework | null | undefined;
  services?: Array<GetProjectsResponseBodyServices> | undefined;
  gitForkProtection?: boolean | undefined;
  gitLFS?: boolean | undefined;
  id: string;
  ipBuckets?: Array<GetProjectsResponseBodyProjectsIpBuckets> | undefined;
  jobs?: ResponseBodyJobs | undefined;
  latestDeployments?:
    | Array<GetProjectsResponseBodyProjectsLatestDeployments>
    | undefined;
  link?: GetProjectsResponseBodyProjectsLink | undefined;
  blobs?: ResponseBodyBlobs | undefined;
  microfrontends?: GetProjectsResponseBodyMicrofrontends | undefined;
  name: string;
  nodeVersion: GetProjectsResponseBodyProjectsResponseNodeVersion;
  optionsAllowlist?: ResponseBodyOptionsAllowlist | null | undefined;
  outputDirectory?: string | null | undefined;
  passwordProtection?:
    | GetProjectsResponseBodyProjectsPasswordProtection
    | null
    | undefined;
  passport?: GetProjectsResponseBodyProjectsPassport | null | undefined;
  protectionConfig?: ResponseBodyProtectionConfig | undefined;
  sandbox?: ResponseBodySandbox | undefined;
  productionDeploymentsFastLane?: boolean | undefined;
  resourceConfig: GetProjectsResponseBodyProjectsResponseResourceConfig;
  /**
   * Description of why a project was rolled back, and by whom. Note that lastAliasRequest contains the from/to details of the rollback.
   */
  rollbackDescription?: ResponseBodyRollbackDescription | undefined;
  /**
   * Project-level rolling release configuration that defines how deployments should be gradually rolled out
   */
  rollingRelease?:
    | GetProjectsResponseBodyProjectsRollingRelease
    | null
    | undefined;
  defaultResourceConfig: ResponseBodyDefaultResourceConfig;
  rootDirectory?: string | null | undefined;
  serverlessFunctionZeroConfigFailover?: boolean | undefined;
  skewProtectionBoundaryAt?: number | undefined;
  skewProtectionMaxAge?: number | undefined;
  skewProtectionAllowedDomains?: Array<string> | undefined;
  skipGitConnectDuringLink?: boolean | undefined;
  staticIps?: ResponseBodyStaticIps | undefined;
  sourceFilesOutsideRootDirectory?: boolean | undefined;
  enableAffectedProjectsDeployments?: boolean | undefined;
  enableExternalRewriteCaching?: boolean | undefined;
  ssoProtection?:
    | GetProjectsResponseBodyProjectsSsoProtection
    | null
    | undefined;
  targets?:
    | { [k: string]: GetProjectsResponseBodyProjectsTargets | null }
    | undefined;
  transferCompletedAt?: number | undefined;
  transferStartedAt?: number | undefined;
  transferToAccountId?: string | undefined;
  transferredFromAccountId?: string | undefined;
  updatedAt?: number | undefined;
  live?: boolean | undefined;
  enablePreviewFeedback?: boolean | null | undefined;
  enableProductionFeedback?: boolean | null | undefined;
  permissions?: ResponseBodyPermissions | undefined;
  lastRollbackTarget?: ResponseBodyLastRollbackTarget | null | undefined;
  lastAliasRequest?: ResponseBodyLastAliasRequest | null | undefined;
  protectionBypass?: { [k: string]: ResponseBodyProtectionBypass } | undefined;
  hasActiveBranches?: boolean | undefined;
  trustedIps?: ResponseBodyTrustedIps | null | undefined;
  trustedSources?:
    | GetProjectsResponseBodyProjectsTrustedSources
    | null
    | undefined;
  gitComments?: GetProjectsResponseBodyProjectsGitComments | undefined;
  gitProviderOptions?:
    | GetProjectsResponseBodyProjectsGitProviderOptions
    | undefined;
  paused?: boolean | undefined;
  concurrencyBucketName?: string | undefined;
  webAnalytics?: GetProjectsResponseBodyProjectsWebAnalytics | undefined;
  security?: GetProjectsResponseBodyProjectsSecurity | undefined;
  oidcTokenConfig?: GetProjectsResponseBodyProjectsOidcTokenConfig | undefined;
  /**
   * Project shape. `null` on a rule list clears the project's override for that rule type (fall back to team for every env); omitting is equivalent. Setting `deploymentPolicy` itself to `null` clears every override at once. Kept structurally distinct from {@link TeamDeploymentPolicy} so the two storage locations don't share a type by accident.
   */
  deploymentPolicy?: ResponseBodyDeploymentPolicy | null | undefined;
  tier?: GetProjectsResponseBodyProjectsTier | undefined;
  usageStatus?: ResponseBodyUsageStatus | undefined;
  features?: ResponseBodyFeatures | undefined;
  v0?: boolean | undefined;
  v0Created?: boolean | undefined;
  abuse?: GetProjectsResponseBodyProjectsAbuse | undefined;
  internalRoutes?:
    | Array<
      | GetProjectsInternalRoutesProjectsResponse1
      | GetProjectsInternalRoutesProjectsResponse2
    >
    | undefined;
  hasDeployments?: boolean | undefined;
  dismissedToasts?: Array<ResponseBodyDismissedToasts> | undefined;
  protectedSourcemaps?: boolean | undefined;
  tracing?: ResponseBodyTracing | undefined;
  avatar?: string | null | undefined;
};

/**
 * This object contains information related to the pagination of the current request using continuation tokens. Since CosmosDB doesn't support going to previous pages, only count and next are provided.
 */
export type GetProjectsPagination1 = {
  /**
   * Amount of items in the current page.
   */
  count: number;
  /**
   * Continuation token that must be used to request the next page. Base32 encoded for safe URL transmission.
   */
  next: string | null;
};

export type GetProjectsResponseBodyProjectsPagination =
  | Pagination
  | GetProjectsPagination1;

export type GetProjectsResponseBody3 = {
  projects: Array<GetProjectsResponseBodyProjects>;
  pagination: Pagination | GetProjectsPagination1;
};

export type GetProjectsCreatorProjects4 = {
  type: "system";
};

export type GetProjectsCreatorProjectsIntegration = {
  integrationId: string;
  configurationId: string;
};

export type GetProjectsCreatorProjects3 = {
  type: "integration";
  integration: GetProjectsCreatorProjectsIntegration;
};

export type GetProjectsCreatorProjectsApp = {
  /**
   * The internal ID of the Vercel App backing this principal.
   */
  id: string;
  /**
   * The protocol-facing OAuth client ID. This may differ from {@link id} when Client ID Metadata Documents (CIMD) are used.
   */
  clientId?: string | undefined;
};

export type GetProjectsCreatorProjects2 = {
  type: "app";
  app: GetProjectsCreatorProjectsApp;
};

export type GetProjectsViaProjectsIntegration = {
  integrationId: string;
  configurationId: string;
};

/**
 * Set when a Vercel App or Integration acts on behalf of a {@link User}. Captures user-consented OAuth delegation that the ACL layer may inspect to evaluate scope restrictions. This is NOT for impersonation or token-exchange provenance — those live on `auth.token`, not on the principal.
 */
export type GetProjectsViaProjects2 = {
  type: "integration";
  integration: GetProjectsViaProjectsIntegration;
};

export type GetProjectsViaProjectsApp = {
  /**
   * The internal ID of the Vercel App backing this principal.
   */
  id: string;
  /**
   * The protocol-facing OAuth client ID. This may differ from {@link id} when Client ID Metadata Documents (CIMD) are used.
   */
  clientId?: string | undefined;
};

/**
 * Set when a Vercel App or Integration acts on behalf of a {@link User}. Captures user-consented OAuth delegation that the ACL layer may inspect to evaluate scope restrictions. This is NOT for impersonation or token-exchange provenance — those live on `auth.token`, not on the principal.
 */
export type GetProjectsViaProjects1 = {
  type: "app";
  app: GetProjectsViaProjectsApp;
};

export type GetProjectsCreatorProjectsVia =
  | GetProjectsViaProjects1
  | GetProjectsViaProjects2;

export type GetProjectsCreatorProjectsUser = {
  id: string;
};

export type GetProjectsCreatorProjects1 = {
  type: "user";
  via: GetProjectsViaProjects1 | GetProjectsViaProjects2 | null;
  user: GetProjectsCreatorProjectsUser;
};

export type GetProjectsResponseBodyProjectsResponse200Creator =
  | GetProjectsCreatorProjects1
  | GetProjectsCreatorProjects2
  | GetProjectsCreatorProjects3
  | GetProjectsCreatorProjects4;

export const GetProjectsResponseBodyConfiguredBy = {
  A: "A",
  Cname: "CNAME",
  Dns01: "dns-01",
  Http: "http",
} as const;
export type GetProjectsResponseBodyConfiguredBy = ClosedEnum<
  typeof GetProjectsResponseBodyConfiguredBy
>;

export type GetProjectsResponseBodyProjectsResponse200ApplicationJson2AliasAssigned =
  | number
  | boolean;

export type GetProjectsResponseBodyProjectsResponse200ApplicationJson2AliasError =
  {
    code: string;
    message: string;
  };

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

export type GetProjectsResponseBodyProjectsResponse200ApplicationJson2BranchMatcher =
  {
    /**
     * The type of matching to perform
     */
    type:
      GetProjectsResponseBodyProjectsResponse200ApplicationJson2ProjectsAliasDeploymentType;
    /**
     * The pattern to match against branch names
     */
    pattern: string;
  };

export type GetProjectsResponseBodyProjectsResponse200ApplicationJson2Builds = {
  use: string;
  src?: string | undefined;
  dest?: string | undefined;
};

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

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

export type GetProjectsResponseBodyProjectsResponse200ApplicationJson2ProjectsAliasCreator =
  {
    email: string;
    githubLogin?: string | undefined;
    gitlabLogin?: string | undefined;
    uid: string;
    username: string;
  };

export type GetProjectsResponseBodyProjectsResponse200ApplicationJson2OidcTokenClaims =
  {
    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;
  };

export const GetProjectsResponseBodyProjectsResponse200ApplicationJson2Plan = {
  Enterprise: "enterprise",
  Hobby: "hobby",
  Pro: "pro",
} as const;
export type GetProjectsResponseBodyProjectsResponse200ApplicationJson2Plan =
  ClosedEnum<
    typeof GetProjectsResponseBodyProjectsResponse200ApplicationJson2Plan
  >;

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

export const GetProjectsResponseBodyProjectsResponse200ApplicationJson2ReadySubstate =
  {
    Promoted: "PROMOTED",
    Rolling: "ROLLING",
    Staged: "STAGED",
  } as const;
export type GetProjectsResponseBodyProjectsResponse200ApplicationJson2ReadySubstate =
  ClosedEnum<
    typeof GetProjectsResponseBodyProjectsResponse200ApplicationJson2ReadySubstate
  >;

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

export type GetProjectsResponseBodyDeployment = {
  id: string;
  alias?: Array<string> | undefined;
  aliasAssigned?: number | boolean | null | undefined;
  aliasError?:
    | GetProjectsResponseBodyProjectsResponse200ApplicationJson2AliasError
    | null
    | undefined;
  aliasFinal?: string | null | undefined;
  automaticAliases?: Array<string> | undefined;
  branchMatcher?:
    | GetProjectsResponseBodyProjectsResponse200ApplicationJson2BranchMatcher
    | undefined;
  buildingAt?: number | undefined;
  builds?:
    | Array<GetProjectsResponseBodyProjectsResponse200ApplicationJson2Builds>
    | undefined;
  checksConclusion?:
    | GetProjectsResponseBodyProjectsResponse200ApplicationJson2ChecksConclusion
    | undefined;
  checksState?:
    | GetProjectsResponseBodyProjectsResponse200ApplicationJson2ChecksState
    | undefined;
  connectBuildsEnabled?: boolean | undefined;
  connectConfigurationId?: string | undefined;
  createdAt: number;
  createdIn: string;
  creator:
    | GetProjectsResponseBodyProjectsResponse200ApplicationJson2ProjectsAliasCreator
    | null;
  deletedAt?: number | undefined;
  deploymentHostname: string;
  forced?: boolean | undefined;
  name: string;
  meta?: { [k: string]: string } | undefined;
  monorepoManager?: string | null | undefined;
  oidcTokenClaims?:
    | GetProjectsResponseBodyProjectsResponse200ApplicationJson2OidcTokenClaims
    | undefined;
  plan: GetProjectsResponseBodyProjectsResponse200ApplicationJson2Plan;
  /**
   * Whether or not preview comments are enabled for the deployment
   */
  previewCommentsEnabled?: boolean | undefined;
  private: boolean;
  readyAt?: number | undefined;
  readyState:
    GetProjectsResponseBodyProjectsResponse200ApplicationJson2ReadyState;
  readySubstate?:
    | GetProjectsResponseBodyProjectsResponse200ApplicationJson2ReadySubstate
    | undefined;
  requestedAt?: number | undefined;
  target?: string | null | undefined;
  teamId?: string | null | undefined;
  type:
    GetProjectsResponseBodyProjectsResponse200ApplicationJson2ProjectsAliasType;
  url: string;
  /**
   * Present for user creators; omitted for app/integration/system creators.
   */
  userId?: string | undefined;
  withCache?: boolean | undefined;
};

export const GetProjectsResponseBodyEnvironment = {
  Preview: "preview",
  Production: "production",
} as const;
export type GetProjectsResponseBodyEnvironment = ClosedEnum<
  typeof GetProjectsResponseBodyEnvironment
>;

export const GetProjectsResponseBodyProjectsResponseTarget = {
  Preview: "PREVIEW",
  Production: "PRODUCTION",
  Staging: "STAGING",
} as const;
export type GetProjectsResponseBodyProjectsResponseTarget = ClosedEnum<
  typeof GetProjectsResponseBodyProjectsResponseTarget
>;

export type GetProjectsResponseBodyAlias = {
  configuredBy?: GetProjectsResponseBodyConfiguredBy | null | undefined;
  configuredChangedAt?: number | null | undefined;
  createdAt?: number | null | undefined;
  deployment: GetProjectsResponseBodyDeployment | null;
  domain: string;
  environment: GetProjectsResponseBodyEnvironment;
  gitBranch?: string | null | undefined;
  redirect?: string | null | undefined;
  redirectStatusCode?: number | null | undefined;
  target: GetProjectsResponseBodyProjectsResponseTarget;
};

export type GetProjectsResponseBodyAnalytics = {
  id: string;
  canceledAt?: number | null | undefined;
  disabledAt: number;
  enabledAt: number;
  paidAt?: number | undefined;
  sampleRatePercent?: number | null | undefined;
  spendLimitInDollars?: number | null | undefined;
};

/**
 * Retention policies for deployments. These are enforced at the project level, but we also maintain an instance of this at the team level as a default policy that gets applied to new projects.
 */
export type GetProjectsResponseBodyDeploymentExpiration = {
  /**
   * Number of days to keep non-production deployments (mostly preview deployments) before soft deletion.
   */
  expirationDays?: number | undefined;
  /**
   * Number of days to keep production deployments before soft deletion.
   */
  expirationDaysProduction?: number | undefined;
  /**
   * Number of days to keep canceled deployments before soft deletion.
   */
  expirationDaysCanceled?: number | undefined;
  /**
   * Number of days to keep errored deployments before soft deletion.
   */
  expirationDaysErrored?: number | undefined;
  /**
   * Minimum number of production deployments to keep for this project, even if they are over the production expiration limit.
   */
  deploymentsToKeep?: number | undefined;
};

export type GetProjectsResponseBodyIpBuckets = {
  bucket: string;
  default?: boolean | undefined;
  supportUntil?: number | undefined;
};

export const GetProjectsTargetProjects2 = {
  Development: "development",
  Preview: "preview",
  Production: "production",
} as const;
export type GetProjectsTargetProjects2 = ClosedEnum<
  typeof GetProjectsTargetProjects2
>;

export const GetProjectsTargetProjects1 = {
  Development: "development",
  Preview: "preview",
  Production: "production",
} as const;
export type GetProjectsTargetProjects1 = ClosedEnum<
  typeof GetProjectsTargetProjects1
>;

export type GetProjectsResponseBodyProjectsResponse200Target =
  | Array<GetProjectsTargetProjects1>
  | GetProjectsTargetProjects2;

export const GetProjectsResponseBodyProjectsResponse200ApplicationJson2Type = {
  Encrypted: "encrypted",
  Plain: "plain",
  Secret: "secret",
  Sensitive: "sensitive",
  System: "system",
} as const;
export type GetProjectsResponseBodyProjectsResponse200ApplicationJson2Type =
  ClosedEnum<
    typeof GetProjectsResponseBodyProjectsResponse200ApplicationJson2Type
  >;

/**
 * User-facing config/secret model. When set, authoritative for new code paths. Legacy rows omit this field and callers fall back to existing `type` behavior.
 */
export const GetProjectsResponseBodyProjectsResponseVisibility = {
  Config: "config",
  Secret: "secret",
} as const;
/**
 * User-facing config/secret model. When set, authoritative for new code paths. Legacy rows omit this field and callers fall back to existing `type` behavior.
 */
export type GetProjectsResponseBodyProjectsResponseVisibility = ClosedEnum<
  typeof GetProjectsResponseBodyProjectsResponseVisibility
>;

export type GetProjectsContentHintProjects17 = {
  type: "flags-connection-string";
  projectId: string;
};

export type GetProjectsContentHintProjects16 = {
  type: "integration-store-secret";
  storeId: string;
  integrationId: string;
  integrationProductId: string;
  integrationConfigurationId: string;
};

export type GetProjectsContentHintProjects15 = {
  type: "postgres-url-no-ssl";
  storeId: string;
};

export type GetProjectsContentHintProjects14 = {
  type: "postgres-database";
  storeId: string;
};

export type GetProjectsContentHintProjects13 = {
  type: "postgres-password";
  storeId: string;
};

export type GetProjectsContentHintProjects12 = {
  type: "postgres-host";
  storeId: string;
};

export type GetProjectsContentHintProjects11 = {
  type: "postgres-user";
  storeId: string;
};

export type GetProjectsContentHintProjects10 = {
  type: "postgres-prisma-url";
  storeId: string;
};

export type GetProjectsContentHintProjects9 = {
  type: "postgres-url-non-pooling";
  storeId: string;
};

export type GetProjectsContentHintProjects8 = {
  type: "postgres-url";
  storeId: string;
};

export type GetProjectsContentHintProjects7 = {
  type: "blob-webhook-public-key";
  storeId: string;
};

export type GetProjectsContentHintProjects6 = {
  type: "blob-store-id";
  storeId: string;
};

export type GetProjectsContentHintProjects5 = {
  type: "blob-read-write-token";
  storeId: string;
};

export type GetProjectsContentHintProjects4 = {
  type: "redis-rest-api-read-only-token";
  storeId: string;
};

export type GetProjectsContentHintProjects3 = {
  type: "redis-rest-api-token";
  storeId: string;
};

export type GetProjectsContentHintProjects2 = {
  type: "redis-rest-api-url";
  storeId: string;
};

export type GetProjectsContentHintProjects1 = {
  type: "redis-url";
  storeId: string;
};

export type GetProjectsResponseBodyProjectsResponseContentHint =
  | GetProjectsContentHintProjects1
  | GetProjectsContentHintProjects2
  | GetProjectsContentHintProjects3
  | GetProjectsContentHintProjects4
  | GetProjectsContentHintProjects5
  | GetProjectsContentHintProjects6
  | GetProjectsContentHintProjects7
  | GetProjectsContentHintProjects8
  | GetProjectsContentHintProjects9
  | GetProjectsContentHintProjects10
  | GetProjectsContentHintProjects11
  | GetProjectsContentHintProjects12
  | GetProjectsContentHintProjects13
  | GetProjectsContentHintProjects14
  | GetProjectsContentHintProjects15
  | GetProjectsContentHintProjects16
  | GetProjectsContentHintProjects17;

export const GetProjectsResponseBodyProjectsResponse200ApplicationJson2ProjectsEnvType =
  {
    FlagsSecret: "flags-secret",
  } as const;
export type GetProjectsResponseBodyProjectsResponse200ApplicationJson2ProjectsEnvType =
  ClosedEnum<
    typeof GetProjectsResponseBodyProjectsResponse200ApplicationJson2ProjectsEnvType
  >;

/**
 * Similar to `contentHints`, but should not be exposed to the user.
 */
export type GetProjectsResponseBodyProjectsResponseInternalContentHint = {
  type:
    GetProjectsResponseBodyProjectsResponse200ApplicationJson2ProjectsEnvType;
  /**
   * Contains the `value` of the env variable, encrypted with a special key to make decryption possible in the subscriber Lambda.
   */
  encryptedValue: string;
};

export type GetProjectsResponseBodyEnv = {
  target?:
    | Array<GetProjectsTargetProjects1>
    | GetProjectsTargetProjects2
    | undefined;
  type: GetProjectsResponseBodyProjectsResponse200ApplicationJson2Type;
  /**
   * This is used to identify variables that have been migrated from type secret to sensitive.
   */
  sunsetSecretId?: string | undefined;
  /**
   * Legacy now-encryption ciphertext, present after migration swaps value/vsmValue
   */
  legacyValue?: string | undefined;
  decrypted?: boolean | undefined;
  value: string;
  vsmValue?: string | undefined;
  id?: string | undefined;
  key: string;
  configurationId?: string | null | undefined;
  createdAt?: number | undefined;
  updatedAt?: number | undefined;
  createdBy?: string | null | undefined;
  updatedBy?: string | null | undefined;
  gitBranch?: string | undefined;
  /**
   * User-facing config/secret model. When set, authoritative for new code paths. Legacy rows omit this field and callers fall back to existing `type` behavior.
   */
  visibility?: GetProjectsResponseBodyProjectsResponseVisibility | undefined;
  edgeConfigId?: string | null | undefined;
  edgeConfigTokenId?: string | null | undefined;
  contentHint?:
    | GetProjectsContentHintProjects1
    | GetProjectsContentHintProjects2
    | GetProjectsContentHintProjects3
    | GetProjectsContentHintProjects4
    | GetProjectsContentHintProjects5
    | GetProjectsContentHintProjects6
    | GetProjectsContentHintProjects7
    | GetProjectsContentHintProjects8
    | GetProjectsContentHintProjects9
    | GetProjectsContentHintProjects10
    | GetProjectsContentHintProjects11
    | GetProjectsContentHintProjects12
    | GetProjectsContentHintProjects13
    | GetProjectsContentHintProjects14
    | GetProjectsContentHintProjects15
    | GetProjectsContentHintProjects16
    | GetProjectsContentHintProjects17
    | null
    | undefined;
  /**
   * Similar to `contentHints`, but should not be exposed to the user.
   */
  internalContentHint?:
    | GetProjectsResponseBodyProjectsResponseInternalContentHint
    | null
    | undefined;
  comment?: string | undefined;
  customEnvironmentIds?: Array<string> | undefined;
};

export const GetProjectsResponseBodyFramework = {
  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 GetProjectsResponseBodyFramework = ClosedEnum<
  typeof GetProjectsResponseBodyFramework
>;

export type GetProjectsResponseBodyProjectsResponseAliasAssigned =
  | number
  | boolean;

export type GetProjectsResponseBodyProjectsResponse200AliasError = {
  code: string;
  message: string;
};

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

export type GetProjectsResponseBodyProjectsResponseBranchMatcher = {
  /**
   * The type of matching to perform
   */
  type:
    GetProjectsResponseBodyProjectsResponse200ApplicationJson2ProjectsLatestDeploymentsType;
  /**
   * The pattern to match against branch names
   */
  pattern: string;
};

export type GetProjectsResponseBodyProjectsResponse200Builds = {
  use: string;
  src?: string | undefined;
  dest?: string | undefined;
};

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

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

export type GetProjectsResponseBodyProjectsResponse200ApplicationJson2Creator =
  {
    email: string;
    githubLogin?: string | undefined;
    gitlabLogin?: string | undefined;
    uid: string;
    username: string;
  };

export type GetProjectsResponseBodyProjectsResponse200OidcTokenClaims = {
  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;
};

export const GetProjectsResponseBodyProjectsResponse200Plan = {
  Enterprise: "enterprise",
  Hobby: "hobby",
  Pro: "pro",
} as const;
export type GetProjectsResponseBodyProjectsResponse200Plan = ClosedEnum<
  typeof GetProjectsResponseBodyProjectsResponse200Plan
>;

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

export const GetProjectsResponseBodyProjectsResponse200ReadySubstate = {
  Promoted: "PROMOTED",
  Rolling: "ROLLING",
  Staged: "STAGED",
} as const;
export type GetProjectsResponseBodyProjectsResponse200ReadySubstate =
  ClosedEnum<typeof GetProjectsResponseBodyProjectsResponse200ReadySubstate>;

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

export type GetProjectsResponseBodyLatestDeployments = {
  id: string;
  alias?: Array<string> | undefined;
  aliasAssigned?: number | boolean | null | undefined;
  aliasError?:
    | GetProjectsResponseBodyProjectsResponse200AliasError
    | null
    | undefined;
  aliasFinal?: string | null | undefined;
  automaticAliases?: Array<string> | undefined;
  branchMatcher?:
    | GetProjectsResponseBodyProjectsResponseBranchMatcher
    | undefined;
  buildingAt?: number | undefined;
  builds?: Array<GetProjectsResponseBodyProjectsResponse200Builds> | undefined;
  checksConclusion?:
    | GetProjectsResponseBodyProjectsResponse200ChecksConclusion
    | undefined;
  checksState?:
    | GetProjectsResponseBodyProjectsResponse200ChecksState
    | undefined;
  connectBuildsEnabled?: boolean | undefined;
  connectConfigurationId?: string | undefined;
  createdAt: number;
  createdIn: string;
  creator:
    | GetProjectsResponseBodyProjectsResponse200ApplicationJson2Creator
    | null;
  deletedAt?: number | undefined;
  deploymentHostname: string;
  forced?: boolean | undefined;
  name: string;
  meta?: { [k: string]: string } | undefined;
  monorepoManager?: string | null | undefined;
  oidcTokenClaims?:
    | GetProjectsResponseBodyProjectsResponse200OidcTokenClaims
    | undefined;
  plan: GetProjectsResponseBodyProjectsResponse200Plan;
  /**
   * Whether or not preview comments are enabled for the deployment
   */
  previewCommentsEnabled?: boolean | undefined;
  private: boolean;
  readyAt?: number | undefined;
  readyState: GetProjectsResponseBodyProjectsResponse200ReadyState;
  readySubstate?:
    | GetProjectsResponseBodyProjectsResponse200ReadySubstate
    | undefined;
  requestedAt?: number | undefined;
  target?: string | null | undefined;
  teamId?: string | null | undefined;
  type: GetProjectsResponseBodyProjectsResponse200ApplicationJson2ProjectsType;
  url: string;
  /**
   * Present for user creators; omitted for app/integration/system creators.
   */
  userId?: string | undefined;
  withCache?: boolean | undefined;
};

export type GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2Projects8DeployHooks =
  {
    createdAt?: number | undefined;
    id: string;
    name: string;
    ref: string;
    url: string;
  };

export type GetProjectsLinkProjects8 = {
  /**
   * Owner (namespace) slug, e.g. `acme`.
   */
  owner: string;
  repo: string;
  /**
   * Origin repository id.
   */
  repoId: string;
  /**
   * Origin namespace id (`ns_…`) of the owner.
   */
  ownerId: string;
  type: "cursor-origin";
  createdAt?: number | undefined;
  deployHooks: Array<
    GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2Projects8DeployHooks
  >;
  gitCredentialId: string;
  updatedAt?: number | undefined;
  sourceless?: boolean | undefined;
  productionBranch: string;
};

export type GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2Projects7DeployHooks =
  {
    createdAt?: number | undefined;
    id: string;
    name: string;
    ref: string;
    url: string;
  };

export type GetProjectsLinkProjects7 = {
  org: string;
  repo: string;
  repoId: string;
  type: "v0";
  createdAt?: number | undefined;
  deployHooks: Array<
    GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2Projects7DeployHooks
  >;
  gitCredentialId: string;
  updatedAt?: number | undefined;
  sourceless?: boolean | undefined;
  productionBranch: string;
};

export type GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2Projects6DeployHooks =
  {
    createdAt?: number | undefined;
    id: string;
    name: string;
    ref: string;
    url: string;
  };

export type GetProjectsLinkProjects6 = {
  org: string;
  repo: string;
  repoId: string;
  type: "vercel";
  createdAt?: number | undefined;
  deployHooks: Array<
    GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2Projects6DeployHooks
  >;
  gitCredentialId: string;
  updatedAt?: number | undefined;
  sourceless?: boolean | undefined;
  productionBranch: string;
};

export type GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2Projects5DeployHooks =
  {
    createdAt?: number | undefined;
    id: string;
    name: string;
    ref: string;
    url: string;
  };

export type GetProjectsLinkProjects5 = {
  name: string;
  slug: string;
  owner: string;
  type: "bitbucket";
  uuid: string;
  workspaceUuid: string;
  createdAt?: number | undefined;
  deployHooks: Array<
    GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2Projects5DeployHooks
  >;
  gitCredentialId: string;
  updatedAt?: number | undefined;
  sourceless?: boolean | undefined;
  productionBranch: string;
};

export type GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2Projects4DeployHooks =
  {
    createdAt?: number | undefined;
    id: string;
    name: string;
    ref: string;
    url: string;
  };

export type GetProjectsLinkProjects4 = {
  projectId: string;
  projectName: string;
  projectNameWithNamespace: string;
  projectNamespace: string;
  /**
   * A new field, should be included in all new project links, is being added just in time when a deployment is created. This is needed for Protected Git scopes. This is the id of the top level group that a namespace belongs to. Gitlab supports group nesting (up to 20 levels).
   */
  projectOwnerId?: number | undefined;
  projectUrl: string;
  type: "gitlab";
  createdAt?: number | undefined;
  deployHooks: Array<
    GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2Projects4DeployHooks
  >;
  gitCredentialId: string;
  updatedAt?: number | undefined;
  sourceless?: boolean | undefined;
  productionBranch: string;
};

export type GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2Projects3DeployHooks =
  {
    createdAt?: number | undefined;
    id: string;
    name: string;
    ref: string;
    url: string;
  };

export type GetProjectsLinkProjects3 = {
  org: string;
  /**
   * A new field, should be included in all new project links, is being added just in time when a deployment is created. This is needed for Protected Git scopes.
   */
  repoOwnerId?: number | undefined;
  repo?: string | undefined;
  repoId?: number | undefined;
  type: "github-custom-host";
  host: string;
  createdAt?: number | undefined;
  deployHooks: Array<
    GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2Projects3DeployHooks
  >;
  gitCredentialId: string;
  updatedAt?: number | undefined;
  sourceless?: boolean | undefined;
  productionBranch: string;
};

export type GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2ProjectsDeployHooks =
  {
    createdAt?: number | undefined;
    id: string;
    name: string;
    ref: string;
    url: string;
  };

export type GetProjectsLinkProjects2 = {
  type: "github-limited";
  repo?: string | undefined;
  repoId?: number | undefined;
  createdAt?: number | undefined;
  updatedAt?: number | undefined;
  org: string;
  /**
   * A new field, should be included in all new project links, is being added just in time when a deployment is created. This is needed for Protected Git scopes.
   */
  repoOwnerId?: number | undefined;
  deployHooks: Array<
    GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2ProjectsDeployHooks
  >;
  gitCredentialId: string;
  sourceless?: boolean | undefined;
  productionBranch: string;
};

export type GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2DeployHooks =
  {
    createdAt?: number | undefined;
    id: string;
    name: string;
    ref: string;
    url: string;
  };

export type GetProjectsLinkProjects1 = {
  org: string;
  /**
   * A new field, should be included in all new project links, is being added just in time when a deployment is created. This is needed for Protected Git scopes.
   */
  repoOwnerId?: number | undefined;
  repo?: string | undefined;
  repoId?: number | undefined;
  type: "github";
  createdAt?: number | undefined;
  deployHooks: Array<
    GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2DeployHooks
  >;
  gitCredentialId: string;
  updatedAt?: number | undefined;
  sourceless?: boolean | undefined;
  productionBranch: string;
};

export type GetProjectsResponseBodyLink =
  | GetProjectsLinkProjects1
  | GetProjectsLinkProjects2
  | GetProjectsLinkProjects3
  | GetProjectsLinkProjects4
  | GetProjectsLinkProjects5
  | GetProjectsLinkProjects6
  | GetProjectsLinkProjects7
  | GetProjectsLinkProjects8;

export const GetProjectsResponseBodyProjectsNodeVersion = {
  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 GetProjectsResponseBodyProjectsNodeVersion = ClosedEnum<
  typeof GetProjectsResponseBodyProjectsNodeVersion
>;

export type GetProjectsResponseBodyPasswordProtection = {};

export const GetProjectsResponseBodyProjectsDeploymentType = {
  All: "all",
  AllExceptCustomDomains: "all_except_custom_domains",
  Preview: "preview",
  ProdDeploymentUrlsAndAllPreviews: "prod_deployment_urls_and_all_previews",
} as const;
export type GetProjectsResponseBodyProjectsDeploymentType = ClosedEnum<
  typeof GetProjectsResponseBodyProjectsDeploymentType
>;

export type GetProjectsResponseBodyPassport = {
  deploymentType: GetProjectsResponseBodyProjectsDeploymentType;
  connectorId: string;
};

export const GetProjectsResponseBodyFunctionDefaultMemoryType = {
  Performance: "performance",
  PerformanceXl: "performance_xl",
  Standard: "standard",
  StandardLegacy: "standard_legacy",
} as const;
export type GetProjectsResponseBodyFunctionDefaultMemoryType = ClosedEnum<
  typeof GetProjectsResponseBodyFunctionDefaultMemoryType
>;

export const GetProjectsResponseBodyBuildMachineType = {
  Basic: "basic",
  Enhanced: "enhanced",
  Standard: "standard",
  Turbo: "turbo",
} as const;
export type GetProjectsResponseBodyBuildMachineType = ClosedEnum<
  typeof GetProjectsResponseBodyBuildMachineType
>;

export const GetProjectsResponseBodyBuildMachineSelection = {
  Elastic: "elastic",
  Fixed: "fixed",
} as const;
export type GetProjectsResponseBodyBuildMachineSelection = ClosedEnum<
  typeof GetProjectsResponseBodyBuildMachineSelection
>;

export const GetProjectsResponseBodyBuildMachineElasticReason = {
  BasicFloor: "basic-floor",
  BuildTimeoutFailure: "build-timeout-failure",
  EnospcFailure: "enospc-failure",
  EnterpriseFloor: "enterprise-floor",
  HighPeakDisk: "high-peak-disk",
  HighPeakMemory: "high-peak-memory",
  LongBuildDuration: "long-build-duration",
  OomFailure: "oom-failure",
  ShortBuildDuration: "short-build-duration",
  SustainedHighCpu: "sustained-high-cpu",
} as const;
export type GetProjectsResponseBodyBuildMachineElasticReason = ClosedEnum<
  typeof GetProjectsResponseBodyBuildMachineElasticReason
>;

export const GetProjectsResponseBodyProjectsConfiguration = {
  SkipNamespaceQueue: "SKIP_NAMESPACE_QUEUE",
  WaitForNamespaceQueue: "WAIT_FOR_NAMESPACE_QUEUE",
} as const;
export type GetProjectsResponseBodyProjectsConfiguration = ClosedEnum<
  typeof GetProjectsResponseBodyProjectsConfiguration
>;

export type GetProjectsResponseBodyBuildQueue = {
  configuration?: GetProjectsResponseBodyProjectsConfiguration | undefined;
};

export type GetProjectsResponseBodyProjectsResourceConfig = {
  elasticConcurrencyEnabled?: boolean | undefined;
  fluid?: boolean | undefined;
  functionDefaultRegions: Array<string>;
  functionDefaultTimeout?: number | undefined;
  functionDefaultMemoryType?:
    | GetProjectsResponseBodyFunctionDefaultMemoryType
    | undefined;
  functionZeroConfigFailover?: boolean | undefined;
  buildMachineType?: GetProjectsResponseBodyBuildMachineType | undefined;
  buildMachineSelection?:
    | GetProjectsResponseBodyBuildMachineSelection
    | undefined;
  buildMachineElasticLastUpdated?: number | undefined;
  buildMachineElasticReason?:
    | GetProjectsResponseBodyBuildMachineElasticReason
    | undefined;
  isNSNBDisabled?: boolean | undefined;
  buildQueue?: GetProjectsResponseBodyBuildQueue | undefined;
  enableFunctionsBeta?: boolean | undefined;
};

/**
 * An array of all the stages required during a deployment release. Each stage defines a target percentage and advancement rules. The final stage must always have targetPercentage: 100.
 */
export type GetProjectsResponseBodyStages = {
  /**
   * The percentage of traffic to serve to the canary deployment (0-100)
   */
  targetPercentage: number;
  /**
   * Whether or not this stage requires manual approval to proceed
   */
  requireApproval?: boolean | undefined;
  /**
   * Duration in minutes for automatic advancement to the next stage
   */
  duration?: number | undefined;
  /**
   * Whether to linearly shift traffic over the duration of this stage
   */
  linearShift?: boolean | undefined;
};

/**
 * The metric this check evaluates.
 */
export const GetProjectsResponseBodyProjectsResponse200ApplicationJson2ProjectsRollingReleaseType =
  {
    ErrorRate5xx: "error-rate-5xx",
  } as const;
/**
 * The metric this check evaluates.
 */
export type GetProjectsResponseBodyProjectsResponse200ApplicationJson2ProjectsRollingReleaseType =
  ClosedEnum<
    typeof GetProjectsResponseBodyProjectsResponse200ApplicationJson2ProjectsRollingReleaseType
  >;

/**
 * The checks to evaluate. An empty array means nothing is evaluated.
 */
export type GetProjectsResponseBodyProjectsChecks = {
  /**
   * The metric this check evaluates.
   */
  type:
    GetProjectsResponseBodyProjectsResponse200ApplicationJson2ProjectsRollingReleaseType;
  /**
   * Minimum number of requests required in the window before the check can fail. Below this, the check is inconclusive rather than failing, so low-traffic stages don't gate on noise. Defaults to `100` when omitted.
   */
  minSampleSize?: number | undefined;
  /**
   * Response status codes to ignore entirely — dropped from both the numerator (errors) and the denominator (total requests). Defaults to `[]` when omitted.
   */
  excludeStatusCodes?: Array<number> | undefined;
  /**
   * Request paths to ignore entirely — dropped from both the numerator (errors) and the denominator (total requests). Matched exactly against the request path with any query string removed; no prefix or glob matching. Defaults to `[]` when omitted.
   */
  excludePaths?: Array<string> | undefined;
  /**
   * Seconds of ingest lag to allow for: the query's upper bound is `now() - this value`, so the check never reads a window that is still filling. Defaults to `30` when omitted.
   */
  ingestWatermarkSeconds?: number | undefined;
};

/**
 * What to do when the gate trips: pause the rollout, or roll it back.
 */
export const GetProjectsResponseBodyProjectsResponse200ApplicationJson2Action =
  {
    Pause: "pause",
    Rollback: "rollback",
  } as const;
/**
 * What to do when the gate trips: pause the rollout, or roll it back.
 */
export type GetProjectsResponseBodyProjectsResponse200ApplicationJson2Action =
  ClosedEnum<
    typeof GetProjectsResponseBodyProjectsResponse200ApplicationJson2Action
  >;

/**
 * Automated gating configuration. Omitted (the default) means no gating is configured, which is equivalent to `enabled: false`.
 */
export type GetProjectsResponseBodyGate = {
  /**
   * Whether automated gating is enabled for this project's rollouts.
   */
  enabled: boolean;
  /**
   * The checks to evaluate. An empty array means nothing is evaluated.
   */
  checks: Array<GetProjectsResponseBodyProjectsChecks>;
  /**
   * How many failing evaluations within {@link windowSize} trip the gate. Defaults to `3` when omitted.
   */
  failureThreshold?: number | undefined;
  /**
   * How many of the most recent evaluations {@link failureThreshold} is counted against. Defaults to `5` when omitted.
   */
  windowSize?: number | undefined;
  /**
   * What to do when the gate trips: pause the rollout, or roll it back.
   */
  action: GetProjectsResponseBodyProjectsResponse200ApplicationJson2Action;
  /**
   * When true, a tripped gate is only reported — {@link action} is not taken.
   */
  dryRun: boolean;
};

/**
 * Project-level rolling release configuration that defines how deployments should be gradually rolled out
 */
export type GetProjectsResponseBodyRollingRelease = {
  /**
   * The environment that the release targets, currently only supports production. Adding in case we want to configure with alias groups or custom environments.
   */
  target: string;
  /**
   * An array of all the stages required during a deployment release. Each stage defines a target percentage and advancement rules. The final stage must always have targetPercentage: 100.
   */
  stages?: Array<GetProjectsResponseBodyStages> | null | undefined;
  /**
   * Whether the request served by a canary deployment should return a header indicating a canary was served. Defaults to `false` when omitted.
   */
  canaryResponseHeader?: boolean | undefined;
  /**
   * Automated gating configuration. Omitted (the default) means no gating is configured, which is equivalent to `enabled: false`.
   */
  gate?: GetProjectsResponseBodyGate | undefined;
};

export type GetProjectsResponseBodySpeedInsights = {
  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 const GetProjectsResponseBodyProjectsResponseDeploymentType = {
  All: "all",
  AllExceptCustomDomains: "all_except_custom_domains",
  Preview: "preview",
  ProdDeploymentUrlsAndAllPreviews: "prod_deployment_urls_and_all_previews",
} as const;
export type GetProjectsResponseBodyProjectsResponseDeploymentType = ClosedEnum<
  typeof GetProjectsResponseBodyProjectsResponseDeploymentType
>;

export const GetProjectsResponseBodyCve55182MigrationAppliedFrom = {
  All: "all",
  AllExceptCustomDomains: "all_except_custom_domains",
  Preview: "preview",
  ProdDeploymentUrlsAndAllPreviews: "prod_deployment_urls_and_all_previews",
} as const;
export type GetProjectsResponseBodyCve55182MigrationAppliedFrom = ClosedEnum<
  typeof GetProjectsResponseBodyCve55182MigrationAppliedFrom
>;

export const GetProjectsResponseBodyApril2026SecurityIncidentMigrationAppliedFrom =
  {
    All: "all",
    AllExceptCustomDomains: "all_except_custom_domains",
    Preview: "preview",
    ProdDeploymentUrlsAndAllPreviews: "prod_deployment_urls_and_all_previews",
  } as const;
export type GetProjectsResponseBodyApril2026SecurityIncidentMigrationAppliedFrom =
  ClosedEnum<
    typeof GetProjectsResponseBodyApril2026SecurityIncidentMigrationAppliedFrom
  >;

export type GetProjectsResponseBodySsoProtection = {
  deploymentType: GetProjectsResponseBodyProjectsResponseDeploymentType;
  cve55182MigrationAppliedFrom?:
    | GetProjectsResponseBodyCve55182MigrationAppliedFrom
    | null
    | undefined;
  april2026SecurityIncidentMigrationAppliedFrom?:
    | GetProjectsResponseBodyApril2026SecurityIncidentMigrationAppliedFrom
    | null
    | undefined;
};

export type GetProjectsResponseBodyProjectsResponse200AliasAssigned =
  | number
  | boolean;

export type GetProjectsResponseBodyProjectsResponse200ApplicationJSONAliasError =
  {
    code: string;
    message: string;
  };

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

export type GetProjectsResponseBodyProjectsResponse200BranchMatcher = {
  /**
   * The type of matching to perform
   */
  type:
    GetProjectsResponseBodyProjectsResponse200ApplicationJson2ProjectsTargetsBranchMatcherType;
  /**
   * The pattern to match against branch names
   */
  pattern: string;
};

export type GetProjectsResponseBodyProjectsResponse200ApplicationJSONBuilds = {
  use: string;
  src?: string | undefined;
  dest?: string | undefined;
};

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

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

export type GetProjectsResponseBodyProjectsResponse200ApplicationJson2ProjectsCreator =
  {
    email: string;
    githubLogin?: string | undefined;
    gitlabLogin?: string | undefined;
    uid: string;
    username: string;
  };

export type GetProjectsResponseBodyProjectsResponse200ApplicationJSONOidcTokenClaims =
  {
    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;
  };

export const GetProjectsResponseBodyProjectsResponse200ApplicationJSONPlan = {
  Enterprise: "enterprise",
  Hobby: "hobby",
  Pro: "pro",
} as const;
export type GetProjectsResponseBodyProjectsResponse200ApplicationJSONPlan =
  ClosedEnum<
    typeof GetProjectsResponseBodyProjectsResponse200ApplicationJSONPlan
  >;

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

export const GetProjectsResponseBodyProjectsResponse200ApplicationJSONReadySubstate =
  {
    Promoted: "PROMOTED",
    Rolling: "ROLLING",
    Staged: "STAGED",
  } as const;
export type GetProjectsResponseBodyProjectsResponse200ApplicationJSONReadySubstate =
  ClosedEnum<
    typeof GetProjectsResponseBodyProjectsResponse200ApplicationJSONReadySubstate
  >;

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

export type GetProjectsResponseBodyTargets = {
  id: string;
  alias?: Array<string> | undefined;
  aliasAssigned?: number | boolean | null | undefined;
  aliasError?:
    | GetProjectsResponseBodyProjectsResponse200ApplicationJSONAliasError
    | null
    | undefined;
  aliasFinal?: string | null | undefined;
  automaticAliases?: Array<string> | undefined;
  branchMatcher?:
    | GetProjectsResponseBodyProjectsResponse200BranchMatcher
    | undefined;
  buildingAt?: number | undefined;
  builds?:
    | Array<GetProjectsResponseBodyProjectsResponse200ApplicationJSONBuilds>
    | undefined;
  checksConclusion?:
    | GetProjectsResponseBodyProjectsResponse200ApplicationJSONChecksConclusion
    | undefined;
  checksState?:
    | GetProjectsResponseBodyProjectsResponse200ApplicationJSONChecksState
    | undefined;
  connectBuildsEnabled?: boolean | undefined;
  connectConfigurationId?: string | undefined;
  createdAt: number;
  createdIn: string;
  creator:
    | GetProjectsResponseBodyProjectsResponse200ApplicationJson2ProjectsCreator
    | null;
  deletedAt?: number | undefined;
  deploymentHostname: string;
  forced?: boolean | undefined;
  name: string;
  meta?: { [k: string]: string } | undefined;
  monorepoManager?: string | null | undefined;
  oidcTokenClaims?:
    | GetProjectsResponseBodyProjectsResponse200ApplicationJSONOidcTokenClaims
    | undefined;
  plan: GetProjectsResponseBodyProjectsResponse200ApplicationJSONPlan;
  /**
   * Whether or not preview comments are enabled for the deployment
   */
  previewCommentsEnabled?: boolean | undefined;
  private: boolean;
  readyAt?: number | undefined;
  readyState:
    GetProjectsResponseBodyProjectsResponse200ApplicationJSONReadyState;
  readySubstate?:
    | GetProjectsResponseBodyProjectsResponse200ApplicationJSONReadySubstate
    | undefined;
  requestedAt?: number | undefined;
  target?: string | null | undefined;
  teamId?: string | null | undefined;
  type:
    GetProjectsResponseBodyProjectsResponse200ApplicationJson2ProjectsTargetsType;
  url: string;
  /**
   * Present for user creators; omitted for app/integration/system creators.
   */
  userId?: string | undefined;
  withCache?: boolean | undefined;
};

export const GetProjectsFromProjectsResponse200Preset = {
  AllCustom: "all-custom",
} as const;
export type GetProjectsFromProjectsResponse200Preset = ClosedEnum<
  typeof GetProjectsFromProjectsResponse200Preset
>;

/**
 * The source envs on the trusted project that are allowed to access `to`.
 */
export type GetProjectsFromProjects2 = {
  /**
   * System environment slugs (`production`, `preview`) and/or custom environment slugs defined on the referenced project.
   */
  slugs?: Array<string> | undefined;
  preset: GetProjectsFromProjectsResponse200Preset;
};

export const GetProjectsFromProjectsResponsePreset = {
  AllCustom: "all-custom",
} as const;
export type GetProjectsFromProjectsResponsePreset = ClosedEnum<
  typeof GetProjectsFromProjectsResponsePreset
>;

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

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

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

/** @internal */
export const GetProjectsInternalRoutesProjectsResponse2$inboundSchema:
  z.ZodType<GetProjectsInternalRoutesProjectsResponse2, z.ZodTypeDef, unknown> =
    z.object({
      has: z.array(GetProjectsInternalRoutesProjectsResponseHas$inboundSchema),
      mitigate: z.lazy(() =>
        GetProjectsInternalRoutesProjectsResponseMitigate$inboundSchema
      ),
      src: types.optional(types.string()),
    });

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

/** @internal */
export const GetProjectsInternalRoutesProjectsResponse1$inboundSchema:
  z.ZodType<GetProjectsInternalRoutesProjectsResponse1, z.ZodTypeDef, unknown> =
    z.object({
      src: types.string(),
      status: types.number(),
      expiry: types.optional(types.number()),
    });

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

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

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

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

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

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

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

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

/** @internal */
export const GetProjectsValue3$inboundSchema: z.ZodType<
  GetProjectsValue3,
  z.ZodTypeDef,
  unknown
> = z.object({
  previousValue: smartUnion([types.string(), types.number(), types.boolean()]),
  currentValue: smartUnion([types.string(), types.number(), types.boolean()]),
});

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

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

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

/** @internal */
export const ResponseBodyDismissedToasts$inboundSchema: z.ZodType<
  ResponseBodyDismissedToasts,
  z.ZodTypeDef,
  unknown
> = z.object({
  key: types.string(),
  dismissedAt: types.number(),
  action: GetProjectsResponseBodyProjectsResponse200Action$inboundSchema,
  value: types.nullable(
    smartUnion([
      z.lazy(() => GetProjectsValue3$inboundSchema),
      types.string(),
      types.number(),
      types.boolean(),
    ]),
  ),
});

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

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

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

/** @internal */
export const ResponseBodySamplingRules$inboundSchema: z.ZodType<
  ResponseBodySamplingRules,
  z.ZodTypeDef,
  unknown
> = z.object({
  rate: types.number(),
  env: types.optional(GetProjectsResponseBodyProjectsResponseEnv$inboundSchema),
  requestPath: types.optional(types.string()),
  destination: types.optional(GetProjectsResponseBodyDestination$inboundSchema),
});

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

/** @internal */
export const ResponseBodyTracing$inboundSchema: z.ZodType<
  ResponseBodyTracing,
  z.ZodTypeDef,
  unknown
> = z.object({
  domains: types.optional(types.string()),
  ignorePaths: types.optional(z.array(types.string())),
  samplingRules: types.optional(
    z.array(z.lazy(() => ResponseBodySamplingRules$inboundSchema)),
  ),
});

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

/** @internal */
export const GetProjectsResponseBodyProjects$inboundSchema: z.ZodType<
  GetProjectsResponseBodyProjects,
  z.ZodTypeDef,
  unknown
> = z.object({
  accountId: types.string(),
  creator: types.optional(
    GetProjectsResponseBodyProjectsResponse200ApplicationJSONCreator$inboundSchema,
  ),
  alias: z.array(GetProjectsResponseBodyProjectsAlias$inboundSchema),
  analytics: types.optional(
    GetProjectsResponseBodyProjectsAnalytics$inboundSchema,
  ),
  appliedCve55182Migration: types.optional(types.boolean()),
  speedInsights: types.optional(
    GetProjectsResponseBodyProjectsSpeedInsights$inboundSchema,
  ),
  autoExposeSystemEnvs: types.optional(types.boolean()),
  autoAssignCustomDomains: types.optional(types.boolean()),
  autoAssignCustomDomainsUpdatedBy: types.optional(types.string()),
  buildCommand: z.nullable(types.string()).optional(),
  commandForIgnoringBuildStep: z.nullable(types.string()).optional(),
  connectConfigurations: z.nullable(
    z.array(ResponseBodyConnectConfigurations$inboundSchema),
  ).optional(),
  connectConfigurationId: z.nullable(types.string()).optional(),
  connectBuildsEnabled: types.optional(types.boolean()),
  passiveConnectConfigurationId: z.nullable(types.string()).optional(),
  createdAt: types.optional(types.number()),
  customerSupportCodeVisibility: types.optional(types.boolean()),
  crons: types.optional(GetProjectsResponseBodyCrons$inboundSchema),
  dataCache: types.optional(ResponseBodyDataCache$inboundSchema),
  deploymentExpiration:
    GetProjectsResponseBodyProjectsDeploymentExpiration$inboundSchema,
  expiration: types.optional(ResponseBodyExpiration$inboundSchema),
  devCommand: z.nullable(types.string()).optional(),
  directoryListing: types.boolean(),
  installCommand: z.nullable(types.string()).optional(),
  env: types.optional(
    z.array(GetProjectsResponseBodyProjectsEnv$inboundSchema),
  ),
  customEnvironments: types.optional(
    z.array(ResponseBodyCustomEnvironments$inboundSchema),
  ),
  framework: z.nullable(GetProjectsResponseBodyProjectsFramework$inboundSchema)
    .optional(),
  services: types.optional(
    z.array(GetProjectsResponseBodyServices$inboundSchema),
  ),
  gitForkProtection: types.optional(types.boolean()),
  gitLFS: types.optional(types.boolean()),
  id: types.string(),
  ipBuckets: types.optional(
    z.array(GetProjectsResponseBodyProjectsIpBuckets$inboundSchema),
  ),
  jobs: types.optional(ResponseBodyJobs$inboundSchema),
  latestDeployments: types.optional(
    z.array(GetProjectsResponseBodyProjectsLatestDeployments$inboundSchema),
  ),
  link: types.optional(GetProjectsResponseBodyProjectsLink$inboundSchema),
  blobs: types.optional(ResponseBodyBlobs$inboundSchema),
  microfrontends: types.optional(
    GetProjectsResponseBodyMicrofrontends$inboundSchema,
  ),
  name: types.string(),
  nodeVersion: GetProjectsResponseBodyProjectsResponseNodeVersion$inboundSchema,
  optionsAllowlist: z.nullable(ResponseBodyOptionsAllowlist$inboundSchema)
    .optional(),
  outputDirectory: z.nullable(types.string()).optional(),
  passwordProtection: z.nullable(
    GetProjectsResponseBodyProjectsPasswordProtection$inboundSchema,
  ).optional(),
  passport: z.nullable(GetProjectsResponseBodyProjectsPassport$inboundSchema)
    .optional(),
  protectionConfig: types.optional(ResponseBodyProtectionConfig$inboundSchema),
  sandbox: types.optional(ResponseBodySandbox$inboundSchema),
  productionDeploymentsFastLane: types.optional(types.boolean()),
  resourceConfig:
    GetProjectsResponseBodyProjectsResponseResourceConfig$inboundSchema,
  rollbackDescription: types.optional(
    ResponseBodyRollbackDescription$inboundSchema,
  ),
  rollingRelease: z.nullable(
    GetProjectsResponseBodyProjectsRollingRelease$inboundSchema,
  ).optional(),
  defaultResourceConfig: ResponseBodyDefaultResourceConfig$inboundSchema,
  rootDirectory: z.nullable(types.string()).optional(),
  serverlessFunctionZeroConfigFailover: types.optional(types.boolean()),
  skewProtectionBoundaryAt: types.optional(types.number()),
  skewProtectionMaxAge: types.optional(types.number()),
  skewProtectionAllowedDomains: types.optional(z.array(types.string())),
  skipGitConnectDuringLink: types.optional(types.boolean()),
  staticIps: types.optional(ResponseBodyStaticIps$inboundSchema),
  sourceFilesOutsideRootDirectory: types.optional(types.boolean()),
  enableAffectedProjectsDeployments: types.optional(types.boolean()),
  enableExternalRewriteCaching: types.optional(types.boolean()),
  ssoProtection: z.nullable(
    GetProjectsResponseBodyProjectsSsoProtection$inboundSchema,
  ).optional(),
  targets: types.optional(
    z.record(
      types.nullable(GetProjectsResponseBodyProjectsTargets$inboundSchema),
    ),
  ),
  transferCompletedAt: types.optional(types.number()),
  transferStartedAt: types.optional(types.number()),
  transferToAccountId: types.optional(types.string()),
  transferredFromAccountId: types.optional(types.string()),
  updatedAt: types.optional(types.number()),
  live: types.optional(types.boolean()),
  enablePreviewFeedback: z.nullable(types.boolean()).optional(),
  enableProductionFeedback: z.nullable(types.boolean()).optional(),
  permissions: types.optional(ResponseBodyPermissions$inboundSchema),
  lastRollbackTarget: z.nullable(ResponseBodyLastRollbackTarget$inboundSchema)
    .optional(),
  lastAliasRequest: z.nullable(ResponseBodyLastAliasRequest$inboundSchema)
    .optional(),
  protectionBypass: types.optional(
    z.record(ResponseBodyProtectionBypass$inboundSchema),
  ),
  hasActiveBranches: types.optional(types.boolean()),
  trustedIps: z.nullable(ResponseBodyTrustedIps$inboundSchema).optional(),
  trustedSources: z.nullable(
    GetProjectsResponseBodyProjectsTrustedSources$inboundSchema,
  ).optional(),
  gitComments: types.optional(
    GetProjectsResponseBodyProjectsGitComments$inboundSchema,
  ),
  gitProviderOptions: types.optional(
    GetProjectsResponseBodyProjectsGitProviderOptions$inboundSchema,
  ),
  paused: types.optional(types.boolean()),
  concurrencyBucketName: types.optional(types.string()),
  webAnalytics: types.optional(
    GetProjectsResponseBodyProjectsWebAnalytics$inboundSchema,
  ),
  security: types.optional(
    GetProjectsResponseBodyProjectsSecurity$inboundSchema,
  ),
  oidcTokenConfig: types.optional(
    GetProjectsResponseBodyProjectsOidcTokenConfig$inboundSchema,
  ),
  deploymentPolicy: z.nullable(ResponseBodyDeploymentPolicy$inboundSchema)
    .optional(),
  tier: types.optional(GetProjectsResponseBodyProjectsTier$inboundSchema),
  usageStatus: types.optional(ResponseBodyUsageStatus$inboundSchema),
  features: types.optional(ResponseBodyFeatures$inboundSchema),
  v0: types.optional(types.boolean()),
  v0Created: types.optional(types.boolean()),
  abuse: types.optional(GetProjectsResponseBodyProjectsAbuse$inboundSchema),
  internalRoutes: types.optional(
    z.array(smartUnion([
      z.lazy(() => GetProjectsInternalRoutesProjectsResponse1$inboundSchema),
      z.lazy(() =>
        GetProjectsInternalRoutesProjectsResponse2$inboundSchema
      ),
    ])),
  ),
  hasDeployments: types.optional(types.boolean()),
  dismissedToasts: types.optional(
    z.array(z.lazy(() => ResponseBodyDismissedToasts$inboundSchema)),
  ),
  protectedSourcemaps: types.optional(types.boolean()),
  tracing: types.optional(z.lazy(() => ResponseBodyTracing$inboundSchema)),
  avatar: z.nullable(types.string()).optional(),
});

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

/** @internal */
export const GetProjectsPagination1$inboundSchema: z.ZodType<
  GetProjectsPagination1,
  z.ZodTypeDef,
  unknown
> = z.object({
  count: types.number(),
  next: types.nullable(types.string()),
});

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

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

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

/** @internal */
export const GetProjectsResponseBody3$inboundSchema: z.ZodType<
  GetProjectsResponseBody3,
  z.ZodTypeDef,
  unknown
> = z.object({
  projects: z.array(
    z.lazy(() => GetProjectsResponseBodyProjects$inboundSchema),
  ),
  pagination: smartUnion([
    Pagination$inboundSchema,
    z.lazy(() => GetProjectsPagination1$inboundSchema),
  ]),
});

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

/** @internal */
export const GetProjectsCreatorProjects4$inboundSchema: z.ZodType<
  GetProjectsCreatorProjects4,
  z.ZodTypeDef,
  unknown
> = z.object({
  type: types.literal("system"),
});

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

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

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

/** @internal */
export const GetProjectsCreatorProjects3$inboundSchema: z.ZodType<
  GetProjectsCreatorProjects3,
  z.ZodTypeDef,
  unknown
> = z.object({
  type: types.literal("integration"),
  integration: z.lazy(() =>
    GetProjectsCreatorProjectsIntegration$inboundSchema
  ),
});

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

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

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

/** @internal */
export const GetProjectsCreatorProjects2$inboundSchema: z.ZodType<
  GetProjectsCreatorProjects2,
  z.ZodTypeDef,
  unknown
> = z.object({
  type: types.literal("app"),
  app: z.lazy(() => GetProjectsCreatorProjectsApp$inboundSchema),
});

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

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

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

/** @internal */
export const GetProjectsViaProjects2$inboundSchema: z.ZodType<
  GetProjectsViaProjects2,
  z.ZodTypeDef,
  unknown
> = z.object({
  type: types.literal("integration"),
  integration: z.lazy(() => GetProjectsViaProjectsIntegration$inboundSchema),
});

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

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

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

/** @internal */
export const GetProjectsViaProjects1$inboundSchema: z.ZodType<
  GetProjectsViaProjects1,
  z.ZodTypeDef,
  unknown
> = z.object({
  type: types.literal("app"),
  app: z.lazy(() => GetProjectsViaProjectsApp$inboundSchema),
});

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

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

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

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

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

/** @internal */
export const GetProjectsCreatorProjects1$inboundSchema: z.ZodType<
  GetProjectsCreatorProjects1,
  z.ZodTypeDef,
  unknown
> = z.object({
  type: types.literal("user"),
  via: types.nullable(
    z.union([
      z.lazy(() => GetProjectsViaProjects1$inboundSchema),
      z.lazy(() => GetProjectsViaProjects2$inboundSchema),
    ]),
  ),
  user: z.lazy(() => GetProjectsCreatorProjectsUser$inboundSchema),
});

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

/** @internal */
export const GetProjectsResponseBodyProjectsResponse200Creator$inboundSchema:
  z.ZodType<
    GetProjectsResponseBodyProjectsResponse200Creator,
    z.ZodTypeDef,
    unknown
  > = z.union([
    z.lazy(() => GetProjectsCreatorProjects1$inboundSchema),
    z.lazy(() => GetProjectsCreatorProjects2$inboundSchema),
    z.lazy(() => GetProjectsCreatorProjects3$inboundSchema),
    z.lazy(() => GetProjectsCreatorProjects4$inboundSchema),
  ]);

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

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

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

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

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

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

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

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

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

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

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

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

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

/** @internal */
export const GetProjectsResponseBodyProjectsResponse200ApplicationJson2ProjectsAliasCreator$inboundSchema:
  z.ZodType<
    GetProjectsResponseBodyProjectsResponse200ApplicationJson2ProjectsAliasCreator,
    z.ZodTypeDef,
    unknown
  > = z.object({
    email: types.string(),
    githubLogin: types.optional(types.string()),
    gitlabLogin: types.optional(types.string()),
    uid: types.string(),
    username: types.string(),
  });

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

/** @internal */
export const GetProjectsResponseBodyProjectsResponse200ApplicationJson2OidcTokenClaims$inboundSchema:
  z.ZodType<
    GetProjectsResponseBodyProjectsResponse200ApplicationJson2OidcTokenClaims,
    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 getProjectsResponseBodyProjectsResponse200ApplicationJSON2OidcTokenClaimsFromJSON(
  jsonString: string,
): SafeParseResult<
  GetProjectsResponseBodyProjectsResponse200ApplicationJson2OidcTokenClaims,
  SDKValidationError
> {
  return safeParse(
    jsonString,
    (x) =>
      GetProjectsResponseBodyProjectsResponse200ApplicationJson2OidcTokenClaims$inboundSchema
        .parse(JSON.parse(x)),
    `Failed to parse 'GetProjectsResponseBodyProjectsResponse200ApplicationJson2OidcTokenClaims' from JSON`,
  );
}

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

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

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

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

/** @internal */
export const GetProjectsResponseBodyDeployment$inboundSchema: z.ZodType<
  GetProjectsResponseBodyDeployment,
  z.ZodTypeDef,
  unknown
> = z.object({
  id: types.string(),
  alias: types.optional(z.array(types.string())),
  aliasAssigned: z.nullable(smartUnion([types.number(), types.boolean()]))
    .optional(),
  aliasError: z.nullable(
    z.lazy(() =>
      GetProjectsResponseBodyProjectsResponse200ApplicationJson2AliasError$inboundSchema
    ),
  ).optional(),
  aliasFinal: z.nullable(types.string()).optional(),
  automaticAliases: types.optional(z.array(types.string())),
  branchMatcher: types.optional(
    z.lazy(() =>
      GetProjectsResponseBodyProjectsResponse200ApplicationJson2BranchMatcher$inboundSchema
    ),
  ),
  buildingAt: types.optional(types.number()),
  builds: types.optional(
    z.array(z.lazy(() =>
      GetProjectsResponseBodyProjectsResponse200ApplicationJson2Builds$inboundSchema
    )),
  ),
  checksConclusion: types.optional(
    GetProjectsResponseBodyProjectsResponse200ApplicationJson2ChecksConclusion$inboundSchema,
  ),
  checksState: types.optional(
    GetProjectsResponseBodyProjectsResponse200ApplicationJson2ChecksState$inboundSchema,
  ),
  connectBuildsEnabled: types.optional(types.boolean()),
  connectConfigurationId: types.optional(types.string()),
  createdAt: types.number(),
  createdIn: types.string(),
  creator: types.nullable(
    z.lazy(() =>
      GetProjectsResponseBodyProjectsResponse200ApplicationJson2ProjectsAliasCreator$inboundSchema
    ),
  ),
  deletedAt: types.optional(types.number()),
  deploymentHostname: types.string(),
  forced: types.optional(types.boolean()),
  name: types.string(),
  meta: types.optional(z.record(types.string())),
  monorepoManager: z.nullable(types.string()).optional(),
  oidcTokenClaims: types.optional(
    z.lazy(() =>
      GetProjectsResponseBodyProjectsResponse200ApplicationJson2OidcTokenClaims$inboundSchema
    ),
  ),
  plan:
    GetProjectsResponseBodyProjectsResponse200ApplicationJson2Plan$inboundSchema,
  previewCommentsEnabled: types.optional(types.boolean()),
  private: types.boolean(),
  readyAt: types.optional(types.number()),
  readyState:
    GetProjectsResponseBodyProjectsResponse200ApplicationJson2ReadyState$inboundSchema,
  readySubstate: types.optional(
    GetProjectsResponseBodyProjectsResponse200ApplicationJson2ReadySubstate$inboundSchema,
  ),
  requestedAt: types.optional(types.number()),
  target: z.nullable(types.string()).optional(),
  teamId: z.nullable(types.string()).optional(),
  type:
    GetProjectsResponseBodyProjectsResponse200ApplicationJson2ProjectsAliasType$inboundSchema,
  url: types.string(),
  userId: types.optional(types.string()),
  withCache: types.optional(types.boolean()),
});

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

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

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

/** @internal */
export const GetProjectsResponseBodyAlias$inboundSchema: z.ZodType<
  GetProjectsResponseBodyAlias,
  z.ZodTypeDef,
  unknown
> = z.object({
  configuredBy: z.nullable(GetProjectsResponseBodyConfiguredBy$inboundSchema)
    .optional(),
  configuredChangedAt: z.nullable(types.number()).optional(),
  createdAt: z.nullable(types.number()).optional(),
  deployment: types.nullable(
    z.lazy(() => GetProjectsResponseBodyDeployment$inboundSchema),
  ),
  domain: types.string(),
  environment: GetProjectsResponseBodyEnvironment$inboundSchema,
  gitBranch: z.nullable(types.string()).optional(),
  redirect: z.nullable(types.string()).optional(),
  redirectStatusCode: z.nullable(types.number()).optional(),
  target: GetProjectsResponseBodyProjectsResponseTarget$inboundSchema,
});

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

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

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

/** @internal */
export const GetProjectsResponseBodyDeploymentExpiration$inboundSchema:
  z.ZodType<
    GetProjectsResponseBodyDeploymentExpiration,
    z.ZodTypeDef,
    unknown
  > = z.object({
    expirationDays: types.optional(types.number()),
    expirationDaysProduction: types.optional(types.number()),
    expirationDaysCanceled: types.optional(types.number()),
    expirationDaysErrored: types.optional(types.number()),
    deploymentsToKeep: types.optional(types.number()),
  });

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

/** @internal */
export const GetProjectsResponseBodyIpBuckets$inboundSchema: z.ZodType<
  GetProjectsResponseBodyIpBuckets,
  z.ZodTypeDef,
  unknown
> = z.object({
  bucket: types.string(),
  default: types.optional(types.boolean()),
  supportUntil: types.optional(types.number()),
});

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

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

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

/** @internal */
export const GetProjectsResponseBodyProjectsResponse200Target$inboundSchema:
  z.ZodType<
    GetProjectsResponseBodyProjectsResponse200Target,
    z.ZodTypeDef,
    unknown
  > = smartUnion([
    z.array(GetProjectsTargetProjects1$inboundSchema),
    GetProjectsTargetProjects2$inboundSchema,
  ]);

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

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

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

/** @internal */
export const GetProjectsContentHintProjects17$inboundSchema: z.ZodType<
  GetProjectsContentHintProjects17,
  z.ZodTypeDef,
  unknown
> = z.object({
  type: types.literal("flags-connection-string"),
  projectId: types.string(),
});

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

/** @internal */
export const GetProjectsContentHintProjects16$inboundSchema: z.ZodType<
  GetProjectsContentHintProjects16,
  z.ZodTypeDef,
  unknown
> = z.object({
  type: types.literal("integration-store-secret"),
  storeId: types.string(),
  integrationId: types.string(),
  integrationProductId: types.string(),
  integrationConfigurationId: types.string(),
});

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

/** @internal */
export const GetProjectsContentHintProjects15$inboundSchema: z.ZodType<
  GetProjectsContentHintProjects15,
  z.ZodTypeDef,
  unknown
> = z.object({
  type: types.literal("postgres-url-no-ssl"),
  storeId: types.string(),
});

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

/** @internal */
export const GetProjectsContentHintProjects14$inboundSchema: z.ZodType<
  GetProjectsContentHintProjects14,
  z.ZodTypeDef,
  unknown
> = z.object({
  type: types.literal("postgres-database"),
  storeId: types.string(),
});

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

/** @internal */
export const GetProjectsContentHintProjects13$inboundSchema: z.ZodType<
  GetProjectsContentHintProjects13,
  z.ZodTypeDef,
  unknown
> = z.object({
  type: types.literal("postgres-password"),
  storeId: types.string(),
});

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

/** @internal */
export const GetProjectsContentHintProjects12$inboundSchema: z.ZodType<
  GetProjectsContentHintProjects12,
  z.ZodTypeDef,
  unknown
> = z.object({
  type: types.literal("postgres-host"),
  storeId: types.string(),
});

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

/** @internal */
export const GetProjectsContentHintProjects11$inboundSchema: z.ZodType<
  GetProjectsContentHintProjects11,
  z.ZodTypeDef,
  unknown
> = z.object({
  type: types.literal("postgres-user"),
  storeId: types.string(),
});

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

/** @internal */
export const GetProjectsContentHintProjects10$inboundSchema: z.ZodType<
  GetProjectsContentHintProjects10,
  z.ZodTypeDef,
  unknown
> = z.object({
  type: types.literal("postgres-prisma-url"),
  storeId: types.string(),
});

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

/** @internal */
export const GetProjectsContentHintProjects9$inboundSchema: z.ZodType<
  GetProjectsContentHintProjects9,
  z.ZodTypeDef,
  unknown
> = z.object({
  type: types.literal("postgres-url-non-pooling"),
  storeId: types.string(),
});

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

/** @internal */
export const GetProjectsContentHintProjects8$inboundSchema: z.ZodType<
  GetProjectsContentHintProjects8,
  z.ZodTypeDef,
  unknown
> = z.object({
  type: types.literal("postgres-url"),
  storeId: types.string(),
});

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

/** @internal */
export const GetProjectsContentHintProjects7$inboundSchema: z.ZodType<
  GetProjectsContentHintProjects7,
  z.ZodTypeDef,
  unknown
> = z.object({
  type: types.literal("blob-webhook-public-key"),
  storeId: types.string(),
});

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

/** @internal */
export const GetProjectsContentHintProjects6$inboundSchema: z.ZodType<
  GetProjectsContentHintProjects6,
  z.ZodTypeDef,
  unknown
> = z.object({
  type: types.literal("blob-store-id"),
  storeId: types.string(),
});

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

/** @internal */
export const GetProjectsContentHintProjects5$inboundSchema: z.ZodType<
  GetProjectsContentHintProjects5,
  z.ZodTypeDef,
  unknown
> = z.object({
  type: types.literal("blob-read-write-token"),
  storeId: types.string(),
});

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

/** @internal */
export const GetProjectsContentHintProjects4$inboundSchema: z.ZodType<
  GetProjectsContentHintProjects4,
  z.ZodTypeDef,
  unknown
> = z.object({
  type: types.literal("redis-rest-api-read-only-token"),
  storeId: types.string(),
});

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

/** @internal */
export const GetProjectsContentHintProjects3$inboundSchema: z.ZodType<
  GetProjectsContentHintProjects3,
  z.ZodTypeDef,
  unknown
> = z.object({
  type: types.literal("redis-rest-api-token"),
  storeId: types.string(),
});

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

/** @internal */
export const GetProjectsContentHintProjects2$inboundSchema: z.ZodType<
  GetProjectsContentHintProjects2,
  z.ZodTypeDef,
  unknown
> = z.object({
  type: types.literal("redis-rest-api-url"),
  storeId: types.string(),
});

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

/** @internal */
export const GetProjectsContentHintProjects1$inboundSchema: z.ZodType<
  GetProjectsContentHintProjects1,
  z.ZodTypeDef,
  unknown
> = z.object({
  type: types.literal("redis-url"),
  storeId: types.string(),
});

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

/** @internal */
export const GetProjectsResponseBodyProjectsResponseContentHint$inboundSchema:
  z.ZodType<
    GetProjectsResponseBodyProjectsResponseContentHint,
    z.ZodTypeDef,
    unknown
  > = z.union([
    z.lazy(() => GetProjectsContentHintProjects1$inboundSchema),
    z.lazy(() => GetProjectsContentHintProjects2$inboundSchema),
    z.lazy(() => GetProjectsContentHintProjects3$inboundSchema),
    z.lazy(() => GetProjectsContentHintProjects4$inboundSchema),
    z.lazy(() => GetProjectsContentHintProjects5$inboundSchema),
    z.lazy(() => GetProjectsContentHintProjects6$inboundSchema),
    z.lazy(() => GetProjectsContentHintProjects7$inboundSchema),
    z.lazy(() => GetProjectsContentHintProjects8$inboundSchema),
    z.lazy(() => GetProjectsContentHintProjects9$inboundSchema),
    z.lazy(() => GetProjectsContentHintProjects10$inboundSchema),
    z.lazy(() => GetProjectsContentHintProjects11$inboundSchema),
    z.lazy(() => GetProjectsContentHintProjects12$inboundSchema),
    z.lazy(() => GetProjectsContentHintProjects13$inboundSchema),
    z.lazy(() => GetProjectsContentHintProjects14$inboundSchema),
    z.lazy(() => GetProjectsContentHintProjects15$inboundSchema),
    z.lazy(() => GetProjectsContentHintProjects16$inboundSchema),
    z.lazy(() => GetProjectsContentHintProjects17$inboundSchema),
  ]);

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

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

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

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

/** @internal */
export const GetProjectsResponseBodyEnv$inboundSchema: z.ZodType<
  GetProjectsResponseBodyEnv,
  z.ZodTypeDef,
  unknown
> = z.object({
  target: types.optional(
    smartUnion([
      z.array(GetProjectsTargetProjects1$inboundSchema),
      GetProjectsTargetProjects2$inboundSchema,
    ]),
  ),
  type:
    GetProjectsResponseBodyProjectsResponse200ApplicationJson2Type$inboundSchema,
  sunsetSecretId: types.optional(types.string()),
  legacyValue: types.optional(types.string()),
  decrypted: types.optional(types.boolean()),
  value: types.string(),
  vsmValue: types.optional(types.string()),
  id: types.optional(types.string()),
  key: types.string(),
  configurationId: z.nullable(types.string()).optional(),
  createdAt: types.optional(types.number()),
  updatedAt: types.optional(types.number()),
  createdBy: z.nullable(types.string()).optional(),
  updatedBy: z.nullable(types.string()).optional(),
  gitBranch: types.optional(types.string()),
  visibility: types.optional(
    GetProjectsResponseBodyProjectsResponseVisibility$inboundSchema,
  ),
  edgeConfigId: z.nullable(types.string()).optional(),
  edgeConfigTokenId: z.nullable(types.string()).optional(),
  contentHint: z.nullable(
    z.union([
      z.lazy(() => GetProjectsContentHintProjects1$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjects2$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjects3$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjects4$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjects5$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjects6$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjects7$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjects8$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjects9$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjects10$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjects11$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjects12$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjects13$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjects14$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjects15$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjects16$inboundSchema),
      z.lazy(() => GetProjectsContentHintProjects17$inboundSchema),
    ]),
  ).optional(),
  internalContentHint: z.nullable(
    z.lazy(() =>
      GetProjectsResponseBodyProjectsResponseInternalContentHint$inboundSchema
    ),
  ).optional(),
  comment: types.optional(types.string()),
  customEnvironmentIds: types.optional(z.array(types.string())),
});

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

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

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

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

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

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

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

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

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

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

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

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

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

/** @internal */
export const GetProjectsResponseBodyProjectsResponse200ApplicationJson2Creator$inboundSchema:
  z.ZodType<
    GetProjectsResponseBodyProjectsResponse200ApplicationJson2Creator,
    z.ZodTypeDef,
    unknown
  > = z.object({
    email: types.string(),
    githubLogin: types.optional(types.string()),
    gitlabLogin: types.optional(types.string()),
    uid: types.string(),
    username: types.string(),
  });

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

/** @internal */
export const GetProjectsResponseBodyProjectsResponse200OidcTokenClaims$inboundSchema:
  z.ZodType<
    GetProjectsResponseBodyProjectsResponse200OidcTokenClaims,
    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 getProjectsResponseBodyProjectsResponse200OidcTokenClaimsFromJSON(
  jsonString: string,
): SafeParseResult<
  GetProjectsResponseBodyProjectsResponse200OidcTokenClaims,
  SDKValidationError
> {
  return safeParse(
    jsonString,
    (x) =>
      GetProjectsResponseBodyProjectsResponse200OidcTokenClaims$inboundSchema
        .parse(JSON.parse(x)),
    `Failed to parse 'GetProjectsResponseBodyProjectsResponse200OidcTokenClaims' from JSON`,
  );
}

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

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

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

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

/** @internal */
export const GetProjectsResponseBodyLatestDeployments$inboundSchema: z.ZodType<
  GetProjectsResponseBodyLatestDeployments,
  z.ZodTypeDef,
  unknown
> = z.object({
  id: types.string(),
  alias: types.optional(z.array(types.string())),
  aliasAssigned: z.nullable(smartUnion([types.number(), types.boolean()]))
    .optional(),
  aliasError: z.nullable(
    z.lazy(() =>
      GetProjectsResponseBodyProjectsResponse200AliasError$inboundSchema
    ),
  ).optional(),
  aliasFinal: z.nullable(types.string()).optional(),
  automaticAliases: types.optional(z.array(types.string())),
  branchMatcher: types.optional(
    z.lazy(() =>
      GetProjectsResponseBodyProjectsResponseBranchMatcher$inboundSchema
    ),
  ),
  buildingAt: types.optional(types.number()),
  builds: types.optional(
    z.array(z.lazy(() =>
      GetProjectsResponseBodyProjectsResponse200Builds$inboundSchema
    )),
  ),
  checksConclusion: types.optional(
    GetProjectsResponseBodyProjectsResponse200ChecksConclusion$inboundSchema,
  ),
  checksState: types.optional(
    GetProjectsResponseBodyProjectsResponse200ChecksState$inboundSchema,
  ),
  connectBuildsEnabled: types.optional(types.boolean()),
  connectConfigurationId: types.optional(types.string()),
  createdAt: types.number(),
  createdIn: types.string(),
  creator: types.nullable(
    z.lazy(() =>
      GetProjectsResponseBodyProjectsResponse200ApplicationJson2Creator$inboundSchema
    ),
  ),
  deletedAt: types.optional(types.number()),
  deploymentHostname: types.string(),
  forced: types.optional(types.boolean()),
  name: types.string(),
  meta: types.optional(z.record(types.string())),
  monorepoManager: z.nullable(types.string()).optional(),
  oidcTokenClaims: types.optional(
    z.lazy(() =>
      GetProjectsResponseBodyProjectsResponse200OidcTokenClaims$inboundSchema
    ),
  ),
  plan: GetProjectsResponseBodyProjectsResponse200Plan$inboundSchema,
  previewCommentsEnabled: types.optional(types.boolean()),
  private: types.boolean(),
  readyAt: types.optional(types.number()),
  readyState:
    GetProjectsResponseBodyProjectsResponse200ReadyState$inboundSchema,
  readySubstate: types.optional(
    GetProjectsResponseBodyProjectsResponse200ReadySubstate$inboundSchema,
  ),
  requestedAt: types.optional(types.number()),
  target: z.nullable(types.string()).optional(),
  teamId: z.nullable(types.string()).optional(),
  type:
    GetProjectsResponseBodyProjectsResponse200ApplicationJson2ProjectsType$inboundSchema,
  url: types.string(),
  userId: types.optional(types.string()),
  withCache: types.optional(types.boolean()),
});

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

/** @internal */
export const GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2Projects8DeployHooks$inboundSchema:
  z.ZodType<
    GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2Projects8DeployHooks,
    z.ZodTypeDef,
    unknown
  > = z.object({
    createdAt: types.optional(types.number()),
    id: types.string(),
    name: types.string(),
    ref: types.string(),
    url: types.string(),
  });

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

/** @internal */
export const GetProjectsLinkProjects8$inboundSchema: z.ZodType<
  GetProjectsLinkProjects8,
  z.ZodTypeDef,
  unknown
> = z.object({
  owner: types.string(),
  repo: types.string(),
  repoId: types.string(),
  ownerId: types.string(),
  type: types.literal("cursor-origin"),
  createdAt: types.optional(types.number()),
  deployHooks: z.array(
    z.lazy(() =>
      GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2Projects8DeployHooks$inboundSchema
    ),
  ),
  gitCredentialId: types.string(),
  updatedAt: types.optional(types.number()),
  sourceless: types.optional(types.boolean()),
  productionBranch: types.string(),
});

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

/** @internal */
export const GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2Projects7DeployHooks$inboundSchema:
  z.ZodType<
    GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2Projects7DeployHooks,
    z.ZodTypeDef,
    unknown
  > = z.object({
    createdAt: types.optional(types.number()),
    id: types.string(),
    name: types.string(),
    ref: types.string(),
    url: types.string(),
  });

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

/** @internal */
export const GetProjectsLinkProjects7$inboundSchema: z.ZodType<
  GetProjectsLinkProjects7,
  z.ZodTypeDef,
  unknown
> = z.object({
  org: types.string(),
  repo: types.string(),
  repoId: types.string(),
  type: types.literal("v0"),
  createdAt: types.optional(types.number()),
  deployHooks: z.array(
    z.lazy(() =>
      GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2Projects7DeployHooks$inboundSchema
    ),
  ),
  gitCredentialId: types.string(),
  updatedAt: types.optional(types.number()),
  sourceless: types.optional(types.boolean()),
  productionBranch: types.string(),
});

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

/** @internal */
export const GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2Projects6DeployHooks$inboundSchema:
  z.ZodType<
    GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2Projects6DeployHooks,
    z.ZodTypeDef,
    unknown
  > = z.object({
    createdAt: types.optional(types.number()),
    id: types.string(),
    name: types.string(),
    ref: types.string(),
    url: types.string(),
  });

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

/** @internal */
export const GetProjectsLinkProjects6$inboundSchema: z.ZodType<
  GetProjectsLinkProjects6,
  z.ZodTypeDef,
  unknown
> = z.object({
  org: types.string(),
  repo: types.string(),
  repoId: types.string(),
  type: types.literal("vercel"),
  createdAt: types.optional(types.number()),
  deployHooks: z.array(
    z.lazy(() =>
      GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2Projects6DeployHooks$inboundSchema
    ),
  ),
  gitCredentialId: types.string(),
  updatedAt: types.optional(types.number()),
  sourceless: types.optional(types.boolean()),
  productionBranch: types.string(),
});

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

/** @internal */
export const GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2Projects5DeployHooks$inboundSchema:
  z.ZodType<
    GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2Projects5DeployHooks,
    z.ZodTypeDef,
    unknown
  > = z.object({
    createdAt: types.optional(types.number()),
    id: types.string(),
    name: types.string(),
    ref: types.string(),
    url: types.string(),
  });

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

/** @internal */
export const GetProjectsLinkProjects5$inboundSchema: z.ZodType<
  GetProjectsLinkProjects5,
  z.ZodTypeDef,
  unknown
> = z.object({
  name: types.string(),
  slug: types.string(),
  owner: types.string(),
  type: types.literal("bitbucket"),
  uuid: types.string(),
  workspaceUuid: types.string(),
  createdAt: types.optional(types.number()),
  deployHooks: z.array(
    z.lazy(() =>
      GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2Projects5DeployHooks$inboundSchema
    ),
  ),
  gitCredentialId: types.string(),
  updatedAt: types.optional(types.number()),
  sourceless: types.optional(types.boolean()),
  productionBranch: types.string(),
});

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

/** @internal */
export const GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2Projects4DeployHooks$inboundSchema:
  z.ZodType<
    GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2Projects4DeployHooks,
    z.ZodTypeDef,
    unknown
  > = z.object({
    createdAt: types.optional(types.number()),
    id: types.string(),
    name: types.string(),
    ref: types.string(),
    url: types.string(),
  });

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

/** @internal */
export const GetProjectsLinkProjects4$inboundSchema: z.ZodType<
  GetProjectsLinkProjects4,
  z.ZodTypeDef,
  unknown
> = z.object({
  projectId: types.string(),
  projectName: types.string(),
  projectNameWithNamespace: types.string(),
  projectNamespace: types.string(),
  projectOwnerId: types.optional(types.number()),
  projectUrl: types.string(),
  type: types.literal("gitlab"),
  createdAt: types.optional(types.number()),
  deployHooks: z.array(
    z.lazy(() =>
      GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2Projects4DeployHooks$inboundSchema
    ),
  ),
  gitCredentialId: types.string(),
  updatedAt: types.optional(types.number()),
  sourceless: types.optional(types.boolean()),
  productionBranch: types.string(),
});

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

/** @internal */
export const GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2Projects3DeployHooks$inboundSchema:
  z.ZodType<
    GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2Projects3DeployHooks,
    z.ZodTypeDef,
    unknown
  > = z.object({
    createdAt: types.optional(types.number()),
    id: types.string(),
    name: types.string(),
    ref: types.string(),
    url: types.string(),
  });

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

/** @internal */
export const GetProjectsLinkProjects3$inboundSchema: z.ZodType<
  GetProjectsLinkProjects3,
  z.ZodTypeDef,
  unknown
> = z.object({
  org: types.string(),
  repoOwnerId: types.optional(types.number()),
  repo: types.optional(types.string()),
  repoId: types.optional(types.number()),
  type: types.literal("github-custom-host"),
  host: types.string(),
  createdAt: types.optional(types.number()),
  deployHooks: z.array(
    z.lazy(() =>
      GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2Projects3DeployHooks$inboundSchema
    ),
  ),
  gitCredentialId: types.string(),
  updatedAt: types.optional(types.number()),
  sourceless: types.optional(types.boolean()),
  productionBranch: types.string(),
});

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

/** @internal */
export const GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2ProjectsDeployHooks$inboundSchema:
  z.ZodType<
    GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2ProjectsDeployHooks,
    z.ZodTypeDef,
    unknown
  > = z.object({
    createdAt: types.optional(types.number()),
    id: types.string(),
    name: types.string(),
    ref: types.string(),
    url: types.string(),
  });

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

/** @internal */
export const GetProjectsLinkProjects2$inboundSchema: z.ZodType<
  GetProjectsLinkProjects2,
  z.ZodTypeDef,
  unknown
> = z.object({
  type: types.literal("github-limited"),
  repo: types.optional(types.string()),
  repoId: types.optional(types.number()),
  createdAt: types.optional(types.number()),
  updatedAt: types.optional(types.number()),
  org: types.string(),
  repoOwnerId: types.optional(types.number()),
  deployHooks: z.array(
    z.lazy(() =>
      GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2ProjectsDeployHooks$inboundSchema
    ),
  ),
  gitCredentialId: types.string(),
  sourceless: types.optional(types.boolean()),
  productionBranch: types.string(),
});

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

/** @internal */
export const GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2DeployHooks$inboundSchema:
  z.ZodType<
    GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2DeployHooks,
    z.ZodTypeDef,
    unknown
  > = z.object({
    createdAt: types.optional(types.number()),
    id: types.string(),
    name: types.string(),
    ref: types.string(),
    url: types.string(),
  });

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

/** @internal */
export const GetProjectsLinkProjects1$inboundSchema: z.ZodType<
  GetProjectsLinkProjects1,
  z.ZodTypeDef,
  unknown
> = z.object({
  org: types.string(),
  repoOwnerId: types.optional(types.number()),
  repo: types.optional(types.string()),
  repoId: types.optional(types.number()),
  type: types.literal("github"),
  createdAt: types.optional(types.number()),
  deployHooks: z.array(
    z.lazy(() =>
      GetProjectsLinkProjectsResponse200ApplicationJSONResponseBody2DeployHooks$inboundSchema
    ),
  ),
  gitCredentialId: types.string(),
  updatedAt: types.optional(types.number()),
  sourceless: types.optional(types.boolean()),
  productionBranch: types.string(),
});

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

/** @internal */
export const GetProjectsResponseBodyLink$inboundSchema: z.ZodType<
  GetProjectsResponseBodyLink,
  z.ZodTypeDef,
  unknown
> = z.union([
  z.lazy(() => GetProjectsLinkProjects1$inboundSchema),
  z.lazy(() => GetProjectsLinkProjects2$inboundSchema),
  z.lazy(() => GetProjectsLinkProjects3$inboundSchema),
  z.lazy(() => GetProjectsLinkProjects4$inboundSchema),
  z.lazy(() => GetProjectsLinkProjects5$inboundSchema),
  z.lazy(() => GetProjectsLinkProjects6$inboundSchema),
  z.lazy(() => GetProjectsLinkProjects7$inboundSchema),
  z.lazy(() => GetProjectsLinkProjects8$inboundSchema),
]);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/** @internal */
export const GetProjectsResponseBodyProjectsResourceConfig$inboundSchema:
  z.ZodType<
    GetProjectsResponseBodyProjectsResourceConfig,
    z.ZodTypeDef,
    unknown
  > = z.object({
    elasticConcurrencyEnabled: types.optional(types.boolean()),
    fluid: types.optional(types.boolean()),
    functionDefaultRegions: z.array(types.string()),
    functionDefaultTimeout: types.optional(types.number()),
    functionDefaultMemoryType: types.optional(
      GetProjectsResponseBodyFunctionDefaultMemoryType$inboundSchema,
    ),
    functionZeroConfigFailover: types.optional(types.boolean()),
    buildMachineType: types.optional(
      GetProjectsResponseBodyBuildMachineType$inboundSchema,
    ),
    buildMachineSelection: types.optional(
      GetProjectsResponseBodyBuildMachineSelection$inboundSchema,
    ),
    buildMachineElasticLastUpdated: types.optional(types.number()),
    buildMachineElasticReason: types.optional(
      GetProjectsResponseBodyBuildMachineElasticReason$inboundSchema,
    ),
    isNSNBDisabled: types.optional(types.boolean()),
    buildQueue: types.optional(
      z.lazy(() => GetProjectsResponseBodyBuildQueue$inboundSchema),
    ),
    enableFunctionsBeta: types.optional(types.boolean()),
  });

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

/** @internal */
export const GetProjectsResponseBodyStages$inboundSchema: z.ZodType<
  GetProjectsResponseBodyStages,
  z.ZodTypeDef,
  unknown
> = z.object({
  targetPercentage: types.number(),
  requireApproval: types.optional(types.boolean()),
  duration: types.optional(types.number()),
  linearShift: types.optional(types.boolean()),
});

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

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

/** @internal */
export const GetProjectsResponseBodyProjectsChecks$inboundSchema: z.ZodType<
  GetProjectsResponseBodyProjectsChecks,
  z.ZodTypeDef,
  unknown
> = z.object({
  type:
    GetProjectsResponseBodyProjectsResponse200ApplicationJson2ProjectsRollingReleaseType$inboundSchema,
  minSampleSize: types.optional(types.number()),
  excludeStatusCodes: types.optional(z.array(types.number())),
  excludePaths: types.optional(z.array(types.string())),
  ingestWatermarkSeconds: types.optional(types.number()),
});

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

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

/** @internal */
export const GetProjectsResponseBodyGate$inboundSchema: z.ZodType<
  GetProjectsResponseBodyGate,
  z.ZodTypeDef,
  unknown
> = z.object({
  enabled: types.boolean(),
  checks: z.array(
    z.lazy(() => GetProjectsResponseBodyProjectsChecks$inboundSchema),
  ),
  failureThreshold: types.optional(types.number()),
  windowSize: types.optional(types.number()),
  action:
    GetProjectsResponseBodyProjectsResponse200ApplicationJson2Action$inboundSchema,
  dryRun: types.boolean(),
});

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

/** @internal */
export const GetProjectsResponseBodyRollingRelease$inboundSchema: z.ZodType<
  GetProjectsResponseBodyRollingRelease,
  z.ZodTypeDef,
  unknown
> = z.object({
  target: types.string(),
  stages: z.nullable(
    z.array(z.lazy(() => GetProjectsResponseBodyStages$inboundSchema)),
  ).optional(),
  canaryResponseHeader: types.optional(types.boolean()),
  gate: types.optional(z.lazy(() => GetProjectsResponseBodyGate$inboundSchema)),
});

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

/** @internal */
export const GetProjectsResponseBodySpeedInsights$inboundSchema: z.ZodType<
  GetProjectsResponseBodySpeedInsights,
  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 getProjectsResponseBodySpeedInsightsFromJSON(
  jsonString: string,
): SafeParseResult<GetProjectsResponseBodySpeedInsights, SDKValidationError> {
  return safeParse(
    jsonString,
    (x) =>
      GetProjectsResponseBodySpeedInsights$inboundSchema.parse(JSON.parse(x)),
    `Failed to parse 'GetProjectsResponseBodySpeedInsights' from JSON`,
  );
}

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

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

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

/** @internal */
export const GetProjectsResponseBodySsoProtection$inboundSchema: z.ZodType<
  GetProjectsResponseBodySsoProtection,
  z.ZodTypeDef,
  unknown
> = z.object({
  deploymentType:
    GetProjectsResponseBodyProjectsResponseDeploymentType$inboundSchema,
  cve55182MigrationAppliedFrom: z.nullable(
    GetProjectsResponseBodyCve55182MigrationAppliedFrom$inboundSchema,
  ).optional(),
  april2026SecurityIncidentMigrationAppliedFrom: z.nullable(
    GetProjectsResponseBodyApril2026SecurityIncidentMigrationAppliedFrom$inboundSchema,
  ).optional(),
});

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

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

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

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

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

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

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

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

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

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

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

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

/** @internal */
export const GetProjectsResponseBodyProjectsResponse200ApplicationJson2ProjectsCreator$inboundSchema:
  z.ZodType<
    GetProjectsResponseBodyProjectsResponse200ApplicationJson2ProjectsCreator,
    z.ZodTypeDef,
    unknown
  > = z.object({
    email: types.string(),
    githubLogin: types.optional(types.string()),
    gitlabLogin: types.optional(types.string()),
    uid: types.string(),
    username: types.string(),
  });

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

/** @internal */
export const GetProjectsResponseBodyProjectsResponse200ApplicationJSONOidcTokenClaims$inboundSchema:
  z.ZodType<
    GetProjectsResponseBodyProjectsResponse200ApplicationJSONOidcTokenClaims,
    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 getProjectsResponseBodyProjectsResponse200ApplicationJSONOidcTokenClaimsFromJSON(
  jsonString: string,
): SafeParseResult<
  GetProjectsResponseBodyProjectsResponse200ApplicationJSONOidcTokenClaims,
  SDKValidationError
> {
  return safeParse(
    jsonString,
    (x) =>
      GetProjectsResponseBodyProjectsResponse200ApplicationJSONOidcTokenClaims$inboundSchema
        .parse(JSON.parse(x)),
    `Failed to parse 'GetProjectsResponseBodyProjectsResponse200ApplicationJSONOidcTokenClaims' from JSON`,
  );
}

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

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

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

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

/** @internal */
export const GetProjectsResponseBodyTargets$inboundSchema: z.ZodType<
  GetProjectsResponseBodyTargets,
  z.ZodTypeDef,
  unknown
> = z.object({
  id: types.string(),
  alias: types.optional(z.array(types.string())),
  aliasAssigned: z.nullable(smartUnion([types.number(), types.boolean()]))
    .optional(),
  aliasError: z.nullable(
    z.lazy(() =>
      GetProjectsResponseBodyProjectsResponse200ApplicationJSONAliasError$inboundSchema
    ),
  ).optional(),
  aliasFinal: z.nullable(types.string()).optional(),
  automaticAliases: types.optional(z.array(types.string())),
  branchMatcher: types.optional(
    z.lazy(() =>
      GetProjectsResponseBodyProjectsResponse200BranchMatcher$inboundSchema
    ),
  ),
  buildingAt: types.optional(types.number()),
  builds: types.optional(
    z.array(z.lazy(() =>
      GetProjectsResponseBodyProjectsResponse200ApplicationJSONBuilds$inboundSchema
    )),
  ),
  checksConclusion: types.optional(
    GetProjectsResponseBodyProjectsResponse200ApplicationJSONChecksConclusion$inboundSchema,
  ),
  checksState: types.optional(
    GetProjectsResponseBodyProjectsResponse200ApplicationJSONChecksState$inboundSchema,
  ),
  connectBuildsEnabled: types.optional(types.boolean()),
  connectConfigurationId: types.optional(types.string()),
  createdAt: types.number(),
  createdIn: types.string(),
  creator: types.nullable(
    z.lazy(() =>
      GetProjectsResponseBodyProjectsResponse200ApplicationJson2ProjectsCreator$inboundSchema
    ),
  ),
  deletedAt: types.optional(types.number()),
  deploymentHostname: types.string(),
  forced: types.optional(types.boolean()),
  name: types.string(),
  meta: types.optional(z.record(types.string())),
  monorepoManager: z.nullable(types.string()).optional(),
  oidcTokenClaims: types.optional(
    z.lazy(() =>
      GetProjectsResponseBodyProjectsResponse200ApplicationJSONOidcTokenClaims$inboundSchema
    ),
  ),
  plan:
    GetProjectsResponseBodyProjectsResponse200ApplicationJSONPlan$inboundSchema,
  previewCommentsEnabled: types.optional(types.boolean()),
  private: types.boolean(),
  readyAt: types.optional(types.number()),
  readyState:
    GetProjectsResponseBodyProjectsResponse200ApplicationJSONReadyState$inboundSchema,
  readySubstate: types.optional(
    GetProjectsResponseBodyProjectsResponse200ApplicationJSONReadySubstate$inboundSchema,
  ),
  requestedAt: types.optional(types.number()),
  target: z.nullable(types.string()).optional(),
  teamId: z.nullable(types.string()).optional(),
  type:
    GetProjectsResponseBodyProjectsResponse200ApplicationJson2ProjectsTargetsType$inboundSchema,
  url: types.string(),
  userId: types.optional(types.string()),
  withCache: types.optional(types.boolean()),
});

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

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

/** @internal */
export const GetProjectsFromProjects2$inboundSchema: z.ZodType<
  GetProjectsFromProjects2,
  z.ZodTypeDef,
  unknown
> = z.object({
  slugs: types.optional(z.array(types.string())),
  preset: GetProjectsFromProjectsResponse200Preset$inboundSchema,
});

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

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